Python NLTK中的形容词名词化

5 投票
1 回答
1413 浏览
提问于 2025-04-15 22:43

有没有办法用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

撰写回答