4

我正在用 php 编写一个工具来比较 HTML 文件并显示差异。现在我正在寻找一种有效的方法来计算两个 HTML 文件之间的百分比差异。这些文件可以任意长(我拥有的文件可以长达 300000 个字符)。

经过一番研究,我偶然发现了 Levensthein 距离,它是 O(n*m) 的算法,需要空间 O(n*m):php 版本最多只能支持 255 个字符和我自己的 O(n) 空间实现,太慢了。之后,我尝试了php函数similar_text,但该算法对于非常大的HTML文件也太慢了。

所以现在我正在寻找另一种更有效的算法来比较 HTML 文件。近似算法也很好。谁能给我一些关于如何做到这一点的建议?

4

1 回答 1

1

您可以设置 xdiff 扩展:

http://www.php.net/manual/en/function.xdiff-file-diff.php

然后得到两个文件的差异,根据这个差异,你可以很容易地得到百分比。

例子:

  • 第一个文件A:400字
  • 第二档B:400字

差异结果:从 A 到 B 的 200 个单词差异

那会给你50%的相似度。

于 2014-03-03T20:30:13.877 回答