我的数据库包含 500 多篇文章,每 5 分钟 php 脚本就会检查 XML 文件中的新闻。我需要忽略我已经拥有的文章。我需要检查新闻的相似度,因为有些人只是重写它。例如:
有人会写:“你好,我叫约翰!你好吗?”
第二个会写:“你好!你好吗?我叫约翰!”
这不是一个很好的例子,但我遇到了这个问题。为了比较文本,我将使用 shingles 算法。但怎样做比较好呢?我认为每次都用数据库检查 xml 中的每一篇文章是不好的。
最佳答案
由于您只有 500 多篇文章,因此每 5 分钟检查一次应该不成问题。
如果您无论如何都想改进这一点,您可以添加另一个表(md5 或 sha1 哈希值、文本源)并存储源(您检索文本的位置)以及一些哈希值。当您查看新文章时,您可以与哈希值进行比较,看看您是否已经看过这篇文章。
关于php - 文本比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14081851/