【頭の整理】日本での「テキストデータベース」作りのステップ5くらい

前回記事の続き。

テキストデータベースが「どういう深さのものか」を決めて、それを記述するというのが前回の到達点である。 しかしながら、前回は、研究志向の強いものについては、 「Level 5: 学術編集のためのタグ付け」で一括されてしまっていた。「学術編集のための」 と言っても、分野や手法によって関心は様々であり、それに応じた深さの方向性がある。 これをどうするか、というのが次の問題である。

たとえば、言語学のなかには、単語の品詞情報や発音・アクセントなどの情報が欲しい人がいるだろう。 その場合、各単語にタグがつけられて、そのタグによって本文中の単語に対する付帯情報を取り出せるように なっているとよいだろう。有名なものの一つに国立国語研究所が作成した現代日本語書き言葉均衡コーパス(BCCWJ)がある。 ここで「原動力」という単語をみてみると以下のようにタグ付けされている。

f:id:digitalnagasaki:20220225013136p:plain

<LUW>というタグで始まり、そのタグに対して l_lForm="ゲンドウリョク" l_pos="名詞-普通名詞-一般" といった形で属性を与えることで、 </LUW>というタグで終わるところまでの文字列に対して、現代日本語の分析に必要な情報を与えている。さらに、<LUW>の次に<SUW>という タグもあり、これが「原動」と「力」にそれぞれついている。これは短い単位の単語区切りということで、この短いものに対しても、 やはり属性を通じて日本語分析に必要な情報が与えられている。このようにして、本文中の「原動力」という単語に対してタグを用いて 研究に有用な情報を付与しているのである。

あるいは、古典文学作品の代表格である『源氏物語』について少しみてみよう。『源氏物語』には実に多様な 研究のアプローチの仕方ががあるが、ここでは校異情報に関するタグ付けをみてみよう。

『源氏物語』と言えば、あまりにも有名なので、紫式部が著わした文章そのものが残っているのではないかとつい期待して しまうところだが、実際には、紫式部自身が書いたものはもう存在せず、それを写した写本の形式で日本各地に 伝承されている。そして、写本はいつも完璧に複製できるわけではなく、むしろ誤記や表現の仕方の変化などに よって内容が少しずつ変わってしまうこともある。我々が読んでいる『源氏物語』とは、そのようにして伝わってきた 写本を並べて差異を確認し、どれが紫式部が書いたものにより近いかを是々非々で検討した上で作成されたものである。 聖書にしても仏典にしても、原著者が書いたものが残っていない場合には、どうしてもそのような差異を気にする 必要が出てくる。そこで登場するのが、「各写本でこの箇所はどう書かれているか」を記述できるようなタグ付け方法である。 この種のものは、前出のTEIガイドラインが得意であり、たとえば『校異源氏物語』のある箇所をタグ付けすると以下のようになる。

f:id:digitalnagasaki:20220225015600p:plain

ここでは、校異情報が存在する本文をまず<lem></lem>というタグで囲み、これに対して、校異情報を<rdg></rdg>という タグで囲んだ上で<rdg>タグには wit="#別陽" あるいは wit="#別國" と記載している。これは、一つ目の<rdg>は「別本の陽明本」 における記述であることを示し、二つ目の<rdg>は「別本の國冬本」であることを示している。その上で、<app></app>という タグで囲むことで、ここにはこの<lem>(Lemma, ここでは本文を意味する)と<rdg>(Reading,ここでは異文を意味する)を含む 校異情報(Critical Apparatus)が存在していることを示している。

言語学・文献学と、ややマニアックな方向に行ってしまったが、少し戻って考えてみると、そもそも例えば、テキスト中に登場する人名や地名などを タグ付けしておけば、むしろ、人文学に限らず、様々な研究分野、さらには研究外での用途も期待できるかもしれない。たとえば 以下のものはそのようなタグ付けの典型的な例である。

f:id:digitalnagasaki:20220225020927p:plain

ここでは、人名や呼称を<persName></persName>で囲み、それが実際にはどういう人物であるかについて corresp= という属性を用いて 同定している。つまり、邪智暴虐の王がディオニスであることを記述しているのである。

さらに、人称代名詞が誰を指しているか、ということもタグ付けすれば分析の幅は広がるだろう。この場合には例えば以下のように なる。

f:id:digitalnagasaki:20220225021536p:plain

ここでは、人称代名詞を<rs>というタグで囲み、属性として corresp="#メロス"` などと書いておくことで、 誰が話題になっているか、ということを自動的に検出できることになる。

この「属性として corresp="#メロス" などと書いておく」というのも実は重要である。この例(太宰治の『走れメロス』) ではフィクションの登場人物なのであまり問題にならないが、これが歴史文書等の実在の人物と結びつくものであったり、 聖書や仏典など、多数の書物で参照される人を含んでいるものであったりする場合には、「あちらのテキストに登場する Aさんとこちらのテキストに登場するAAさんは同じ人だけどそちらのテキストに登場するAさんは名前が同じであるだけで 別の人」という情報があると、色々な処理がしやすくなる上に人が読んだり参照したりする際にも便利である。 そのような場合に、一人目のAさん、二人目のAさんのIDを何らかの形で決めておいて(たとえばpersonA-1, personA-2など)、 corresp="#personA-1" という風に属性をタグに記述しておくと、これは二人目のAさんではなく一人目のAさんであることが 明示され、機械的な処理ができるようになる。ただし、これだけだと人がみてもわかりにくい場合もある。 人が読んでもわかりやすいようにするためには、たとえば、「 corresp="#personA-1" という属性のついたタグが付与 された文字列(人物名や代名詞など)にマウスのカーソルをあわせれば「一人目のAさん」と記述されたポップアップが 表示される」という風にしておくことや、あるいは、行間にそのような注釈を表示させる、といった対応もあり得る。 ここで重要なのは、「Aさん」という名前を発見することはコンピュータの文字列検索で簡単にできるが、 一人目のAさんと二人目のAさんの区別をつけるのはコンピュータでは非常に難しく、最近のAI技術ではそういう ことがかなりの確立で可能になってきている場合もあるものの、決して正確なものではない。人の判断も 絶対に正しいとは限らないにせよ、多様な文脈から明白な根拠を以て判断するということについては まだ専門家による人力に一日の長があり、専門家の判断力を少しでも多く活かし後世に残していくためにも このような形で同名人物の区別を記述しておくことは有用である。

なお、人名や地名などの固有名詞は、表記が異なっているが 同じものを指していることがあるため、上の図のように、同じものかどうかを属性として記述しておくと分析等をする際の 精度はより高まるだろう。

今回は事例がやや少ないものの、このようにして用途によって深さの方向性が異なっていて、それに用いるタグの種類も 異なってくる、という点は示せたのではないかと思う。