有没有办法使用 NLTK 获得 Wordnet 形容词名词化?例如,对于happy
所需的输出将是happiness
.
我试图四处寻找,但什么也找不到。
快速而肮脏的答案是 wordnet已经这样做了:
<adj.all>S:(adj)快乐(享受或展示或以喜悦或愉悦为标志)“快乐的微笑”;“在海滩上度过了许多快乐的日子”;《幸福的婚姻》
- 属性
- <noun.state>S: (n) 幸福,幸福(以从满足到强烈喜悦的情绪为特征的幸福状态)
- <noun.feeling>S:(n)幸福(处于幸福状态时所经历的情绪)
- 派生相关形式
- <noun.state> W: (n) 幸福 [相关于:快乐](以从满足到强烈喜悦的情绪为特征的幸福状态)
- <noun.feeling> W:(n)幸福[相关:快乐](处于幸福状态时所经历的情绪)
剩下的问题是如何以编程方式执行此操作(无需网络抓取)。
wordnet 库包装工具非常强大,它展示了 C 库接口的广度:
$ wn happy
No information available for noun happy
No information available for verb happy
Information available for adj happy
-antsa Antonyms
-synsa Synonyms (ordered by estimated frequency)
-attra Attributes
-deria Derived Forms
-famla Familiarity & Polysemy Count
-grepa List of Compound Words
-over Overview of Senses
$ wn happy -deria -n1
Derived Forms of adj happy
Sense 1
happy (vs. unhappy)
RELATED TO->(noun) happiness#1
=> happiness, felicity
RELATED TO->(noun) happiness#2
=> happiness
因此,从 Python 上讲,您可以使用subprocess
有点草率的 wn 命令,也可以使用 NLTK 中已经内置的 wordnet 工具。
在 ubuntu(可能是 debian)上,wordnet 库和工具可通过以下方式方便地获得:
sudo apt-get install wordnet wordnet-dev
唉:
$ wn pythonic
No information available for pythonic