3

假设以下抄袭生成模型:

抄袭者: 1. 删除部分文本 2. 重新排列部分文本 3. 添加新文本。

前任。如果 ABCD 是原始文本(A、B、C 和 D 可以是段落或一堆句子),则输出可以是 DEAFCG,其中 E、F 和 G 是添加的附加文本。

此外,抄袭者将添加小错误(插入、替换和删除的速率很小)。

我们如何去检测这种抄袭的例子?

到目前为止我所做的:尝试使用最长公共子序列方法。它检测一组线性匹配的文本。在上面的示例中,它将检测 D 或 AC(取决于它们的长度)

我需要什么:处理这个问题的原则方法。对现有文献的任何引用都会非常有帮助。任何想法的伪代码也很好。请不要代码。

这既不是作业,也不是面试问题。我已将我的实际问题简化为这个玩具问题。

4

1 回答 1

0

对于许多应用程序,有许多算法可以做到这一点。据我所知,他们主要做的(以及你想做的)是计算编辑距离: http ://en.wikipedia.org/wiki/Edit_distance

根据http://en.wikipedia.org/wiki/Levenshtein_distance#Relationship_with_other_edit_distance_metrics,有许多不同的算法略有不同 :

例如最长公共子序列处理添加和删除但不处理替换;Damerau-Levenshtein 距离还考虑了替换以及相邻字符的换位。

于 2013-04-10T22:04:33.967 回答