给出两段文字,如何进行比对?
就是如何给出两段文字,能够想word的审校功能一样,标出修改过程,或者类似听写之后的批改过程,比对出来两个字符串(段落)之间的插入、修改(基于字符)、删除功能。github的范例很好,但似乎不是最小编辑,不是逐词操作。
举个例子:
第1句话:Why I Cann’t changed it. Becuase we can’t.
第2句话:Why we can’t change it now? Because you can.
程序能够对这两个句子进行对比,找到不同之处,自动跳过相同的部分,标记出来不一样的地方。
php如何实现这个算法?同时给出一个分数。是不是跟编辑距离有关?搜索关键词是:php diff?还是 compare strings?
以沪江为例:http://ting.hujiang.com/mansu…
感觉https://github.com/kijtra/tex…这个算法不如沪江的好用:
逐词比较。最简单的就是2个
for
循环,按每个索引位的单词进行比较。
DEMO
textdiff
楼主看看上面的吧,这个实现逻辑比较简单。
搜索关键字的话直接就是
diff text
就ok了。github
各位答案都很棒,在很多年前,我改了一个C#版本的 HTMLDiff,
代码非原创,但是测试过并无明显问题
现在支持PHP、Javascript,之前的版本有Ruby、C#、Python版本
支持汉字,具体请看下图
支持HTML标签
代码地址:https://www.oschina.net/code/…
效果如下:
You can find the github open source project,and you can fork it@https://github.com/chrisboult… ,never the less,you can ask me for a detail answer about this question,but i don’t introduce your using the php script do the time-consuming things,it is stupid,you should do it using C or C++ compiled binary exe program to solve this problem.