我正在尝试从OCR的图像文本输出中重新创建段落和缩进,如下所示:
输入(想象一下这是一张图片,而不是输入):
输出(有一些错误):
如您所见,不会保留任何段落或缩进。
使用Python,我尝试了这样的方法,但它不起作用(经常失败):
代码:
def smart_format(text):
textList = text.split('\n')
temp = ''
averageLL = sum([len(line) for line in textList]) / len(textList)
for line in textList:
if (line.strip().endswith('!') or line.strip().endswith('.') or line.strip().endswith('?')) and not line.strip().endswith('-'):
if averageLL - len(line) > 7:
temp += '{{ paragraph }}' + line + '\n'
else:
temp += line + '\n'
else:
temp += line + '\n'
return temp.replace(' -\n', '').replace('-\n', '').replace(' \n', '').replace('\n', ' ').replace('{{ paragraph }}', '\n\n ')
有没有人有任何关于如何重新创建此布局的建议?我正在使用旧书,所以我希望用LaTeX重新排版它们,因为创建一个Python脚本非常简单。
谢谢!
答案 0 :(得分:4)
您可以通过查看每个5-10像素水平切片的entropy将图像拆分为多个段落。
这意味着您将图像分成一堆水平条,每个高5-10像素。如果条带不“忙”,那么您可以假设那里没有文本。您可以使用它来隔离段落。现在,您将单独拍摄每个段落,并将其提供给您的OCR。
答案 1 :(得分:0)
您可以尝试判断一行上的第一个单词是否可以轻松放入上一行,表示有意换行,而不是纯粹寻找短行。除此之外(并密切注意你在你的例子中所做的标点符号),我认为唯一的另一种选择是回到原始图像。