我有一个土耳其语单词组列表。我想申请词干,我发现了turkishnlp包。尽管它有一些缺点,但它通常会返回正确的单词。然而,当我将此应用于列表时,我不希望列表的结构发生变化,我希望他不知道的单词保持不变。
例如,我有以下列表:mylist=[['yolda','elirken','kopek','gördüm'],['ck','tatlıydı']]
我写了这个函数:
from trnlp import TrnlpWord
def tr_stemming(x):
obj = TrnlpWord()
obj.setword(x) if isinstance(x, str) else type(x)(map(tr_stemming, x))
return obj.get_stem if isinstance(x, str) else type(x)(map(tr_stemming, x))
此函数返回以下列表:
tr_stemming(mylist)
[['yol','gelir','','gör'],[','tatlı']]
但是,我想将其作为输出:[['yol','gelir','kopek','gör'],['ck','tatlı']]
如何更新我的功能?谢谢你的帮助!
IIUC,您可以将函数修改为:
def tr_stemming(x):
if isinstance(x, str):
obj = TrnlpWord()
obj.setword(x)
stem = obj.get_stem
return stem if stem else x
elif isinstance(x, list):
return [tr_stemming(e) for e in x]
out = tr_stemming(mylist)
输出:
[['yol', 'gelir', 'kopek', 'gör'], ['cok', 'tatlı']]