我试图比较同一本书的两本书(来自不同来源),对于一本大书中的每本书,看他们是否参考同一本书。
这是一个小背景。我是一名图书馆实习生。这里的工作人员扫描了每本书的入藏号和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是我的程序的输出,包含所有误报。我使用'##'作为分隔符。