【发布时间】:2011-08-06 19:23:32
【问题描述】:
我正在检查 NLTK 的命名实体识别功能。是否可以找出提取的关键字与原文最相关?另外,是否可以知道提取的关键字的类型(个人/组织)?
【问题讨论】:
标签: nltk relevance named-entity-recognition
我正在检查 NLTK 的命名实体识别功能。是否可以找出提取的关键字与原文最相关?另外,是否可以知道提取的关键字的类型(个人/组织)?
【问题讨论】:
标签: nltk relevance named-entity-recognition
如果您有训练有素的标注器,您可以先标注您的文本,然后使用 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 单词列表的单词。
【讨论】: