Joy*_*abu 4 named-entity-recognition nltk relevance
我正在查看NLTK的命名实体识别功能.是否有可能找出哪些提取的关键字与原始文本最相关?此外,是否可以知道提取的关键字的类型(人/组织)?
小智 7
如果您有经过培训的标记器,则可以先标记文本,然后使用NLTK附带的网元分类器.
标记的文本应显示为列表
sentence = 'The U.N.'
tagged_sentence = [('The','DT'), ('U.N.', 'NNP')]
Run Code Online (Sandbox Code Playgroud)
然后,将像这样调用ne分类器
nltk.ne_chunk(tagged_sentence)
Run Code Online (Sandbox Code Playgroud)
它返回一棵树.分类的单词将在主结构中显示为树节点.结果将包括PERSON,ORGANIZATION或GPE.
要找出最相关的术语,您必须定义"相关性"的度量.通常使用tf/idf,但如果您只考虑一个文档,频率就足够了.
使用NLTK可以轻松计算文档中每个单词的频率.首先你必须加载你的语料库,一旦你加载它并有一个Text对象,只需调用:
relevant_terms_sorted_by_freq = nltk.probability.FreqDist(corpus).keys()
Run Code Online (Sandbox Code Playgroud)
最后,您可以过滤掉不属于NE列表单词的relevant_terms_sorted_by_freq中的所有单词.
NLTK提供了一本完整书籍的在线版本,我觉得这本书很有趣