Spacy中手动修正POS标签后如何重新获取词形还原?
针对Spacy西班牙语模型词形还原问题的解决方案
问题1:更新POS标签后重新获取正确词形还原
Spacy生成Doc对象时会一次性完成词形还原计算,手动修改token.pos_不会自动触发重新计算。你可以调用模型的词形还原器组件,结合修正后的POS标签重新生成正确词形:
import spacy nlp = spacy.load("es_core_news_lg") doc = nlp("Tomé una caída el mes pasado.") # 修正POS标签(建议同时细化tag,提升还原准确性) doc[0].pos_ = "VERB" doc[0].tag_ = "VB" # 获取词形还原器并重新计算 lemmatizer = nlp.get_pipe("lemmatizer") correct_lemma = lemmatizer.lemmatize(doc[0], pos=doc[0].pos_) doc[0].lemma_ = correct_lemma print(doc[0].lemma_) # 输出: tomar
问题2:脱离上下文单独获取词形还原
可以直接调用词形还原器,仅传入目标词汇和指定的POS标签,无需依赖完整句子上下文:
import spacy nlp = spacy.load("es_core_news_lg") lemmatizer = nlp.get_pipe("lemmatizer") # 直接传入词汇和POS标签获取词形还原 target_lemma = lemmatizer.lemmatize("Tomé", pos="VERB") print(target_lemma) # 输出: tomar
内容的提问来源于stack exchange,提问作者Peter R
相关产品推荐
相关产品推荐

