Y4R*_*D13 5 python lemmatization spacy
当尝试用西班牙语对超过 60,000 个单词的 csv 进行词形还原时,SpaCy无法正确写入某些单词,我知道该模型并非 100% 准确。但是,我还没有找到任何其他解决方案,因为NLTK没有带来西班牙语核心。
有朋友在西班牙语的 Stackoverflow 上问过这个问题,但是这个社区和这个社区相比还是很小的,我们没有得到任何答案。
代码:
nlp = spacy.load('es_core_news_sm')
def lemmatizer(text):
doc = nlp(text)
return ' '.join([word.lemma_ for word in doc])
df['column'] = df['column'].apply(lambda x: lemmatizer(x))
Run Code Online (Sandbox Code Playgroud)
我试图对某些我发现错误的词进行词形还原,以证明 SpaCy 没有正确执行:
text = 'personas, ideas, cosas'
# translation: persons, ideas, things
print(lemmatizer(text))
Run Code Online (Sandbox Code Playgroud)
# Current output:
personar , ideo , coser
# translation:
personify, ideo, sew
# The expected output should be:
persona, idea, cosa
# translation:
person, idea, thing
Run Code Online (Sandbox Code Playgroud)
Gua*_*ero 15
与英语 lemmatizer 不同,spaCy 的西班牙语 lemmatizer 根本不使用 PoS 信息。它依赖于屈折动词和引理的查找列表(例如,ideo idear、idea idea、idea idea、ideamos idear 等)。它只会输出列表中的第一个匹配项,而不管其 PoS。
我实际上为西班牙语开发了 spaCy 新的基于规则的 lemmatizer,它考虑了 PoS 和形态信息(例如时态、性别、数字)。这些细粒度的规则使它比当前的查找词形还原器更准确。它很快就会发布!
同时,您可以使用斯坦福 CoreNLP 或 FreeLing。