LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 190|回复: 0

块化:将数据分割成块

[复制链接]
发表于 2023-12-29 17:21:11 | 显示全部楼层 |阅读模式

它是自然语言处理中的重要过程之一。 分块的主要工作是识别词类和短语,如名词短语。 我们已经研究了令牌化的过程,即令牌的创建。 分块基本上就是这些令牌的标签。 换句话说,组块会告诉我们句子的结构。
在下面的章节中,我们将学习不同类型的分块。

组块的类型有两种类型的组块。 类型如下 -

上分块

在这个组块过程中,对象,事物等向更普遍的方向发展,语言变得更加抽象。 有更多的协议机会。 在这个过程中缩小。 例如,如果将“汽车是为了什么目的”这个问题大肆渲染?我们可能会得到答案是:“运输”。

下分块

在这个组块过程中,对象,事物等朝着更具体的方向发展,语言更加渗透。 更深层次的结构将进行仔细检查。 在这个过程中会放大。例如,如果将“专门讲述一辆汽车”这个问题归纳起来? 会得到关于汽车的更小的信息。

示例

在这个例子中,我们将通过使用Python中的NLTK模块来进行Noun-Phrase chunking,这是一种chunking类别,它可以在句子中找到名词短语块,
在python中执行这些步骤来实现名词短语分块 -
  
第1步 - 在这一步中,需要定义分块的语法。 它将包含需要遵循的规则。第2步 - 在这一步中,需要创建一个块解析器。 它会解析语法并给出结果。第3步 - 在最后一步中,输出以树格式生成。

按照以下步骤导入必要的NLTK包 -

import nltk

现在,我们需要定义这个句子。 这里,DT表示行列式,VBP表示动词,JJ表示形容词,IN表示介词,NN表示名词。

sentence=[("a","DT"),("clever","JJ"),("fox","NN"),("was","VBP"),
          ("jumping","VBP"),("over","IN"),("the","DT"),("wall","NN")]

现在,我们需要给出语法。 在这里以正则表达式的形式给出语法。

grammar = "NP:{<DT>?<JJ>*<NN>}"

我们需要定义一个解析器来解析语法。

parser_chunking = nltk.RegexpParser(grammar)

解析器解析该句子如下 -

parser_chunking.parse(sentence)

接下来,需要获得输出。 输出在名为output_chunk的变量中生成。

Output_chunk = parser_chunking.parse(sentence)

执行以下代码后,以树的形式绘制输出结果。

output.draw()

执行上面代码,得到以下结果 -




//更多请阅读:https://www.yiibai.com/ai_with_python/ai_with_python_nltk_package.html


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表