它是自然语言处理中的重要过程之一。 分块的主要工作是识别词类和短语,如名词短语。 我们已经研究了令牌化的过程,即令牌的创建。 分块基本上就是这些令牌的标签。 换句话说,组块会告诉我们句子的结构。
在下面的章节中,我们将学习不同类型的分块。
有两种类型的组块。 类型如下 -
示例
在这个例子中,我们将通过使用 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()
执行上面代码,得到以下结果 -