画像に写った文字を読む作業は、くずし字の認識、版面の解析、字形の比較、翻刻へと連なる。どの段階にも精度の限界があるため、誤りが残る前提で結果をどう扱うかが全体を貫く問いになる。

認識と版面解析の実際——嵯峨本の古活字分析

くずし字認識モデルを版面の解析に使った例が、嵯峨本の古活字分析である。AIくずし字認識モデルRURIで文字の矩形を認識し、その矩形から版面の傾きを推定して補正する。続いて行を検出してグリッドを推定し、最後に筆線とグリッドの交差を確認して、そこで分割できるかを判定する三段階の構成をとる [UC-043 §活字ブロックの自動分割]。前提は、ブロックの高さが1ユニットの整数倍であること、ブロックの間に空きがないベタ組みであること、の二条件である。この条件が崩れる資料には別の設計が要る [UC-043 §活字ブロックの自動分割]。

精度を押し上げたのはエージェンティックループである。人手で書いたコードのF1スコアは0.8599で、筆線を切る誤りや空白を切る誤りが残っていた。マルチエージェントシステムSakana Fuguに分割処理の仕様と20ページの正解データを与え、AIがコードを書き、20ページで確認し、誤りをフィードバックするループを回した結果、残り303画像でのF1スコアは0.9902に達した [UC-043 §活字ブロックの自動分割]。ただしこの精度は嵯峨本に特化した条件で得られたもので、他の資料への一般化は課題として残る [UC-043 §知見と展望]。

囲った領域内のくずし字をすべて読む多文字認識サービスとしてKuroNetがあり、1枚の認識は1〜3秒程度で終わる。結果はIIIF Curation Viewerの文字マーカーで表示され、原画像と比べながら読める [UC-001 §くずし字認識とアノテーション]。ビューアの仕組みは「画像の流通基盤」を参照。認識モデルを言語や資料に合わせて差し替える考え方は「AI で問う・読む」が扱う。

字形の比較——同じ活字による刷りをまとめる

文字を認識するだけでなく、字形そのものを比べて物理的な活字へさかのぼる試みがある。同じ文字の二つの刷りは文字として常に似ているため、手がかりはインクが一致しない部分の形になる。同一の活字による刷りでは輪郭に沿った細い縁だけが異なり、別の活字なら筆画そのものの位置が違う [UC-043 §活字ブロックの同定]。

比較にはssim_ink(筆線の一致度)とdiff_blobs(余ったインクの形)の二測度を使い、ロジスティック回帰で一つの数値にまとめる。その数値をもとに制約付き平均連結の凝集型クラスタリングを行い、平均類似度が0.85を超える組み合わせがなくなるまで併合する。「手」の字では37の刷りが4本の活字にまとまった [UC-043 §活字ブロックの同定]。

検証には刷られた紙の構造を独立した手がかりとして使った。1枚の紙(丁)は一つの版から一度に刷られ、1本の活字はそこに一度しか置かれない。クラスタリングにはページ(半丁)の情報を与えるが丁の情報は与えない設計のもとで、同じ見開きの向かい合うページでは11,411ペア中227件が同じ活字にまとまり、同一丁では11,034ペア中1件にとどまった [UC-043 §活字ブロックの同定]。この差は、クラスタリングが丁の構造と整合していることを示す。同定した活字ごとに刷りを重ねて平均すると変動するインキングや圧力の効果が消え、この本からは1,601の印刷面が復元された [UC-043 §活字面の復元と組版の復元]。

同定の暫定結果では、シングルトンが3,467(40.8%)残っているが、多めに見積もられている可能性があり、改良は続いている [UC-043 §活字ブロックの同定]。

組版の構造を読み取る

活字の同定は組版の分析につながる。嵯峨本では1行の高さが17ユニットに固定され、短い行を詰め物で埋めることはしない。調整はテキスト側で行われ、背の高い活字に載せて1ユニットを稼いだり、連綿の活字で節約したりする [UC-043 §活字面の復元と組版の復元]。全書で88.3%の行が17ユニットちょうどに収まり、超える行はない。ブロックのユニット数と彫られた文字数は93.5%で一致し、少ないものが3.6%、多いものが2.9%という内訳も、こうした工夫から説明できる [UC-043 §古活字データセットV2]。

認識結果には誤りが残る

機械の認識結果をそのまま成果とせず、ビューア上で原資料に重ねて人が確認・修正できる状態に戻す構成を、くずし字認識の実践事例は組み込んでいる [BP-001 §機械の認識結果を人手の確認に戻す]。KuroNet Text Editorで読み順を行内・行間で手動指定してテキスト化する例や、自動読み順推定で得た行テキストと人手翻刻との編集距離を計算し、概ね90%程度の精度で出る対応箇所候補をマーカー表示で人手確認する例がある [BP-001 §機械の認識結果を人手の確認に戻す]。人手の作業と機械処理は一方向ではなく、互いの入力になっている。

マルチモーダルLLMを使うHumanitext OCRは、資料の特徴と抽出したい内容をプロンプトに書くだけで動き、資料ごとの事前学習やテンプレート設定を要しない。テキストは行単位で座標とともに取り出されるため、原本画像と行テキストが一対一で結びつき、校正ビューアで行ごとの目視校正と共同校正ができる [UC-038 §三つの公開サービス]。著名な校訂版を忠実に転写するとコピー防止機能(Recitation)に検知されて出力がブロックされることがあるが、各行に使い捨てトークン付きの行番号を付けて出力させ、後段で取り除くという実装で対処している [UC-038 §三つの公開サービス]。誤りが残る前提での工程設計そのものは「AI でデータを作る」が扱う。

翻刻と字体——どこまで原文を残すか

翻刻とは判読して活字に起こすことだが、原文の字体や誤字をどこまで残すかは目的によって変わる。読解の工程には、字を読むことに続いて、誤りの向こうにある正しいテクストを読む段階がある。テキストに誤りがあれば、自分の知識でその先にある正しいテキストを想定しながら読む [UC-039 §文献を「読む」とはどういうことか]。翻刻の段階で誤字をそのまま記録するか読みを補うかという選択は、この読解の行為とつながっている。

Humanitext Readerは訳・注がAIによる初稿であることを明示し、疑わしい箇所や解釈の分かれる箇所を文単位のコメントで議論できる。明らかな誤りは同じパネルから報告でき、キュレーターの確認を経てTEI/XMLと訳文に反映される [UC-038 §三つの公開サービス]。暫定性を開示し、修正を工程に戻す仕組みの一例である。

認識と同定の成果を再利用する——そあん(soan)

古活字の分析で得た画像を、現代日本語のテキストをくずし字の版面に組む仕組みに転用した例がそあん(soan)である。形態素解析でテキストをトークン列に分けて候補となる古活字画像の組み合わせを作り、続いて1行の文字数と行間からレイアウトを確定する。語の境界で改行するためトークン情報が要る点に、組版の構造への理解が反映されている [UC-043 §そあん(soan)による古活字の再生]。

くずし字学習への応用では、好きなテキストから学べるので文字だけに集中できる。そあんで組んだ教材を1年生の授業で使い、有名な台詞で学生の関心を引いた報告がある [UC-043 §そあん(soan)による古活字の再生]。北本氏はこの取り組みを、過去の本をできるだけ忠実に作り直す「復元」と、現代の人が使える形で遺産を作り直す「再生」に分けて説明する。そあんが目指すのは再生であり、嵯峨本にない英語のアルファベットを追加したのもそのためである [UC-043 §そあん(soan)による古活字の再生]。字形の分析結果をどう使うかは、どちらを目指すかで変わる。