我试图用NLTK捕捉对象的一般类的出现。例如,trout
和herring
是fish
的类型,eagles
和sparrows
是birds
的类型。NLTK(或任何其他库)中是否有任何功能可以帮助我做到这一点?你知道吗
我不是在寻找同义词,因为它们只是表达同一事物的另一种方式。。。例如,使用wordnet.synsets
我得到了“sparrow”的同义词:
'hedge_sparrow', 'dunnock', 'Prunella_modularis', 'sparrow', 'true_sparrow'
。你知道吗
对于“鸟”的同义词我得到:
'doll', 'snort', 'skirt', 'birdwatch', 'chick', 'hiss', 'hoot', 'raspberry', 'bird', 'Bronx_cheer', 'boo', 'shuttlecock', 'razzing', 'birdie', 'shuttle', 'wench', 'fowl', 'dame', 'razz'
。你知道吗
我在寻找一种方式来说明sparrow
是bird
的一种类型。你知道吗
我找到了一个粗略的解决方法,我可以在这期间使用,但我仍然会感谢任何帮助,如果有更好的方式存在。你知道吗
原来有一个同义词
path_similarity()
函数,它给出了两个wordnet同义词之间的相似性。我编写了一个函数来查找两个项目的所有同义词组合之间的相似度,并取最高的相似度值。我必须设置一个相似性阈值,在这个阈值之上,我可以将一件事看作另一件事。你知道吗输出:
我很钦佩你在利用wordnet相似度评分方面的独创性,但我怀疑这是否足以满足你的目的。你想要的是超音关系,Wordnet语法集通过
hypernyms()
方法方便地提供了它。(由于某些原因,引理也有一个hypernyms()
方法;但是它总是空的;不要让它迷惑你。)以下是Wordnet可以告诉你的关于“麻雀”一词的内容:
如您所见,Wordnet将您从麻雀分为两步,而不是一步。这正是Wordnet碰巧包含的内容。你知道吗
一般来说,你要找的是语料库中所有内容的分类法,也就是说,你的领域中每一个有趣概念的分级词汇表。请注意,我一直保持资格,如在“你的语料库”,“你的领域”。按“类型”来分类有许多不同的方法。小麦是一种植物,但你也可以说它是一种谷类谷物(植物的一个子类型),或者说它是一种种子、一种食品、一种食品成分等等(别介意“小麦”也是一种颜色等等)
因此,满足您需求的理想解决方案是对您感兴趣的事物进行分类,并且适合您的目的。如果你正在处理一个特定的域,那么很可能有一个域;试试google或者询问一个合适的堆栈交换。但是许多这样的资源是RDF格式的,并且需要不同于您可能使用的工具和技术。一个巨大的免费资源是dbpedia,从维基百科中提取。下面是swallow上的条目,给你一个想法。你知道吗
相关问题 更多 >
编程相关推荐