Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Algorithm 如何从大量页面中获取相似的文本?_Algorithm_Data Mining_Text Processing_Similarity - Fatal编程技术网

Algorithm 如何从大量页面中获取相似的文本?

Algorithm 如何从大量页面中获取相似的文本?,algorithm,data-mining,text-processing,similarity,Algorithm,Data Mining,Text Processing,Similarity,从多个文本到一个文本中获取x个最相似的文本 也许把页面改成文本更好 您不应该将文本与每个文本进行比较,因为它太慢。您必须定义一个函数来测量两个页面之间的“差异”。我可以想象各种各样的功能,你必须为你的领域选择其中一种: 关键字集的差异-您可以删减字典中最常见单词的文档,然后得到每个文档的唯一关键字列表。然后,“差异”函数会将差异计算为每个文档的关键字集的差异 文本差异-根据使用文本差异算法将一个文档转换为另一个文档所需的编辑次数计算每个距离(请参阅) 有了差异函数后,只需计算当前单据与其他单

从多个文本到一个文本中获取x个最相似的文本

也许把页面改成文本更好


您不应该将文本与每个文本进行比较,因为它太慢。

您必须定义一个函数来测量两个页面之间的“差异”。我可以想象各种各样的功能,你必须为你的领域选择其中一种:

  • 关键字集的差异-您可以删减字典中最常见单词的文档,然后得到每个文档的唯一关键字列表。然后,“差异”函数会将差异计算为每个文档的关键字集的差异

  • 文本差异-根据使用文本差异算法将一个文档转换为另一个文档所需的编辑次数计算每个距离(请参阅)

有了差异函数后,只需计算当前单据与其他单据的差异,然后返回最接近的其他单据


如果您需要经常这样做,并且有很多文档,那么问题就变得有点困难。

您必须定义一个函数来测量两个页面之间的“差异”。我可以想象各种各样的函数,您必须为您的域选择其中一个:

  • 关键字集的差异-您可以删减字典中最常见单词的文档,然后得到每个文档的唯一关键字列表。然后,“差异”功能会将差异计算为每个文档的关键字集的差异

  • 文本差异-根据使用文本差异算法将一个文档转换为另一个文档所需的编辑次数计算每个距离(请参阅)

有了差异函数后,只需计算当前单据与其他单据的差异,然后返回最接近的其他单据


如果你需要经常这样做,而且你有很多文档,那么问题就变得更难了。

识别类似文档/页面的能力,无论是网页还是更一般形式的文本,甚至是代码,都有许多实际应用。这一主题在学术论文中得到了很好的体现,也在不太专业的文章中得到了很好的体现论坛。尽管文档相对丰富,但很难找到与特定案例相关的信息和技术

通过描述手头的具体问题和相关需求,可以为您提供更多的指导。同时,下面提供一些一般性的想法

许多不同的函数可用于以某种方式测量页面的相似性。选择其中一个(或可能多个)函数取决于各种因素,包括可以分配问题的时间和/或空间量,以及对噪声的期望容忍度

一些较简单的指标包括:

  • 最长公共单词序列的长度
  • 常用词数量
  • 超过n个单词的常用单词序列数
  • 每个文档中前n个最常用词的常用词数
  • 文件的长度
标准化后,上面的一些指标工作得更好(例如,避免使用长页面,因为长页面的大小会使其他页面更容易出现类似的单词)

更复杂和/或计算成本更高的测量是:

  • 编辑距离(这实际上是一个通用术语,因为有许多方法可以测量编辑距离。一般来说,其目的是测量将一个文本转换为另一个文本所需的[编辑]操作数。)
  • 源自Ratcliff/Obershelp算法的算法(但计算单词而不是字母)
  • 基于线性代数的测量
  • 统计方法,如贝叶斯fitler
一般来说,我们可以区分测量/算法,其中大多数计算可以针对每个文档进行一次,然后是一次额外的过程,旨在比较或组合这些测量(相对较少的额外计算),而不是要求成对处理要比较的文档的算法

在选择一个(或确实几个这样的措施,以及一些称重系数),重要的是要考虑额外的因素,除了本身的相似性测量。例如,它可能有利于…

  • 以某种方式规范文本(特别是在网页的情况下,由于与页面相关的所有“礼仪”:页眉、页脚、广告面板、不同的标记等,类似的页面内容或类似的段落看起来不那么相似。)
  • 利用标记(例如:与纯文本中的相似性相比,对标题或表格中的相似性给予更多的重视
  • 识别并消除与领域相关的(甚至是众所周知的)表达。例如,两个完全不同的文档可能看起来很相似,因为它们有两个共同的“锅炉板”段落,涉及一些法律免责声明或一些通用描述,而不是真正与每个cocument内容的本质相关

识别类似文档/页面的能力,无论是网页还是更一般形式的文本,甚至是代码,都有许多实际应用。这一主题在学术论文和不太专业的论坛中都有很好的体现。尽管文档相对丰富,但很难找到信息和与特定案例相关的技术

通过描述手头的具体问题和相关需求,可以为您提供更多的指导