谢老师,rms里面查重的我还没试验,单对batch这里,您的设置还是不能完全解决问题,比如以下两种情况:
1.一套书共用ISBN,比如金庸的《鹿鼎记》,出版商把它做成五本,ISBN(80)、题名(20)、作者(20)都一样,加起来就120了,重了。200$h不一样,就不能算重!这种情况十分普遍,上下册共用ISBN的太多了。
2.一本书有很多作者,有很多超过五六个的,论文这种情况就很普遍了(一个导师写篇文章恨不得把他的学生全带上,论文不做MARC,但是电子化收录是有,查重也要用到),200字段一般只著录三个,而702字段却要全部著录上,这个老师领导他的学生写的第二篇论文就极有可能不能被系统收录,加权算法把它判重了,哪怕一个学生重复就给10分权重。
MARC书目里面影响因素太多,更改设置可能对这批书有效,换一批就无效了。真的要用加权算法,那恐怕真的要一位数学家仔细研究MARC后设置一个比较好的权重分配体系,这样就不像您说的是一种简单的查重实现方法了。
是否可以参考人判断一本书是否重复的思维模式呢。
人在判断两个复杂事物,比如书目,是否相同的时候,肯定不会给一个点设置分值,然后边比较边在脑子里加分。在逐点比较的时候,人会每比较一个点就做出一次综合判断:要么相似则继续比较;要么得出结论不相似,退出;人的判断往往最准确,这就是一种是非关系,计算机就用0、1就可以模拟了。
设置key=0(不重复)
1、先比较ISBN,相同则key=1,继续;(否则,key=0,退出,判不重,ISBN不同的书不可能重复,至少我询问的有经验的编目员说不可能,除非著录错误)
说明:ISBN相同的未必就重,200$h未必相同。
2、比较200$h,重复key=1,继续;(否则,key=0,判不重)
说明:到这里200$h重了未必就重,可能是再版书,再版书有可能用前一版的ISBN(这样可能给出版商省钱吧)。
3、比较205字段或200$e,重复key=1,继续;(否则key=0,判不重)
按说,到此应该结束了,但是为了防止盗版书盗用别人ISBN(200$h和205及200$e均为空),再继续比较。
4、题名重复,key=1,(不重复,key=0,退出)
5、第一责任者(很重要,只比较第一责任者,第二责任者参考价值不大)也一样,key=1,那重复可能性太大了;(若不重复,key=0,退出)
6、再看看出版社,出版社也一样,key=1。(否则key=1,退出)
7、再比较出版年(不比较月份,很多Marc不著录月份),相同ke=1,(否则key=0,退出)
结束,key=1 重复,key=0不重复。
可能不是很严谨,就是表达一个意思,这样的算法很简单,也不太容易犯错,给老师参考。