在python nltk中为给定单词提取不同的POS单词

时间:2010-11-11 00:32:54

标签: python nltk

python nltk中是否有任何包可以为给定的单词生成所有不同的语音单词。例如,如果我给add(动词),那么它必须产生加法(名词),加法(adj)等等。谁能让我知道?

3 个答案:

答案 0 :(得分:2)

我可以想到两个选项:

选项一是迭代样本POS标记的语料库,并自己构建此映射。这为您提供了与语料库中特定单词相关联的POS标记。

选项二是在语料库上构建隐藏的马尔可夫模型POS标记器,然后检查模型的值。这将为您提供与语料库中的特定单词相关联的POS标记及其先验概率,以及一些其他统计数据。

根据您的用例,一个可能比另一个好。我会从选项一开始,因为它快速而简单。

答案 1 :(得分:0)

NLTK隐藏着很多聪明的东西,因此可能有直接的方法。但是,我认为您可能必须编写自己的代码才能使用WordNet数据库。

答案 2 :(得分:0)

这可能就是你要找的东西:

from nltk.corpus import wordnet

add = wordnet.synsets('add', 'v')

add
>>> 
[Synset('add.v.01'),
 Synset('add.v.02'),
 Synset('lend.v.01'),
 Synset('add.v.04'),
 Synset('total.v.02'),
 Synset('add.v.06')]

lemma = add[0].lemmas[0]

lemma
>>> Lemma('add.v.01.add')
lemma.derivationally_related_forms()
>>> [Lemma('addition.n.02.addition'), Lemma('linear.a.01.additive')]