python - 使用 NLTK,当给出某个单词时,如何生成不同形式的单词?

标签 python python-2.7 nlp nltk wordnet

例如,假设给出“happy”这个词,我想生成其他形式的happy,例如幸福、幸福...等。

我已经阅读了有关 Stackoverflow 和 NLTK 引用资料的其他一些先前问题。然而,只有词性标注,变形就像识别句子中某些单词的语法形式,而不是生成不同单词的列表。有没有人遇到过类似的问题?谢谢。

最佳答案

此类信息包含在 NLTK 的 WordNet 实现的 Lemma 类中。具体来说,它可以在 Lemma.derivationally_lated_forms() 中找到。

下面是一个示例脚本,用于查找“happy”的所有可能派生形式:

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

不幸的是,WordNet 中的信息并不完整。上面的脚本找到了“happy”和“happiness”,但未能找到“happily”,即使有多个“happily”引理。

关于python - 使用 NLTK,当给出某个单词时,如何生成不同形式的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45145020/

相关文章:

Python - 为什么我们必须在 while 循环中而不是在 for 循环中初始化标识符?

nlp - 当输入句子没有标点符号时使用的句子分割工具(已标准化)

Python-如何检查程序在运行时是否被用户中止?

python-2.7 - 计算目录python中的文件数

python - 必须以实例作为第一个参数调用未绑定(bind)方法 - python

machine-learning - 如何评价一个网页的质量?

python - 自然语言到二进制事实

python - python中的快速平方根反比来规范化向量

python - 检查错误 : AttributeError: type object 'Lark' has no attribute '_load_from_dict

python - 在 python 中转换列表的最有效方法是什么