我有以下问题。 我更改了在线文章的某些部分 之后,其他人开始编辑此在线文章。
现在我正在尝试使用python编写一个代码来识别,如果我之后的人在我改变的部分中改变了一些东西(以及在添加/删除的字符中测量了多少)。
例如: 文字是: 你好Wolrd!今天发生了什么?再见 我将文本更改为: 你好Wolrd!今天发生了什么?今天我写了一个考试。再见 我之后的家伙编辑: 你好Wolrd!今天发生了什么?今天我写了一本数学考试。再见
现在,代码应该确定,她改变了“n math”并告诉我她改变了多少百分比的编辑。在这种情况下: 大约20%。
我开始使用“difflib”,但现在我发现代码没有任何意义。
我的代码执行了以下操作:
使用difflib,我想出了我改变的文本中的位置。
@@ -1,4 +1,4 @@
之后,我检查了我之后以同样方式改变的那些人。
@@ -1,6 +1,6 @@。在此之后,我比较了,如果行是相同的(+值相等 - 值)。但现在,我发现,这没有成功。如果我之后的人开始在我改变的部分的中间编辑。
有人知道,该怎么办?
答案 0 :(得分:0)
差异匹配补丁库(模块diff_match_patch)产生更清晰的输出并且更易于理解:
取自官方文件:
diff_main("Good dog", "Bad dog") => [(-1, "Goo"), (1, "Ba"), (0, "d dog")]
使用实际代码:
from diff_match_patch import diff_match_patch
D = diff_match_patch()
D.diff_main("Good dog", "Bad dog")
a' -1'是删除
a' 1'是一个补充
a' 0'意味着没有变化
请参阅:https://code.google.com/p/google-diff-match-patch/wiki/API