将词向量传入MySQL_【腾讯词向量】腾讯中文预训练词向量
腾讯词向量介绍
腾讯词向量(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_【腾讯词向量】腾讯中文预训练词向量相关推荐
- java加载中文词向量_Chinese Word Vectors:目前最全的中文预训练词向量集合
对于国内自然语言处理的研究者而言,中文词向量语料库是需求很大的资源.近日,来自北京师范大学和人民大学的研究者开源了「中文词向量语料库」,试图为大家解决这一问题,该库包含经过数十种用各领域语料(百度百科 ...
- Python Djang 搭建自动词性标注网站(基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU、LSTM、RNN神经网络组成的词性标注模型)
引言 本文基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU.LSTM.RNN神经网络组成的词性标注模型,并且将模型封装,使用python Django web框架搭建 ...
- PyTorch在NLP任务中使用预训练词向量
在使用pytorch或tensorflow等神经网络框架进行nlp任务的处理时,可以通过对应的Embedding层做词向量的处理,更多的时候,使用预训练好的词向量会带来更优的性能.下面分别介绍使用ge ...
- 预训练词向量中文维基百科,英文斯坦福glove预训练的词向量下载
中文预训练词向量--基于中文维基百科语料训练 英文预训练词向量--斯坦福glove预训练的词向量 百度云分享:https://pan.baidu.com/s/1UpZeuqlNMl6XtTB5la53 ...
- 常用的中文预训练模型、预训练词向量下载地址收藏
中文预训练模型下载 原版:https://huggingface.co/models Google原版bert:https://github.com/google-research/bert 中文XL ...
- 基于Keras预训练词向量模型的文本分类方法
本文语料仍然是上篇所用的搜狗新闻语料,采用中文预训练词向量模型对词进行向量表示.上篇文章将文本分词之后,采用了TF-IDF的特征提取方式对文本进行向量化表示,所产生的文本表示矩阵是一个稀疏矩阵,本篇采 ...
- word2vec预训练词向量+通俗理解word2vec+CountVectorizer+TfidfVectorizer+tf-idf公式及sklearn中TfidfVectorizer
文章目录 文分类实(一) word2vec预训练词向量 2 数据集 3 数据预处理 4 预训练word2vec模型 canci 通俗理解word2vec 独热编码 word2vec (Continuo ...
- 整理常用的中英文预训练词向量(Pretrained Word Vectors)
文章目录 引言 腾讯中文词汇/短语向量(Tencent AI Lab Embedding Corpus for Chinese Words and Phrases) 使用方法 中文词向量语料库 by ...
- (一)利用Wikipedia中文语料训练词向量word2vec——获取Wikipedia简体中文语料库
利用Wikipedia中文语料训练词向量一共分为两个篇章,这篇文章属于第一部分,包括下载Wikipedia语料库,并将其从繁体转换为简体. 目录 第一步 下载语料库 第二步 将下载好的bz2文件转换为 ...
最新文章
- 全选或者单选checkbox的值动态添加到div
- jdbc template 学习总结
- 大学物理光学思维导图_思维导图走进新华百货现代物流
- mybatis resultmap嵌套_Java面试专题之九:Mybatis面试5个大概率被问到的问题
- 海量小文件场景下训练加速优化之路
- 【物理动图】物理老师一针见血:50张动图看懂高中物理
- domino缺省注册服务器或无法访问,Domino服务器挂起时的现象
- Qt工作笔记-正则表达式QProcess::startDetached中正则表达式的使用
- java精确度_java的数值精度问题 | 学步园
- html css 深入理解float
- ffmpeg 推流同时录像命令_ffmpeg推流命令
- eureka集群 ha_EurekaServer集群配置
- 灯具类产品各国EMC认证标准大全
- SQLServer2012 查询分析器的快捷键
- 设计心理学1_日常的设计 读后感
- 高级电工实验室成套设备(带功率表、功率因数表)
- 理解Windows操作系统的KMS与MAK密钥
- 计算机英语趣味知识竞赛,(经典)精华版 英语趣味知识竞赛.ppt
- 在线遥感影像与地图集数据下载搜集
- 手写jQuery源码
热门文章
- Java学习-面向对象实现点和圆的关系判断
- 利用对话框打开一个图像文件,并显示图片
- 牛顿法求解1-100的平方根python_使用牛顿-拉弗森法定义平方根函数(Newton-Raphson method Square Root Python)...
- 自考计算机应用基础如何报考,自考计算机应用
- 完全免费的录屏软件Captura,github
- python爬取前程无忧_Python爬虫获取51job的51job代码,python,抓取,前程无忧
- 【GB/T 12604.4-2005】无损检测术语--声发射检测
- Python零基础入门教程,从入门到精通,不走弯路,大厂offer指日可待!
- 如何将平板作为电脑的扩展屏?
- U盘提示磁盘结构损坏且无法读取怎么办?