它是自然语言处理中的重要过程之一。 分块的主要工作是识别词类和短语,如名词短语。 我们已经研究了令牌化的过程,即令牌的创建。 分块基本上就是这些令牌的标签。 换句话说,组块会告诉我们句子的结构。
在下面的章节中,我们将学习不同类型的分块。
组块的类型有两种类型的组块。 类型如下 -
上分块
在这个组块过程中,对象,事物等向更普遍的方向发展,语言变得更加抽象。 有更多的协议机会。 在这个过程中缩小。 例如,如果将“汽车是为了什么目的”这个问题大肆渲染?我们可能会得到答案是:“运输”。
下分块
在这个组块过程中,对象,事物等朝着更具体的方向发展,语言更加渗透。 更深层次的结构将进行仔细检查。 在这个过程中会放大。例如,如果将“专门讲述一辆汽车”这个问题归纳起来? 会得到关于汽车的更小的信息。
示例
在这个例子中,我们将通过使用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
|