如何檢測字符串後綴並從列表中刪除這些後綴元素? 我明白,這看起來像一個自然語言處理,詞幹/詞法化的任務,但任務需要一個更簡單的功能。如何檢測字符串後綴並從列表中刪除這些後綴元素? - 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