Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于关键字的最近邻算法或库_Java_Algorithm_Nearest Neighbor - Fatal编程技术网

Java 基于关键字的最近邻算法或库

Java 基于关键字的最近邻算法或库,java,algorithm,nearest-neighbor,Java,Algorithm,Nearest Neighbor,我想找到一个库或算法(因此我自己编写代码)来识别网页的最近k个邻居,其中网页被定义为一组关键字。我已经完成了提取关键字的部分 不一定要很好,只要足够好就行了 谁能提出一个解决方案,或者从哪里开始。我以前看过Yury Lifshits的讲座,但如果可能的话,我希望能准备一些东西 首选Java库。正如您所说,您已经从页面中提取了关键字。我假设您用文字向量表示每个文档/页面。有点像矩阵 我想一个页面的最近邻最好是一个内容相似的页面。因此,您希望找到每个单词的相对频率与您正在搜索的单词的相对频率相似的文

我想找到一个库或算法(因此我自己编写代码)来识别网页的最近k个邻居,其中网页被定义为一组关键字。我已经完成了提取关键字的部分

不一定要很好,只要足够好就行了

谁能提出一个解决方案,或者从哪里开始。我以前看过Yury Lifshits的讲座,但如果可能的话,我希望能准备一些东西


首选Java库。

正如您所说,您已经从页面中提取了关键字。我假设您用文字向量表示每个文档/页面。有点像矩阵

我想一个页面的最近邻最好是一个内容相似的页面。因此,您希望找到每个单词的相对频率与您正在搜索的单词的相对频率相似的文档。因此,首先规范化每行的文档术语矩阵WRT;i、 e.将事件计数替换为%tage事件

接下来,您必须指定由这些向量表示的两个文档之间的距离。你可以用普通的或普通的。然而,对于文本文档,通常效果最好的相似性度量是。使用适合您的问题的任何距离或相似性函数(记住,对于最近的邻居,您希望最小化距离,但要最大化相似性)


向量和距离函数就位后,运行或算法。

是映射位置,还是只需要基于关键字关联不同页面的算法?您可以创建网站节点的加权无向图,并让边长表示“接近度”。e、 两个网站的每一个共同的关键词都可能增加他们的边缘强度。java中有很多图形库可以使用。@smegbrains,是的,我想这就是我所做的。我已经计算了关键字对的交集(我认为这相当于你所说的“边缘宽度”),你的问题听起来像是文本挖掘和文档聚类的应用。试着看看它是否给了你一些关于论文的提示。谢谢,你是对的,每一页都有一个关键词向量(大小6-为了方便起见)。我将简单地取每对关键词的交集,这将给出一个简单而肮脏的相似性度量。如果这是一个爱好/家庭作业,那么这个度量就可以了。但是,如果您正在做一些ML工作,则需要使用一些更严格和经过时间测试的方法。