【发布时间】:2018-04-19 06:44:08
【问题描述】:
好的,所以我在这里遇到了一个非常棘手的问题,我似乎无法正确实施。
我有三个字符串。我们称它们为 string1、string2 和 string3。这些字符串来自语音转文本 API(所有这些我都已经整理好了)。它们非常相似,但并不完全相同(例如,可能存在翻译错误……有些词可能略有偏差,并且 string1 中可能有一个不在 string2 或 string3 中的额外词)。
为了比较 string1、string2 和 string3,我将它们打印到一个文本文件中。问题是,如果这些字符串相当大,很难将它们并排比较。
比较它们的更好方法是“逐行”。
我正在寻找一种方法来打印 string1 的 n 个单词,换行,然后打印 string2 的 m 个单词,直到 string1[n] == string2[m],然后对 string3 执行相同的操作。
然后我需要对 string1、string2 和 string3 的其余部分重复此过程,以便“逐行”充分比较它们。
我发现这是一个非常困难的问题。到目前为止,这是我所得到的:
我首先通过 string1.split() 对字符串进行标记。
然后有一个占位符来跟踪我们在每个字符串中使用的单词是有意义的。
我定义了一个批量大小为 k(比如说 10 个单词),它表示一行的长度。然后我打印 string1 的 k 个单词,设置 string2 = string2.index(string1[k]) 的占位符。
但从这里开始,我绝对被吓到了!
关于如何进行的任何提示/建议/理论。有没有图书馆可以做到这一点?
任何帮助将不胜感激!
【问题讨论】:
-
你看过 difflib 吗? docs.python.org/3/library/difflib.html
-
啊啊啊这个库太棒了!谢谢!
-
研究 unix
diff实用程序也可能会有所帮助。这个标准库模块是一个实用程序的 python 实现,几十年来一直用于此目的。您可以区分几乎任何编程语言的库。 en.wikipedia.org/wiki/Diff_utility
标签: python string string-comparison