分词是中文文本预处理的必要步骤,必须使用jieba等工具进行;推荐精确模式分词,并过滤单字停用词及过短词。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜
分词必须做,且要选对工具
中文没有天然空格分隔,直接喂给Word2Vec会把整句当一个“词”,模型完全学不到语义。所以分词是不可跳过的前置步骤。推荐使用 jieba,它支持精确模式、全模式和搜索引擎模式,对百科类文本适配性好,安装简单:pip install jieba。
实际操作中建议用精确模式分词,并过滤掉单字词(如“的”“了”“一”等停用词)和过短词(长度
繁体字不转换,向量质量会明显下降
中文维基语料含大量繁体字(如「台灣」「歷史」「圖書館」),而训练目标通常是简体中文场景。若不做转换,同一概念(如「皇后」vs「皇后」)会被拆成两个孤立词,共现频次被稀释,导致相似度计算失真、类比任务失败。
推荐用 opencc 工具完成批量转换:
- 下载 opencc(Windows 可从 Bintray 获取,macOS 用 brew install opencc,Linux 用 apt install opencc)
- 执行命令:opencc -i wiki.zh.text -o wiki.zh.jian.text -c t2s.json
- t2s.json 是官方提供的「繁转简」配置,确保转换准确;不要用程序自行替换字符(如 replace("台灣","台湾")),易漏、易错、不覆盖异体字
分词与繁简转换的顺序不能颠倒
必须先做繁简转换,再分词。原因有二:
AI Word
一款强大的 AI 智能内容创作平台,致力于帮助用户高效生成高质量、原创且符合 SEO 规范的各类文章。
下载
- 繁体字结构复杂(如「龍」「龜」「麵」),jieba 的默认词典主要基于简体语料构建,对繁体未登录词切分不准,容易切碎或合并错误
- opencc 转换的是字级别,不影响词语边界;而分词结果一旦生成,再转简体就可能破坏词完整性(例如「龍門石窟」→「龙门石窟」,若已切为「龍 門 石 窟」,转完变「龙 门 石 窟」,无法恢复成「龙门石窟」)
标准流程链应为:XML → 纯文本 → 繁转简 → 分词 → 训练。中间任意一步出错,都可能导致最终向量在「北京—首都」、「苹果—水果」等基础关系上表现异常。
训练前再检查三件事
分词文件看似完成,但常藏隐患。建议打开几个样本行快速验证:
- 是否残留 XML 标签或维基标记(如 、[[Category:...]])?需在分词前用正则清洗
- 是否混入英文、数字、标点或乱码?可用正则 [^\u4e00-\u9fa5\s] 扫描并剔除(保留空格和换行)
- 是否存在连续多个空格或空行?gensim 的 LineSentence 会把空行当无效句子跳过,但过多空格可能让模型误判词边界
一个小技巧:把分词后文件头几行复制进 Python,用 [line.split() for line in lines] 查看每行是否确实产出合理词列表——这是最直接有效的质检方式。
