gpt4 book ai didi

java - 快速 vector 差异/相似性度量

转载 作者:行者123 更新时间:2023-11-29 06:17:44 25 4
gpt4 key购买 nike


我正在从事一个项目,我正在使用遗传算法生成最能描述文本的单词列表。
我目前正在使用余弦相似度来做到这一点,但它有两个缺陷:它太慢了,如果比较的两个 vector 为零,它最终会得到一个人为的高相似度和一个不是很好的。对于其他更快/更少注意不存在的单词的措施有什么建议吗?谢谢。

最佳答案

余弦相似度是点积与量级的乘积,因此最小化维数至关重要。

要淘汰牛群,您可能需要申请 stemming将具有相似含义的单词折叠成一个维度,然后扔掉 hapax legomena (在所考虑的语料库中只出现一次的词)来自维度池,因为算法不太可能从中获得很多有用的信息。

不过,我不确定是什么导致了零 vector 。能举个例子吗?

编辑:那么您要创建的是针对特定文档或集群选择性的单词列表?在这种情况下,您需要一些方法来消除低选择性词。

您可能希望将最常见的词视为 stop words进一步剔除你的维度集并获得更多的性能。此外,在遗传算法方面,您的适应度函数需要惩罚与目标集群外的文档匹配的单词列表,而不仅仅是奖励那些与集群内的文档匹配的单词列表,因此您的单词列表不会被仅仅是频繁而非选择性。

如果即使在调整适应度函数后仍需要更好的语义选择性,您可能需要考虑使用 orthogonal sparse bigrams而不是单独的单词。不过,我不知道它在维数方面会做什么,因为虽然会有 O(kn2) 不同的术语而不是 n,更多的将是 hapaxes。但是,如果您需要在术语列表中使用单个单词而不是 OSB,这可能会导致问题。

关于java - 快速 vector 差异/相似性度量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4435090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com