可爱的 Python: 自然语言工具包入门
2007-03-29 12:38:25 来源:WEB开发网核心提示: 分块有些类似于“粗略解析”,也就是说,可爱的 Python: 自然语言工具包入门(8),分块工作的进行,或者基于语法成分的已有标志,确切地说,这不是真正的解析(没有同样的生成规则),或者基于您手工添加的或者使用正则表达式和程序逻辑半自动生成的标志,不过
分块有些类似于“粗略解析”。也就是说,分块工作的进行,或者基于语法成分的已有标志,或者基于您手工添加的或者使用正则表达式和程序逻辑半自动生成的标志。不过,确切地说,这不是真正的解析(没有同样的生成规则)。例如:
清单 7. 分块解析/添加标签:单词和更大的单位
>>> from nltk.parser.chunk import ChunkedTaggedTokenizer
>>> chunked = "[ the/DT little/JJ cat/NN ] sat/VBD on/IN [ the/DT mat/NN ]"
>>> sentence = Token(TEXT=chunked)
>>> tokenizer = ChunkedTaggedTokenizer(chunk_node='NP')
>>> tokenizer.tokenize(sentence)
>>> sentence['SUBTOKENS'][0]
(NP: <the/DT> <little/JJ> <cat/NN>)
>>> sentence['SUBTOKENS'][0]['NODE']
'NP'
>>> sentence['SUBTOKENS'][0]['CHILDREN'][0]
<the/DT>
>>> sentence['SUBTOKENS'][0]['CHILDREN'][0]['TAG']
'DT'
>>> chunk_structure = TreeToken(NODE='S', CHILDREN=sentence['SUBTOKENS'])
(S:
(NP: <the/DT> <little/JJ> <cat/NN>)
<sat/VBD>
<on/IN>
(NP: <the/DT> <mat/NN>))
所提及的分块工作可以由 nltk.tokenizer.RegexpChunkParser 类使用伪正则表达式来描述构成语法元素的一系列标签来完成。这里是概率教程中的一个例子:
更多精彩
赞助商链接