向量化是使用一套统一的标准打分,比如填写表格:年龄、性别、性格、学历、经验、资产列表,并逐项打分,分数范围[-1,1],用一套分值代表一个人,就叫作向量化,虽然不能代表全部,但至少是个量度。因此,可以说,万物皆可向量化。

词向量

同理,词也可以向量化word2vec(word to vector),可以从词性、感情色彩、程度等等方面量度,用一套分值代表一个词,从而词之间可以替换,比较。词与向量间的转换过程就叫作词的向量化。与人为评分不同的是,词向量一般通过训练生成,其每一维量度的作用也并不明确。词向量化常用于提取词的特征,提取后的特征再代入模型计算。

词向量如下图所示:

图片出自https://jalammar.github.io/illustrated-word2vec/

上图把每个单词映射到50个维度(用50种特征表示一个词),每个维度在[-1,1]范围内取值,上图中1为红色,0为白色,-1为蓝色,中间各值为过渡色,从图中可以直观看到词间的相似度。 获取了词向量之后,除了可以计算词间或句间相似度,查找近义词,代入模型以外,还可以做组合词义,以及排除某种含义,如下图所示:

https://jalammar.github.io/illustrated-word2vec/

Gensim

Gensim是一款常用的自然语言处理工具,提供Python三方工具包,常用于从文本中提取特征,提供TF-IDF,LSA,LDA,word2vec等功能。开发者可以用它训练自己的词向量,也可以使用他人训练好的词向量。

使用Gensim支持用数据训练词向量,网上例程很多。其原理是一种无监督学习,通过代入大量文章,根据各个词与其上下文关系,挖掘词义。一般自然语言处理的深度学习模型的第一层都是词向量化,因此,除了使用Gensim训练,还可以从其它模型中导出词向量。需要注意的是:高相似度表示两个词通常可以互换。并不一定是同义词,很多情况下,替换成反意词后句子也能读通,但含义完全不同。

腾讯词向量

腾讯词向量提供800多万中文词条,每个词条展开成200维向量,解压后16G。它使用Directional Skip-Gram(Skip-Gram的改进版)训练而成,可使用Ginsim调用。相对于传统的同义词词林和词表,可以说非常先进了。它提供的是通常意义上的词义,但对于具体任务不是很完美。可从以下网址下载腾讯词向量: https://ai.tencent.com/ailab/nlp/embedding.html 下面是官方示例。

那么何时选择腾讯词向量,何时又需要自己训练模型计算词向量?二者各有利弊,腾讯词向量体量大,速度慢,但涵盖的词和短语非常丰富,准确率也比较高。如果使用模型训练,则可针对某一目标训练,比如判别感情色彩时,某个词的表征和通常情况下的表征很可能有所不同,模型训练需要有足够的训练集,还要考虑模型支持词表(以字为单位还是以词为单位,如何分词),向量维度等等问题,难度更大,选择应视情况而定。

示例:

找近义词

from gensim.models import KeyedVectors
file = '/exports/nlp/Tencent_AILab_ChineseEmbedding.txt'
wv_from_text = KeyedVectors.load_word2vec_format(file, binary=False) # 加载时间比较长
wv_from_text.init_sims(replace=True)
word = '膝关节置换手术'
if word in wv_from_text.wv.vocab.keys():vec = wv_from_text[word]print(wv_from_text.most_similar(positive=[vec], topn=20))
else:print("没找到")

其运行结果如下图所示,看似比较合理。

有一些专有名词或者短语,可能没收录在词库中,这种情况下可以使用先拆词,对其中各个词分别映射向量,然后取均值的方法计算。

计算词距

print(wv_from_text.distance("喜欢", "讨厌")) # 0.299
print(wv_from_text.distance("喜欢", "爱")) # 0.295
print(wv_from_text.distance("喜欢", "西瓜")) # 0.670

这里指的距离,并不是近义词或者反义词,只是句中该处是否可被另一个词替换的可能性

计算字串距离

print(wv_from_text.n_similarity(['风景', '怡人'],['山美','水美'])) # 0.60
print(wv_from_text.n_similarity(['风景', '怡人'],['上','厕所'])) # 0.43

自然语言处理——使用词向量(腾讯词向量)相关推荐

  1. 对句子分词,找到对应词的腾讯词向量模型并使用Python进行faiss检索

    目录 一.下载腾讯的词向量 二.停用词 三.代码部分 3.1.代码思想 四.输出结果 本文主要是将句子分词转向量,再加总词向量求平均变为句子向量.接着再存储到faiss中.等待新句子到来,同样按照上述 ...

  2. lda 可以处理中文_自然语言处理——使用词向量(腾讯词向量)

    向量化是使用一套统一的标准打分,比如填写表格:年龄.性别.性格.学历.经验.资产列表,并逐项打分,分数范围[-1,1],用一套分值代表一个人,就叫作向量化,虽然不能代表全部,但至少是个量度.因此,可以 ...

  3. 将词向量传入MySQL_【腾讯词向量】腾讯中文预训练词向量

    腾讯词向量介绍 腾讯词向量(Tencent AI Lab Embedding Corpus for Chinese Words and Phrases)提供了预训练好的800万中文词汇的word em ...

  4. 自然语言处理从入门到应用——动态词向量预训练:ELMo词向量

    分类目录:<自然语言处理从入门到应用>总目录 在双向语言模型预训练完成后,模型的编码部分(包括输入表示层以及多层堆叠LSTM)便可以用来计算任意文本的动态词向量表示.最自然的做法是使用两个 ...

  5. 自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧

    自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧 NLP中进行词义消歧的一个非常方便且简单的方法就是训练词向量,通过词向量计算余弦值,来推断某个词在句子中的含义.python中的 ...

  6. 自然语言处理入门学习笔记3:词向量

    词向量 为什么需要词向量 1.词向量可以大量的预料中拿到一些对知识表达的方式 2.无法直接对文本进行计算,文本是标记性语言,计算机对数字比较敏感,词向量吧文字转成了数值向量 词编码方式 从onehot ...

  7. 《自然语言处理学习之路》02 词向量模型Word2Vec,CBOW,Skip Gram

    本文主要是学习参考莫烦老师的教学,对老师课程的学习,记忆笔记. 原文链接 文章目录 书山有路勤为径,学海无涯苦作舟. 零.吃水不忘挖井人 一.计算机如何实现对于词语的理解 1.1 万物数字化 1.2 ...

  8. 斯坦福大学深度学习与自然语言处理第三讲:高级的词向量表示

    斯坦福大学在三月份开设了一门"深度学习与自然语言处理"的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是 ...

  9. 比赛必备 ︱ 省力搞定三款词向量训练 + OOV词向量问题的可性方案

    本篇为资源汇总,一些NLP的比赛在抽取文本特征的时候会使用非常多的方式. 传统的有:TFIDF/LDA/LSI等 偏深度的有:word2vec/glove/fasttext等 还有一些预训练方式:el ...

最新文章

  1. jmeter测试工具
  2. matlab图像中心坐标的确定,已知散点图中各点的坐标,如何确定散点图的中心点坐标?Matlab? 爱问知识人...
  3. HDU 1412 {A} + {B}
  4. 如何检查项目的需求是否完整
  5. MapReduce-TextInputFormat 切片机制
  6. 【机器视觉】 write_measure算子
  7. [BUUCTF-pwn]——jarvisoj_level3_x64
  8. 提升UI技能的5个步骤
  9. 哪些才是对女朋友的有效关心,来学习一下~
  10. [学习记录] macOS下的Nginx安装 Nginx基本知识
  11. 数据 3 分钟 | TiDB 5.0 正式发布、Graph + AI 2021 全球峰会即将召开、2020 年图灵奖公布...
  12. 线上一个数组查询遇到的坑
  13. 计算机内存只认4,为什么电脑的8GB内存只有7.45GB可用?
  14. 拼团商城小程序高保真原型模板、支付、优惠券、客服、物流、收藏、足迹、优惠券、订单管理、评价、设置、地址、售后、拼团、消息通知、商城小程序、电商小程序、拼团电商、移动端电商、高保真电商、电商app
  15. 飞信机器人 ld-linux.so.2,基于linux的飞信机器人2010版安装
  16. Windows系统修改Docker镜像下载地址
  17. ae效果英文版翻译对照表_AE自带特效中英文对照表
  18. cmmi实践访谈测试ppt_CMMI3_实践篇.ppt
  19. java人民币数字转换中文大写(精确到人民币大写分)
  20. 伪指令dd 和 操作符dup

热门文章

  1. UG/NX星空外挂安装
  2. 如何写好SCI论文摘要和文章内容 - 易智编译EaseEditing
  3. 早餐店的location
  4. 工业视觉系统相机和镜头基础知识
  5. 剑指offer第三周
  6. Java 读取 Word文档的字体、字号、文字颜色、文字背景、文字是否加粗或倾斜、文字下划线、段落等属性
  7. 安卓复杂滑动案例 自定义behavior源码分析 实现头布局图片的缩放透明度变化,RecycleView的滑动布局,坐标变化
  8. Redis 非关系型数据库 安装以及相关命令
  9. 拆装微型计算机的心得体会,微机心得体会_
  10. XDR与SOC的关系