自动解析学术参考文献中的引文


18

是否有任何软件(或伪代码)可以自动扫描一段文本(粘贴到工具中或从.doc / .pdf中读取)并使用标准格式识别引文数据?然后,数据将被分成其组成字段,并以XML,CSV或其他某种结构化数据格式导出。我看过cb2Bib,但是它只能从哈佛风格的引用中提取年份,这还不够。


您要扫描文本本身还是仅扫描参考部分?
innaM

仅参考-它可能是包含个人出版物的文档。
Alistair Knock

我不确定这是否是您可能需要的,但是您可以尝试一下refhive.com
Mostafa Elmoghazi

Answers:


4

看一下可以从输入文本生成XML的引文解析器列表:

http://freecite.library.brown.edu
http://paracite.eprints.org
http://aye.comp.nus.edu.sg/parsCit(从2012年8月1日开始处于维护模式)
http:// opcit.eprints.org
http://search.cpan.org/~mjewell/Biblio-Citation-Parser-1.10

使用freecite,您可以使用以下curl命令提交引用(在PHP中):

$cmd = "curl -H 'Accept: text/xml' -d \"" . $myinput . "\" http://freecite.library.brown.edu/citations/create";
$xmloutput = exec( $cmd );

另一个选项是github.com/inspirehep/refextract。它不是基于ML的,但在我的测试中效果很好。
约瑟尔

3

目前(2017年),最活跃的实施此项目的开源项目似乎是Anystyle Parser(最新版本07-2016)。可以通过Web界面,API使用它,也可以将其下载为RubyGem。

他们在他们的网站上明确提到实施是受ParsCit(最新版本2013?)和FreeCite(最新提交2009)的启发。

还可以形成他们的网站:

AnyStyle Parser使用基于条件随机字段的强大机器学习启发法,每个人都可以使用我们的内置编辑器对其进行训练。

这是一个非常酷的功能,这使它成为最有趣的实现(imho)。如API文档中所述,培训似乎非常简单。您只需提供一些手动更正的结果,然后运行Anystyle.parser.train命令。我不确定ParsCit和FreeCite是否也支持此功能,但是如果他们不支持,这对我来说似乎是一个巨大的功能差异。


除了Anystyle Parser以外,它们在当前投票最高的答案中均被提及。究竟是什么使他们脱颖而出?鉴于最初的问题,优点或缺点是什么?
赛斯

的确如此。我将编辑和改善答案。谢谢指出。
Wouter

看起来现在已经死了。
专家

1
@Brandon:我在这里发布了一个HOWTO:github.com/inukshuk/wapiti-ruby/issues/3
Wouter

1
看起来不错,谢谢!作为从未接触过红宝石的人,这确实会很有帮助。
布兰登

2

尝试使用Regex BuddyExpresso之类的工具。

如果您不是程序员,则正则表达式可能有点令人生畏,但它们的确并不难,尤其是对于像上述工具之一这样的工具而言。

这是某人使用正则表达式提取引文的示例:

引文解析正则表达式


1

门德利应该能够做到这一点。它可以导入PDF,然后将元数据导出到BibTeX,RIS和EndNote XML。它是免费下载的并且是跨平台的。

编辑:我在一些文档上对此进行了测试。PDF导入对于格式正确的参考文件似乎效果很好。对于我使用LaTeX创建的文档,所有与作者的引用形式均为“ Smith,J”。或“ J. Smith”等被罚款。如果作者是一家公司(一个单词),或者参考文献不完整,那么它就无法正常工作。提取的参考可以轻松地编辑并导出到BibTeX等。


2
“该功能在Mendeley 0.9.7中已删除,因为它消耗了大量资源(客户端和服务器端)而没有提供足够的价值。我们计划在将来以改进的形式重新引入它。” ...... feedback.mendeley.com/forums/4941-mendeley-feedback/suggestions/...
冰人

1

我已经见过Westlaw程序这样做是为了合法引用,但这可能不是您想要的。 参考管理器可能会对学术格式进行类似的操作,但我从未使用过。



0

Zotero是firefox的插件,可用于Web内容。不确定是否有用于文档/ pdf的类似工具


1
我知道这并非Zotero的设计目标,但是如果您将Firefox指向包含相关数据的文本文件或html文件,则Zotero可能会识别引用,然后可以将其添加到Zotero库并将其导出整个库转换成您喜欢的任何格式(我知道Zotero支持多种格式)。但是,这对于大量文件而言将是痛苦的。
尼斯

我不了解Zotero如何执行OP的要求。我已经安装了它,但是似乎没有选择来解析参考。
Rikki 2015年

Zotero会分析来自特殊编码网站的引用,而不是来自常规文本的引用。
奥查多

0

这可能更多地是@Abhinav的注释,但是zotero绝对只处理结构化数据,如您在此处所述:

http://www.zotero.org/support/getting_stuff_into_your_library#importing_records_from_other_reference_tools

一个有趣的技巧可能是尝试编写一个程序,在您喜欢的数据库中使用每个引文作为搜索查询,然后使用zotero之类的东西来生成引用信息。您也可以从citeUlike之类的服务中下载结构化信息。让我知道您是否最终会做类似的事情!(如果愿意的话,将其放在github上)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.