我正在检查 NLTK 的命名实体识别功能。是否可以找出提取的关键字与原文最相关?另外,是否可以知道提取的关键字的类型(个人/组织)?
问问题
2276 次
1 回答
7
如果你有一个训练有素的标注器,你可以先标注你的文本,然后使用 NLTK 自带的 NE 分类器。
标记的文本应显示为列表
sentence = 'The U.N.'
tagged_sentence = [('The','DT'), ('U.N.', 'NNP')]
然后,ne 分类器将像这样调用
nltk.ne_chunk(tagged_sentence)
它返回一棵树。分类后的词将在主结构内显示为树节点。结果将包括它是 PERSON、ORGANIZATION 还是 GPE。
要找出最相关的术语,您必须定义“相关性”的度量。通常使用tf/idf,但如果您只考虑一份文档,频率可能就足够了。
使用 NLTK 可以轻松计算文档中每个单词的频率。首先你必须加载你的语料库,一旦你加载它并拥有一个 Text 对象,只需调用:
relevant_terms_sorted_by_freq = nltk.probability.FreqDist(corpus).keys()
最后,您可以过滤掉 related_terms_sorted_by_freq 中不属于 NE 单词列表的所有单词。
NLTK 提供了一本完整书籍的在线版本,我觉得这很有趣
于 2011-11-24T08:59:26.413 回答