我想使用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)
答案 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”等字眼,它们会违反原始问题中提到的规则。