对于我的博士项目,我正在做一些语料库准备,主要是清理我的文本文件。我有170本荷兰小说的语料库,其中大部分都是epub格式的,我可以很容易地用Calibre转换成txt格式。在
问题是有些小说是PDF格式的,其中一些行的末尾有分词。当我把这些PDF文件转换成txt文件时,分词仍然存在。例如:
德雷登·范阿勒·贝罗林是尼特·莫伊利克·特雷登。他甚至还说,他是一个很好的人。马尔·特维杰·斯托德 这是一个非常重要的问题- 达格于1939年9月在德泽尔夫德哈尔托恩希吉,学生吉恩·埃斯昆德在波伦贝斯普拉克遇到了芬西夫的贾格诺顿·赫特·佐朱伊斯特·昂特泰德·杜伊茨。在
我想知道是否有一个快速的方法来消除这些断字。没有一个在线工具能做到这一点。我对python有点熟悉,所以可以欢迎使用python的解决方案。也许一个想法是使用正则表达式来删除txt文件行尾的al'-'字符?在
这是我尝试的,使用下面的评论:
import re
with open('pdf_test.txt','r+', encoding='utf-8') as f:
text = f.read()
for line in text:
if line.endswith('-'):
line = re.sub('-',' ',line)
f.seek(0)
f.write(line)
f.truncate()
但是,这不起作用。。。在
PDFMiner是您的一个选项,并且this is an example从PDF页面提取文本。在
出于您的目的,您必须将第176行改为
这将删除换行符。在
我不知道它是否有效,但您可以使用
replace
:或使用
^{pr2}$regex
:但这两种方法将取代他们找到的每一个这样的字符('-'),而不仅仅是在句子的末尾。好在我觉得你在普通文本中找不到“-”。在
更新
好吧,看了你的评论后,我想文字是这样的:
我能保持代码的格式
在这种情况下,如果只想将每行末尾的“-”替换为“”,可以执行以下操作:
在这种情况下,
.endswith('-')
也不起作用,因为每行的最后一个字符是\n
,所以对原始文本没有实际的更改,这就是为什么我使用line[-2]
来检查'-'字符的原因。在相关问题 更多 >
编程相关推荐