腾讯词向量介绍

腾讯词向量(Tencent AI Lab Embedding Corpus for Chinese Words and Phrases)提供了预训练好的800万中文词汇的word embedding(200维词向量),可以应用于很多NLP的下游任务。

关于分词:可以使用任何开源分词工具,可以同时考虑细粒度和粗粒度的分词方式。

关于停用词、数字、标点:为了满足一些场景的需求,腾讯词向量并没有去掉这些,使用的时候需要自己构建词表并忽略其他无关词汇。

Tencent_AILab_ChineseEmbedding.txt文件内容:

第一行是词向量总数(8824330),和词向量维度(200)。

从第二行开始,每行是中文词以及它的词向量表示,每一维用空格分隔。

腾讯词向量使用举例

以查找近义词为例,介绍腾讯词向量的使用方法。

首先需要将已有的包含词和词向量的txt文件读入(使用KeyedVectors)

keyedVectors

可以很方便地从训练好的词向量中读取词的向量表示,快速生成 {词:词向量}

其中binary=False,加载的是txt文件,binary=True,加载的是二进制文件

然后构建词汇和索引的映射表,并用json格式离线保存,方便以后直接加载annoy索引时使用

基于腾讯词向量构建Annoy索引,annoy作用是在高维空间求近似最近邻

方法:

1、高维空间随意选两个点,做一个聚类数为2的kmeans,产生两个类,每类有中心点,这两个点为基准,找到垂直于二者连线的超平面,可以区分出两个集合

2、现在变成了两个集合,分别再进行第一步

3、设定一个k,最终每个类最多剩余k个点,停止

4、以上面区分两个集合的方法构建二叉树

5、如果查某个点的最近邻点,就在二叉树里搜索

AnnoyIndex(f, metric)

returns a new index that's read-write and stores vector of f dimensions. Metric can be "angular", "euclidean", "manhattan", "hamming", or "dot".

返回一个可以读写的index,并存储f维向量,度量可以是夹角、欧几里得距离、曼哈顿距离、汉明距离和点积。默认是夹角。

tc_index.build(10)

n_trees is provided during build time and affects the build time and the index size. A larger value will give more accurate results, but larger indexes.

n_trees影响构建时间和index大小,n_trees更大,则结果更精确,但是index也就更大,官方文档示例默认的是10

a.build(n_trees)

builds a forest of n_trees trees. More trees gives higher precision when querying. After calling build, no more items can be added.

构建一个有n_trees颗树的森林,树越多越精确。build完,就不能再增加了

import json

from collections import OrderedDict

from gensim.models import KeyedVectors

from annoy import AnnoyIndex

tc_wv_model = KeyedVectors.load_word2vec_format('Tencent_AILab_ChineseEmbedding.txt', binary=False)

# 把txt文件里的词和对应的向量,放入有序字典

word_index = OrderedDict()

for counter, key in enumerate(tc_wv_model.vocab.keys()):

word_index[key] = counter

# 本地保存

with open('tc_word_index.json', 'w') as fp:

json.dump(word_index, fp)

# 腾讯词向量是两百维的

tc_index = AnnoyIndex(200)

i = 0

for key in tc_wv_model.vocab.keys():

v = tc_wv_model[key]

tc_index.add_item(i, v)

i += 1

tc_index.build(10)

# 将这份index存到硬盘

tc_index.save('tc_index_build10.index')

# 反向id==>word映射词表

reverse_word_index = dict([(value, key) for (key, value) in word_index.items()])

# get_nns_by_item基于annoy查询词最近的10个向量,返回结果是个list,里面元素是索引

for item in tc_index.get_nns_by_item(word_index[u'卖空'], 10):

print(reverse_word_index[item]) # 用每个索引查询word

将词向量传入MySQL_【腾讯词向量】腾讯中文预训练词向量相关推荐

  1. java加载中文词向量_Chinese Word Vectors:目前最全的中文预训练词向量集合

    对于国内自然语言处理的研究者而言,中文词向量语料库是需求很大的资源.近日,来自北京师范大学和人民大学的研究者开源了「中文词向量语料库」,试图为大家解决这一问题,该库包含经过数十种用各领域语料(百度百科 ...

  2. Python Djang 搭建自动词性标注网站(基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU、LSTM、RNN神经网络组成的词性标注模型)

    引言 本文基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU.LSTM.RNN神经网络组成的词性标注模型,并且将模型封装,使用python Django web框架搭建 ...

  3. PyTorch在NLP任务中使用预训练词向量

    在使用pytorch或tensorflow等神经网络框架进行nlp任务的处理时,可以通过对应的Embedding层做词向量的处理,更多的时候,使用预训练好的词向量会带来更优的性能.下面分别介绍使用ge ...

  4. 预训练词向量中文维基百科,英文斯坦福glove预训练的词向量下载

    中文预训练词向量--基于中文维基百科语料训练 英文预训练词向量--斯坦福glove预训练的词向量 百度云分享:https://pan.baidu.com/s/1UpZeuqlNMl6XtTB5la53 ...

  5. 常用的中文预训练模型、预训练词向量下载地址收藏

    中文预训练模型下载 原版:https://huggingface.co/models Google原版bert:https://github.com/google-research/bert 中文XL ...

  6. 基于Keras预训练词向量模型的文本分类方法

    本文语料仍然是上篇所用的搜狗新闻语料,采用中文预训练词向量模型对词进行向量表示.上篇文章将文本分词之后,采用了TF-IDF的特征提取方式对文本进行向量化表示,所产生的文本表示矩阵是一个稀疏矩阵,本篇采 ...

  7. word2vec预训练词向量+通俗理解word2vec+CountVectorizer+TfidfVectorizer+tf-idf公式及sklearn中TfidfVectorizer

    文章目录 文分类实(一) word2vec预训练词向量 2 数据集 3 数据预处理 4 预训练word2vec模型 canci 通俗理解word2vec 独热编码 word2vec (Continuo ...

  8. 整理常用的中英文预训练词向量(Pretrained Word Vectors)

    文章目录 引言 腾讯中文词汇/短语向量(Tencent AI Lab Embedding Corpus for Chinese Words and Phrases) 使用方法 中文词向量语料库 by ...

  9. (一)利用Wikipedia中文语料训练词向量word2vec——获取Wikipedia简体中文语料库

    利用Wikipedia中文语料训练词向量一共分为两个篇章,这篇文章属于第一部分,包括下载Wikipedia语料库,并将其从繁体转换为简体. 目录 第一步 下载语料库 第二步 将下载好的bz2文件转换为 ...

最新文章

  1. 全选或者单选checkbox的值动态添加到div
  2. jdbc template 学习总结
  3. 大学物理光学思维导图_思维导图走进新华百货现代物流
  4. mybatis resultmap嵌套_Java面试专题之九:Mybatis面试5个大概率被问到的问题
  5. 海量小文件场景下训练加速优化之路
  6. 【物理动图】物理老师一针见血:50张动图看懂高中物理
  7. domino缺省注册服务器或无法访问,Domino服务器挂起时的现象
  8. Qt工作笔记-正则表达式QProcess::startDetached中正则表达式的使用
  9. java精确度_java的数值精度问题 | 学步园
  10. html css 深入理解float
  11. ffmpeg 推流同时录像命令_ffmpeg推流命令
  12. eureka集群 ha_EurekaServer集群配置
  13. 灯具类产品各国EMC认证标准大全
  14. SQLServer2012 查询分析器的快捷键
  15. 设计心理学1_日常的设计 读后感
  16. 高级电工实验室成套设备(带功率表、功率因数表)
  17. 理解Windows操作系统的KMS与MAK密钥
  18. 计算机英语趣味知识竞赛,(经典)精华版 英语趣味知识竞赛.ppt
  19. 在线遥感影像与地图集数据下载搜集
  20. 手写jQuery源码

热门文章

  1. Java学习-面向对象实现点和圆的关系判断
  2. 利用对话框打开一个图像文件,并显示图片
  3. 牛顿法求解1-100的平方根python_使用牛顿-拉弗森法定义平方根函数(Newton-Raphson method Square Root Python)...
  4. 自考计算机应用基础如何报考,自考计算机应用
  5. 完全免费的录屏软件Captura,github
  6. python爬取前程无忧_Python爬虫获取51job的51job代码,python,抓取,前程无忧
  7. 【GB/T 12604.4-2005】无损检测术语--声发射检测
  8. Python零基础入门教程,从入门到精通,不走弯路,大厂offer指日可待!
  9. 如何将平板作为电脑的扩展屏?
  10. U盘提示磁盘结构损坏且无法读取怎么办?