ソース表示: インポート形式をカスタマイズする #54379

CreateCorpus操作では、既定の入力形式として、

||!ChaSen|Cabocha||ChaSenまたはそれをベースとしたCabocha出力(NAIST辞書を使用)||
||!MeCab|Cabocha||MecabまたはそれをベースとしたCabocha出力(NAIST辞書を使用)||
||English|Cabocha||表層,品詞,基本形の3項目がTabで区切られた英語データまたはそれをベースとしたCabocha出力||
||Mecab|Cabocha|!UniDic||MecabまたはそれをベースとしたCabocha出力(!UniDic辞書を使用)||
||!PlainText||平文(正式には未サポート)||

の4種類、およびこれらの自動判別が選択できるようになっていますが、これらは!ChaKi.NET.exeと同じフォルダに存在するインポート形式定義ファイル !ReaderDefs.xml の内容に従っています。

例えば、

{{{
<ReaderDef Name="Mecab|Cabocha|UniDic" LineFormat="MecabLine">
}}}

というブロックで、"Mecab|Cabocha|!UniDic"という名称の入力を定義してあります。ここで定義された!ReaderDefが!CreateCorpusを行ったときにダイアログのType:一覧に出て来るようになっています。
LineFormatは、フィールドの区切り方を選択する属性で、ChaSenのようにタブでフィールドを区切られている場合は、"TabSeparatedLine"を、Cabochaのように最初がタブで以下カンマ区切となっている場合は"MecabLine"を、区切りのない場合は"TextLine"を指定します。(対応できるのはこの3種類のみです。)

フィールド区切りが決まれば、後は各フィールドの処理を<Field>要素で定義し、フィールド内容を!ChaKiのどの語彙カラムに入れるかを<!MappedTo>で指定します。

ここで、"Custom"にマップされたフィールドはまとめて"custom"カラムに入ります。<!MappedTo>がないフィールドは無視されます。("custom"カラムは検索のキーとならない付加情報をKey-Valueペアとして入れるカラムです。内容はLexeme Panelに表示されます。)

また、!PartOfSpeechについては、「2回以上重複して出現する!MappedToを"-"で連結する」というルールにより処理しています。

このように入力処理を完全にカスタマイズできるようになっていますので、形式を追加して、標準と異なる形式のデータを!ChaKiの語彙テーブルにマッピングして取り込むことも可能です。

なお、標準状態においては、"Auto"を選んでおけば特に何もしなくても!ReaderDefs.xmlを意識することなく!UniDic-mecab出力を読み込むことができます。