歴史物語

コンピュータで解く古代写本のパズル――カイロ・ゲニザ断片の復元プロジェクト

エジプト・カイロのシナゴーグ(ユダヤ教会堂)の「ゲニザ」(文書保管室)から発見された写本断片群「カイロ・ゲニザ」。950年から1250年頃にかけての歴史を今に伝える貴重な資料ですが、19世紀初頭に発見されて以来、その断片は世界中の博物館や図書館に散らばってしまいました。現在、研究者たちはコンピュータの力を借りて、これらの断片を再びつなぎ合わせようとしています。

なぜカイロ・ゲニザは特別なのか

ゲニザでは、古くなった文書は時期を見て焼却するのが慣習とされています。ところがカイロ・ゲニザの文書群は奇跡的に残されました。そのため、このコレクションは950年から1250年頃にかけての歴史をうかがえる唯一無二の窓となっています。

散らばった28万点の断片

科学者にとって厄介なのは、資料が複数の図書館に分かれて保管されている点です。最大のコレクションはイギリスのケンブリッジにあり、全28万点のうち約19万3000点が収蔵されています。ほかにもニューヨーク(アメリカ)やマンチェスター(イギリス)に大規模なコレクションがあります。

幸い、断片のデジタル化は着実に進んでいます。しかし依然として大きな課題が残ります。「どの断片同士がつながっていて、ひとつの写本を構成しているのか」という問題です。

コンピュータによる解析システム

イスラエルのテルアビブ大学とフリードベルク・ゲニザ・プロジェクトの研究者たちは、「joins(ジョイン)」――同じ文書から生まれた断片のグループ――を特定できるシステムを開発しました。画像処理技術を用いてスキャン済みページのコレクションを分析し、その情報をもとに、2つの断片が元々ひとつだったかどうかを順に判定していきます。

画像の前処理が鍵

解析を難しくしている要因のひとつは、スキャンの際に自動解析が考慮されていなかったことです。背景が一定でなかったり、断片がまっすぐ置かれていなかったり、定規が写り込んでいたりします。そのため、計測の前に写真の編集が必要です。まずシステムが写真の中から断片を選択し、傾きを補正して白黒画像へ変換します。これはコンピュータに高速に処理させるための工夫です。

ハフ変換で直線を見つける

解析ステップのひとつが、テキスト行の向きの特定です。テキストはまっすぐか、それとも少し傾いているのか、傾いているなら何度なのか。このためにシステムは「ハフ変換(Hough transform)」と呼ばれる、画像中の直線を検出する定番手法を使います。

ハフ変換では、まず画像上の各ピクセルについて「どの直線上にあり得るか」を求めます。直線は数式 x·cos(t) + y·sin(t) = R(Rは原点から対象の直線までの法線の長さ、tは法線とx軸のなす角度)で表せます。これをもとに、各ピクセルについてR/tの組み合わせのリストを作成します。各組み合わせは、その点が乗っている可能性のある直線を表します。このリストをグラフ化すると(tを横軸、Rを縦軸)、ピクセルごとに連なる一連の点列が得られます。このプロット――画像の各ピクセルに対応する線が描かれたもの――こそがハフ変換です。

ハフ変換は写真内の直線を可視化します。プロット上の白い斑点は、あるR/tの組み合わせに沿って多くのピクセルが並んでいることを示します。つまり、それらのピクセルは同じ直線上にあるということです。多数のピクセルが揃っているということは、写真でもはっきり見える線だと考えられます。

文字の並びを読み取る

カイロ・ゲニザの写真に本物の直線は含まれていませんが、同じ行にある文字のピクセルは常に一つの線上に並んでいます。ハフ変換をよく見ると、-90度と+90度の位置に10本の独立した線が現れます。これは用紙上の水平な10行のテキストに対応しているのです。

コンピュータは、分散が最も高くなる角度tを求めることで、これらの明瞭な線の位置を計算できます。こうしてシステムは紙面上のテキスト行の向きを決定します。たとえばt=45度で分散が最大なら、テキストは45度回転していることになります。

テキストを数値へ変換する

テキストの向きが重要なのは、システムが「射影プロファイル(projection profile)」によってテキストを特徴づけているからです。これは、水平方向と垂直方向それぞれについて、行・列ごとのピクセル値を合計していく処理です。テキストの回転を考慮せずにこのプロファイルを作ると、正しい結果は得られません。

プロファイルをもとに、システムはテキストのさまざまな特性を測定します。行数、行間隔、1行の高さなどです。これらが記事冒頭の図における「物理的計測値」にあたります。さらに筆跡解析のためには、画像の「キーポイント」――断片の中で際立って目立つ点――も検出します。これにはSIFT(Scale-Invariant Feature Transform)という手法が使われます。

物理的計測値もキーポイントも、突き詰めればただの数値の羅列です。写本断片はこうして一連の数値、いわゆる「特徴ベクトル(feature vector)」へと翻訳されます。コンピュータにとっては、画像よりも数値のほうがはるかに扱いやすいのです。

機械学習による判定

さて、本来の目的である「2つの断片が同じ文書に属するかどうかの判定」に戻りましょう。ここでは2つの断片の特徴ベクトルを比較します。似ていればいるほど、両者がひとつの文書から来ている可能性が高いといえます。文字サイズや行間隔、キーポイントなどがほぼ一致するはずだからです。しかし、2つの特徴ベクトルがどれほど類似しているか――正確には、コンピュータはどうやってそれを知るのでしょうか。実は、これは「学習」の問題なのです。

システムには「分類器(classifier)」と呼ばれる数学的なプログラムが組み込まれており、特徴ベクトルのような入力オブジェクトを受け取ると、それがどのグループに属するかを判定できます。つまり、写本断片を渡せば、どの文書に属するのかを答えてくれるわけです。ただしそのためには、プログラムが評価基準――何がグループA(文書A)に属する条件で、何がそうでないのか――を把握している必要があります。そこで使われるのが「訓練セット(training set)」、すなわち「どれとどれがペアになるかが分かっている断片のコレクション」です。分類器はこの情報から、グループとグループを区別する特徴を学習します。たとえば、花弁の大きさからアイリスの品種を判別できる、といった具合です。

成果と今後の課題

研究者たちは、確実につながりが分かっている「既知のjoins(断片ペア)」からなる訓練セットをカイロ・ゲニザから作成しました。これにより分類器は、joinが成立するかどうかの判断を学習しました。その後、新しい断片をペアで入力すると、分類器がそれがjoinか否かを判定したのです。

結果はまちまちでした。単一機関のコレクションに対するテストでは、80%のケースで正解を導き出しました。一方、異なるコレクション間の断片を組み合わせるテスト――研究者が各地を行き来する手間を省ける、このシステムの真価が問われる場面――では、9000件の候補joinsが検出され、上位2000件を人手で検証したところ、正解だったのはわずか24%にとどまりました。

やや期待外れな結果とはいえ、この研究は約1000件の新しいjoinsをもたらしました。これまで専門家たちが発見できたのが数千件程度であることを考えれば、かなりの収穫です。認識率がまだ低いため、人手による確認なしにシステムを運用することはできません。しかし、十分に価値のある補助ツールであり、正しい方向への一歩だといえるでしょう。