Closed wangwei14 closed 6 years ago
调用synonyms.compare()函数时出现的问题,当输入两个字符串完全无关时,预期返回值应该为0,而事实上不是这样。实验中有时候会将没有明确意义的短语进行比较,测试结果不是很好。观察发现,如果两个词都不在字典中,向量表示赋值为0,距离为0,相似度为1。
“一下张磊” “平金磊” 1.0
“一下张磊” “平金磊” 0.0
尝试在函数_similarity_distance中计算范数倒数g时规定若两字符串对应向量均为0,则令g=0。但是此时仍然有两个问题,一个是,此时编辑距离u的值为0.5或0.25,取决于分词后空格的个数差,感觉应该为0比较合理;另一个是,若分词后有部分词在字典中不存在,另一部分存在,则上述改动的判定失效,最后返回值为仍为1。猜测可能解决方法是,在词不在字典中时,以词为种子生成随机数,作为向量表示,不知是否可行。
Python2.7
忽然发现昨天有个closed issue就是这个问题,2333
description
调用synonyms.compare()函数时出现的问题,当输入两个字符串完全无关时,预期返回值应该为0,而事实上不是这样。实验中有时候会将没有明确意义的短语进行比较,测试结果不是很好。观察发现,如果两个词都不在字典中,向量表示赋值为0,距离为0,相似度为1。
current
“一下张磊” “平金磊” 1.0
expected
“一下张磊” “平金磊” 0.0
solution
尝试在函数_similarity_distance中计算范数倒数g时规定若两字符串对应向量均为0,则令g=0。但是此时仍然有两个问题,一个是,此时编辑距离u的值为0.5或0.25,取决于分词后空格的个数差,感觉应该为0比较合理;另一个是,若分词后有部分词在字典中不存在,另一部分存在,则上述改动的判定失效,最后返回值为仍为1。猜测可能解决方法是,在词不在字典中时,以词为种子生成随机数,作为向量表示,不知是否可行。
environment
Python2.7