php - 文本比较

标签 php algorithm

我的数据库包含 500 多篇文章,每 5 分钟 php 脚本就会检查 XML 文件中的新闻。我需要忽略我已经拥有的文章。我需要检查新闻的相似度,因为有些人只是重写它。例如:

有人会写:“你好,我叫约翰!你好吗?”
第二个会写:“你好!你好吗?我叫约翰!”

这不是一个很好的例子,但我遇到了这个问题。为了比较文本,我将使用 shingles 算法。但怎样做比较好呢?我认为每次都用数据库检查 xml 中的每一篇文章是不好的。

最佳答案

由于您只有 500 多篇文章,因此每 5 分钟检查一次应该不成问题。

如果您无论如何都想改进这一点,您可以添加另一个表(md5 或 sha1 哈希值、文本源)并存储源(您检索文本的位置)以及一些哈希值。当您查看新文章时,您可以与哈希值进行比较,看看您是否已经看过这篇文章。

关于php - 文本比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14081851/

相关文章:

php - 如何解析 mySql 表的单个字段中的多个值?

java - 计算随机数的出现次数

algorithm - 如何提高为每个点对列表进行排序的函数的复杂性?

在不遍历所有其他对象的情况下查找范围内对象的算法?

php - 使用 PHP 导入 Excel 到 MySQL 到单列

php - 当用户第一次查看我的网站时,显示弹出窗口的最佳方式是什么?

php - 如何在服务器的文件系统中正确存储图像(带有数字名称)

python - 从 C 到 Python 的回溯排列

algorithm - 在FTP中实现mktree最快的方法

php - 将从 MySQL 检索的日期转换为请求的格式 (mm/dd/yy)