spaCy
spaCy官方提供了两个中文语言模型:zh_core_web_sm(小型)和zh_core_web_trf(基于Transformer)。
1. zh_core_web_sm (小型模型)
模型架构
-
基础架构:基于CNN的神经网络管道
-
组件构成:
-
分词器:基于规则的中文分词器
-
词性标注(Tagger):
-
架构:多层感知机(MLP)
-
输入:分词后的token及其上下文特征
-
输出:中文词性标签(如名词、动词等)
-
-
依存句法分析(Parser):
-
架构:基于转移的解析器(Transition-based parser) + CNN特征提取
-
使用MaltParser风格的算法
-
-
命名实体识别(NER):
-
架构:基于BILUO标注方案的CNN+CRF模型
-
实体类型:PERSON(人名)、ORG(组织)、GPE(地理政治实体)等
-
-
训练数据
-
使用Universal Dependencies中文语料(UD_Chinese)和OntoNotes 5.0
-
词汇表:约50万词
性能特点
-
模型大小:~45MB
-
速度快,适合实时处理
-
准确率中等,适合通用场景
2. zh_core_web_trf (基于Transformer的模型)
模型架构
-
基础架构:基于Transformer的管道
-
核心组件:
-
Transformer主干:使用预训练的
bert-base-chinese模型 -
任务特定层:
-
词性标注:在BERT输出上添加线性分类层
-
依存句法分析:基于Biaffine注意力机制
-
命名实体识别:在BERT输出上添加CRF层
-
-
详细组件
-
Tokenizer:
-
使用BERT的WordPiece分词器
-
专为中文优化的子词切分
-
-
Transformer层:
-
12层BERT架构
-
768隐藏单元
-
12个注意力头
-
最大序列长度:512 tokens
-
-
任务头(task heads):
-
Tagger:单层线性分类器
-
Parser:Biaffine注意力模型
-
训练数据
-
使用OntoNotes 5.0、UD Chinese等语料
-
在多种中文NLP任务数据上进行微调
性能特点
-
模型大小:~420MB
-
处理速度较慢(相比CNN版本)
-
准确率高,适合需要高精度的场景
-
支持长距离依赖关系捕捉
架构对比表
| 特性 | zh_core_web_sm | zh_core_web_trf |
|---|---|---|
| 基础架构 | CNN | Transformer (BERT) |
| 分词方式 | 基于规则 | WordPiece |
| 词性标注 | MLP | BERT+线性层 |
| 依存分析 | 转移式解析器+CNN | Biaffine注意力 |
| NER | CNN+CRF | BERT+CRF |
| 上下文感知 | 有限窗口(通常±2个token) | 全序列注意力 |
| 预训练目标 | 无预训练 | 掩码语言模型(MLM) |
| 最大输入长度 | 10,000字符(但性能随长度下降) | 512子词 |
模型选择建议
-
选择zh_core_web_sm当:
-
需要快速处理大量文本
-
硬件资源有限
-
对准确率要求不高的一般应用
-
-
选择zh_core_web_trf当:
-
需要最高准确率
-
处理复杂句子结构
-
有GPU加速可用
-
需要捕捉长距离依赖关系
-

浙公网安备 33010602011771号