日本語練習虫

旧はてなダイアリー「日本語練習中」〈http://d.hatena.ne.jp/uakira/〉のデータを引き継ぎ、書き足しています。

Tesseract-OCRの日本語調教(2)

調教情報(Training Tesseract3)を見ると、必ず用意すべきファイルとして「unicharset」「inttemp」「normproto」「pfftable」が挙げられている。このうち「unicharset」は先日眺めた、OCR認識させたい文字の一覧だ。
あとの3つのうち「inttemp」と「pfftable(またはpffmtable)」は、Windowsインストーラー版を導入した際に生成された「mftraining.exe」の実行によって出力されるもののようで、マニュアルには「inttempはshape prototypes」、「pffmtableはnumber of expected features for each character」とある。
「normproto」は同じく「cntraining.exe」の実行による出力とある。
どちらも「.tr」ファイルを入力して上記の出力を得ると書かれている。
結局のところ、「はだしの元さん」ブログ記事「Tesseract-OCRの学習」に記されている通り、いちいち画像を準備してTesseract.exeを調教モードで動かすような手順が現状では必須のようだ。



そこで、デフォルトのjpn.traineddataに含まれていない0213の括弧類と、Google頻度3000位以内の0208/0213第一水準漢字を含む、次の文字列を小塚明朝Rで横組み表示させた画像を作成した。

〘迭〙〖謬〗⦅柾侭⦆

調教モード1で起動したtesseract.exeが生成した「.box」ファイルは、次のようになっていた。

正 77 59 110 163 0
送 117 59 224 164 0
国 231 58 263 164 0
匠 410 58 449 164 0
謹 457 58 565 163 0
] 571 58 610 164 0
( 756 58 775 164 0
( 770 58 790 164 0
不 797 58 842 164 0
正 831 64 903 159 0
イ 910 58 947 163 0
尽 936 58 1018 160 0
) 1025 58 1044 164 0
) 1039 58 1058 164 0

「柾」「侭」などは、予想通りのOCR認識結果だ。
これを、次のように修正して調教モード2のtesseract.exeに入力すると、それらしい「.tr」ファイルが生成された。

〘 77 59 110 163 0
迭 117 59 224 164 0
〙 231 58 263 164 0
〖 410 58 449 164 0
謬 457 58 565 163 0
〗 571 58 610 164 0
⦅ 756 58 790 164 0
柾 797 58 903 164 0
侭 910 58 1018 163 0
⦆ 1025 58 1058 164 0

実は、横組みで教えた亀甲括弧のデータで、縦組みテキスト中の亀甲括弧が認識されるかどうかを、まず確認してみたいと思っていた。近日中に検証してみるつもり。



調教情報の中ほどにある「NEW Automated method」というセクションには「training/text2image」を実行すると上記の手順が簡略化されて色々と便利という感じのことが書いてあるのだが、Windowsインストーラー版には見当たらないのが非常に残念だ。

ドキュメント類ではなく日本語調教データのソースを見ると、「desired_characters」「forbidden_characters」「jpn.config」「jpn.params-model」「jpn.unicharambigs」が並べてある。
「desired_characters」はASCII文字、「forbidden_characters」は私用領域の類になるようだ。「desired_characters」に含まれるバックスラッシュが、jpn.traineddataの「unicharset」には見えなかったように思うが、無視していいのかどうか、判らない。
「(lang.)config」は、解説が見当たらないので正確なところは不明。ソース中に書かれているコメントなどから推察すると、個々の文字の判定にどういう補助情報を使うのか――辞書情報やメトリクス情報など――といった意味合いのようだ。
「(lang.)params-model」は、jpn以外の言語と見比べてみても、何のことやらさっぱり解らない。
「(jpn.)unicharambigs」は、ファイルの中身から弁似のための仕組みだなと予想される通り、Manual Pageに記載法が書いてある。ただ、似たイメージのどちらを取るかという重みづけの決定方法が、自分にはまだよく解らない。