我想找到一个库或算法(所以我自己编写代码)来识别网页的最近 k 个邻居,其中网页被定义为一组关键字。我已经完成了提取关键字的部分。
它不必非常好,只要足够好。
任何人都可以提出解决方案,或者从哪里开始。我过去看过 Yury Lifshits 的讲座,但如果可能的话,我希望能得到一些现成的东西。
首选 Java 库。
我想找到一个库或算法(所以我自己编写代码)来识别网页的最近 k 个邻居,其中网页被定义为一组关键字。我已经完成了提取关键字的部分。
它不必非常好,只要足够好。
任何人都可以提出解决方案,或者从哪里开始。我过去看过 Yury Lifshits 的讲座,但如果可能的话,我希望能得到一些现成的东西。
首选 Java 库。
正如您所说,您已经从页面中提取了关键字。我假设您用单词向量表示每个文档/页面。类似于文档词频矩阵的东西。
我猜一个页面的最近邻居理想情况下是一个内容相似的页面。因此,您希望找到每个单词的相对频率与您正在搜索的单词相似的文档。所以首先对每一行的doc-term矩阵WRT进行归一化;即用 %tage 发生替换发生计数。
接下来,您必须在由这些向量表示的 2 个文档之间分配一些距离。您可以使用正常的欧几里得距离或曼哈顿距离。然而,对于文本文档,通常效果最好的相似度度量是Cosine Similarity。使用适合您问题的任何距离或相似度函数(请记住,对于最近的邻居,您希望最小化距离;但最大化相似度)。