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

 

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

需要知识:

(1)Word2Vec

(2)Word Mover Distance (WMD)

 

基于gensim实现:

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) 

测试结果:

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

 

其他:

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

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MachineLP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值