11.ふりがなと空白の判定

Created: 2023/08/15
Last Update: 2023/08/15

これまで述べた構成で、おおむね文字認識は完成しました。 しかし、文庫本にはふりがなが振ってあり、これを文字認識BOXの大きさと並びを用いて、 後から再構成する構成にしたところ、ふりがなが付いている文字(親文字)は、どこまでで、 ふりがなは、どの親文字に対するふりがななのかを判定させるのが、かなり難易度が高いことがわかりました。

ふりがなと親文字である判定を加える

前述のCenterNetを用いた、文字の位置と特徴量を同時に出力するモデルにおいて、 LeafMapネットワークを増やして、その文字がふりがなである確率と、ふりがなの親文字である確率を 出力する様に追加しました。

空白の次の文字である判定を加える

この方式の残念な点は、文字が認識されるため、文字と文字の隙間といった空白の情報が失われてしまいます。 もちろん、文字認識Boxの並びを解析することにより、その隙間を検出することが可能です。 しかし、英単語の中の空白の大きさと、単語と単語の間の空白の大きさの違いは、フォントによっては微妙で、 後から判定する難易度が、これも高いことがわかりました。

LeafMapネットワークに追加する確率に、その文字が空白の次の文字である確率を加えて学習させることにしました。

圏点である判定を加える

小説では、圏点と呼ばれる強調の点が振られることがあります。 これを判定するために、LeafMapネットワークに追加する確率に、圏点である確率を加えます。

Code mapの構成

ふりがなを0x1、ふりがなの親文字を0x2、圏点を0x4、空白の次の文字のマークを0x8と符号化し、 マップとしておきます。文字の中心から文字の大きさの楕円状の領域に1,0でマップとします。

もくじへ戻る