【发布时间】:2018-07-03 16:56:51
【问题描述】:
考虑 3 种方式来引用同一篇论文:
cite1 = "Yoshua Bengio, Réjean Ducharme, Pascal Vincent and Christian Jauvin, A Neural Probabilistic Language Model (2003), in: Journal of Machine Learning Research, 3(1137--1155)"
cite2 = "Yoshua Bengio, Réjean Ducharme, Pascal Vincent, Christian Jauvin. (2003) A Neural Probabilistic Language Model"
cite3 = "Bengio Y, Ducharme R, Vincent P, Jauvin C. (2003) A Neural Probabilistic Language Model"
自动识别同一论文的引用的一种简单方法是使用 Python 标准库中的 difflib 模块计算这些引用的相似度:
from difflib import SequenceMatcher as smatch
def similar(x, y): return smatch(None, x.strip(), y.strip()).ratio()
similar(cite1, cite2) # 0.721
similar(cite1, cite3) # 0.553
similar(cite2, cite3) # 0.802
不幸的是,相似度指标的范围从 0.553 到 0.802,因此不清楚应该设置什么阈值。如果阈值太低,那么不同论文的引用可能会被误认为是同一篇论文。但是如果阈值太高,我们就会错过一些引用。
有更好的解决方案吗?
【问题讨论】:
标签: python string-comparison similarity citations