Python NLTK中的形容词名词化
有没有办法用NLTK获取Wordnet中的形容词名词化形式呢?
比如说,对于happy
这个词,我们想要的结果是happiness
。
我试着找了找,但没找到相关的信息。
1 个回答
4
简单来说,wordnet这个工具已经可以做到这一点了,具体可以查看这里。
<adj.all>S: (形容词) happy(快乐的,享受或表现出快乐或愉悦的)
- 属性
- <noun.state>S: (名词) happiness, felicity(幸福,愉快的状态,情感从满足到强烈的快乐)
- <noun.feeling>S: (名词) happiness(在幸福状态下体验到的情感)
- 相关形式
- <noun.state> W: (名词) happiness [与: happy 相关](幸福的状态,情感从满足到强烈的快乐)
- <noun.feeling> W: (名词) happiness [与: happy 相关](在幸福状态下体验到的情感)
接下来要解决的问题是如何通过编程来实现这一点(而不是通过网络抓取)。
补充:
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