lda 可以处理中文_自然语言处理——使用词向量(腾讯词向量)
向量化是使用一套统一的标准打分,比如填写表格:年龄、性别、性格、学历、经验、资产列表,并逐项打分,分数范围[-1,1],用一套分值代表一个人,就叫作向量化,虽然不能代表全部,但至少是个量度。因此,可以说,万物皆可向量化。
词向量
同理,词也可以向量化word2vec(word to vector),可以从词性、感情色彩、程度等等方面量度,用一套分值代表一个词,从而词之间可以替换,比较。词与向量间的转换过程就叫作词的向量化。与人为评分不同的是,词向量一般通过训练生成,其每一维量度的作用也并不明确。词向量化常用于提取词的特征,提取后的特征再代入模型计算。
词向量如下图所示:
上图把每个单词映射到50个维度(用50种特征表示一个词),每个维度在[-1,1]范围内取值,上图中1为红色,0为白色,-1为蓝色,中间各值为过渡色,从图中可以直观看到词间的相似度。 获取了词向量之后,除了可以计算词间或句间相似度,查找近义词,代入模型以外,还可以做组合词义,以及排除某种含义,如下图所示:
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
lda 可以处理中文_自然语言处理——使用词向量(腾讯词向量)相关推荐
- lda 可以处理中文_用python处理文本数据
用python处理文本数据 Q:这篇文章主要讲什么? A:这篇文章主要讨论如何用python来做一些简单的文本处理--文本相似度比较. 谈起python的自然语言处理,肯定会让人想起NLTK.不过上面 ...
- lda 可以处理中文_对京东评论进行情感分析—LDA模型
根据python制作词云图和python爬取京东评论,我们对商品评论做进一步分析. 一.情感分析的用途 首先,我们先看情感分析这个概念,百度上基本都是文本情感分析的介绍,大概意识是通过一些文本来分析其 ...
- 自然语言处理——使用词向量(腾讯词向量)
向量化是使用一套统一的标准打分,比如填写表格:年龄.性别.性格.学历.经验.资产列表,并逐项打分,分数范围[-1,1],用一套分值代表一个人,就叫作向量化,虽然不能代表全部,但至少是个量度.因此,可以 ...
- python统计词频瓦尔登湖_自然语言处理之中文分词器-jieba分词器详解及python实战...
(转https://blog.csdn.net/gzmfxy/article/details/78994396) 中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,在进行中文自 ...
- nlp自然语言处理_自然语言处理(NLP):不要重新发明轮子
nlp自然语言处理 介绍 (Introduction) Natural language processing (NLP) is an intimidating name for an intimid ...
- 自然语言处理综述_自然语言处理
自然语言处理综述 Aren't we all initially got surprised when smart devices understood what we were telling th ...
- bert 多义词_自然语言处理:Bert及其他
以下内容主要参考了文末列出的参考文献,在此表示感谢! 2018年被认为是NLP技术的new era的开始.在这一年,提出了多种有创新性的技术,而且最后的集大成者Bert在NLP的多项任务中屠榜,造成的 ...
- NLP入门_自然语言处理_AI分支
NLP (Natural Language Processing) 是人工智能(AI)的一个子领域. 自然语言是人类智慧的结晶,自然语言处理是人工智能中最为困难的问题之一,而对自然语言处理的研究也是充 ...
- python 分词字典的词性_自然语言处理基础技术之分词、向量化、词性标注
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:段石石 前言 前段时间,因为项目需求, 开始接触了NLP,有感自己不是科班出身,很多东西理解不深,于是花时间再读了一些NLP的经典教程的 ...
最新文章
- Aggregation,Composition和Dependency
- Bundler 的作用及原理
- input file 获取不到Request.Files 解决办法
- 【解决方法】Panda read_csv()把第一行的数据变成了列名,怎么处理
- python3 和python2文件相互转换
- [收藏]REST -维基百科
- leetcode 234. 回文链表(快慢指针+链表倒置)
- 多路查找树之2-3树的插入原理
- 使用 FOR XML语句 将查询结构作为XML格式返回【转】
- Android省电妙招
- 第十八章——基于策略的管理(1)——评估数据库属性
- [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(二)
- 水稻PHP基因,科学网—和驯化相关的水稻基因 - 闫双勇的博文
- 设计模式 (十六) 命令模式
- Protel 99se 快捷键
- Mybatis 传入多个参数查询数据 (3种方法)
- 服务器系统封装iso,轻松几步 封装Windows系统镜像
- Markdown个人简历模板
- 嗑药简史:咖啡上瘾,喝还是不喝?
- 网易博客搬家至CSDN博客指南