如何检测字符串后缀并从列表中删除这些后缀元素? 我明白,这看起来像一个自然语言处理,词干/词法化的任务,但任务需要一个更简单的功能。如何检测字符串后缀并从列表中删除这些后缀元素? - Python
给出的,我需要的,如果在列表中存在非后缀项删除具有s
和es
后缀内容:
alist = ['bar','barbar','foo','foos','barbares','foofoos','bares']
我需要输出:
alist = ['bar','barbar','foo','foofoos']
我已经尝试了以下,但它不起作用,因为当我理清alist,它得到['bar', 'barbar', 'barbares', 'bares', 'foo', 'foofoos', 'foos']
不是['bar', 'bares', 'barbar', 'barbares', 'foo', 'foos', 'foofoos']
alist = ['bar','barbar','foo','foos','barbares','foofoos','bares']
prev = ""
no_s_list = []
for i in sorted(alist):
if i[-2:] == "es" and i[:-2] == prev:
continue
elif i[-1:] == "s" and i[:-1] == prev:
contine
else:
prev = i
no_s_list.append(i)
个
以上输出:
>>> sorted(alist)
['bar', 'barbar', 'barbares', 'bares', 'foo', 'foofoos', 'foos']
http://stackoverflow.com/questions/771918/how-do-i-do-word-stemming-or-lemmatization – Hoopdady 2013-03-05 14:30:11
它不是一个词干/词形还原任务! – alvas 2013-03-05 14:31:04