前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[文本语义相似] 基于Word2Vec的wmdistance (Word Mover Distance)

[文本语义相似] 基于Word2Vec的wmdistance (Word Mover Distance)

作者头像
MachineLP
发布2020-05-04 14:30:44
1.1K0
发布2020-05-04 14:30:44
举报
文章被收录于专栏:小鹏的专栏小鹏的专栏

文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基于FAQ的问答系统(Community-QA)等。像 对于问题的内容,需要进行相似度匹配,从而选择出与问题最接近,同时最合理的答案。本节介绍 基于Word2Vec的wmdistance计算相似度。

需要知识:

(1)Word2Vec

(2)Word Mover Distance (WMD)

基于gensim实现:

代码语言:javascript
复制
import time
import jieba
import gensim
import threading
import numpy as np


w2v_model_file = 'w2v_model_file'
w2v_model = gensim.models.Word2Vec.load(w2v_model_file)

w2v_model.init_sims(replace=True) # normalizes vectors
distance = w2v_model.wmdistance("提前结清", "我需要提前结清")  
print ('distance>>>>', distance) 

测试结果:

代码语言:javascript
复制
"你有什么事你说。", "我是他家人/朋友,你有什么事可以给我说?"                    0.6694891459671026
"呃,我想提前结清我名下那个款项。", "我需要提前结清"                            0.6992085239002946
"你们是你们哪,你们哪里的。", "你们是哪里,你们是谁?"                          0.27438064142232443   
"提前结清。", "我需要提前结清"                                              0.5150805852253076

其他:

(1)在文本相似标注上的应用:# 粗排:使用word mover distance(WMD)来进行初始的排查,最终得分0-0.15的太相似了,0.45-1分的基本不相关,所以从0.15-0.45分钟选择了10%来进行人工标注

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档