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

article/2025/9/21 17:44:27

向量化是使用一套统一的标准打分,比如填写表格:年龄、性别、性格、学历、经验、资产列表,并逐项打分,分数范围[-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

http://chatgpt.dhexx.cn/article/oLCnhnQV.shtml

相关文章

词向量Word2Vec(深度细致分析)

本文以博客园刘建平Pinard对于word2vec的解释为基础,同时参考了其他相关博客的分析并加入了自己的理解,希望站在巨人的肩膀上进行一定的学习输出。至于本片文章的属性,个人认为是伪原创吧,有需要的同学可以自行转到相应的链接。 w…

一、词向量模型

因为计算机不能理解词语,所以我们需要用词向量表示一个词。 词向量有一个发展历程:从one-hot到word embedding。 1 one-hot 设词典的大小为n(词典中有n个词),假如某个词在词典中的位置为k,则设立一个n维向…

词向量算法

https://www.cnblogs.com/the-wolf-sky/articles/10192363.html https://blog.csdn.net/weixin_37947156/article/details/83146141 基于神经网络的表示一般称为词向量、词嵌入(word embdding)或分布式表示。 神经网络的词向量和其他分布式类似,都基于分布式表达…

词向量(Word Embedding)

一、词的表示 在自然语言处理任务中,首先需要考虑词如何在计算机中表示。通常,有两种表示方式:one-hot representation和distribution representation。简而言之,词向量技术是将词转化成为稠密向量,并且对于相似的词&…

二、词向量

目录 一、什么是词向量 二、词向量的离散表示 1、one-hot编码 2、 Bag of Words表示 3、TF-IDF表示 4、 Bi-gram和N-gram 5、离散表示的问题: 三、词的分布式表示(Distributed representation) 1、Skip-Gram模型 2、代码 一、什么是…

【NLP】词向量

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

第四章(1):词向量定义与意义

第四章(1):词向量定义与意义 目录 第四章(1):词向量定义与意义前言1. 词的表示1.1 离散表示1.1.1 One-Hot独热编码1.1.2 ngram特征表示1.2 分布式表示2. 意义前言 在自然语言处理的领域中,每个单词都可以被表示为一个向量,这些向量叫做“词向量”。换句话说,每个单词…

什么是词向量?(NPL入门)

什么是词向量? 我们组实训选择的主题是与自然语言识别相关的,那么就不得不学习和了解一下自然语言识别中非常重要和基础的。于是我对于自己对词向量的学习进行了以下的总结。 简而言之,词向量技术是将词转化成为稠密向量,并且对…

词向量表示

目录 1、语言表示 1.1、分布假说 1.2、语言模型 2、词向量表示 2.1、词向量表示之one-hot 2.2、词带模型之 (Bag of Words) 2.3、词的分布式表示 2.3.1 基于矩阵的分布式表示 2.3.2 基于聚类的分布式表示 2.4基于神经网络的分布式表示 2.4.1、…

词向量简介

最近深度学习技术有了突飞猛进的发展,为语音识别、图像识别、自然语言处理(NLP)提供了强大的工具,为这些领域今后的快速发展提供了新的契机。 深度学习为自然语言处理带来的最令人兴奋的突破是词向量(word embedding&…

词向量

词向量是自然语言处理中重要的基础,有利于我们对文本、情感、词义等等方向进行分析,主要是将词转化为稠密向量,从而使得相似的词,其词向量也相近。 一、词向量的表示 词向量的表示通常有两种方式,一种是离散的&#x…

【深度学习】NLP基础--词向量(从One-hot到Word2Vec)

1.什么是词向量 在自然语言处理中,面临的首要问题是如何让模型认识我们的文本信息,比如向模型中输入‘我爱北京天安门’,那模型是如何认识文本的?词,是自然语言处理中基本单位,将数据输入到模型中&#xff…

关键词提取代码

我又来水博客了,今天我做了关键词提取算法。 代码我会上传到我的github中去,这个算法需要stopword和corpus两个txt格式,导入的时候,会出现下面的错误 gbk codec cant decode byte 0x80 in position 26: illegal multibyte seque…

KeyBERT进行中文关键词提取

原文链接 KeyBERTLeveraging BERT to extract important keywordshttps://maartengr.github.io/KeyBERT/index.html 一种基于BERT的极简关键词提取方法。 关键词提取是通过查找文档中与文档本身最相似的词来完成的。首先,用BERT提取文档嵌入,得…

关键词提取——有监督方法

在上一篇博客中,介绍了关键词提取的无监督方法:点击这里查看文章。本篇主要是介绍关键词提取的有监督方法。 可以从如下角度去做有监督学习: 二分类模型:短语是否为关键短语。LTR(learn to rank)&#xf…

NLP- 关键词提取 - 综述

NLP- 关键词提取 - 综述 一、关键词提取有以下几种方式二、TF-IDF三、TextRank四、LDA五、word2vec 一、关键词提取有以下几种方式 二、TF-IDF TF-IDF算法,主要是通过统计方法,评估词对文档的重要性。一个基本思想是,一个词在文档中出现的次…

基于yake的中文关键词提取试验

前言: 之前看了云朵dalao的一篇关于关键词提取的文章,其中介绍的 Yake 模型采用了大写词、词位置、全文词频、上下文关系、句间词频等 5 个指标,计算候选词得分。感觉设计上较直观、易解释,但原 yake 库不支持中文,于是…

RAKE-无监督英文关键词提取算法

没想到吧,在深度学习大行其道的当今,我突然写了一篇上古时代的文章(其实也就2010年,奈何知识更新真快…) 话不多说,一起来看一下RAKE算法 RAKE RAKE全称为Rapid Automatic Keyword Extraction&#xff0c…

tfidf关键词提取_基于深度学习的个性化商品评论标签提取

商品评论标签提取作为商品评论中的一个比较有意思的问题。评论标签提取的主要任务是从评论中了解到用户对产品的哪些功能、属性进行了怎样的评论,并抽取成简短有效的信息。 关键词提取Vs评论标签提取 商品标签提取和关键词的抽取还不是同样的NLP问题,关键词提取更侧重于文章或…

NLP-关键词提取算法

一、提取关键字技术简介 关键字提取技术一般也可以分为有监督和无监督两类。 有监督的关键词提取方法主要是通过分类的方式进行的,通过构建一个比较丰富完善的词表,然后通过判断每个文档与词表中每个词的匹配程度,以类似打标签的方式&#x…