我从一本书的内容表的ocr扫描中得到了几个html文件。 我的目标是解析它们,提取一些数据并最终将数据存储在csv文件中。 数据的结构类似于:
Location_1 - id.
Name_1 - year_1 - case_1, case_2, case_3 ...
- year_2 - case_1, case_2, case_3 ...
Name_2 - year_1 - case_1, case_2, case_3 ...
Name_3 - year_1 - case_1, case_2, ...
- year_2 - case_1, case_2, ...
- year_3 - num1, num2, ...
文件不规则,因此我不能依赖换行符或html标签来拆分内容。
到目前为止,我采用了自上而下的方法:
1)使用正则表达式检索位置和id 2)使用位置作为索引以较小的块分割文本以获取名称(带有函数) 3)用另一个正则表达式检索名称。 4)使用zip函数创建一个地方列表,id.s,名称
此时我感到困惑,并且无法获得一个合适的解决方案来获得包含内部节点(年份和案例编号)的分层排序结构。
阅读周围似乎正则表达式不是这种解析的最佳工具,最好使用语法,但我找不到“真实世界的例子”。
所以我的问题是:哪个是解析目录保持层次结构顺序的最佳解决方案,并且能够从中构建csv文件(csv文件每行应该有一个案例)?
编辑:
这是文本的摘录
Hulskov,Eltang s。,Brusk h。(1)。 - H,36。
Jes Nielsen,1636:131。
Kirsten Hansdatter,1636:131。
Hulvig,Hodde s。,ØsterHomeh。 - H,37。
Christen Hansen Smed,1637:569,571,580,625,808,1638:21,128。
粗体部分是位置,它们始终位于行的开头,后跟char +数字代码。在其他方面(斜体),有一个(或更多)年份的名称,然后是冒号后面的一些案例数字。
这是核心结构,尽管在本文的其余部分有几处不合规定。
我可以提取大部分位置名称,字符+数字代码和名称,我可以将它们设置在一个拉链列表中,以便保留分层次序,但我找不到一个合适的解决方案来绑定年份和案例每个名字。