gpt4 book ai didi

python - 将 PDF 转换为文本 : remove word breaks

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:16 29 4
gpt4 key购买 nike

对于我的博士项目,我正在做一些语料库准备,主要包括清理我的文本文件。我有 170 部荷兰小说的语料库,其中大部分是 epub 格式,我可以使用 Calibre 轻松将其转换为 txt 格式。

问题在于,有些小说是 PDF 格式,其中某些行末尾包含断字符。当我将这些 PDF 文件转换为 txt 时,断词仍然存在。例如:

De reden van alle beroering 是 niet moeilijk te aden。 Adri-aan bleef 甚至 staan​​ bij een gezelschap jongerejaars om te ho-ren welke uitkomst de commentie kreeg。玛尔·特韦尔·希吉·斯通德te luisteren naar meningen over de eager kwestie Nieuw-Gui-nea, overviel hem de herinnering aan een zonovergoten mid-dag 于 1939 年 9 月在 dezelfde hal toen hij 开始,学生 Gene-eskunde 在 Polen besprak 结识了 jaargenoten het zojuist ontketende Duitse of fensief。

我想知道是否有一种快速的方法可以消除这些断词。没有任何在线工具可以做到这一点。我对 python 有点熟悉,所以涉及 python 的解决方案可能会受到欢迎。也许一个想法是使用正则表达式来删除 txt 文件中行末尾的所有“-”字符?

这是我尝试的,使用下面的评论:

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()

但是,这不起作用......

最佳答案

我不知道它是否有效,但你可以使用replace:

text.replace('- ','')

或使用正则表达式:

import re
with open('pdf_test.txt','r+') as f:
text = f.read()
text = re.sub('- ','',text)
f.seek(0)
f.write(text)
f.truncate()

但这两种方式将替换它们找到的每个此类字符('-'),而不仅仅是在句子末尾。好处是我认为你在普通文本中找不到“-”。

更新

嗯,看到你的评论后,我猜文字看起来像这样:

De reden van alle beroering was niet moeilijk te raden. Adri-
aan bleef even staan bij een gezelschap jongerejaars om te ho-
ren welke uitkomst de discussie kreeg. Maar terwijl hij stond te luisteren naar
meningen over de acute kwestie Nieuw-Gui-
nea, overviel hem de herinnering aan een zonovergoten mid-
dag begin september 1939 in dezelfde hal toen hij, student gene-
eskunde, met jaargenoten het zojuist ontketende Duitse of-
fensief in Polen besprak.

(我编码格式以便能够保持它的格式......)

在这种情况下,如果您只想将每行末尾的所有“-”替换为“”,您可以这样做:

import re
with open('pdf_test.txt','r+') as f:
lines = f.readlines()
f.seek(0)
for line in lines:
if line[-2]=='-':
line = re.sub('-','',line)
f.write(line)

.endswith('-') 在这种情况下也不起作用,因为每行的最后一个字符是 \n,所以不会有对原始文本的实际更改 - 这就是为什么我使用 line[-2] 来检查“-”字符。

关于python - 将 PDF 转换为文本 : remove word breaks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40382485/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com