オープンソースのOCRエンジン、tesseract-ocrの日本語用データ(tessdata/langdata)について。
残念ながら、日本語の漢字すべてに対応していないのは既知の事実(参考サイト)。リンク先の情報は2014年のバージョン3.02用のデータ。
要するに認識できないであろう漢字についての調査結果。
記事にする意味があるかについては深く考えないものとする。
調査対象について
調査対象はバージョン3.04用のデータについて調査。JISX0213の漢字リストはこちらより入手したものを使用。
jpn.trainddataをcombine_tessdata
コマンドでjpn.traineddata
展開する。
$ combine_tessdata -u jpn.traineddata tmp/jpn.
Extracting tessdata components from jpn.traineddata
Wrote tmp/jpn.config
Wrote tmp/jpn.unicharset
Wrote tmp/jpn.unicharambigs
Wrote tmp/jpn.inttemp
Wrote tmp/jpn.pffmtable
Wrote tmp/jpn.normproto
Wrote tmp/jpn.punc-dawg
Wrote tmp/jpn.word-dawg
Wrote tmp/jpn.number-dawg
Wrote tmp/jpn.freq-dawg
Wrote tmp/jpn.shapetable
Wrote tmp/jpn.params-model
お目当のファイルはjpn.unicharset
。エディタで開くと先頭に3714という数字があるのでこれがおそらく学習済みの文字の総数。このファイルの左端の列をgrepするか、もしくはlangdataリポジトリの、jpn.training_text
ファイルをgrepすれば学習済みの漢字かどうかは確認できる。
常用漢字の対応状況
いわゆる常用漢字1945字のうち、下記の6字が含まれていない。
虞 劾 勺 錘 朕 匁
- 虞美人草の「虞」
- 弾劾の「劾」
- 「勺」(しゃく):尺貫法の容積の単位
- 「錘」(おもり)
- 「朕」(ちん):皇帝の自称
- 「匁」:尺貫法による重さの単位
あまり使わない字のような気もするが、6字ともJIS第一水準。
JIS第一水準
JIS第一水準漢字で含まれていないものは以下の123字。
穐 袷 吋 嬰 盈 穎 掩 鴛 恢 劾 浬 鈎 劃 廓 鰍 竃 侃 澗 翰 翫 誼 黍 笈 禦 兇 彊 粁 駈 虞 轡 粂 祁 戟 諺 乎 鈷 肱 砿 艮 孜 鴫 悉 蔀 屡 蕊 勺 輯 酋 藷 恕 鋤 妾 樵 鉦 擾 錘 趨 椙 頗 栴 賎 糎 岨 鎗 詑 柁 鐸 歎 樗 瀦 苧 凋 牒 朕 鍔 菟 鍍 梼 撞 鴇 涜 橡 椴 噸 乍 迩 廼 狽 矧 駁 硲 櫨 溌 釆 匪 簸 弼 畢 彪 斌 蕗 弗 箆 穆 釦 哩 柾 粍 鵡 棉 緬 摸 匁 鑓 愈 猷 熔 慾 葎 掠 賂 榔 亙
3.02の頃よりは未収録漢字が減っている。
OCR対象文書次第では必要そうなものがいくつかある。必要に応じてjpn.training_text
に追加してtesstrain.sh
で学習させるべし。
JIS第二水準
546字だけ収録で残りは含まれていない。数が多いのでgistへ。
tesseract-ocr 3.04 日本語未収録漢字のうち、JIS第二水準漢字の一覧
JIS第三水準
収録されているのは1文字だけで残りは未収録。
鄧
多分、中国の政治家、鄧 小平(とう しょうへい)さんの「鄧」だろう。著名人の苗字なんでGoogleのコーパスにおける出現率が高くなったのであろう。
JIS第四水準
収録漢字なし。下手に学習させると認識率低下しそうではある。
まとめ
分類 | 規格上の漢字の総数 | 対応している漢字 | 未対応漢字 |
---|---|---|---|
常用漢字 | 1945 | 1939 | 6 |
JIS第一水準 | 2965 | 2842 | 123 |
JIS第二水準 | 3390 | 546 | 2844 |
JIS第三水準 | 1259 | 1 | 1258 |
JIS第四水準 | 2436 | 0 | 2436 |
ただし、ひらがな、カタカナ、数字、アルファベット、記号類などのいわゆる非漢字については考慮してない。
機会があれば非漢字についても調査しておきたい。