当尝试对一个包含超过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))
我尝试对一些我发现错误的单词进行词形还原,以证明SpaCy没有正确处理它们:
text = 'personas, ideas, cosas'
# translation: persons, ideas, things
print(lemmatizer(text))
# Current output:
personar , ideo , coser
# translation:
personify, ideo, sew
# The expected output should be:
persona, idea, cosa
# translation:
person, idea, thing
SnowBallStemmer
进行词干提取。 - jjsantosonlp(text)
的标记步骤中获取此信息,但看起来您的文本不是真正的句子,因此它可能会经常错误地获取POS标签。这将导致错误。顺便说一下... SpaCy仅对英语词形还原正确率约为85%。您可能需要查看斯坦福的CoreNLP或CLiPS/pattern.en,尽管所有这些解决方案的准确度仅达到低90%,并且都需要知道单词的POS。 - bivouac0nlp(text)
),并直接使用词形归并器和词性类型进行处理。这将显著加快处理速度,并有可能提高准确性。 - bivouac0