如何获取python中一个单词的同义词/复数的基础?

时间:2019-07-12 19:30:21

标签: python python-3.x dictionary linguistics plural

我想使用python将所有同义词和单词的复数形式转换为单词的基本版本。

例如婴儿会变成婴儿,婴儿也会变成婴儿。

我尝试将原始代码的复数形式创建为root代码,但是它存在一个问题,即它并不总是能够正常运行,并且无法检测大量案件。

contents = ["buying", "stalls", "responsibilities"]
for token in contents:
    if token.endswith("ies"):
        token = token.replace('ies','y')
    elif token.endswith('s'):
        token = token[:-1]
    elif token.endswith("ed"):
        token = token[:-2]
    elif token.endswith("ing"):
        token = token[:-3]

print(contents)

1 个答案:

答案 0 :(得分:1)

我以前没有使用过这个库,所以这有点盐。但是,NodeBox Linguistics似乎是一组合理的脚本,如果您使用的是MacOS,它们可以完全满足您的需求。在此处查看链接:https://www.nodebox.net/code/index.php/Linguistics

根据他们的文档,看来您将能够使用如下代码:

print( en.noun.singular("people") )
>>> person

print( en.verb.infinitive("swimming") )
>>> swim

etc.

除了上面的示例外,还需要考虑的另一种是自然语言处理库,例如NLTK。我之所以推荐使用外部库,是因为英语有很多例外。正如我在评论中提到的那样,请考虑使用“ class”,“ fling”,“ red”,“ geese”等字眼,它们会违反原始问题中提到的规则。