没有项目描述
DiscoverPagination的Python项目详细描述
发现分页
一个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 ...
方法
发现页面的方式需要几个步骤,并且依赖于一些假设。
假设
- 页面已标记
- 页面标记按顺序排列
- 页面标记使用数字字符
- 页数在页末
- 页码不与文本混合出现。(有人试图处理此案。)
步骤
- 从文件中读取文档
- (可选)清除XML文档中的标记属性。
- 从“1”开始,逐行扫描文档中的页面标记。(可配置)
- 找到每个数字时,行索引和文本都存储在一个键入页码的dict中。
- 找到每个编号后,页面将递增,直到不再保留文档行。
- 按相反的顺序重新扫描文档以查找页标记。
- 保持相同或相邻的页标记。
- 常见的“最佳匹配”格式是通过对每种类型的行进行排序来确定的。
- 丢失的页码将在它们应该在的区域中用“最佳匹配”进行扫描。例如A 在第4页和第6页之间以最佳模式搜索缺少的第5页。
- 如果仍然有缺页,它使用模糊匹配来猜测基于位置和模式。
- 文档将被返回并可通过切片引用。doc[10:12]获取第10到12页的行。
测试
python setup.py test
参考
fuzzywuzzy
python-Levenshtein
SEC EDGAR