一、全角符号半角符号替换
通过统计原始数据集里的全角半角符号占比,可以得知半角符号的占比是要显著高于全角的
故使用全角符号转半角符号,能更准确地识别和处理图片信息,提升效率和准确性。
# 全角符号半角符号替换
# 将文本中的中文标点符号替换为对应的英文标点符号
def convert_punctuation(text):
"""
Convert Chinese punctuation to corresponding English punctuation in the text.
"""
punctuation_map = {
'!': '!', # 中文感叹号换为英文感叹号
'%': '%', # 中文顿号换为英文逗号
'‘': "'", # 中文左单引号换为英文左单引号
'’': "'", # 中文右单引号换为英文右单引号
}
for cn_punc, en_punc in punctuation_map.items():
text = text.replace(cn_punc, en_punc)
return text
二、修正错误文本和符号
修正得到真实标点,处理OCR识别中可能出现的错误识别或者不准确标点符号问题。
def convert_OCR(text, find_gap, find_len):
Tf = 0 # 初始化标志位为0
for false_punc, true_punc in OCRwikisome.items():
gap = true_punc[1] # 获取真实标点的间隔属性
len = true_punc[2] # 获取真实标点的长度属性
# 检查间隔属性是否是整型
if not isinstance(gap, int):
# 如果不是整型,则转换成整型
gap = int(gap)
# 检查长度属性是否是整型
if not isinstance(len, int):
# 如果不是整型,则转换成整型
len = int(len)
# 如果文本与假标点、间隔和长度属性匹配
if text == false_punc and gap == find_gap and len == find_len:
text = true_punc[0] # 替换文本为真实标点的第一个元素
Tf = 1 # 设置标志位为1,表示替换成功
return text, Tf # 返回替换后的文本和标志位
# wiki文件的处理
# 处理OCR识别过程中可能出现的错误识别或不准确的标点符号问题
def convert_OCR_submit(text):
Tf=0
for false_punc, true_punc in OCRwikisome.items():
gap = true_punc[1]
len = true_punc[2]
# 检查变量是否是整型
if not isinstance(gap, int):
# 如果不是整型,则转换成整型
gap = int(gap)
if not isinstance(len, int):
# 如果不是整型,则转换成整型
len = int(len)
if text == false_punc and ((gap == -1 and len == 1) or (gap == 0 and len == 2) or (gap == 2 and len == 2) or (gap == 4 and len == 2)\
or (gap == -1 and len == 3) or (gap == 0 and len == 3) or (gap == 1 and len == 3) or (gap == 4 and len == 3)\
or (gap == 5 and len == 3) or (gap == -1 and len == 4) or (gap == 0 and len == 4) or (gap == 1 and len == 4)\
or (gap == 3 and len == 4) or (gap == -6 and len == 4) or (gap == -1 and len == 5) or (gap &