我正在研究一个项目,我正在使用遗传算法生成最能描述文本的单词列表。
我目前使用余弦相似性来做它,但它有两个缺陷:它的目的太慢了,如果两个被比较的向量是零,它最终会出现人为高相似度和一个单词向量,非常好。 对于其他措施的任何建议可能会更快/不注意那些不在那里的单词吗? 谢谢。快速矢量差异/相似性度量
回答
余弦相似度是量级乘积的点积,所以最小化维数是至关重要的。
剔除牛群一点,你可能想申请stemming崩溃类似意思的词到一个单一的维度,并从维度池折腾了hapax legomena(也就是说,只有在所考虑的语料库出现一次),因为一个算法不可能从它们中派生出很多有用的信息。
虽然我不确定会产生零矢量。你能给个例子吗?
编辑:那么你以后是创建一个单词列表是为特定文件或群集选择性?在这种情况下,你需要一些方法来消除低选择性的单词。
您可能希望将最常见的词语视为stop words以进一步挑选维度集并获得更多的性能。此外,在遗传算法方面,您的适应度函数需要惩罚匹配目标群集之外的文档的单词列表,而不仅仅奖励那些匹配群集内的文档的单词列表,因此您的单词列表不会被杂乱无章频繁而非选择性。
如果您在调整适应度函数后仍需要更好的语义选择性,您可能需要考虑使用orthogonal sparse bigrams而不是单个单词。但我不知道它在尺寸数量方面会做什么,因为虽然将会有不同的术语而不是 n,但它们中的很多将是hapaxes。这可能会导致一个问题,如果你需要单词而不是你的术语列表中的OSB。
我有些误会,基本上是我的集合的稀少(很多hapaxes和几千个单词使用了少数几次)意味着尽管它们不代表语料库的良好集群,但相似性经常非常高。 – Reu 2010-12-14 21:56:16
- 1. 如何在相似性度量和差异度量之间进行转换?
- 2. 矢量与动态数组相比,速度有很大差异吗?
- 3. 快速矢量索引
- 4. 快速矢量化datetime.combine()
- 5. 查找3D速度矢量
- 6. 速度矢量帮助
- 7. 如何在Python中快速计算大量向量的余弦相似度?
- 8. 误差矢量
- 9. 来计算矢量误差更快地
- 10. MATLAB快速(分量)矢量操作...真的很快
- 11. 全局变量和对象变量之间的速度差异
- 12. 多元相似度度量
- 13. 使用wordnet进行相似性度量?
- 14. gensim:自定义相似性度量
- 15. DBSCAN中的替代相似性度量?
- 16. 在C++中快速搜索Point2f矢量
- 17. 快速矢量化转换BGRA
- 18. 提高程序速度:矢量速度,内存块速度
- 19. 速度(成对的矢量)vs(成对的矢量)C++
- 20. 带矢量和速度的2D矢量数学
- 21. 矢量差异,同时保持秩序
- 22. Lucene:相似类...如何定义几个相似性度量?
- 23. ClearCase快速差异日食
- 24. 根据角度和速度查找速度矢量
- 25. 点集相似度量
- 26. OpenGL从速度矢量旋转
- 27. Matlab位置列表到速度矢量
- 28. 随机速度矢量公式
- 29. 快速计算R中的> 10^6余弦向量相似度
- 30. 计算所有差异矢量可能性
这是不是很清楚你要求什么,但你可能是[Levenshtein距离]后(http://en.wikipedia.org/wiki/Levenshtein_distance)或[海明距离](http:// en。 wikipedia.org/wiki/Hamming_distance)? – 2010-12-14 02:10:06