使用 PDF OCR 技术转换后消除文本中的缺陷

使用 PDF OCR 技术转换后消除文本中的缺陷

我使用 OCR PDF 阅读器转换 PDF 文件。最初文本是 PDF 文件中的图像,PDF Foxit 使用 OCR 将其转换为文本,现在转换后的问题是文本未正确对齐,似乎所有单词和行都发生了移位。示例文本

  biochemistry can be divided in three fields; molecular genetics, protein science and metabolism. Over the last decades 
of the 20th century, biochem
istry has through these three disciplines becom
e successful at explaining living processes. Almost all areas o
f the life sciences are being uncovered and developed by biochemical methodology and research.[2] Biochemistry focuses on unde
rstanding how biolog
ical molecules give 
rise to the processes that occur within living cells and
 between cells,[3] which
 in turn relates greatly to the study and understanding of 
, organs, and organism structure and function[4]

Biochemistry is closely related to mol
ecular biology, the study of the molecular mechanisms by which geneti
c information encoded in DNA is able to result in the processes of life.[5]

Much of biochemistry deals with the structu
res, 
 an
d interactions of biological macromolecules, such as proteins, nucleic acids, carbohydrates and lipids, which provide the structure of cells and perform many of the functions associated with life.[6] The chemistry of the cell also depends on the 
 of smaller molecules and ions. Th
ese can be inorganic, for example water and metal ions, or organic, for example the amino acids, which are used to synthesi
ze proteins.[7]
 The mechanisms by which cells harness energy from their environment via chemical reactions are known as metabolism. The findings of biochemistry are applied primarily in medicine, nutrition, and agriculture. In medicine, b
iochemists investigate the causes and cures of diseases.[8] In nutrition, they study how to maintain health wellness and study the effects of nutritional deficiencies.[9] In agriculture, biochemists investigate soil and fertilizers, and try to discover ways to improve crop cultivation, crop storage and pest control.

问题还在于有些话被切成两半。我可以做些什么来修复文本以使其可读吗?

答案1

可能还有改进的空间,但这是一个开始:

perl -0777 -ne 's/([^ ])$\\n/\1/g; s/\\n/ /g; print' < input | fmt

它使用 perl 来组合换行符——如果行以空格结尾则继续行,否则完全删除换行符,然后通过管道输出fmt以将长行打断。

答案2

您可以使用awk线性删除额外的回车符,如下所示:

awk '{gsub(/\n/,""); gsub(/\r/,""); print}' RS='' file

biochemistry can be divided in three fields; molecular genetics, protein science and metabolism. Over the last decades of the 20th century, biochemistry has through these three disciplines become successful at explaining living processes. Almost all areas of the life sciences are being uncovered and developed by biochemical methodology and research.[2] Biochemistry focuses on understanding how biological molecules give rise to the processes that occur within living cells and between cells,[3] which in turn relates greatly to the study and understanding of , organs, and organism structure and function[4]
Biochemistry is closely related to molecular biology, the study of the molecular mechanisms by which genetic information encoded in DNA is able to result in the processes of life.[5]
Much of biochemistry deals with the structures,  and interactions of biological macromolecules, such as proteins, nucleic acids, carbohydrates and lipids, which provide the structure of cells and perform many of the functions associated with life.[6] The chemistry of the cell also depends on the  of smaller molecules and ions. These can be inorganic, for example water and metal ions, or organic, for example the amino acids, which are used to synthesize proteins.[7] The mechanisms by which cells harness energy from their environment via chemical reactions are known as metabolism. The findings of biochemistry are applied primarily in medicine, nutrition, and agriculture. In medicine, biochemists investigate the causes and cures of diseases.[8] In nutrition, they study how to maintain health wellness and study the effects of nutritional deficiencies.[9] In agriculture, biochemists investigate soil and fertilizers, and try to discover ways to improve crop cultivation, crop storage and pest control.

gsub函数具有以下形式:

gsub(regexp, replacement [, target])

这与 sub 函数类似,不同之处在于 gsub 会替换它能找到的所有最长、最左边、不重叠的匹配子字符串。 gsub 中的“g”代表“global”,意思是到处替换

gsub(/\n/,"") replaces all newline occurrences within a string with non for all input text. 

gsub(/\r/,"") replace all carriage return (ASCII code 13) occurrences with non for all input text. 

相关内容