chatopera / Synonyms

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

3.3.6版本进行compare时报错 #51

Closed Shaun-Chen closed 6 years ago

Shaun-Chen commented 6 years ago

description

版本:3.3.6 python版本:3.6.4 当我进行如下测试时:synonyms.compare(‘你们好呀’, '大家好') 会有如下错误:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() debug断点发现:
出错地点:g = cosine(_flat_sum_array(_get_wv(s1)), _flat_sum_array(_get_wv(s2)))
返回g:
[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan]
导致下面对r进行分值判断时出错。

current

expected

solution

environment

python:3.6.4

Shaun-Chen commented 6 years ago

发现如果不调用jieba分词的话,即:compare中seg参数为False不会出现该问题,应该是余弦相似度计算那块出现了问题。

hailiang-wang commented 6 years ago

是的,是个bug。 原因是“你们好”是OOV(Out of Vocabulary) ,"呀"是停用词。这就话最终不会在内部得到任何向量。所以就导致抛出了异常。

这个问题会在下一个版本(3.3.9)中解决。