如何判断内容重复上传?

比如说,数据库里有50W条数据,都是text类型,然后要判断当前添加的内容和之前的内容是否重复(相似度90%以上),像论文查重一样,有什么优秀的解决方案吗?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 13
Mutoulee

完全相同去重,可以用md5校验;

文本内容相似度去重,需要用到类似simhash的算法,计算出一个向量距离,然后计算出相似度;

之前在学生提交作业(文本)防抄袭场景下做过一个,不过效果不怎么好,后来也没正式用起来。

1年前 评论
徵羽宫 1年前
Adachi (楼主) 1年前

es可以用起来吧

1年前 评论
Adachi (楼主) 1年前

可以试试看下能否使用:

// similar_text 计算两个字符串的相似度。可以参考一下文档
$sim = similar_text('我在家里', '家,我在', $perc);
echo "相似度: $sim ($perc %)\n";

// 输出:相似度: 6 (50 %)
1年前 评论
徵羽宫 1年前
一个猫 (作者) 1年前
Adachi (楼主) 1年前

你这只能通过分析文本向量,然后用向量搜索,如果有数据就不插入!

1年前 评论

我用的是这个,不过我对比的都是几十到几百字的,文章没试过
segmentfault.com/q/101000000245390...
github.com/xiaobeicn/text-similari...

1年前 评论
Adachi (楼主) 1年前
php_yt (作者) 1年前

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