Chinese-Word-Vectors
100+种中文预训练词向量资源,覆盖10大领域语料,配套CA8评测基准
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
100+种中文预训练词向量资源,覆盖10大领域语料,配套CA8评测基准
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你给AI喂了一句"北京烤鸭真香",它却把"烤鸭"理解成"燃烧的鸭子"——这不是AI不够聪明,而是它缺乏中文世界的"文化背景板"。词向量,就是给AI装备的这块背景板。
Embedding/Chinese-Word-Vectors 正是这个领域的标杆项目:GitHub超过12000颗星,发表在ACL 2018顶会,被ACL Anthology收录引用800+次,是中文NLP领域最具影响力的开源词向量资源之一。
2018年,来自中国人民大学的沈立、李文艺等研究者,怀着对中文NLP的深切关怀,发起了这个项目。
当时,中文NLP面临一个尴尬的现实:英文世界有Word2vec、GloVe等成熟工具,中文词向量却分散在各个实验室、论文附录、甚至个人网盘里。研究者想用的时候,要么找不到合适的,要么找到了也无法验证质量。更关键的是,中文词向量训练涉及词、字、N元组等多层次特征,不同组合的效果差异巨大,但缺乏系统性的对比基准。
这个项目,正是为了解决上述问题而生:提供100+种预训练中文词向量,涵盖不同语料、不同表示方式、不同上下文特征,同时配套标准化评测工具,让研究者能公平对比、快速选型。
简单来说,词向量就是把每个中文词语映射到一个数学空间中的向量。让语义相近的词,距离也相近。
可以把它想象成一张"词语地图":在这张地图上,"北京"和"上海"可能只隔了几毫米(都代表大城市),而"北京"和"香蕉"则相距甚远。这样AI就能通过计算向量距离,理解词语之间的语义关系。
本项目提供了两种类型的词向量:
这是本项目最核心的价值。它不只提供一两套词向量,而是提供了系统性的词向量矩阵,让研究者能根据具体场景精准选择。
| 语料 | 适用场景 | 规模 |
|---|---|---|
| 百度百科 | 通用领域,覆盖面广 | 大型 |
| 中文维基百科 | 学术/正式文本 | 大型 |
| 人民日报 | 新闻/官方文本 | 大型 |
| 搜狗新闻 | 新闻/网络媒体 | 大型 |
| 金融新闻 | 金融文本分析 | 中型 |
| 知乎问答 | 社区问答/观点 | 大型 |
| 微博 | 社交媒体/口语化 | 大型 |
| 文学作品 | 古文/文学研究 | 中型 |
| 四库全书 | 古典文献 | 特殊 |
| 混合综合 | 通用+跨领域 | 超大型 |
每套词向量还提供了4种上下文特征组合:
这意味着:如果你做金融文本分析,可以选"金融新闻+词+字+N元组"向量;如果你做古文研究,可以选"四库全书+词"向量——按需选择,不浪费也不缺失。
有了词向量,还需要一把"尺子"来衡量质量。本项目配套发布了CA8中文词类比评测集,包含8大类、约17000个词类比问题。
词类比测试(Word Analogy)是衡量词向量质量的标准方法,典型问题如:"北京 - 中国 + 日本 = ?"如果词向量足够好,答案应该是"东京"。这类测试能同时考察词语间的语义关系和语法关系的捕捉能力。
评测工具同时支持稠密向量和稀疏向量的评测:
# 稠密向量评测示例
python evaluation/ana_eval_dense.py -v vectors.txt -a CA8/analogy.txt
# 稀疏向量评测示例
python evaluation/ana_eval_sparse.py -v sparse_vectors.txt -a CA8/analogy.txt
词向量文件托管于百度网盘和Google Drive,下载后是标准的文本格式(第一行是词数和维度,后面每行是"词语 向量值"),直接用Python加载即可:
def load_vectors(path, limit=None):
vectors = {}
with open(path, 'r', encoding='utf-8') as f:
n, dim = map(int, f.readline().split())
for i, line in enumerate(f):
if limit and i >= limit:
break
parts = line.strip().split()
word = parts[0]
vec = list(map(float, parts[1:]))
vectors[word] = vec
return vectors
vectors = load_vectors('sgns_bigram_char.txt')
print(vectors['深度学习'][:10])
注意:部分大型词向量文件(如混合综合版)体积较大,建议在内存充足的环境下加载,或者使用mmap进行内存映射式读取。
尽管项目影响力巨大,也存在一些值得注意的问题:
数据时效性问题:词向量训练基于2018年之前的语料,对于新词(如"内卷"、"元宇宙"等网络流行词)覆盖不足。如果需要处理时效性强的文本,建议结合在线更新机制或使用基于Transformer的上下文词向量(如BERT)。
存储分发依赖百度网盘:部分大文件只能通过百度网盘下载,需要提取码,在国际化和便利性上有所欠缺。不过Google Drive也有镜像,但同步可能滞后。
非神经网络方法:作为Word2vec时代的产物,它使用的是传统神经网络方法训练的词向量。在BERT等预训练语言模型横空出世后,静态词向量的风头被盖过,但因体积小、推理快、无需GPU,在边缘计算、资源受限场景仍有价值。
Embedding/Chinese-Word-Vectors项目的意义远超词向量本身。它代表了一种"基础设施共享"的学术精神:研究者愿意公开语料、处理脚本、评测工具,让整个社区站在同一基准线上比较和进步。
据Google Scholar数据,该项目配套论文"Analogical Reasoning on Chinese Morphological and Semantic Relations"已被引用800+次,是中文NLP领域的必读文献。它的CA8评测集后来也被多个中文NLP基准测试所采用,成为该领域的方法论标准。
更重要的是,它证明了:即使在深度学习席卷NLP的时代,优质的"原材料"(词向量)依然是下游任务的重要基石。项目虽不再高频更新,但它所建立的中文词向量资源体系,至今仍是许多中文NLP系统的默认选择。