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

使用Spacy进行词形还原时输出为空的问题咨询

Spacy 3.2.0 印尼语词形还原功能正确用法及问题排查

问题根源

  • 直接初始化的Indonesian()属于空白语言实例,仅包含基础分词逻辑,未内置词形还原(Lemmatizer)组件,也未绑定完整的词汇属性映射,导致token.lemma_返回空值,最终输出结果为空。
  • Spacy的词形还原、停用词识别、词性标注等高级功能,都依赖对应语言的预训练管道包才能正常运行,空白实例默认不携带这些组件。

解决步骤

  1. 安装与Spacy 3.2.0版本匹配的印尼语预训练管道,执行命令:
    pip install id_ud_gsd==3.2.0
  2. 修改代码,加载预训练管道替代空白语言实例,修改后代码如下:
import spacy

# 加载包含词形还原、停用词表的印尼语预训练管道
nlp = spacy.load("id_ud_gsd")

def tokenizer(text):
    return [token.lemma_.lower() for token in nlp(text) if not token.is_stop and not token.is_punct]


docs = [
    'Saya pikir ayah saya terlihat seperti Matt Damon.',
    'Tapi apakah rezim mempelajari sesuatu?',
    'Lalu dia mulai berjualan mariyuana.',
    'Apakah Anda ingin menjadi penerbit, seseorang yang memberi lisensi teknologi?',
]

for text in docs:
    print(tokenizer(text))

预期输出

运行修改后的代码可得到正常的词形还原结果,示例输出如下:

['pikir', 'ayah', 'lihat', 'matt', 'damon']
['rezim', 'pelajar', 'sesuatu']
['mulai', 'jual', 'mariyuana']
['ingin', 'terbit', 'orang', 'beri', 'lisensi', 'teknologi']

注意事项

  • 预训练管道版本必须和你使用的Spacy版本完全匹配,若使用其他版本Spacy,需要安装对应版本的id_ud_gsd包,否则会出现兼容性报错。
  • 如果需要使用自定义管道,需要手动添加词形还原组件并绑定印尼语的词形映射表,操作复杂度远高于直接使用官方预训练管道。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:06:02