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