如何判断内容重复上传?

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 13
Mutoulee

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

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

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

5个月前 评论
徵羽宫 5个月前
Adachi (楼主) 5个月前

es可以用起来吧

5个月前 评论
Adachi (楼主) 5个月前

可以试试看下能否使用:

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

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

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

5个月前 评论

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

5个月前 评论
Adachi (楼主) 5个月前
php_yt (作者) 5个月前

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