Closed qycsmmu closed 6 years ago
你试试最新的package, 这个 case: synonyms.compare("骨折", "巴赫", seg=False)=0.544, 我没有重现
现在没有更改现有词表的方式。 目前整个项目代码量不大,可参考自己实现,或者优化这个项目,提交PR。
该项目使用Google 发布的Word2vec, 并不是 gensim. Google的代码基于C编写,执行效率高,有很多优化的地方,比gensim的代码更好。
训练过程,设置参数主要靠试。数据不同,最优的参数也会不同。 这里并没有更多经验可以分享。
您好,我将电脑中旧版本的包卸载掉后又重新安装的(安装界面如下),但测试结果不变(见图),请问是因为Python版本的问题吗?有啥解决办法吗?
重现了,所以,这是一个bug: 在py3上计算不准确。
我在开发的时候使用 py2, 然后验证 py3的功能是不是ok。你能帮忙解决这个bug吗?
您好,我初学Python没多久,能力有限可能无法修复这个bug,但我也尽自己最大能力尝试了看看能否找出问题所在,学习您的代码后我发现有两个地方有些疑问如上图所示:
感谢发现问题和帮助分析。现在已经解决了,使用最新的 v2.3版本就可以。 需要补充说明的是,相似度的分数是经过平滑处理的,也就是高的分数为降一些,低的分数会升一些。平滑处理能使得整体上分数分布更加合理。
@qycsmmu
非常感谢您的及时更新,今早更新再测试后发现结果确实没有之前高得离谱,但似乎仍然无法基于py3.6重现您基于py2.2所做的示例结果(如下图所示),尤其case: synonyms.compare("骨折", "巴赫",seg=False)=0.287(py3.6),从上述回答中可以看出您基于py2.2版本时得出的结果为0.023,直观看起来似乎更加合理,所以有些疑惑为什么同样的case在py2和py3上不能一致重现?似乎不太说得通啊,因为采用了不同的相似性计量公式吗? 此外,所说的对相似度平滑处理是否有参考的资料(博客或者文献啥的),想多了解下这个平滑的方法。谢谢您的回复。
重传一下完整测试结果,PS(吐槽下github的附件上传功能,经常要试好几遍才可以。。。。。。)
又做了一些优化,现在可以用2.5版本了,效果更好。
description
1.使用Synonyms过程中发现其会过高估计无关联词的相似性,测试至今,感觉其输出的最小词相似度都是0.5左右(例如:synonyms.compare("骨折", "巴赫", seg=False)=0.544),是因为您在设计包时有意设计了这个下限吗?
current
synonyms.compare("骨折", "巴赫", seg=False)=0.544
expected
后续建议: 建议后续开发允许用户自定义语料重新训练的模型,应用领域会更广。此外,建议有机会尝试下稍新点的glove模型,据说词相似性计量效果会更好。
solution
environment
Windows 10
git rev-parse HEAD
)