chatopera / Synonyms

:herb: 中文近义词:聊天机器人,智能问答工具包
https://bot.chatopera.com/
Other
5.03k stars 901 forks source link

句子的相似度计算方法是什么? #64

Closed bigrat911 closed 6 years ago

bigrat911 commented 6 years ago

比如,句子的向量表示为每个词的vector取平均,然后cos 或者用softcos、WMD之类?

hailiang-wang commented 6 years ago

image

wuyang0329 commented 6 years ago

请问这个平滑策略的根据是什么呢,谢谢!

hailiang-wang commented 6 years ago

曲线形状

wuyang0329 commented 6 years ago

还有两个问题想问一下您,您的代码中_flat_sum_array这个函数是将句子中各个词的词向量叠加吗? 还有nearby_levenshtein_distance这个函数是将两个句子计算出来的编辑距离做了归一化吗?

fremcode commented 5 years ago

请教一下,是我用法不对还是词库的问题,"舒服"的近义词为什么是"难受"?

hailiang-wang commented 5 years ago

计算依据非监督的word2vec, 是利用前后词作为特征,所以也会出现反义词的时候。使用机器学习会有准确率的问题,并不保证100%都是准确的近义词。


Cheers. Hai Liang Wang, CEO, Chatopera

------------------ Original ------------------ From: "fremcode"; Date: 2019年1月15日(星期二) 上午10:46 To: "huyingxi/Synonyms"; Cc: "Samurais"; "State change"; Subject: Re: [huyingxi/Synonyms] 句子的相似度计算方法是什么? (#64)

请教一下,是我用法不对还是词库的问题,"舒服"的近义词为什么是"难受"?

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub, or mute the thread.

AlexYoung757 commented 5 years ago

句子相似度比较每次得到的结果居然不一致。。。 第一次运行结果: 相似度:1.0 相似度:0.304 相似度:0.626

第二次运行结果: 相似度:1.0 相似度:0.326 相似度:0.635

第三次运行结果: 相似度:1.0 相似度:0.291 相似度:0.618

luluyouyue commented 5 years ago

为什么是词向量相似度和编辑距离相似度相乘而不是相加呢?

NancyGu commented 4 years ago

在这个问题下学到很多,我的理解是: 1- 用编辑距离和词向量相似度cos值相乘 cos起到方向上的修正作用 2-word2vec是根据上下文做推断,的确有无法区分同义词和反义词的问题 3-词权,我刚看到一种单个文档自适应设词权的方法 用的是词向量-文档中所有词池化后的向量 = 权重