如何删除名词列表中的复数?

Bru*_*uce 5 python

我有一个字符串列表:

['bill', 'simpsons', 'cosbys', 'cosby','bills','mango', 'mangoes']
Run Code Online (Sandbox Code Playgroud)

从此列表中删除所有复数的最佳方法是什么?所以,我希望输出为:

['bill', 'simpsons', 'cosby','mango']
Run Code Online (Sandbox Code Playgroud)

Ant*_*ake 6

一般来说,这个过程被称为"词干",并且有一个名为'stemming'的包用于python.

像这样使用:

from stemming.porter2 import stem
stem("simpsons")
Run Code Online (Sandbox Code Playgroud)

词干不只是干复数,但你可以修改词干包只执行复数词干.看一下来源:http://tartarus.org/martin/PorterStemmer/python.txt


Suz*_*ana 5

使用NodeBox Linguistics只需两行:

import en
only_singulars = [w for w in noun_list if w == en.noun.singular(w)]
Run Code Online (Sandbox Code Playgroud)

该库实现了康威的多元化规则,考虑了各种特殊情况。