规范引用的分析器。

citation-parser的Python项目详细描述


规范参考文献(例如“Hom.il.公司1124-125”)以一致的方式使用标点符号,这意味着我们可以定义一个形式语法来处理它们。

当遇到参考“Hom”时。il.公司1124-125”,人类读取器将对其进行如下解析:

  • 数字前面的文本包含有关被引用作品和作者的信息
  • 连字符用于指定文本段落的范围,例如第124行到第125行;
  • 分号将引用与sanme引用中的另一个引用分隔开(通常将同一作品或不同作品的多个引用链接在一起);
  • 逗号分隔了被引用作品的层次结构。在上面的例子中,1124-5表示从第1册第124行到第1册第125行
  • 当引文范围是一个范围时,相同的层次结构被折叠:1.124-1.125既可以写成1.124-125,也可以写成1.124s,而不会对人类读者造成任何信息损失。

引用解析器由一个lexer、一个解析器和一个用antlr编写并编译成python代码的树解析器组成。然后将解析的引用序列化为json。

例如:

>>> cp = CitationParser()
>>> cp.parse("Hom. Il. 1,124-125")
[{'work': u'Hom. Il.', 'scp': {'start': ['1', '124'], 'end': ['1', '125']}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPA。Eclipselink没有为mySQL提供密码,但它应该提供   我的Servlet和@FormDataParam存在java问题   java将什么作为上下文参数传递到文件I/O方法中?   如果两个值相同,java无法找到其中一个单选按钮   java在变量和方法名中使用下划线   JavaSpringMVC单线程安全?   klazz类的java Arraylist(反射Api)   java如何在数字字符串中查找最频繁的数字?   JavaAPI设计:使数据更易于阅读与强制更多API调用   JavaHadoopMapReduceforGoogleWebGraph   java无法启动gauge API:Runner意外退出   java如何在bluemix上使用ibm工作负载调度器?   拉取一年中某一周特定日期的所有日期   java为什么是我的角节点。js应用程序将图像上传到S3� 邮递员正确上传时的符号?   在不使用任何第三方jar的情况下将文件从本地传输到linux系统(java代码)   java将现有文件夹复制到Eclipse工作区中新创建的项目中   Java中的regex RegExp帮助   当使用“系统”外观时,Java组合框setSelectedItem会出现故障   JavaASM:在类的方法中获取局部变量名和值