如何比较两个标题(字符串)以查看它们是否引用同一本书?

时间:2016-07-15 09:37:43

标签: python string pattern-matching string-comparison difflib

我试图比较同一本书的两本书(来自不同来源),对于一本大书中的每本书,看他们是否参考同一本书。

这是一个小背景。我是一名图书馆实习生。这里的工作人员扫描了每本书的入藏号和ISBN,并将其作为csv文件提供给我。由于人为错误,有些书籍的ISBN错误。我应该找到那些错误。

对于每个入藏号,我从图书馆管理软件中知道正确的标题。对于每个ISBN,我从互联网上取出了标题。现在我想比较这两个标题,以了解是否已经扫描了不同书籍的ISBN来代替真实书籍。

我目前使用SequenceMatcher中的difflib类执行此操作:

def similar(seq1, seq2, strength):
    return (difflib.SequenceMatcher(a=seq1.lower(), b=seq2.lower()).ratio()
                > strength)

但是我得到了许多误报:

  

“通信网络:基本概念和关键架构”   => “通信网络”

     

“工程物理实验;实验室手册和练习册>与Viva Voce”=> “工程物理实验”

     

“水:科学与问题”=> “水V1 - V4”

     

“Schaum的理论概述和统计问题”=> “理论和概率和统计学的问题”

有更好的方法吗?

编辑:Here是我的程序的输出,包含所有误报。我使用'##'作为分隔符。

0 个答案:

没有答案