3

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

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

4

1 回答 1

2

使用纯粹的 NLTK,您可以使用自己的函数通过两步过程来实现此目的。

基本理念

  • 第 1 步:为你的目标词找到所有有意义的搭配(“skyscraper”或“tall”)
  • Step 2. 对于那些你感兴趣的搭配中识别的形容词,解析词性以获得语义关系。

对于第 1 步。这个关于 Scoring bigrams 的 SO 问题具有非常相关的定义。你必须调整BigramAssocMeasures你的问题。(它使用棕色语料库,但您可以使用许多其他语料库。)

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

对于(更简单)和替代方法,此链接具有text.similar()应该相关的示例。

希望有帮助。

于 2012-11-25T22:27:46.117 回答