资源 | Chinese Word Vectors:目前最全的中文预训练词向量集合

对于国内自然语言处理的研究者而言,中文词向量语料库是需求很大的资源。近日,北京师范大学等机构的研究者开源了「中文词向量语料库」,试图为大家解决这一问题,该库包含经过数十种用各领域语料(百度百科、维基百科、人民日报 1947-2017、知乎、微博、文学、金融、古汉语等)训练的词向量,涵盖各领域,且包含多种训练设置。目前,该研究的论文《Analogical Reasoning on Chinese Morphological and Semantic Relations》已经被 ACL2018 大会接收。

项目链接:https://github.com/Embedding/Chinese-Word-Vectors

该项目提供使用不同表征(稀疏和密集)、上下文特征(单词、n-gram、字符等)以及语料库训练的中文词向量(嵌入)。在这里,你可以轻松获得具有不同属性的预训练向量,并将它们用于各类下游任务。

此外,开发者还在该工具中提供了一个中文类比推理数据集 CA8 及其评估工具包,用户可以以此评估自己词向量的质量。

格式

本资源中的预训练词向量文件以文本格式存储。每一行包含一个单词及其词向量。每个值由空格分开。第一行记录元信息:第一个数字表示该单词在文件中的排序,第二个数字表示维度大小。

除了密集单词向量(以 SGNS 训练),该项目还提供了稀疏向量(以 PPMI 训练)。它们与 liblinear 格式相同,其中「:」前的数字代表维度索引,「:」后的数字表示值。

预训练中文词向量

基本设定

多领域词汇

中文词向量在不同的表征、上下文特征和语料库上进行了训练。

*该项目提供了汉字嵌入,因为古中文大多数汉字就是一个词。

多种共现信息

开发者发布了在不同的共现(co-occurrence)统计数据上的词向量。目标和上下文向量在相关的论文中一般称为输入和输出向量。

在这一部分中,我们可以获取词层面之上的任意语言单元向量。例如,汉字向量包含在词-汉字的上下文向量中。所有向量都在百度百科上使用 SGNS 训练。

表征

现有的词表征方法一般可分为两种,即密集型和稀疏型的词嵌入表征。SGANS 模型(word2vec 工具包中的模型)和 PPMI 模型分别是这两种表征的典型案例。SGNS 模型通过一个浅层神经网络学习低维度的密集向量,这也称为神经嵌入方法。PPMI 模型是一种稀疏的特征袋(bag-of-feature)表征方法,且它会使用正逐点互信息(PPMI)对特征进行加权。

上下文特征

三种上下文特征:单词、n-gram 和字符在词嵌入文献中很常用。大多数词表征方法本质上利用了词-词的共现统计,即使用词作为上下文特征(词特征)。受语言建模问题的启发,开发者将 n-gram 特征引入了上下文中。词到词和词到 n-gram 的共现统计都被用于训练 n-gram 特征。对于中文而言,字符(即汉字)通常表达了很强的语义。为此,开发者考虑使用词-词和词-字符的共现统计来学习词向量。字符级的 n-gram 的长度范围是从 1 到 4(个字符特征)。

除了词、n-gram 和字符或汉字以外,还有其它对词向量的属性具有重要影响的特征。例如,使用整个文本作为上下文特征能将更多的主题信息引入到词嵌入向量中,使用依存关系解析树作为上下文特征能为词向量添加语法信息等。本项目考虑了 17 种同现类型。

语料库

开发者做了大量工作来收集多个领域的语料库。所有的文本数据都通过删除 html 和 xml 标记进行了预处理。只有纯文本被保留并使用 HanLP(v_1.5.3) 进行词分割。语料库的详细信息如下:

所有的单词都被包含其中,包括低频词。

工具包

所有的词向量由 ngram2vec 工具包训练。ngram2vec 工具包是 word2vec 和 fasttext 工具包的超集合,其支持抽象上下文特征和模型。

  • ngram2vec:https://github.com/zhezhaoa/ngram2vec/
  • word2vec:https://github.com/svn2github/word2vec
  • fasttext:https://github.com/facebookresearch/fastText

中文词类比基准

词向量的质量通常由类比问题任务进行评估。在该项目中,开发者使用了两个基准来评估。第一个是 CA-translated,其中大多数类比问题直接从英语基准中翻译得到。虽然 CA-translated 在很多中文词嵌入论文中被广泛应用,但它仅包含了三个语义问题和 134 个中文词。相对的,CA8 是专门为中文语言设计的。它包含了 17813 个类比问题,覆盖了综合的词法和语义关联。CA-translated、CA8 和它们的详细信息在 testets 文件夹中。

评估工具包

评估工具包在 evaluation 文件夹中。

运行以下代码可评估密集向量:

$ python ana_eval_dense.py -v-a CA8/morphological.txt
$ python ana_eval_dense.py -v-a CA8/semantic.txt

运行以下代码可评估稀疏向量:

$ python ana_eval_sparse.py -v-a CA8/morphological.txt
$ python ana_eval_sparse.py -v-a CA8/semantic.txt

参考文献

如果要使用这些嵌入和 CA8 数据集,请引用开发者的论文:

Shen Li, Zhe Zhao, Renfen Hu, Wensi Li, Tao Liu, Xiaoyong Du, Analogical Reasoning on Chinese Morphological and Semantic Relations, ACL 2018.

原文发布于微信公众号 - IT派(transfer_3255716726)

原文发表时间:2018-05-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

资源 | textgenrnn:只需几行代码即可训练文本生成网络

选自GitHub 作者:minimaxir 机器之心编译 参与:Geek AI、路 本文是一个 GitHub 项目,介绍了 textgenrnn,一个基于 K...

2866
来自专栏机器之心

资源 | Chinese Word Vectors:目前最全的中文预训练词向量集合

4053
来自专栏ATYUN订阅号

使用深度学习检测面部特征,让实时视频聊天变得更有趣

也许你想知道如何在实时视频聊天或者检测情绪的时候把有趣的东西放在脸上?我们可以利用深度学习以及一种较老的方法实现它。 ? 过去,检测人脸及其特征(如眼睛、鼻子、...

3435
来自专栏机器之心

教程 | 如何使用Elixir语言实现深度学习?剖析多层神经网络的构建和训练

选自automating the future 机器之心编译 参与:Jane W、吴攀 在这篇文章中,作者们使用 Elixir 编程语言创建一个标准的 3x3...

31313
来自专栏AI研习社

一文带你读懂 OCR

OCR,或光学字符识别,是最早的计算机视觉任务之一,因为在某些方面它不需要用到深度学习。因此,早在2012年深度学习热潮之前,OCR就有了各种不同的应用,有些甚...

1952
来自专栏机器之心

专访 | 基于LSTM与TensorFlow Lite,kika输入法是如何造就的

机器之心原创 作者:思源 近日,机器之心采访了 kika 的高级技术总监黄康,他向我们讲述了 kika 开发输入法 AI 引擎(项目代号:Alps)所采用的深度...

3305
来自专栏CDA数据分析师

机器学习算法一览(附python和R代码)

“谷歌的无人车和机器人得到了很多关注,但我们真正的未来却在于能够使电脑变得更聪明,更人性化的技术,机器学习。 ” —— 埃里克 施密特(谷歌首席执行官) 当计算...

3707
来自专栏机器之心

机器学习算法如何调参?这里有一份神经网络学习速率设置指南

作者:Jeremy Jordan 机器之心编译 参与:黄小天、许迪 每个机器学习的研究者都会面临调参过程的考验,而在调参过程中,学习速率(learning ra...

3204
来自专栏AI科技评论

选中自然语言处理任务的连续表达 | 微软IJCAI2016演讲PPT

微软研究院在IJCAI2016的Tutorial上讲述了自己将深度学习、深度神经网络应用于不同场景的情况,之前第二部分提到了深度学习在统计机器翻译和会话中的应用...

2895
来自专栏用户2442861的专栏

深度卷积网络CNN与图像语义分割

转载请注明出处: http://xiahouzuoxin.github.io/notes/

1391

扫码关注云+社区