ChaKi.NET (3.16 Revision 653) | 2021-01-23 23:11 |
ChaMame (1.0.4) | 2020-01-14 17:04 |
Patch Files (TextFormatter for ChaKi.NET (2010/11/20)) | 2010-11-21 23:23 |
その他 (CaboCha-0.66/UniDic用モデルファイル) | 2013-02-18 17:00 |
旧版[ChaKi Legacy] (2.1.0 Build 202) | 2008-11-16 23:47 |
コーパス作成コマンドであるCreateCorpusでは既定の入力形式として、
ChaSen|Cabocha | ChaSenまたはそれをベースとしたCabocha出力(NAIST辞書を使用) |
MeCab|Cabocha | MecabまたはそれをベースとしたCabocha出力(NAIST辞書を使用) |
English|Cabocha | 表層,品詞,基本形の3項目がTabで区切られた英語データまたはそれをベースとしたCabocha出力 |
Mecab|Cabocha|UniDic | MecabまたはそれをベースとしたCabocha出力(UniDic辞書を使用) |
PlainText | 平文(正式には未サポート) |
の5種類、およびこれらの自動判別("Auto")が選択できるようになっていますが、これらは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>で指定します。"Mecab|Cabocha|UniDic"の場合の既定のマッピングを次に示しておきます。
<Fields> <!-- unidic-mecab/rewrite.def を参考にUniDicフィールドを順に並べ、対応するChaKi propertyへアサインしたもの --> <Field><MappedTo Tag="Surface"/></Field> <Field><MappedTo Tag="PartOfSpeech"/></Field> <!-- "pos1" --> <Field><MappedTo Tag="PartOfSpeech"/></Field> <!-- "pos2" --> <Field><MappedTo Tag="PartOfSpeech"/></Field> <!-- "pos3" --> <Field><MappedTo Tag="PartOfSpeech"/></Field> <!-- "pos4" --> <Field><MappedTo Tag="CType"/></Field> <!-- "cType" --> <Field><MappedTo Tag="CForm"/></Field> <!-- "cForm" --> <Field><MappedTo Tag="LemmaForm"/></Field> <!-- "lForm" --> <Field><MappedTo Tag="Lemma"/></Field> <!-- "lemma" --> <Field></Field> <!-- "orth" --> <Field><MappedTo Tag="Pronunciation"/></Field><!-- "pron" --> <Field><MappedTo Tag="Reading"/></Field> <!-- "kana" --> <Field><MappedTo Tag="Custom" CustomTagName="goshu"/></Field> <!-- "goshu" --> <Field><MappedTo Tag="BaseLexeme"/></Field> <!-- "orthBase" --> <Field><MappedTo Tag="Custom" CustomTagName="pronBase"/></Field> <!-- "pronBase" --> <Field><MappedTo Tag="Custom" CustomTagName="kanaBase"/></Field> <!-- "kanaBase" --> <Field><MappedTo Tag="Custom" CustomTagName="formBase"/></Field> <!-- "formBase" --> <Field><MappedTo Tag="Custom" CustomTagName="iType"/></Field> <!-- "iType" --> <Field><MappedTo Tag="Custom" CustomTagName="iForm"/></Field> <!-- "iForm" --> <Field><MappedTo Tag="Custom" CustomTagName="iConType"/></Field> <!-- "iConType" --> <Field><MappedTo Tag="Custom" CustomTagName="fType"/></Field> <!-- "fType" --> <Field><MappedTo Tag="Custom" CustomTagName="fForm"/></Field> <!-- "fForm" --> <Field><MappedTo Tag="Custom" CustomTagName="fConType"/></Field> <!-- "fConType" --> <Field><MappedTo Tag="Custom" CustomTagName="aType"/></Field> <!-- "aType" --> <Field><MappedTo Tag="Custom" CustomTagName="aConType"/></Field> <!-- "aConType" --> <Field><MappedTo Tag="Custom" CustomTagName="aModType"/></Field> <!-- "aModType" --> </Fields>
ここで、"Custom"にマップされたフィールドはまとめて"custom"カラムに入ります。<MappedTo>がないフィールドは無視されます。("custom"カラムは検索のキーとならない付加情報をKey-Valueペアとして入れるカラムです。内容はLexeme Panelに表示されます。)
また、PartOfSpeechについては、「2回以上重複して出現するMappedToを"-"で連結する」というルールにより処理しています。
このように入力処理を完全にカスタマイズできるようになっていますので、形式を追加して、標準と異なる形式のデータをChaKiの語彙テーブルにマッピングして取り込むことも可能です。
なお、標準状態においては、"Auto"を選んでおけば特に何もしなくてもReaderDefs.xmlを意識することなくUniDic-mecab出力を読み込むことができます。