繁体   English   中英

如何从语料库中发现与另一个语料库不同的单词列表? 蟒蛇

[英]How do I discover list of words from corpus which distinguish from another corpus? Python

我有两个非结构化文本输入列表,我想找到区分listAlistB 例如,如果listA是“ Harry Potter”的文本,而listB是“ Ender's Game”的文本,则listA的区别元素是[wand, magic, wizard, . . .] listA [wand, magic, wizard, . . .] [wand, magic, wizard, . . .]listB的区别元素是[ender, buggers, battle, . . .] listBlistBlistB [ender, buggers, battle, . . .]

我已经使用python-nltk模块进行了一些尝试,并且能够轻松地找到每个列表中最常见的单词,但这并不是我所追求的。

您可以使用同义词集来完成它。 为了获得同义词集,NLTK包含一个非常强大的库,称为wordnet。

Wordnet是人类语言的大型“数据库”(缺少更好的词),不仅英语,而且还支持许多其他语言。

同义词集类似于您听到术语时所得到的类似想法。 几乎像一个同义词,但并不严格。 请转到链接,它是一个更好的定义。

Synset闭包可以为您带来最大的帮助。 例如,“蜜蜂”是一种动物,昆虫,生物。 哈利·波特是虚构的,人类,巫师。

from nltk.corpus import wordnet as wn
dog = wn.synset('dog.n.01')
hyper = lambda s: s.hypernyms()
list(dog.closure(hyper))

下面有一本书,教你NLTK的表面,是不是很好,但要与一起启动的好地方NTLK HOWTO文档

如果您需要更深入的信息,我无法帮助您,我不知道NTLK为我们提供的大多数定义和功能,但是同义词集是一个不错的起点。

我对python-nltk进行了一些尝试,能够轻松地找到每个列表中最常用的单词,但不完全是我想要的

我猜您的意思是,出现频率最高的单词是“ and”,“ the”,“ of”等。 这些单词不是很有帮助,它们基本上只是将单词组合在一起构成句子的粘合剂,您可以删除它们,但需要一个称为“停止列表”的“无用”单词列表,nltk在nltk中有这样的列表from nltk.corpus import stop words

您可能想看看TF.IDF得分。 这将使一个文档中常见但通常不常见的单词的权重更高。 通常,您会使用大型语料库来计算通常使用的单词。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM