PHP数据查重有什么好的算法或者解决方案吗?

1. 问题描述?

项目中,需要对上传的试卷题目与题库中的试题数据进行查重检测,题库中的数据可能有上百万条,有没有什么好的算法或者解决方案来实现查重?

查重规则:对比的两道题中,中文连续7个字重复即为重复,需对重复的内容进行标记。

2. 您期望得到的结果?

能够实现问题描述的功能,由于是内网,需要自己实现查重功能,无法使用开放平台接口的方案。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 29
Mutoulee

当时做过一个作业查重,即老师布置的作业,不同学生可能拿某个作业稍微改改就提交了,甚至不改就提交了。

主要用的到的算法是SimHash 。

3周前 评论
Yolver (楼主) 3周前

丢到队列慢慢查了吧。数据没有特征库吗

3周前 评论
Yolver (楼主) 3周前
deatil (作者) 3周前
Yolver (楼主) 3周前

百万题库量不算大啊,不行就蛮干吧 从第一题开始,每7个字建立一个编码,0000000001=>'ABCDEFG' ,后面每道题的7个字先查询在插入,查询存在的话,标记,按平均每道题40~50字计算,这也就每道题40来个编码,总计4000来万数据。。。

每道题平均0.05s处理时间,这算很慢的吧,也就10多个小时跑完了,晚上跑起第二天就好了

3周前 评论
Yolver (楼主) 3周前
____Laravel (作者) 3周前
Yolver (楼主) 3周前
____Laravel (作者) 3周前
Yolver (楼主) 3周前
uuus007 3周前

是不是可以利用判断量给字符串的相似度去做:PHP两个字符串相似度

3周前 评论
Yolver (楼主) 3周前
chenrenhui (作者) 3周前
Yolver (楼主) 3周前
chenrenhui (作者) 3周前
Yolver (楼主) 3周前

买个论文查重系统吧

3周前 评论

es

3周前 评论
Yolver (楼主) 3周前
码先生

不过这个,的确和论文查重,一个道理。 有些程序 真正牛逼的不是应用。而是应用背后的技术。

3周前 评论
Yolver (楼主) 3周前
白小二

能用redis吗?redis keys *1234567*

3周前 评论
Yolver (楼主) 3周前
Oraoto

100 万条答案,每条 800 字,每连续 7 个字哈希一下记录到位图,大约需要 1000000 * 800 位,也就 100 MB 内存。

不过哈希会冲突,你可以加大内存,或者记录以下原始的 7 个字做一下冲突处理。

3周前 评论
Yolver (楼主) 3周前

按照你们查重规则对题库进行分词,用杰卡德相似度系数计算下

3周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!