php - 比较大量相似文本的最简单方法是什么?

标签 php python sql regex perl

这里有点开放式问题,因为我主要是在寻找意见。因为我想搬家,所以我正在从 craigslist 获取我所在地区的 apt 广告的一些数据。我的目标是能够比较项目,看看什么时候是重复的,这样我就不会整天都在看相同的 3 个广告。问题是他们稍微改变了一些东西以通过 CL 的过滤器。

我已经有一些正则表达式来查找要比较的地址和电话号码,但这不是最可靠的。有没有人熟悉一种简单的方法来比较整个文档并可能显示一些简单的东西,比如“80% 相似”?我想不出任何随手可得的东西,所以我怀疑我必须从头开始制定我自己的解决方案,但我认为值得向 stackoverflow 的集体天才求教 :)

首选语言/方法是 python/php/perl,但如果它是一个很好的解决方案,我会很开放。

更新:值得注意的一件事是,由于我将在本地数据库中存储我所在地区(洛杉矶)apts 的 rss 提要的抓取数据,因此首选方法将包括一种将其与我的所有内容进行比较的方法目前知道。这可能有点阻碍,因为随着帖子数量的增加,这可能会成为一个非常漫长的过程。

最佳答案

您可以计算两个字符串之间的 Levenshtein 差异 - 经过一些理智的规范化,例如最小化重复的空格等等。在你运行足够多的“重复”之后,你应该了解你的阈值是多少——然后你可以对所有新传入的数据运行 Levenshtein,如果它小于等于你的阈值,你可以认为它是重复的。

关于php - 比较大量相似文本的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3095057/

相关文章:

python - 拆分字符串并在 python 中获取数字?

python - tf.confusion_matrix 和 InvalidArgumentError

python - 如何获取 Gmail API 邮件的文本/纯文本部分

sql - 请勿在分组依据中包含选择列

asp.net - 使用 Informix 进行 SqlBulkCopy

javascript - 在 Opencart 中使用用户 ID 实现 Google Analytics

php - 更新在数据库中不起作用

php - 如何在php中恢复备份的mysql文件

php - 检查数据库中是否存在记录

javascript - 使用 Javascript 发送查询字符串