假设我有一个文本段列表t1
:
t1 = [
'Hello everybody, ',
'this is by ',
'far the best ',
'chicken I had ',
'in my entire ',
'life.'
]
另一方面,我有一个组合的稍微改变的文本t2
:
有没有一种方法可以创建一个diff来显示每个片段的差异?因此,结果应该类似于:
Hello everybody,
- this is by
+ this was by
far the best
- chicken I had
+ beef I had
in my entire
life.
所以我需要将合并后的文本映射回单个片段。difflib(或其他第三方库)中是否有任何函数可以为我执行此操作?在
目前,我通过首先组合t1
来创建一个diff,然后创建一个详细的diff,它显示了行内的更改:
d = difflib.Differ()
diff = d.compare([''.join(t1)], [t2])
现在我必须评估输出,并尝试将所有内容映射回我以前使用的段。我认为这是可行的,但在我为这个解决方案投入大量精力之前,我想可能值得尝试找出,如果有一个更简单的解决方案,可能会自动进行这种重新映射。在
一方面,我最终得到的是分段文本,另一方面是组合文本的原因是:对于每个文本段,都有时间戳(存储在不同的文件中)来定义文本在何时被说出。这对于在播放视频时突出显示文本非常重要(可以将其视为字幕)。用户现在应该能够提交对这篇文章的更正,因为我希望他们能够在整个文档中编辑,而不受限制的边界,我只需呈现组合文本。现在,当用户进行编辑时,我必须使用结果并尝试找出编辑发生在哪些片段中,然后相应地更新(或合并或删除)片段。在
目前没有回答
相关问题 更多 >
编程相关推荐