问答 / 0 / 13 / 创建于 1年前
比如说,数据库里有50W条数据,都是text类型,然后要判断当前添加的内容和之前的内容是否重复(相似度90%以上),像论文查重一样,有什么优秀的解决方案吗?
完全相同去重,可以用md5校验;
文本内容相似度去重,需要用到类似simhash的算法,计算出一个向量距离,然后计算出相似度;
之前在学生提交作业(文本)防抄袭场景下做过一个,不过效果不怎么好,后来也没正式用起来。
es可以用起来吧
可以试试看下能否使用:
// similar_text 计算两个字符串的相似度。可以参考一下文档 $sim = similar_text('我在家里', '家,我在', $perc); echo "相似度: $sim ($perc %)\n"; // 输出:相似度: 6 (50 %)
你这只能通过分析文本向量,然后用向量搜索,如果有数据就不插入!
我用的是这个,不过我对比的都是几十到几百字的,文章没试过segmentfault.com/q/101000000245390...github.com/xiaobeicn/text-similari...
@Adachi 两段文本对比,我这执行一次短文本对比500次,是没啥压力的,你可以优化对比方法效率,先对比开头的一段字,相似度高再全文对比。可以先试试效率,如果效率不高可能就需要找找其他工具。
我要举报该,理由是:
完全相同去重,可以用md5校验;
文本内容相似度去重,需要用到类似simhash的算法,计算出一个向量距离,然后计算出相似度;
之前在学生提交作业(文本)防抄袭场景下做过一个,不过效果不怎么好,后来也没正式用起来。
es可以用起来吧
可以试试看下能否使用:
你这只能通过分析文本向量,然后用向量搜索,如果有数据就不插入!
我用的是这个,不过我对比的都是几十到几百字的,文章没试过
segmentfault.com/q/101000000245390...
github.com/xiaobeicn/text-similari...