我正在尝试使用 Difflib.SequenceMatcher 来计算两个文件之间的相似性。这两个文件几乎相同,除了一个包含一些额外的空格、空行而另一个不包含。我正在尝试使用
s=difflib.SequenceMatcher(isjunk,text1,text2)
ratio =s.ratio()
以此目的。
所以,问题是如何为这个 isjunk 方法编写 lambda 表达式,以便 SequenceMatcher 方法将忽略所有空格、空行等。我尝试使用参数 lambda x: x==" ",但结果不是一样棒。对于两个非常相似的文本,该比率非常低。这是非常反直觉的。
出于测试目的,以下是您可以在测试中使用的两个字符串:
是什么促使 jwovu 做好你的工作?好的,这是一个试图赢得价值 100 美元的软件开发书籍的条目,尽管我不读
编程书籍。为了赢得奖品,你必须写一个条目,以及
是什么促使 fggmum 做好你的工作。因此这篇文章。第一个动机钱。我知道,这听起来对许多人来说并不是一个很好的灵感,并且说金钱是激励因素之一可能会让我失去机会。
好像金钱是编程世界的禁忌。我知道有些人不能被金钱所激励。另一方面,Mme 生活在一个真实的世界中,
有房贷要付,我自己要养活,还要付账单。所以我真的不能把钱排除在我的考虑之外。如果我能得到一大笔钱
干得好,那肯定会鼓舞我的士气。我不在乎我是在使用旧工作站,还是被迫与其他人共用房间或隔间
人,或者不得不忍受一个烦人的老板,或者其他什么。事实上,在一天结束时我会带着一大笔钱走人本身就足够了
让我克服所有的障碍,忍受所有的痛苦和伤害自尊心,忍受慢速的电脑,甚至忍受
这是另一个字符串
是什么促使你做好工作?好的,这是一个试图赢得价值 100 美元的软件开发书籍的条目,尽管我不阅读编程书籍。为了赢得奖品,你必须写一个条目并描述是什么促使你做好工作。因此这篇文章。
第一个动机,金钱。我知道,这听起来对许多人来说并不是一个很好的灵感,并且说金钱是激励因素之一可能会让我失去机会。好像金钱是编程世界的禁忌。我知道有些人不能被金钱所激励。向他们致敬。另一方面,我生活在一个现实世界中,要支付房屋抵押贷款,要养活自己,要支付账单。所以我真的不能把钱排除在我的考虑之外。
如果我能因为做好工作而得到一大笔钱,那肯定会鼓舞我的士气。我不在乎我是在使用旧的工作站,还是被迫与其他人共用房间或隔间,或者不得不忍受烦人的老板,或者其他什么。一天结束时,我会带着一大笔钱走人,这一事实足以让我克服所有的障碍,忍受所有的痛苦和伤害自尊心,容忍一台运行缓慢的电脑,甚至忍受
我运行了上面的命令,并将 isjunk 设置为 lambda x:x==" ",比率只有 0.36。