阅读(3757) (17)

AI人工智能 块化:将数据分割成块

2020-09-23 17:00:07 更新

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

在下面的章节中,我们将学习不同类型的分块。

组块的类型

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

  • 上分块 在这个组块过程中,对象,事物等向更普遍的方向发展,语言变得更加抽象。 有更多的协议机会。 在这个过程中缩小。 例如,如果将“汽车是为了什么目的”这个问题大肆渲染?我们可能会得到答案是:“运输”。
  • 下分块 在这个组块过程中,对象,事物等朝着更具体的方向发展,语言更加渗透。 更深层次的结构将进行仔细检查。 在这个过程中会放大。例如,如果将“专门讲述一辆汽车”这个问题归纳起来? 会得到关于汽车的更小的信息。

示例

在这个例子中,我们将通过使用 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()

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

img