アノテーションとして見た文節・係り受け

Dependencyパネルで編集する文節・係り受けは、文内の局所的な構造ですが、 これらは内部的にはDocumentに対するアノテーションの一種として表現されます。

ChaKi.NETでのアノテーションスキーマは、SLAT2との互換を図る目的で共通化されています。 すなわち、基本的には

  1. 文字集合としてのDocument
  2. アノテーション作業の対象となるDocumentの集合であるDocumentSet
  3. Document内の[開始文字位置, 終了文字位置)で表されるSegmentとそのTagSet
  4. 2つのSegment間の有向・無向、遷移・非遷移関連を示すLinkとそのTagSet
  5. アノテーションの集合を表すGroupとそのTagSet

の5要素で表されるスキーマに基づくアノテーションを採用しています。

このスキーマをChaKi.NETに適用する上で、次のような対応関係があります。

  • コーパス(物理的には1個のDatabase)がDocumentSetに対応します。常にコーパス全体がアノテーション対象となります。
  • CreateCorpusを実行する際にBibファイルを適用することでコーパスを複数のDocumentに分割できます。Bibファイルを適用しない場合は、コーパス全体が単一のDocumentになります。
  • 文節は、Segmentとして表現されます。文節のTag名は"Bunsetsu"です。従って、Documentは重なりのない連続する"Bunsetsu" Segment群によってすべて覆われています。
  • は、アノテーションではなく、特別な構造として表現されます。
  • は、アノテーションではなく、特別な構造として表現されます。
  • 文末には、ダミーの "Bunsetsu" Segment (Length=0)が存在します。
  • "Bunsetsu" Segment の両端は、語境界のみに存在することができます。
  • 係り受けは、"Bunsetsu" Segment 間の有向・非遷移的Linkとして表されます。
  • 係り受けLinkのTagは、"D", "O"などCabochaの分類に基づきます。
  • "Bunsetsu"や"D"などのTagを定義するTagSetは、CreateCorpus実行時にDB内に既定のものが自動生成されます。将来的には既定のTag以外を自由にTagSetに追加できるようにする予定です。

つまり、文と語の構造により表現されるDocument構造に対してさらに文節・係り受け構造を 持たせるのではなく、一方で文と語の構造を保ちつつ、他方Documentをシーケンシャルな文字列で捉え直し、 その上に文節(Segment)と係り受け(Link)をアノテーションとして付与する、という方法を取っています。

文節・係り受け以外のアノテーション

このように、Dependencyパネルは、Segment等を上記の制約を満たしながら編集する一種のアノテーションツールとみなすことができます。そのように見た場合、Dependencyパネルを通じて係り受け以外の文内のアノテーション作業も行うというのは自然な拡張の方向であると言えます。
(文をまたぐSegment, Linkもスキーマ定義上は十分可能ですが、Dependencyパネルでの編集対象外であり、他の手段で編集するものと考えます。)

Dependencyパネルでは、係り受け以外の一般的なアノテーションとして、現在のところ下記のものが可能です。

  • 文の一部の語群をSegmentとマークし、「埋め込み(Nest)」タグを付与する。
    副文、引用、注釈などをマークするのに使用します。
  • 文の一部の語群をSegmentとマークし、「並列(Parallel)」「同格(Apposition)」タグを付与したうえで、複数のParallel SegmentまたはApposition Segment同士をGroup化する。
    並列句・同格句をマークするのに使用します。

これらのアノテーションの方法については次節で説明します。

コメントと属性(Attribute)

アノテーションは、Segment, Link, Groupのアノテーションインスタンスを生成し、同時にTagへの参照をそれに結び付けることで行われますが、このアノテーションインスタンスにはTag参照以外にもいくつか編集可能な項目が付属しています。

  1. コメント
    コメントはSegment, Link, Groupのインスタンスに付加できる任意の文字列です。DB内ではLarge Object Blockとして格納されます。
  2. 属性(Attribute)
    属性はキーと値のペア(いずれも255文字以下の文字列)の集合で、Segment, Link, Groupのインスタンスに付加できます。個々の属性ペアにコメントを付加することもできます。ただし現在のところ、これを付加する操作は実装されていません。

なお、ChaKi.NETには、DocumentおよびLexemeにも属性(Attribute)と呼ぶキー・値ペアが付属しますが、これらはアノテーション属性の一種ではありません。Document属性は、各Sentenceからマップされる書誌(Bib)情報を指すものであり、またLexeme属性は、語彙の内容(Lexeme Properties)を指します。