【问题标题】:Finding "similar" articles in an RSS feed with PHP使用 PHP 在 RSS 提要中查找“相似”文章
【发布时间】:2012-04-02 04:05:34
【问题描述】:

虽然我不确定从哪里开始,但我正在努力完成一些事情。

我目前有一个带有文章列表的 MySql 数据库。 DB 包含文章标题、内容和其他一些信息,如日期等。

我们会监控一个 RSS 提要以获取新文章,它是一个 Google 快讯提要,其中仅包含有关某些主题的最新消息。我希望能够自动监控此提要并记录与我们数据库中当前故事相似的任何提要项。

我知道如何将脚本设置为自动运行,并且我知道如何使用 SimplePie 解析 RSS 提要。

我需要弄清楚的是如何获取 rss 提要项目的描述,在我们的数据库上运行检查以查看提要项目是否与我们在数据库中的内容相似,并返回一些数字分数排序,有点像“相似度评级”之类的。

之后,如果“相似度等级”高于设定的限制,我可以将需要的信息记录到数据库中,我知道该怎么做。

所以我唯一的问题是如何将每个提要项与我们当前的文章进行比较,并根据其相似程度返回一个分数。

【问题讨论】:

  • 作为一个相反的例子,有一个我经常使用的分类网站。他们禁止为同一项目发布多个广告。有一次我尝试重新发布我的添加,但忘记删除我原来的添加,它说它与我的另一个广告太相似了。我试着重新排列一下单词,它仍然说了同样的话。所以它知道我的第二个广告与我的原始广告非常相似。我需要做他们正在做的任何事情,而不是阻止我想要记录的非常相似的故事。只是想澄清一下我在说什么。

标签: php mysql algorithm rss


【解决方案1】:

Levenshtein 函数(适用于 PHP 和 MySQL)是处理此问题的好方法。它基本上根据将一个字符串转换为另一个字符串所需的排列数(替换、移动等)来计算一个值。该分数将是您的“相似度评分”。

编辑:Levenshtein 函数在 MySQL 中本机不可用,但您可以使用它的 SQL 实现,例如:http://kristiannissen.wordpress.com/2010/07/08/mysql-levenshtein/

【讨论】:

  • stackoverflow.com/questions/4671378/levenshtein-mysql-php 稍微涵盖了这个主题,可能会有用。
  • 我会将其标记为已接受的答案,因为您提到的功能看起来可以帮助我满足我的需求。
  • MySql 函数看起来像我的答案。希望有一个 MySql 函数,这样我就不必用 PHP 一遍又一遍地循环它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 1970-01-01
  • 2012-06-17
相关资源
最近更新 更多