kindle OCRアプリ開発 OCR後のテキストの修正

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)
タイトルとURLをコピーしました