我正在做一些Textmining,因此我需要在标记化之后将我的文档变形。所以我编写了一个函数,它使用python nlp libary spacy将我的标记化文本列转换为一个lemmatized文本列。实际上我认为它很简单直接,但由于某种原因它不起作用。我的DataFrame看起来像:
如前所述,我已经编写了一个使用spacy对字符串列表进行词典化的函数:
de = spacy.load('de')
def lemmatizer(x):
return [de(unicode(y))[0].lemma_ for y in x]
当我在一个简单的字符串列表上使用它时,它工作正常:
当我尝试使用map在我的过滤列上使用它时出现问题。
removed_pd['test'] = removed_pd['filtered'].map(lambda x : lemmatizer(x))
我不知道为什么,因为我的lemmatizer函数在列表上运行,而'filtered'列包含列表。
] 4
并使用其他列表函数,如len工作正常:
removed_pd['test'] = removed_pd['filtered'].map(lambda x : len(x))
我用了textblob-de python包。 pypi link
from textblob_de.lemmatizers import PatternParserLemmatizer
def lemmatize_text(text):
_lemmatizer = PatternParserLemmatizer()
return [_lemmatizer.lemmatize(w)[0][0] for w in text]
removed_pd['test'] = removed_pd['filtered'].apply(lemmatize_text)