似乎在德语中使用spacy时,名词单数化存在问题。Spacy似乎依赖于将单词大写以将其识别为名词。例如:
import spacy
nlp = spacy.load("C:\\Users\\somepath\\spacy\\de_core_md\\de_core_news_md\\de_core_news_md-2.2.5")
def lemmatize_text(text):
"""returns the text with each word in its basic form"""
doc = nlp(text)
return [word.lemma_ for word in doc]
lemmatize_text('Das Wort Tests wird erkannt. Allerdings werden tests nicht erkannt')
--> ['der', 'Wort', 'Test', 'werden', 'erkennen', '.', 'Allerdings', 'werden', 'tests', 'nicht', 'erkennen']
# should say 'Test' for both sentences
如果我立即对原始文本进行词形还原,那就不会有问题。但是,我的预处理流程如下:
- 将文本转换为小写
- 去除标点符号
- 删除停用词
- 进行词形还原
上述步骤执行的顺序是否有推荐的顺序?
我没有先进行词形还原,因为句子开头的单词会被错误地识别:
lemmatize_text('Größer wird es nicht mehr. größer wird es nicht mehr.')
--> ['Größer', 'werden', 'ich', 'nicht', 'mehr', '.', 'groß', 'werden', 'ich', 'nicht', 'mehr', '.']
# should say 'groß' for both sentences