Python:NLTK中的形容词同步

时间:2012-11-25 01:54:47

标签: python nlp nltk

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。

1 个答案:

答案 0 :(得分:2)

使用纯粹的NLTK,您可以通过两个步骤实现此功能,并拥有自己的功能。

基本理念

  • 步骤1.找到目标词的所有有意义的搭配(“摩天大楼”或“高大”)
  • 步骤2.对于您感兴趣的那些搭配中确定的形容词,解析POS以获得语义关系。

对于第1步。此SO question on Scoring bigrams具有非常相关的def。您需要调整问题BigramAssocMeasures。 (它使用棕色语料库,但你可以使用许多其他语料。)

对于第2步,您可以使用 pos_tag() 甚至 Tree.parse() 之类的内容来获取您要为目标寻找的关联形容词。

对于(更简单)和替代方法,this link包含应该相关的 text.similar() 示例。

希望有所帮助。