NLTK中是否有方法能够找到描述该词的某些形容词属性?例如,如果我输入单词“Skyscraper”,则会出现“tall”,“structured”等属性。我对反向更感兴趣,如果我输入'tall'这个词,那么它将列出与其他单词的语义关系。
我相信NLTK上的属性方法就是为了这个,但它并不像我上面描述的那样工作,这是我正在使用的代码:
from nltk.corpus import wordnet as wn
synsets = wn.synsets('skyscraper')
print[str(syns.attributes()) for syns in synsets]
我尝试过使用part_meronyms和attributes方法,但这并不总是会产生单词的形容词属性。我知道其他Python工具可以让我这样做,但我宁愿现在只使用NLTK。
答案 0 :(得分:2)
使用纯粹的NLTK,您可以通过两个步骤实现此功能,并拥有自己的功能。
基本理念
对于第1步。此SO question on Scoring bigrams具有非常相关的def。您需要调整问题BigramAssocMeasures
。 (它使用棕色语料库,但你可以使用许多其他语料。)
对于第2步,您可以使用 pos_tag()
甚至 Tree.parse()
之类的内容来获取您要为目标寻找的关联形容词。
对于(更简单)和替代方法,this link包含应该相关的 text.similar()
示例。
希望有所帮助。