You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用spaCy进行韩语词形还原异常,如何获取基础词形?

韩语spaCy词形还原问题解决办法

你的操作没有错误,问题出在spaCy韩语默认模型的词形还原逻辑上——它和英语这类印欧语系模型的处理方式不一样。

spaCy的ko_core_news_sm模型输出的token.lemma_,本质是把韩语单词拆分成形态素单元(词根+词缀的拆分形式),而不是直接输出合并后的单一基础词,这就是你看到「单词+词缀」结果的原因。

要获取实际的基础词,可以试试以下几种方法:

1. 换用spaCy的形态属性获取基础词

部分场景下,token.morph.get("Lemma")能返回合并后的基础词,替换原代码里的token.lemma_即可:

# loading model
nlp = spacy.load("ko_core_news_sm")

# test on first sentence 
doc = nlp(sentences[0])
print(doc)
for token in doc:
    print(token.morph.get("Lemma"))

注意:这个方法的效果依赖模型训练数据的覆盖度,不是所有单词都能生效。

2. 使用专门的韩语NLP工具

如果需要更稳定的词形还原效果,推荐用KoNLPy这类针对韩语优化的工具,比如Hannanum或Kkma组件:

from konlpy.tag import Hannanum
hannanum = Hannanum()

# 示例:获取句子中所有单词的基础形
test_sentence = sentences[0]
base_forms = hannanum.morphs(test_sentence, ntags=1)
print(base_forms)

3. 升级spaCy韩语大模型

ko_core_news_sm是轻量模型,词形还原的覆盖度有限。换成ko_core_news_lg大模型,基础词的输出准确率会有所提升,代码只需修改加载模型的行:

nlp = spacy.load("ko_core_news_lg")

另外补充:你贴的代码存在缩进错误,print(token.lemma_)需要缩进4个空格,否则会抛出语法错误,修正后的代码才能正常运行。

内容的提问来源于stack exchange,提问作者Anteater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:47:12