python - AI/深度学习方法来判断论文中的参考文献?
问题描述
这是我工作的一部分。为了使学生的论文遵循给定的格式标准,我必须判断学生论文中的参考类型,将其项目(作者,标题,杂志名称,年份等)分开,然后如果缺少某些项目,请给出修改建议。这很乏味,所以经过几年的工作,我太累了。我想通过编程来做到这一点。
在一篇论文中,许多参考文献都会被引用,例如,期刊论文、学位论文、书籍等。它们有不同的格式。另一方面,如果我向不同的期刊投稿,也许我必须满足不同的格式
我正在寻找算法(你可以阅读我之前使用正则表达式的尝试。但是当使用更多不同的格式时,这显然会失败。python re 找不到这个分组名称)可以
- 判断一篇论文是否是期刊、论文、书籍……
- 单独的作者、论文标题、书名、出版商、年份等。请注意,作者、论文标题、书名可能有标点符号
- 如果有很多作者,则告诉每个名字。因为通常我们最多只需要3个作者,如果发现更多,我们应该使用“et al”
- 如果缺少某些信息,则提示完整性
以下只是期刊论文格式的示例。我们可以发现通过简单的字符串匹配很难理解它们。
[example 1] Duan,C., X.Meng, C.Tu. How to make local image features more efficient and distinctive[J].IET Computer Vision,2008,2(3):178-189.
我们可以发现有 3 个作者("Duan,C.", "X.Meng", "C.Tu"),他们的名字用逗号分隔,但是逗号也用在一个人名中("Duan,C. ”)。所以实际上很难用正则表达式来判断人名
[example 2] Harris,C. & M.Stephens. A combined corner and edge detector[J]. Alvey Vision Conference,1988,5(7):147-151.
& 用于分隔两个名称,但是我们可以发现也许其他人将其写为Harris,C., M.Stephens
如果我们使用 MLA 格式(自动引用 MLA 格式的期刊)
[example 3] Fearon, James D., and David D. Laitin. "Ethnicity, Insurgency, and Civil War." American Political Science Review 97.01 (2003): 75. Print.
我们可以发现这个没有用[J]
,但是如果按照这个模式Last, First M., and First M. Last. "Article Title." Journal Title Series Volume. Issue (Year Published): Page(s). Print.
,我们可以说它是一篇期刊论文。我们可以将其“翻译”成其他格式:
Fearon, James D., David D. Laitin. Ethnicity, Insurgency, and Civil War[J]. American Political Science Review. 2003 97(01): 75
其中 75 表示这篇论文只有一页,即 75。
至于 IEEE 格式(IEEE Style: Journal Articles),我们发现上述格式不需要的 vol、pp 等
[example 4, IEEE format]G. Liu, K. Y. Lee, and H. F. Jordan, "TDM and TWDM de Bruijn networks and shufflenets for optical communications," IEEE Trans. Comp., vol. 46, pp. 695-701, June 1997.
如果我们阅读
[example 4, missing pages] G. Liu, K. Y. Lee, and H. F. Jordan, "TDM and TWDM de Bruijn networks and shufflenets for optical communications," IEEE Trans. Comp., vol. 46, June 1997.
我们应该告诉用户通过添加页面来检查和完成
解决方案
推荐阅读
- css - 如何将 bootstrap 5 网格混合和匹配用作 bootstrap 4?
- javascript - v-chip 未在 v-html 中正确呈现
- python - 在索引的两个时间戳之间删除行
- ssis - 在 SSIS 灵活文件目标中创建动态文件夹路径
- python - 如何用python语言从zk9500指纹设备中读取数据
- arrays - 公开名单
或 COM INTEROP 的对象数组 - random-forest - 使用随机森林进行集成
- c# - 如何在 C# 中使用 CSV 助手解析 TSV 文件?
- android - 从firebase获取值时如何检查onRadioButtonClicked值?
- selenium - 如果我有一个可以返回多个页面的页面方法,我该怎么办?我正在使用 Java 和 Selenium