首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可调diff算法

可调diff算法
EN

Stack Overflow用户
提问于 2011-08-28 03:00:17
回答 2查看 448关注 0票数 3

我感兴趣的是找到一种比典型算法更复杂的算法来查找字符串之间的差异,这种算法可以通过一些参数进行“调整”,以在“最大化相同字符的数量”、“最大化跨度长度”和“尽量保持整个单词的完整性”之间取得平衡。

最终,我希望能够使结果尽可能人类可读。例如,如果一个长句子被一个全新的句子替换了,它与原始句子的唯一共同点是按顺序排列的单词" the“和" and”和"a“,我可能希望它被视为整个句子都被改变了,而不仅仅是四个特定的跨度被改变-就像一个理性的人会怎么看一样。

这样的事情真的存在吗?虽然我使用的是javascript/node.js,但任何语言的算法都会很有帮助。

实际上,我对使用蒙特卡罗方法或类似方法的东西没有问题,如果它的结果更好。计算时间不是问题(在合理范围内),确定性也不是问题。

注意:虽然这超出了我要问的范围,但为了以防万一,我将再抛出一件事:如果它能识别order....for之外的更改,那就太好了。如果有人改变了两个段落的顺序,而让它们在其他方面保持相同,如果它能识别出它是一个简单的移动,而不是一个减法和一个不相关的加法,那就太棒了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-29 01:42:45

我和diff_match_patch在一起很走运。有一些很好的选项可以调优它以提高可读性。

票数 1
EN

Stack Overflow用户

发布于 2011-11-25 19:50:25

尝试http://prettydiff.com/它的代码已经格式化,以便与Node使用的框架CommonJS兼容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7216661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档