English 中文(简体)
利用MySQL和PHP获得重复内容
原标题:Find duplicate content using MySQL and PHP
  • 时间:2009-09-12 21:05:45
  •  标签:

我在制作我的网页时面临一个问题,这里指的是:

这一网络应用(按字母顺序排列)是基于用户生成的内容(通常较短的文章,尽管篇幅可能相当长,大约四分之一的屏幕),每个用户至少提交其中10条,因此数量应当迅速增长。 从性质上看,约10%的条款将重复,因此,我需要一种算法来计算。

我提出了以下步骤:

  1. On submission fetch a length of text and store it in a separated table (article_id,length), the problem is the articles are encoded using PHP special_entities() function, and users post content with slight modifications (some one will miss the comma, accent or even skip some words)
  2. Then retrieve all the entries from database with length range = new_post_length +/- 5% (should I use another threshold, keeping in mind that human factor on articles submission?)
  3. Fetch the first 3 keywords and compare them against the articles fetched in the step 2
  4. Having a final array with the most probable matches compare the new entry using PHP s levenstein() function

这一过程必须在提交条款时执行,而不是使用 cr。 然而,我怀疑这将在服务器上产生重负荷。

您能否提出任何想法?

Thank you! Mike

最佳回答

案文相似性/广域/重复是一个大专题。 有许多algos和解决办法。

伦文斯坦不会在你的情况下工作。 你们只能使用小文本(由于其“复杂性”会杀害你的荷兰语)。

一些项目使用“适应性地方关键词的调和”(青年会发现这一点。)

此外,你可以检查(回答中的3个环节,非常有启发性):

https://stackoverflow.com/questions/945724/cosine-similarity-vs-hamming-distance/1290286#1290286>Cosine similarity vs Hammingrange

希望这将有助于。

问题回答

我愿指出,版本控制系统git 对发现重复或近复制内容有极好的算法。 当你做出承诺时,它将向你们展示经过修改的档案(不论名称如何),以及百分比的变化。

它是一个开放的来源,主要用小型、重点明确的C方案撰写。 或许可以使用一些东西。

您可以设计自己的意图,以减少负荷,不必对同一职类所有其他员额的文字和关键词进行核对。 如果用户提交第三方内容的话,他们指的是什么? 见Tumblr执行-基本上有一个自由格式的文本领域,以便每个用户都能评论和制定自己的员额内容说明部分,但根据用户增加的参考资料类型(图像、图像、链接、引语等)也有一些格式化的领域。 对Tumblr的改进将使得用户能够像他们在任何特定职位上想要的那样增加许多/超型格式内容。

然后,你只检查已知的种类,如ur或嵌入的录像。 认为如果再建议迫使用户按某种类型或基因进行分类,则你在寻找重复方面的余地要小得多。

而且,如果你能够让每个用户以某种方式张贴到自己的“流”上,那么如果许多人重复同样的内容,那就没有问题了。 允许人们从个人流到主要“前页”流,以便社区在看到重复项目时能够加以规范。 不要像Digg或Reddit那样进行投票,你可以给人们增加将职位合并/改换成相关职位的办法(把职位安排和管理内容作为你所期望的一项活动,而不是把它当作幕后处理的问题)。





相关问题
热门标签