我正在查看NLTK的命名实体识别功能。是否有可能找出哪些提取的关键字与原始文本最相关?此外,是否可以知道提取的关键字的类型(人/组织)?
答案 0 :(得分:7)
如果您有经过培训的标记器,则可以先标记文本,然后使用NLTK附带的网元分类器。
标记文本应显示为列表
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中的所有单词。