我需要一种机制来从PDF文档中提取书目元数据,以保存人们手动输入或剪切和粘贴它.
至少,标题和摘要.作者名单及其隶属关系会很好.提取引用将是惊人的.
理想情况下,这将是一个开源解决方案.
问题是并非所有PDF都对文本进行编码,而且许多PDF文本都无法保留文本的逻辑顺序,因此只需执行pdf2text即可获得第1列第1行,第2列第1行,第1列第2行等.
我知道有很多图书馆.它正在识别我需要解决的文档的摘要,标题作者等.这种情况每次都不可能实现,但80%可以节省大量的人力.
我每个帖子只允许一个链接,所以就是这样: pdfinfo Linux手册页
这可能会得到标题和作者.查看手册页的底部,可以找到www.foolabs.com/xpdf的链接,其中可以找到该程序的开源,以及各种平台的二进制文件.
要提取参考书目,请查看cb2bib:
cb2Bib是一个免费的,开源的,多平台的应用程序,用于从电子邮件警报,期刊网页和PDF文件中快速提取未格式化或非标准化的书目参考.
您可能还想查看讨论此主题的www.zotero.org上的论坛.
2010年2月,我们在伦敦Dev8D举办了一场比赛来解决这个问题,结果我们得到了一个很好的小GPL工具.我们还没有将它集成到我们的系统中,但它已经存在于世界各地.
https://code.google.com/p/pdfssa4met/
可能有点简单但谷歌搜索"bibtex +纸标题"ussualy从ACM,Citeseer或其他此类参考跟踪网站获取格式化的bibtex条目.当然,这是假设该论文不是来自非计算期刊:D
- 编辑 -
我有一种感觉,你不会找到一个自定义的解决方案,你可能想写citeseer,ACM和谷歌学者的引用跟踪器,以获得他们所做的事情的想法.还有很多其他的,您可能会发现它们的实现不是封闭源,而是发布的形式.关于这个问题有大量的研究资料.
我所参与的研究小组已经研究过这些问题,我们得出结论,手写提取算法或机器学习是实现这一目标的方法.手写算法可能是你最好的选择.
由于可能的变化量,这是一个非常难的问题.我建议将PDF格式化为文本(可以从任意数十个程序化PDF库中获得).然后,您需要实现自定义文本报废算法.
我会从PDF的末尾开始向后看,看看存在什么类型的引文键 - 例如,[1],[作者 - 年],(作者 - 年),然后尝试解析下面的句子.您可能必须编写代码来规范化从库中获取的文本(删除额外的空格等).我只会寻找引文键作为一行的第一个单词,每个文档只有10页 - 第一个单词必须有键分隔符 - 例如,'['或'('.如果没有键可以找到10页然后忽略PDF并标记它以供人为干预.
您可能需要一个库,您可以进一步以编程方式查询引用中的元数据格式 - 例如,itallics具有特殊含义.
我认为你可能最终花费相当长的时间来获得一个有效的解决方案,然后是一个不断调整和添加到报废算法/引擎的过程.