考虑引用同一篇论文的 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,因此不清楚应该设置什么阈值。如果阈值太低,那么不同论文的引用可能会被误认为是同一篇论文。但如果阈值太高,我们就会错过一些引用。
有更好的解决方案吗?
最佳答案
重要的是要考虑是什么使引文独一无二?
根据您的示例,作者、文章标题以及发表年份的组合似乎构成了唯一的引用。
这意味着您可以解析名称,然后比较它们的接近程度(因为第三个示例列出的名称不同)。解析标题,应该100%匹配。解析年份,也应该是100%匹配。
关于python - 如何自动识别同一篇论文的引用情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51159642/