見出し画像

書籍のテキスト化手順と活用

電子化されていない書籍を編集可能なテキストデータにするための手順と活用方法です。例えば、

 ・E-inkデバイスで読書
 ・epubに変換してスマホで閲覧
 ・Ankiなどのカード作成
 ・合成音声ソフトによるオーディオブックの作成

などの用途に活用できます。もっと効率的な手段があるとは思います。あくまで個人的なものです。


⑴ テキスト化

スキャンした画像データを文字認識ソフトに読み込ませ、テキストデータ化します。一般的なソフトは、

 ・e.typist
 ・読取革命

くらいしかありません。私は前者を使用しています。後者のほうが認識精度は高いようですが、認識前にルビ部分を削除しなければならないらしいです。

 ⒜ 推奨設定
  ▶ 表示>テキストレイアウト表示 オフ
  ▶ 文字認識>文字種>修正
   * 認識する文字を指定できる。
   * 絶対使わない漢字や記号は対象外推奨。
  ▶ 文字認識>認識言語指定 日本語
   * 縦書きの場合は英語認識がお粗末なので手打ち。
  ▶ 文字認識>改行コード挿入指定 自然改行
  ▶ 文字認識>ルビ認識指定 削除
  ▶ 解析>単語登録検索
   * 頻繁に登録するので「autohotkey」で円滑化。
   * 右側「Alt」を押すと単語登録画面に移行する。
   * 単語登録はかかさず実施することを推奨。

#HotIf WinActive("ahk_exe e_typist.exe")
RAlt::
	{
		Send "!k"
		Send "r"
		return
	}

  ▶ ツール>操作設定>認識> 誤認識解析を行う
  ▶ ツール>環境設定>フォント>背景の色設定
   * 黒背景など推奨。

 ⒝ ショートカットキー
  ▶ 「F6」で文字認識が実行される。
  ▶ 「F9」で認識結果をコピーできる。
  ▶ 「ctrl」と「PageUp/Down」でページ移動できる。

 ⒞ 修正方法

当然ですが、100%の精度でテキスト化できるわけではありません。テキスト化において最も重要なことは、修正作業の簡略化です。
一括置換機能が搭載されていますが、正規表現が使用できませんし、行をまたぐと機能しません。「Python」のテキスト置換機能を利用します。
「間・問」「人・入」「諸・諳」などの漢字や、「つ・っ」「ア・ァ」「ば・ぱ」などの大文字・小文字、濁音・半濁音は、非常に誤認識されやすいので、適宜、置換対象を更新しましょう。

import re

b = r'置換前のテキストファイルのパス'
o = r'出力先'

with open(b, 'r', encoding='utf-8') as str1:
 str2 = str1.read()

str2 = str2.replace('X', 'Y')
str2 = re.sub('X', r'Y', str2)

with open(o, 'w', encoding='utf-8') as output:
 output.write(str2)

  ▶ str2 = str2.replace('X', 'Y')
   * 「X」を「Y」に置換。
  ▶ str2 = re.sub('X', r'Y', str2)
   * 正規表現によって「X」を「Y」に置換。

置換リストを、ひらがな・カタカナ・漢字などの要素ごとに分割すると、整理が楽かもしれません。

from list import Hiragana, Katakana, Kanji

b = r'置換前のテキストファイルのパス'
o = r'出力先'

with open(b, 'r', encoding='utf-8') as str1:
 str2 = str1.read()

str2 = Hiragana.pattern1(str2)
str2 = Hiragana.pattern2(str2)

str2 = Katakana.pattern1(str2)
str2 = Katakana.pattern2(str2)

str2 = Kanji.pattern1(str2)
str2 = Kanji.pattern2(str2)

with open(o, 'w', encoding='utf-8') as output:
 output.write(str2)

このメインとなるコードがあるファイルと同じ場所に「list」というファイルを新たに作成し、

import re

def pattern1(str2):
    str2 = str2.replace('であつて', 'であって')
    str2 = str2.replace('あむゆる', 'あらゆる')
    return str2
def pattern2(str2):
  str2 = re.sub('[すず][へぺ][てで]', r'すべて', str2)
  str2 = re.sub('おいで[ばは]', r'おいては', str2)
  return str2

などの実際の置換リストを記述する。Notepad++などのワークスペースフォルダーを使用すると、追加・修正が容易だと思います。

一括置換を実施した後は、目視で誤字を確認します。サクラエディタなど、特定のキーワードを強調表示できるエディターを利用すると、修正が簡単です。
濁音・半濁音や、漢字表記の数字、記号などを強調表示すると便利です。色分けもできます。

/[バビブヘベボ]/k
/[パピプペポ]/k
/[〇一二三四五六七八九][〇一二三四五六七八九]/k
/[─==間問]/k

⑵ 活用例

 ⒜ E-inkデバイス

書き込みやマーカーを記入できるデバイスがあると、読書が非常に楽しくなります。私はSKTのBOOXシリーズを利用しています。kindleデバイスなども良いでしょう。

 ⒝ epub変換

スマートフォンなどの画面で、スキャンしたままの画像データの書籍を読むのは、いささか面倒です。
「LeME」というepub変換ソフトで、Word形式の書籍データをepubに変換し、epubリーダーで読書できるようにすると、大変便利です。縦書きのepubリーダーとしては、「Reasily」が秀逸です。

「Reasily」ではCSSで文字詰めや文字間隔などの表示形式をカスタマイズできます。フォントは「IPAex明朝」使用。

body {
font-feature-settings: "vpal";
letter-spacing: -0.0005em;
}

 ⒞ オーディオブック作成

テキストデータ化した書籍は、合成音声ソフトを用いてオーディオブックにすることができます。「VOICEPEAK」は、昨今の音声合成ソフトの中でも抜きんでています。


⑶ 以上紹介した手順や活用方法をすべて実行しようとすると、かなりの時間とお金が必要になります。それをするだけの価値があるかは完全に個人によるでしょう。

ただ、この工程のなかで、テキスト化する書籍を確認がてら一周読めますので、そういった意味では効率的かもしれません。

この記事が気に入ったらサポートをしてみませんか?