我正在开发一个文档系统,每次创建一个新系统时,它都必须检测并丢弃大约 500.000 条记录的数据库中的重复项。
目前,我正在使用搜索引擎检索 20 个最相似的文档,并将它们与我们正在尝试创建的新文档进行比较。问题是我必须检查新文档是否相似(使用similar_text 很容易),或者即使它包含在其他文本中,所有这些操作都考虑到文本可能已被用户部分更改(这里是问题)。我怎么能这样做?
例如:
<?php
$new = "the wild lion";
$candidates = array(
'the dangerous lion lives in Africa',//$new is contained into this one, but has changed 'wild' to 'dangerous', it has to be detected as duplicate
'rhinoceros are native to Africa and three to southern Asia.'
);
foreach ( $candidates as $candidate ) {
if( $candidate is similar or $new is contained in it) {
//Duplicated!!
}
}
当然,在我的系统中,文档长度超过 3 个单词 :)