词义消歧(基于词向量)
中文
from gensim.models import Word2Vecmodel = Word2Vec.load('word2.model')
苹果的两种解释:
1.美国的一家高科技公司,经典产品有iphone.
2.水果的一种,产自…
对于句子“用苹果,性能好,分辨率高”,的“苹果”进行词义消歧:
content=['用','苹果','性能','好','分辨率','高']
des1=['美国','一家','高科技','公司','经典','产品','有','iphone','手机']
des2=['水果','一种','产自']
def w2v_mean(essay,model):ls=np.zeros(400)for unit in essay:try:ls+=np.array(model.wv[unit])except:passreturn ls/len(essay)
import numpy as np
content=w2v_mean(content,model)des1=w2v_mean(des1,model)des2=w2v_mean(des2,model)
余弦距离
可以看出与第一种解释内容距离最近。因此句子中的“苹果”为第一种解释。对于苹果的解释性文本和描述较多时,可以利用tf-idf获取要进行消歧的例子的tf-idf值,根据在不同类别的描述下的tf-idf平均值来最终获得例子的语境和含义。也能取得不错的效果。
参考: 中文词义消歧tf-idf实现
英文
1.WordNet的应用:
我们可以获取待消歧词的各种定义,利用word2vec模型获取定义文本的向量表示方法,然后计算与待消歧词的上下文向量的余弦值。最大余弦值的待消歧词定义即为待消歧词在该语境下的词义。代码如下:
#导入预训练模型及相关工具包
from gensim.models import Word2Vec
from nltk.corpus import wordnet as wn
from string import punctuation
model=Word2Vec.load(r'C:\BaiduNetdiskDownload\aes-system\model\word2vec.model')
获取“bank”对应的文本信息:
content='We walked north along the east bank of the water'
(我们沿着河岸东边向北走)
content2='I have to check my balance at the bank'
(我得去银行查一下我的存款余额)
“bank"有银行、浅滩、堆积等含义,WordNet中的英文解释大概有十几种:
定义文本向量表示方法,这里为均值向量:
def w2v_mean(essay,model):ls=np.zeros(100)for unit in essay:try:ls+=np.array(model.wv[unit])except:passreturn ls/len(essay)
获取每种定义的向量,并计算与content的余弦相似度:
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
content_vec=w2v_mean(token_content,model)
for unit in wn.synsets('bank'):txt=unit.definition()token_text=nltk.word_tokenize(txt)txt0=[k for k in token_text if k not in punctuation]vec=w2v_mean(txt0,model)print(txt,round(cosine_similarity([vec,content_vec])[1][0],4))
输出结果如下:
对于content1:
第一个定义得分最高,其含义为:坡地(尤指水体旁边的斜坡),完全符合语境。
对于content2:
最高分定义为:与银行交易或者开户,符合语境。
词义消歧(基于词向量)相关推荐
- 自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧
自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧 NLP中进行词义消歧的一个非常方便且简单的方法就是训练词向量,通过词向量计算余弦值,来推断某个词在句子中的含义.python中的 ...
- 基于在线百科知识库的多义词词义消歧项目
WordMultiSenseDisambiguation WordMultiSenseDisambiguation, chinese multi-wordsense disambiguation ba ...
- 生成句法分析树以及从一个小例子来看词义消歧及语义角色标注
一.生成句法分析树 把一句话按照句法逻辑组织成一棵树,由人来做这件事是可行的,但是由机器来实现是不可思议的,然而算法世界就是这么神奇,把一个十分复杂的过程抽象成仅仅几步操作,甚至不足10行代码,就能让 ...
- 情绪分析,词性分析和词义消歧
情绪分析 情绪分析侧重于主观陈述--意见.情绪.情绪:很难用几个关键词来表达. 主观性分类 Subjectivity classification 通常是情感分析的第一步:主观与客观文本 opinio ...
- 大规模数据的词义消歧的混合词义分类方法——阅读整理总结
介绍: 尽管最近的研究证明了神经语言模型的优越性,但是WSD研究的范围仍然是几个单词的意义只能在几个领域中确定.因此,有必要朝着开发一个高度可扩展的过程的方向发展,这个过程可以处理在不同领域中出现的词 ...
- nlp2-数学基础(信息论,概率论、词义消歧)
文章目录 概率论 信息论 计算熵 计算信息熵.条件熵.联合熵 波利尼亚语 熵率 噪声信道模型 建立一个翻译 词义消歧(WSD 贝叶斯 最大熵的消歧方法 概率论 在自然语言处理中,以句子为处理单位时一般 ...
- 【NLP入门教程】七、词义消歧
词义消歧(Word Sense Disambiguation, WSD)其目标是确定文本中词汇的正确含义.由于许多单词具有多种含义,词义消歧对于理解和分析文本具有关键作用. 1. 词义消歧的挑战 词义 ...
- 汉语语义消歧之 -- 词义消歧简介
总算是到正题上了... 词义消歧,亦称语义消歧,是计算语言学领域的基础性关键研究课题. 对于许多词语(特别是汉语词语和一部分专有名词),一个词有许多种意思. 例如专有名词"卡特", ...
- NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈
本文转载自http://blog.sciencenet.cn/blog-362400-526304.html 引用老友: 受教了.谢谢立委. 我同意"成语从来不是问题".成问题的应 ...
最新文章
- python 引用(import)文件夹下的py文件的方法
- 如何实现label长度固定,文字分散分布的效果
- android studio 设置 ndk 路径
- L0,L1,L2范数
- C语言从文件中读入矩阵,并且将矩阵转置
- python post请求_python发送http的post请求
- fhq_treap || BZOJ 3223: Tyvj 1729 文艺平衡树 || Luogu P3391 【模板】文艺平衡树(Splay)...
- python zip()函数的理解与应用
- Deep Learning 【Nature review】
- protostuff java_protostuff 及其注意事项
- 比赛 | 第一届古汉语分词与词性标注国际评测来啦
- shp地图如何导入奥维地图手机_如何将平面控制点导入Google Earth、奥维互动地图及手机奥维互动地图APP里面?...
- Web前端开发技术实验与实践(第3版)储久良 实训12
- 数据库系统的三级模式结构
- 计算机组成原理平均cpi怎么算_计算机组成原理-计算机的性能指标及计算题
- Kafka-Steam Branch功能 对数据进行切分Steam,发送到指定的Topic
- STM32F103---标准库函数驱动DS18B20
- 计算机主板的海关编码,请问线路板上已经含有电子元件的海关编码是多少?急啊!!...
- 永磁同步电机的直接转矩控制(一)一一一DTC仿真模型的搭建
- Linux模拟实现僵尸进程