文字列のサフィックスを検出し、これらのサフィックス付きの要素をリストから削除する方法は? これは NLP のステミング/レンマタイゼーション タスクのように見えますが、このタスクにはより単純な機能が必要であることは理解しています。
与えられた場合、リストに接尾辞のないアイテムが存在する場合、接尾辞s
と接尾辞を持つ要素を削除する必要があります。es
alist = ['bar','barbar','foo','foos','barbares','foofoos','bares']
出力する必要があります:
alist = ['bar','barbar','foo','foofoos']
私は次のことを試しましたが、連想リストを整理するとうまくいかないため、うまくいきませ['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']