# [61] デジタルアーカイブにおけるテキスト検索を考える: みんなで翻刻サーチの構築を手がかりとして

○永崎研宣 1 1)

1) 一般財団法人人文情報学研究所，〒113-0033 文京区本郷 5-26-4-11F

E-mail: nagasaki@dhii.jp
## Full Text Search for Japanese Texts in Digital Archives: A Case Study on Minna de Honkoku Search

NAGASAKI Kiyonori1)

1) International Institute for Digital Humanities, 5-26-4-11F, Hongo, Bunkyo, 1130033 Japan

## 【発表概要】

デジタルアーカイブのコンテンツに非常に多く含まれる前近代の日本語文字資料は、全文テキス卜検索によって有用性を高めることができる。Web API を経由することで「みんなで翻刻」 の外部に構築された全文検索システムである「みんなで翻刻サーチ」は、その種の全文テキスト検索において生じる課題に取り組み、現時点で比較的容易に実現可能な解決方法を採用した。本発表ではそれについて検討している。

## 1. はじめに

デジタルアーカイブの構築により、膨大な資料を Web 上で閲覧できるようになってきている。多くの場合、そこから欲しい情報を探し出すには、付与されたメタデータを検索して、内容に目を通すしかない。資料のタイトルや執筆者名など、メタデータに含まれる情報によって探し出せる資料であれば問題なく利用できるが、そうでない場合はそれほど容易ではない。特に文字資料の場合、求めている人名や地名、あるいは表現などが、タイトル等の基本的なメタデータに十分に含まれていることはあまり多くない。一方全文テキス卜検索はすべての問題を解決できるわけではないが、少なくとも、求める情報にたどり着く可能性を大きく高めてくれることは間違いない。そこで、本稿では、デジタルアーカイブにおける全文テキスト検索の課題について、特に前近代の文字資料を念頭に置きつつ、筆者が作成公開している「みんなで翻刻サーチ」 を手がかりとしてその現状と今後の見通しについて検討する。

## 2. 全文テキスト作成の状況

この課題に取り組むに際してまず確認すべきことは、全文テキストの作成にまつわる事情である。デジタル編集で作成された資料に関してはそれなりに対応できるが、そうでない資料に関しては、テキストデータを人の手
で入力するか、OCR で自動文字認識をするか、 といった形でテキストデータを作成しなければならない。

これについては様々な取り組みが進められており、本稿の主題に関連する「みんなで翻刻」によるクラウドソーシング翻刻[1]だけでなく、ディープラーニング技術を活用した 「くずし字OCR」[2]も現在注目に值するだろう。他にも大規模 OCR プロジェクトが進められていると聞している。海外を見ても、 Transcribe Bentham や米国 NARA における Citizen Archivist をはじめとするクラウドソ ーシング翻刻、HathiTrust 等、OCR で作成したテキストによる大規模テキスト分析が行なわれていたり、TCP (Text Creation Partnership) による EEBO (Early English Books Online)の全文テキストデータ公開が行なわれるなど、着々と取り組みが進められている。文字認識に関しては、版本のみならず、手書き文字認識（HWR, HTR）についても、 Transkribus 等のソフトウェアが開発・公開され、広く取り組まれるようになっている。

## 3. 前近代日本語資料全文検索の課題

全文テキストが得られたなら、次はそれを検索するということになる。現代日本語であれば、検索にはそれほどの苦労は要しないが、現在、デジタルアーカイブにおいて全文テキスト化が進められているものは著作権保護期間が過ぎたものが多く、仮名遣いや文字が現
代的でないものが多い。また、日本で書かれた漢文資料も相当数含まれている。そのような場合、現代日本語の検索に比して、いくつかの困難が生じることが想定される。

まず、いわゆる新字と旧字の使い分けの問題がある。これは翻刻時のポリシーによって様々であり、工夫せずに検索システムを構築してしまうと、ユーザが検索する際に全文テキスト中の新字旧字等の区別に配慮しながら検索しなければならないことがあり、面倒である上に検索漏れも生じやすい。

通常の現代日本語検索の場合、たとえば 「京都」を検索した時に「東京都」がヒットしないように、検索インデックスを作成する際に形態素解析を行なう。これにより、「京都」

「東京都」の区別だけでなく、人名や地名のみを対象とした絞り込み検索や、動詞を原形で検索できるようにするなど様々な工夫も可能になる。しかし、前近代の日本語テキストの場合、時代によって文法が異なっている上に、日本で書かれた漢文テキストも入ってくる。検索対象とする資料の時代や文体などをかなり限定できるなら、国立国語研究所が配布している Unidic[3]を用いることで、近代文語等のいくつかのカテゴリにおいてはある程度可能になるものの、現代日本語ほどの精度は期待できない。漢文については、漢文の形態素解析の研究は進められているものの、日本で書かれた漢文にまで対応できるような状況ではなさそうである。

また、もう一つの課題として、現在作成されつつある OCRテキストや翻刻テキストでは、紙媒体の改行をそのまま反映してしまうこともあり、行や頁をまたぐ単語やフレーズの検索が難しい場合がある。これは現代日本語であれば句読点を手がかりとしてデータの区切り方を変えることである程度対応可能である。 しかしながら、古典籍等の古い資史料のなかには句読点が書かれていないものもあり、この場合、句読点を入れることが一つの解釈を示すことになってしまう [4]。汎用的な知のプラットフォームとしてのデジタルアーカイブを目指すなら、様々な利用者のニーズに広く対応できるものにすることが望ましく、特定の解釈に依拠しなければ検索できないという状況は可能な限り避けたいところである。

以上のような課題について、前近代の資料を全文テキスト検索する際には配慮する必要がある。完全な解決策は現在のところ存在せず、資料の性質や全文検索の目的に応じて対処を検討することになる。以下、「みんなで翻刻サーチ」において筆者が取り組んだ一つの解決策について検討する。

## 4.「みんなで翻刻サ一チ」での取り組み

みんなで翻刻サーチは、日本発の縦書き対応クラウドソーシング翻刻プラットフォーム「みんなで翻刻」の Web API を通じて取得したテキストデータを全文検索できるようにしたシステムであり、 プロジェクトごと・コレクションごと・資料ごと等に絞り込み検索をしたり、直前・直後の数文字をグループ化したりすることで、テキスト群の簡易な分析をするといった機能も提供している。30 分おきに更新データを取得して検索対象に加える仕組みになっている。

（図 1）「みんなで翻刻」自体も検索機能を備えているが、「みんなで翻刻サーチ」は、上述の課題に対する比較的現実的な解決手法を適用しつつ、Web API を通じてより容易に任意の資料群の検索結果を簡単に取得できるようにするために開発したものである。本稿では、このシステムにおけるアプローチを紹介する。

図 1 データの流れ

このシステムで利用しているソフトウェアとしては、データの取得と検索データの整形・追加・更新には PHP を用い、集めたデー

タの検索には Apache Solr、これを操作するインターフェイスは Python3 のモジュール Flask と Javascript のライブラリ jQueryを組み合わせて作成している。現在このシステムはサーバ上で稼働しているが、検索システムについては Java と Python3 が動作すればスタンドアロンのパソコンでも利用可能である。検索システムのソースコードは GitHub に公開している。 システム自体を再利用しやすくするために、 データ取得についても Python3 で動作するように書き換えることを計画している。

このシステムにおいて、前近代テキスト全文検索の課題にいかにして取り組んだか、という点を以下に見ていこう。

## 4. 1 テキストの性質

「みんなで翻刻」に含まれる資料には、漢字仮名交じりのくずし字で書かれたものから漢文まで、様々なものが含まれている。「みんなで翻刻」自体は翻刻対象とする資料の種類を特に限定しておらず、今後も多様化していくことが予想される。資料の掲載は「プロジェクト」「コレクション」という単位で行なわれるものの、各プロジェクト内での資料の分類の仕方は特にルール化されていないようである。したがって、「みんなで翻刻」のテキスト全体を対象とした検索システムを構築しようとする場合、前近代のあらゆる資料を想定しておく必要がある。以下の取り組みはそのような前提のもとに行なわれた。

## 4. 2 新字旧字等の文字の使い分け

新字旧字等の文字の使い分けに関しては、 Apache Solr では、検索インデックスを作成する際に文字対応表を設定しておくことで、新字旧字等をまとめて検索できる仕組みが提供されている。ここではそれを採用した。この種の文字対応表については、東京大学史料編纂所や国立情報學研究所が提供するものもあるが、ここでは、chise.org が提供する文字才ントロジー[5]のデータを用いている。

なお、Apache Solr のこの機能では、文字対応表を更新しても既存の検索インデックスには適用されないため、文字対応表を更新した場合、検索インデックスをすべて作成し直さなければならない。データが少ないらちはそれほど問題にならないが、いずれ検討を要することになるだろう。

## 4. 3 単語区切りの問題

形態素解析による検索精度の向上については、ここでは断念した。上述の課題を包括的に解決する手法が今のところ存在していないためである。Apache Solr では、文字単位での n-grram 検索インデックスを作成できるため、 これを用いた。一方、Apache Solr でこの種の検索インデックスを作成すると、検索文字列の值をダブルクオーテーションで囲まない限り、「検索文字列に含まれる文字を含むドキユメント」がヒットしてしまい、検索ノイズが非常に大きくなってしまう。これを避けるため、デフォルトでダブルクオーテーションが付与されるようにした。

## 4. 4. 行$\cdot$頁またぎの問題

行・頁をまたぐ単語やフレーズの検索を行えるようにするためには、自動処理する手法の開発や人カマークアップなどの方法があり得るが、いずれも、すぐに目の前のデータに適用できるわけではなく、また、継続的に増え続ける多様なテキストに包括的に対応させるのは容易ではない。現状で比較的低コストに採用できる手法としては、テキストをすべてつないだ上で、n-gram 検索インデックスを使用するのが現実的である。しかしながら、 あまりに多くのテキストをつないでしまうと、検索結果としての有用性が下がってしまうため、何らかの粒度を設定する必要がある。ここでは、その粒度の設定も容易ではないと思われたため、頁またぎの検索については諦めて、行またぎのみに対応することとした。あるいは、アドホックな解決策としては、改頁の前（もしくは後でもよいが）にある程度の長さのテキストを前頁と重複する形で追加して、もし検索時に前頁と当該頁が重複箇所のみでヒットしてしまった前頁のみを検索結果として表示するような仕組みを用意するという手はあるが、今回は採用しなかった。

## 4.5. その他のエ夫

全文テキスト検索は、検索対象の絞り込みと適切な検索語の使用によって、目的の資料にたどり着くことが容易になる。本検索システムでは、みんなで翻刻が用いている「プロジェクト」「コレクション」「資料」という単位で絞り込み検索できるようにしている。

また、有用な検索語の検討を支援するために、検索した単語の前後 $n$ 文字を取り出して同一文字列の件数を多いものから順にリストする機能を開発した。たとえば「洪水」で検索した後にその前 4 文字を取り出すと図 2 のようになる。ユーザ自らの事前知識では「洪水」 から「千曲川」を連想できなくとも、ここから「千曲川」につながり、さらに探索していくことが可能となる。これも全文検索が可能とした有用性と言えるだろう。

## 5. 終わりに

本稿では Apache Solr を扱ったが、検索ソフトウェアとして同じ Apache Lucene を使用するソフトウェア、たとえば Elasticserch でも状況はほぼ同様であると思われる。

ここでは、前近代の日本語テキストの全文検索の利便性を少しでも高めるための工夫を提示した。他にも様々な手法があり得るはずである。今後、デジタルアーカイブに関わる人達の間で、最新技術でなくとも低コストで着実に、よりよく課題を解決できるような情報が、より広く共有されるようになることを期待している。

## 謝辞

本研究は「みんなで翻刻」に関わる皆様のおかげで成り立っているものであり、深く感謝したい。なお、本研究は JSPS 科研費 JP19H00516 の助成を受けたものである。

## 参考文献

[1] 加納靖之, 橋本雄太. 2018. 『『みんなで翻刻』による翻刻テキストの分析の試み」。じんもんこん 2018 論文集, 2018:147-152.

[2] 北本朝展, カラーヌワットタリン, Lamb Alex と Bober-Irizar Mikel. 2019. 「くずし字認識のための Kaggle 機械学習コンペティションの経過と成果」. じんもんこん 2019 論文集, 2019:223-230.

[3] 小木曽智信他. 2010. 「中古和文を対象とした形態素解析辞書の開発」. 情報処理学会研究報告. 人文科学とコンピュータ研究会報告 85 (2月): D1-8.

[4] 三上悠紀夫. 1959.「古典校訂本の句点は信用できるか」. 計量国語学 9 (6月): 22-24.

[5] 守岡知彦. 2009.「CHISE に基づくグリフ・オントロジーの試み」。じんもんこん 2009 論文集 2009 (16): 9-14.

図 2 「洪水」の前 4 文字を集約した例