3. 资源文件说明

3.1. dict.txt 文件的作用

dict.txtjieba 分词的主词典文件,包含约 349,047 行词条。

  • 人工维护和整理的静态资源文件

  • 基于大规模中文语料库统计得出

  • 开发者手动更新和维护

每一行的格式为:

词语 词频 词性

  • 词语:中文词汇

  • 词频:该词在语料库中出现的频率(数字越大越常见)

  • 词性:词语的词性标记(如 n=名词, m=数词, nz=其他专名等)

3.2. dict.txtfinalseg / posseg 的关系

它们有关系但职责不同:

文件/目录

作用

是否生成 dict.txt

主词典:包含所有已知词汇及其频率

❌ 静态文件,人工维护 finalseg /

HMM

模型参数:用于未登录词识别

⚠️ .py.p 转换而来 posseg/

词性标注模型参数

⚠️ .py.p 转换而来

工作流程:

1. dict.txt (词典)
   └─> 构建前缀树 (Prefix Tree)
       └─> 用于精确匹配已知词汇

2. finalseg/ (HMM模型)
   └─> 用于识别词典中没有的"未登录词"
       └─> 基于上下文概率推断

3. posseg/ (词性标注模型)
   └─> 对分词结果进行词性标注
       └─> 基于 HMM + Viterbi 算法

加载过程:

资源文件加载过程:

  1. 首次运行时,从 dict.txt 读取所有词条

  2. 构建前缀树结构(包含所有词及其前缀)

  3. 缓存到 jieba.cache 文件( marshal 格式),加速后续加载

  4. 分词时使用前缀树快速匹配

3.3. 总结

  • dict.txt 是核心词典,静态文件,非生成

  • finalseg/ 和 posseg/ 是统计模型参数,用于增强分词能力

  • 三者配合工作:词典负责已知词,HMM 负责未知词,posseg 负责词性标注

  • 这种设计让 jieba 既能准确切分常见词,又能智能处理新词