GoogleのAPIを使うことで画像から意図するテキストを得ることができました。
それについて、半角スペースが随所に入っていたり、UnicodeのU+FEFFが入っていたりしていました。
URLもいらないのでそれらを除去するコードを作成しました。
import re
# 見えない文字、「ZERO WIDTH NO-BREAK SPACE(ZWNBSP)」、「BYTE ORDER MARK(BOM)」(UnicodeのU+FEFF)を削除
def remove_zwnbsp_and_bom(filepath):
with open(filepath, 'r', encoding='utf-8-sig') as file:
content = file.read()
content = content.replace('\uFEFF', '') # U+FEFF を削除
with open(filepath, 'w', encoding='utf-8') as file:
file.write(content)
# URL(httpで始まる文字列)を削除
def remove_http_urls(filepath):
with open(filepath, 'r', encoding='utf-8') as file:
content = file.read()
# httpで始まるURLを検索して削除
content = re.sub(r'http://[^\s]+', '', content)
# ()内のhttpで始まるURLを検索して削除
content = re.sub(r'\([^\s]*http://[^\s]+\)', '', content)
with open(filepath, 'w', encoding='utf-8') as file:
file.write(content)
# 半角英字の間にないスペースだけ削除する
def delete_space(filepath):
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
# 半角スペースを削除するが、半角英字の間にあるものは削除しない。
content = re.sub(r'(?<![a-zA-Z])\s|(?<=\s)(?![a-zA-Z])', '', content)
with open(filepath, 'w', encoding='utf-8') as f:
f.write(content)