没有项目描述

DiscoverPagination的Python项目详细描述


Build StatusPyPI versionLicense: MIT

发现分页

一个python包,用于发现文档中有编号的页面描述。

存储库

https://github.com/wharton/DiscoverPagination

背景

在研究和分析部门,我们被要求完成几种不同类型的文本处理任务。 这些通常采取“请从y文档中提取x部分,类型为10k次”的形式 有目录,但很难使用目录,因为我们不知道哪些页是哪些页。

这个包的目的是发现页面的标记位置,然后引用这些页码来获取 文本部分。我们所做的大部分工作都涉及sec文件,它们是一种xml格式。这是 针对这种类型的文档进行了优化,但在其他情况下应该会做得很好。

要求

  • python 3.6
  • 模糊模糊:模糊匹配
  • python levenshtein:加速模糊匹配库

快速启动

安装

$ pip install DiscoverPagination

使用量

$ python
>> from discoverpagination import *
>> with open('./example_texts/0001193125-08-010038.txt') as inputfile:
...       doc = PaginatedDocument(inputfile, clean_xml=True)
>> pages = doc[20:22]
>> print(pages)
[' <P><FONT>19 </FONT></P>\n', '\n', '\n', '<p>\n', '<HR>\n', '\n', ' <P><FONT>The ...

方法

发现页面的方式需要几个步骤,并且依赖于一些假设。

假设

  1. 页面已标记
  2. 页面标记按顺序排列
  3. 页面标记使用数字字符
  4. 页数在页末
  5. 页码不与文本混合出现。(有人试图处理此案。)

步骤

  1. 从文件中读取文档
  2. (可选)清除XML文档中的标记属性。
  3. 从“1”开始,逐行扫描文档中的页面标记。(可配置)
  4. 找到每个数字时,行索引和文本都存储在一个键入页码的dict中。
  5. 找到每个编号后,页面将递增,直到不再保留文档行。
  6. 按相反的顺序重新扫描文档以查找页标记。
  7. 保持相同或相邻的页标记。
  8. 常见的“最佳匹配”格式是通过对每种类型的行进行排序来确定的。
  9. 丢失的页码将在它们应该在的区域中用“最佳匹配”进行扫描。例如A 在第4页和第6页之间以最佳模式搜索缺少的第5页。
  10. 如果仍然有缺页,它使用模糊匹配来猜测基于位置和模式。
  11. 文档将被返回并可通过切片引用。doc[10:12]获取第10到12页的行。

测试

python setup.py test

参考

fuzzywuzzy
python-Levenshtein
SEC EDGAR

贡献者

Douglas H. King

许可证

MIT

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

推荐PyPI第三方库


热门话题
java如何将springboot war部署到debian jetty8   java破坏了函数,即使它看起来是正确的   当MockMvc不可自动编译时,java会有选择地从Spring Security向其应用单个过滤器   java AndroidStudio每秒播放n次生成的声音   JavaJBossSeam:继承的方法被拦截了吗?   ScheduledExecutorService中线程默认名称中池号的java含义   在Java中用递归方法实现类Fibonacci的递归   java虚拟路径/文件夹   java即时与ZoneDateTime。转换到另一时区   用GaussLegendre算法在java中逼近Pi   java RecyclerView findFirstVisibleItemPosition()返回1   java根据当前经过身份验证的用户的角色返回不同的JSON对象   java从内部类访问扩展类的方法   Android程序中的Java语法WRT静态方法   可选参数初始化Java字符串文字时出错