0

我想知道是否有任何好的方法可以使用余弦相似度来比较单个文档和一组文档。显然,您可以计算单个文档和集合中每个文档之间的余弦相似度,但是如果这样做,您会取平均值吗?您是否会按与原始文档进行比较的每个其他文档的大小来衡量?我还想知道是否有任何方法可以将您要比较的文档集中的所有字数组合起来,以便最终只计算一次余弦相似度;在原始文档和“汇总”文档之间。我问的原因是我有大约 200,000 个文档要与单独的一组大约 50,000 个文档进行比较。将 200,000 个文档中的每个文档与 50 个文档中的每个文档进行比较,000 计算量很大,我不知道如果我最终还是要取某种平均值,是否真的有必要。我的汇总文档想法是一个很大的禁忌吗?

4

1 回答 1

0

有一种方法可以显着加快这一速度。关键是要注意词向量是稀疏的。因此,您希望将文档转换为按单词列组织的表格。每个单词一列。对于每一列,您只存储非零条目。这是每个实际包含该单词的文档的一行。然后,您通过遍历列来计算部分总和并收集每个文档的结果。这具有易于并行化的额外优点。

为了进一步加快速度,您为每个集合的每个单词创建一个列,并且只计算和分配不同集合文档的相同单词的部分总和。

于 2013-09-17T17:46:01.223 回答