您可以使用nltk.ne_chunk()方法开箱即用的命名实体分块.它需要一个POS标记元组列表:
nltk.ne_chunk([('Barack', 'NNP'), ('Obama', 'NNP'), ('lives', 'NNS'), ('in', 'IN'), ('Washington', 'NNP')])
结果是:
Tree('S', [Tree('PERSON', [('Barack', 'NNP')]), Tree('ORGANIZATION', [('Obama', 'NNP')]), ('lives', 'NNS'), ('in', 'IN'), Tree('GPE', [('Washington', 'NNP')])])
它将巴拉克视为一个人,但将奥巴马视为一个组织.所以,并不完美.
小智 8
我也找不到默认的chunker/shallow解析器.虽然本书描述了如何构建和训练具有示例功能的一个.提供额外的功能以获得良好的性能应该不会太困难.
请参阅第7章有关基于训练分类器的分块的部分.