拥有超过百万份文档的语料库
对于给定的文档,想像在向量空间模型中一样使用余弦查找相似的文档
所有tf均已使用增强频率进行了归一化,以防止像以下tf-idf那样偏向于较长的文档:
预先计算了所有
预先计算分母的值,
因此对于给定的需要得分超过100万d 2
相似度的阈值应为0.6余弦 d 1
我可以观察到给定|的范围相当狭窄 | d 2 | | 为余弦≥ 0.6
例如,在一个搜索类似为的余弦≥ 0.6和| | d 1 | | 之7.7631然后| | d 2 | | 范围从7.0867到8.8339,
超出余弦阈值0.6范围从到0.7223到89.3395,
这是标准tf文档归一化的
它正在查看很多没有机会成为余弦0.6的机会
最后的问题是:
对于给定的和余弦> = 0.6如何确定的范围 那有机会吗?
其中我可以安全地消除吗?
如果存在术语计数范围,我也知道和中的术语数。
通过实验和
似乎是安全的,但希望范围已被证明是安全的
| | d 2 | | < | | d 1 | | / .8
用一些非常独特的术语创建了一些测试用例,有些不是那么独特,还有一些很通用。当然,您可以采用最独特的条件并在比较中增加该频率。分子(点积)将上升,因此||比较|| 并得到一个非常接近1的余弦值。
有关的而不是问题。
我还使用tf-idf将文档分组。我要卖给的客户群习惯于近乎DUP的群体。我正在采用一种相关的方法,因为我认为这是最小的术语计数,并且可以对最多3倍的术语计数进行评估。因此,每10个学期的考生看10到30(4-9的命中率是10)。在这里,我不能错过一个被另一个拾起的东西。我完成了10%,最大比例是1.8。
请确定分析中的缺陷
正如AN6U5指出的那样,该分析中存在一个缺陷
如果对文档进行加权归一化就不再是余弦值了
,正如Mathew指出的那样,
我不能得出d1⋅d2≤d1⋅d1的结论。仍然希望能给我一个硬性约束,但是似乎知道这些东西的人告诉我不,
我不想更改这个问题,所以只要忽略它,
我将进行一些分析,并可能在文档规范化上发布一个单独的问题,以
供参考。这个问题的目的是假设文档在原始tf上进行了标准化
抱歉,但是我对使用哪种标记来制作方程式
表示不好,所以在我的符号
|| d1 ||中 = sqrt(sum(w1 x w1))
d1点d2 = sum(w1 X w2)
假设d1是较短的文档
可以实现的最佳d1点d2是d1点d1
如果d1结婚100保罗20
并且d2结婚100保罗20彼得1
归一化
d1结婚1个保罗1/5
d2结婚1个保罗1/5彼得1/100
显然在两个文件中结婚和保罗具有相同的idf
最佳d1点d2是d1点d1
与d1 的最大匹配是d1
cos = d1点d1 / || d1 || || d2 ||
两侧均平方
cos X cos =(d1点d1)X(d1点d1)/((d1点d1)X(d2点d2))cos X cos =(d1点d1)/(d2点d2)
取平方两侧
cos的根= || d1 || / || d2 ||
是|| d2 || 不受cos约束?
如果我只是使用|| d2 || > = cos || d1 || 和|| d2 || <= || d1 || / cos获得所需的计算速度