与NLTK,当给定某个单词时,如何生成不同形式的单词?

问题描述:

例如,假设给出单词“幸福”,我想生成其他形式的快乐,如快乐,快乐地......等与NLTK,当给定某个单词时,如何生成不同形式的单词?

我读#2和NLTK引用其他一些以前的问题。然而,只有POS标签,变形就像识别句子中某些单词的语法形式一样,而不是生成不同单词的列表。有没有人遇到类似的问题?谢谢。

+0

这是干扰的反作用。在你的情况下,你可以将词干应用于一个大的语料库,跟踪哪些词汇被归为同一形式 - 例如,使用兰开斯特词干,“快乐”,“快乐”和“快乐”都映射到“快乐”。然后将这些群集用于生成任务。 – lenz

此类信息包含在NLTK的WordNet实现的Lemma类中。具体而言,它在Lemma.derivationally_related_forms()中找到。

这里寻找的“快乐”所有可能的派生形式的一个示例脚本:

from nltk.corpus import wordnet as wn 

forms = set() #We'll store the derivational forms in a set to eliminate duplicates 
for happy_lemma in wn.lemmas("happy"): #for each "happy" lemma in WordNet 
    forms.add(happy_lemma.name()) #add the lemma itself 
    for related_lemma in happy_lemma.derivationally_related_forms(): #for each related lemma 
     forms.add(related_lemma.name()) #add the related lemma 

不幸的是,在共发现的信息是不完整的。上面的脚本找到了“快乐”和“幸福”,但它没有找到“快乐”,即使有多个“快乐”的引理。