2012-11-25 43 views
2

NLTK中是否有一种方法能够找到描述该词的某些形容词属性?例如,如果我输入“摩天大楼”一词,就会出现诸如“高”,“结构化”等属性。反过来,我更感兴趣,如果我输入单词'tall',那么它会列出与其他单词的语义关系。Python:NLTK中的形容词Synsets

我相信在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

使用纯粹的NLTK,你可以通过两个步骤来实现这个功能,包括你自己的功能。

基本思路

  • 第1步:查找你的目标词(“摩天楼”或“高”)
  • 步骤2.对于那些搭配标识的形容词一切有意义的搭配那是你感兴趣的,解析POS来获得语义关系。

对于第1步。此SO question on Scoring bigrams已确定是非常相关的。您必须调整BigramAssocMeasures以解决您的问题。 (它使用棕色主体,但可以使用其他许多人。)

对于第2步,你可以使用像pos_tag()甚至Tree.parse()有所收获,你正在寻找你的目标形容词的关联。

对于(更简单)和替代方法,this linktext.similar()这应该是相关的示例。

希望有所帮助。

+0

谢谢。我希望NLTK通过WordNet具有某种形式的语义关系,就像上位词/下位词的工作方式一样,但我可以肯定地看到这将如何适用于我的问题 – TTT

相关问题