galatea-customize-fsm (customize-fsm-facemaker-1.0-beta) | 2009-09-22 16:59 |
galatea-dialog (galatea-dialog-20101115) | 2010-12-24 13:53 |
galatea-engine (galatea-engine-20090604) | 2009-10-05 10:58 |
galatea-ja-chaone (galatea-ja-chaone-1.3.2) | 2009-10-04 21:24 |
galatea-ja-unidic (galatea-ja-unidic-1.3.9) | 2009-10-05 11:14 |
galatea-linux-2002 (galatea-linux-ipa) | 2005-07-20 15:43 |
galatea-windows (galatea4win-2009-02) | 2009-10-05 13:36 |
galatea-windows-errata (chaone-win-1.3.2-091201) | 2009-12-01 13:32 |
2006.10.25
Studio ARC
編集者の注:XMLファイルの出力例に一部色分けが使われているので、暫定的にテキスト表記と画像表示を併記しています。
a) 入力テキストの前処理(1) (数字処理等) b) 形態素解析 (第1層のタギング、発音、品詞付与) c) 形態素解析結果の前処理 (英字からなる未知語の分解) d) チャンキング (第2層へのまとめ上げ) e) 音韻交替 (接続による語頭、語末の音の変化) f) アクセント結合 (アクセント句内のアクセント位置) g) テキストの後処理 (品詞体系の簡易化) h) 音素列への展開 (音響パラメータタグの処理を含む)
現状では
a) -> gtalk本体 b) -> ChaSen + UniDic c),d),e),f),g) -> ChaOne h) -> gtalk本体
で処理を行っている
Linux版: ChaSen, ChaOneともに別プロセスとして起動し, パイプを用いて,標準入出力経由でデータを受け渡している
それぞれの実行ファイルはgtalkの設定ファイル (ssm.conf) で,
# path name of 'chasen' (ChaSen実行ファイルのパス) CHASEN: /usr/local/bin/chasen # configuration file for 'chasen' (ChaSen設定ファイルのパス) CHASEN-RC: ./chasenrc # command of running 'chaone' (ChaOne実行ファイルのパス) CHAONE: ../morph/chaone-1.3.0/chaone
のように指定する
Windows版: ChaSen, ChaOneともにdll (libchasen.dll, msxml3.dll) を用いて, gtalkから関数呼び出しを行っている
それぞれのファイルはgtalkの設定ファイル (ssm-win.conf) で,
# path name of 'libchasen.dll' (only for Windows) (ChaSen dllファイルのパス) CHASEN-DLL: ../chasen-2.3.3/lib/libchasen.dll # configuration file for 'chasen' (ChaSen設定ファイルのパス) CHASEN-RC: ./chasenrc-win # path name of 'chaone.xsl' (only for Windows) (ChaOneファイルのパス) CHAONE-XSL-FILE: ../chaone-win-1.3.0a2/chaone_t_Shift_JIS.xsl のように指定する (msxml3.dllはWindows標準)
を用いている
よって,同等のXML形式を扱うことができる任意のソフトウェアによって b)からg)までの処理は置き換え可能な設計になっている
また,g)の出力形式で予めファイルに保存しておき,gtalkのコマンドで
set ParsedText = ファイル名
とすることにより,gtalkに直接読み込み可能である
gtalkタグが埋め込まれたプレーンテキストを, 形態素解析に適したプレーンテキストに変換する
半角英数字を全角文字に変換する
gtalkの設定ファイルで指定されているとおりに変換する
# default for numbers and alphabets NUMBER: DECIMAL ALPHABET: WORD DATE: YMD TIME: hms
出力にCONTEXTタグは含まれない
<CONTEXT TYPE="NUMBER">1234</CONTEXT>→ 千二百三十四 <CONTEXT TYPE="DIGITS">1234</CONTEXT>→ 一二三四 <CONTEXT TYPE="DATE">2005-7-21</CONTEXT>→ 二千五年七月二十一日 <CONTEXT TYPE="TIME">12:34</CONTEXT>→ 十二時三十四分 <CONTEXT TYPE="PHONE">0120-123-4567</CONTEXT>→ 〇一二〇、一二三、四五六七
一致する文字列をPRONタグに置換
ユーザ定義辞書ファイルはgtalk設定ファイルで以下のように指定する
# dictionary DICTIONARY: ./gtalk-eucjp.dic
単語,読み,アクセント型を空白文字区切りで記述する
南草津 ミナミクサツ 4
最寄り駅は南草津です。 → 最寄り駅は<PRON SYM="ミナミク’サツ">南草津</PRON>です。
プレーンテキストを形態素解析して,XML形式で出力する
入力: a)の処理結果
<PRON SYM="ミナミク’サツ">南草津</PRON>にHBが一本あります。
出力:
<S> <PRON SYM="ミナミク’サツ"> <W1 orth="南" pron="{ミナミ/ナン/ミンナミ}" pos="名詞-普通名詞-一般" lForm="{ミナミ/ナン/ミンナミ}" lemma="南" aType="0" aConType="{C2/C3/C2}"/> <W1 orth="草津" pron="クサツ" pos="名詞-固有名詞-地名-一般" lForm="クサツ" lemma="草津" aType="1"/> </PRON> <W1 orth="に" pron="ニ" pos="助詞-格助詞" lForm="ニ" lemma="に" aConType="動詞%F5,形容詞%F1,名詞%F1"/> <W1 orth="HB" pron="HB" pos="未知語" /> <W1 orth="が" pron="ガ" pos="助詞-格助詞" lForm="ガ" lemma="が" aConType="動詞%F5,名詞%F1"/> <W1 orth="一" pron="{イチ/ヒト/イッ/ヒ/イツ}" pos="名詞-数詞" lForm="{イチ/ヒト/イチ/ヒト/イチ}" lemma="一" iConType="{N1/N1/N1//}" fType="{数・一/数・一/数・一//}" fForm="{基本形/和語形/促音形//}" aType="{2/0/2/0/1,2}" aConType="C3"/> <W1 orth="本" pron="{ポ/ホ/ボ}ン" pos="接尾辞-名詞的-助数詞" lForm="ホン" lemma="本" iType="ホ混合" iForm="{半濁音/基本/濁音}形" fConType="B1S6SjShS,B1S8SjShS" aConType="C3"/> <W1 orth="あり" pron="アリ" pos="動詞-非自立可能" cType="五段-ラ行-一般" cForm="連用形-一般" lForm="アル" lemma="有る" aType="1" aConType="C3"/> <W1 orth="ます" pron="マス" pos="助動詞" cType="助動詞-マス" cForm="基本形-一般" lForm="マス" lemma="ます" aConType="動詞%F4@1"/> <W1 orth="。" pron="。" pos="補助記号-句点" lForm="" lemma="。"/> </S>
タグの説明
S: 文 W1: 第1層語 orth: 出現形 pron: 発音形 pos: 品詞 lForm: lemma: cType: cForm:
次の2属性はアクセント結合計算用(それ以外には不要)
aType: アクセント型 aConType: アクセント結合型
次の4属性は音韻交替計算用(それ以外には不要)
iType: 語頭音韻交替型 iConType: 語頭音韻交替結合型 fType: 語末音韻交替方型 fConType: 語末音韻交替結合型
形態素解析結果のうち,英字からなる未知語を単独の英字列に分解する
入力: b)の形態素解析結果
出力:
<S> <PRON SYM="ミナミク’サツ"> <W1 orth="南" pron="{ミナミ/ナン/ミンナミ}" pos="名詞-普通名詞-一般" lForm="{ミナミ/ナン/ミンナミ}" lemma="南" aType="0" aConType="{C2/C3/C2}"/> <W1 orth="草津" pron="クサツ" pos="名詞-固有名詞-地名-一般" lForm="クサツ" lemma="草津" aType="1"/> </PRON> <W1 orth="に" pron="ニ" pos="助詞-格助詞" lForm="ニ" lemma="に" aConType="動詞%F5,形容詞%F1,名詞%F1"/> <W1 orth="H" pron="エイチ" pos="記号-文字" lex="エイチ!H" indexForm="エイチ" indexOrth="H" aType="1"/> <W1 orth="B" pron="ビー" pos="記号-文字" lex="ビー!B" indexForm="ビー" indexOrth="B" aType="1"/> <W1 orth="が" pron="ガ" pos="助詞-格助詞" lForm="ガ" lemma="が" aConType="動詞%F5,名詞%F1"/> <W1 orth="一" pron="{イチ/ヒト/イッ/ヒ/イツ}" pos="名詞-数詞" lForm="{イチ/ヒト/イチ/ヒト/イチ}" lemma="一" iConType="{N1/N1/N1//}" fType="{数・一/数・一/数・一//}" fForm="{基本形/和語形/促音形//}" aType="{2/0/2/0/1,2}" aConType="C3"/> <W1 orth="本" pron="{ポ/ホ/ボ}ン" pos="接尾辞-名詞的-助数詞" lForm="ホン" lemma="本" iType="ホ混合" iForm="{半濁音/基本/濁音}形" fConType="B1S6SjShS,B1S8SjShS" aConType="C3"/> <W1 orth="あり" pron="アリ" pos="動詞-非自立可能" cType="五段-ラ行-一般" cForm="連用形-一般" lForm="アル" lemma="有る" aType="1" aConType="C3"/> <W1 orth="ます" pron="マス" pos="助動詞" cType="助動詞-マス" cForm="基本形-一般" lForm="マス" lemma="ます" aConType="動詞%F4@1"/> <W1 orth="。" pron="。" pos="補助記号-句点" lForm="" lemma="。"/> </S>
形態素解析結果を第2層にまとめあげる
入力: c)の処理結果
出力:
<S> <PRON SYM="ミナミク’サツ"> <W2 orth="南" pos="名詞-普通名詞-一般"> <W1 orth="南" pron="{ミナミ/ナン/ミンナミ}" pos="名詞-普通名詞-一般" lForm="{ミナミ/ナン/ミンナミ}" lemma="南" aType="0" aConType="{C2/C3/C2}"/> </W2> <W2 orth="草津" pos="名詞-固有名詞-地名-一般"> <W1 orth="草津" pron="クサツ" pos="名詞-固有名詞-地名-一般" lForm="クサツ" lemma="草津" aType="1"/> </W2> </PRON> <W2 orth="に" pos="助詞-格助詞"> <W1 orth="に" pron="ニ" pos="助詞-格助詞" lForm="ニ" lemma="に" aConType="動詞%F5,形容詞%F1,名詞%F1"/> </W2> <W2 orth="H" pos="記号-文字"> <W1 orth="H" pron="エイチ" pos="記号-文字" lex="エイチ!H" indexForm="エイチ" indexOrth="H" aType="1"/> </W2> <W2 orth="B" pos="記号-文字"> <W1 orth="B" pron="ビー" pos="記号-文字" lex="ビー!B" indexForm="ビー" indexOrth="B" aType="1"/> </W2> <W2 orth="が" pos="助詞-格助詞"> <W1 orth="が" pron="ガ" pos="助詞-格助詞" lForm="ガ" lemma="が" aConType="動詞%F5,名詞%F1"/> </W2> <W2 orth="一本" pos="名詞-普通名詞-副詞可能"> <W1 orth="一" pron="{イチ/ヒト/イッ/ヒ/イツ}" pos="名詞-数詞" lForm="{イチ/ヒト/イチ/ヒト/イチ}" lemma="一" iConType="{N1/N1/N1//}" fType="{数・一/数・一/数・一//}" fForm="{基本形/和語形/促音形//}" aType="{2/0/2/0/1,2}" aConType="C3"/> <W1 orth="本" pron="{ポ/ホ/ボ}ン" pos="接尾辞-名詞的-助数詞" lForm="ホン" lemma="本" iType="ホ混合" iForm="{半濁音/基本/濁音}形" fConType="B1S6SjShS,B1S8SjShS" aConType="C3"/> </W2> <W2 orth="あり" pos="動詞-非自立可能" cType="五段-ラ行-一般" cForm="連用形-一般"> <W1 orth="あり" pron="アリ" pos="動詞-非自立可能" cType="五段-ラ行-一般" cForm="連用形-一般" lForm="アル" lemma="有る" aType="1" aConType="C3"/> </W2> <W2 orth="ます" pos="助動詞" cType="助動詞-マス" cForm="基本形-一般"> <W1 orth="ます" pron="マス" pos="助動詞" cType="助動詞-マス" cForm="基本形-一般" lForm="マス" lemma="ます" aConType="動詞%F4@1"/> </W2> <W2 orth="。" pos="補助記号-句点"> <W1 orth="。" pron="。" pos="補助記号-句点" lForm="" lemma="。"/> </W2> </S>
タグの説明:
W2: 第2層語
音韻交替規則に基づき第1層語の撥音形の選択と,第2層語への撥音形の付与を行う
入力: d)のチャンキング結果
出力:
<S> <PRON SYM="ミナミク’サツ"> <W2 orth="南" pos="名詞-普通名詞-一般" pron="ミナミ"> <W1 orth="南" pron="ミナミ" pos="名詞-普通名詞-一般" lForm="ミナミ" lemma="南" aType="0" aConType="C2"/> </W2> <W2 orth="草津" pos="名詞-固有名詞-地名-一般" pron="クサツ"> <W1 orth="草津" pron="クサツ" pos="名詞-固有名詞-地名-一般" lForm="クサツ" lemma="草津" aType="1"/> </W2> </PRON> <W2 orth="に" pos="助詞-格助詞" pron="ニ"> <W1 orth="に" pron="ニ" pos="助詞-格助詞" lForm="ニ" lemma="に" aConType="動詞%F5,形容詞%F1,名詞%F1"/> </W2> <W2 orth="H" pos="記号-文字" pron="エイチ"> <W1 orth="H" pron="エイチ" pos="記号-文字" lex="エイチ!H" indexForm="エイチ" indexOrth="H" aType="1"/> </W2> <W2 orth="B" pos="記号-文字" pron="ビー"> <W1 orth="B" pron="ビー" pos="記号-文字" lex="ビー!B" indexForm="ビー" indexOrth="B" aType="1"/> </W2> <W2 orth="が" pos="助詞-格助詞" pron="ガ"> <W1 orth="が" pron="ガ" pos="助詞-格助詞" lForm="ガ" lemma="が" aConType="動詞%F5,名詞%F1"/> </W2> <W2 orth="一本" pos="名詞-普通名詞-副詞可能" pron="イッポン"> <W1 orth="一" pron="イッ" pos="名詞-数詞" lForm="イチ" lemma="一" iConType="N1" fType="数・一" fForm="促音形" aType="2" aConType="C3"/> <W1 orth="本" pron="ポン" pos="接尾辞-名詞的-助数詞" lForm="ホン" lemma="本" iType="ホ混合" iForm="半濁音形" fConType="B1S6SjShS,B1S8SjShS" aConType="C3"/> </W2> <W2 orth="あり" pos="動詞-非自立可能" cType="五段-ラ行-一般" cForm="連用形-一般" pron="アリ"> <W1 orth="あり" pron="アリ" pos="動詞-非自立可能" cType="五段-ラ行-一般" cForm="連用形-一般" lForm="アル" lemma="有る" aType="1" aConType="C3"/> </W2> <W2 orth="ます" pos="助動詞" cType="助動詞-マス" cForm="基本形-一般" pron="マス"> <W1 orth="ます" pron="マス" pos="助動詞" cType="助動詞-マス" cForm="基本形-一般" lForm="マス" lemma="ます" aConType="動詞%F4@1"/> </W2> <W2 orth="。" pos="補助記号-句点" pron="。"> <W1 orth="。" pron="。" pos="補助記号-句点" lForm="" lemma="。"/> </W2> </S>
第2層語をもとにアクセント句を構成し,結合規則に基づきアクセント型を計算する
入力: e)の音韻交替処理結果
出力:
<S> <AP orth="南草津に" pron="ミナミクサツニ" aType="4" silence="NON"> <PRON SYM="ミナミク’サツ" orth="南草津" pron="ミナミクサツ" pos="名詞-固有名詞-地名-一般" aType="4" aConType=""> <W2 orth="南" pos="名詞-普通名詞-一般" pron="ミナミ" aType="0" aConType="C2"> <W1 orth="南" pron="ミナミ" pos="名詞-普通名詞-一般" lForm="ミナミ" lemma="南" aConType="C2" aType="0"/> </W2> <W2 orth="草津" pos="名詞-固有名詞-地名-一般" pron="クサツ" aType="1" aConType=""> <W1 orth="草津" pron="クサツ" pos="名詞-固有名詞-地名-一般" lForm="クサツ" lemma="草津" aType="1"/> </W2> </PRON> <W2 orth="に" pos="助詞-格助詞" pron="ニ" aType="0" aConType="動詞%F5,形容詞%F1,名詞%F1"> <W1 orth="に" pron="ニ" pos="助詞-格助詞" lForm="ニ" lemma="に" aConType="動詞%F5,形容詞%F1,名詞%F1" aType="0"/> </W2> </AP> <AP orth="HBが" pron="エイチビーガ" aType="0" silence="NON"> <W2 orth="H" pos="記号-文字" pron="エイチ" aType="1" aConType=""> <W1 orth="H" pron="エイチ" pos="記号-文字" lex="エイチ!H" indexForm="エイチ" indexOrth="H" aType="1"/> </W2> <W2 orth="B" pos="記号-文字" pron="ビー" aType="1" aConType=""> <W1 orth="B" pron="ビー" pos="記号-文字" lex="ビー!B" indexForm="ビー" indexOrth="B" aType="1"/> </W2> <W2 orth="が" pos="助詞-格助詞" pron="ガ" aType="0" aConType="動詞%F5,名詞%F1"> <W1 orth="が" pron="ガ" pos="助詞-格助詞" lForm="ガ" lemma="が" aConType="動詞%F5,名詞%F1" aType="0"/> </W2> </AP> <AP orth="一本" pron="イッポン" aType="1" silence="NON"> <W2 orth="一本" pos="名詞-普通名詞-副詞可能" pron="イッポン" aType="1" aConType="C3"> <W1 orth="一" pron="イッ" pos="名詞-数詞" lForm="イチ" lemma="一" iConType="N1" fType="数・一" fForm="促音形" aConType="C3" aType="2"/> <W1 orth="本" pron="ポン" pos="接尾辞-名詞的-助数詞" lForm="ホン" lemma="本" iType="ホ混合" iForm="半濁音形" fConType="B1S6SjShS,B1S8SjShS" aConType="C3" aType="0"/> </W2> </AP> <AP orth="あります" pron="アリマス" aType="3" silence="NON"> <W2 orth="あり" pos="動詞-非自立可能" cType="五段-ラ行-一般" cForm="連用形-一般" pron="アリ" aType="1" aConType="C3"> <W1 orth="あり" pron="アリ" pos="動詞-非自立可能" cType="五段-ラ行-一般" cForm="連用形-一般" lForm="アル" lemma="有る" aConType="C3" aType="1"/> </W2> <W2 orth="ます" pos="助動詞" cType="助動詞-マス" cForm="基本形-一般" pron="マス" aType="0" aConType="動詞%F4@1"> <W1 orth="ます" pron="マス" pos="助動詞" cType="助動詞-マス" cForm="基本形-一般" lForm="マス" lemma="ます" aConType="動詞%F4@1" aType="0"/> </W2> </AP> <AP orth="。" pron="。" aType="0" silence="SILE"> <W2 orth="。" pos="補助記号-句点" pron="。" aType="0" aConType=""> <W1 orth="。" pron="。" pos="補助記号-句点" lForm="" lemma="。" aType="0"/> </W2> </AP> </S>
タグの説明:
AP: アクセント句 silence: 休止
品詞を音響モデル用に変換する
入力: f)のアクセント結合結果
出力:
<S> <AP orth="南草津に" pron="ミナミクサツニ" aType="4" silence="NON"> <PRON SYM="ミナミク’サツ" orth="南草津" pron="ミナミクサツ" pos="名詞-固有名詞-一般" aType="4" aConType=""> <W2 orth="南" pos="名詞-普通名詞-一般" pron="ミナミ" aType="0" aConType="C2"> <W1 orth="南" pron="ミナミ" pos="名詞-普通名詞-一般" lForm="ミナミ" lemma="南" aConType="C2" aType="0"/> </W2> <W2 orth="草津" pos="名詞-固有名詞-一般" pron="クサツ" aType="1" aConType=""> <W1 orth="草津" pron="クサツ" pos="名詞-固有名詞-一般" lForm="クサツ" lemma="草津" aType="1"/> </W2> </PRON> <W2 orth="に" pos="助詞-格助詞-一般" pron="ニ" aType="0" aConType="動詞%F5,形容詞%F1,名詞%F1"> <W1 orth="に" pron="ニ" pos="助詞-格助詞-一般" lForm="ニ" lemma="に" aConType="動詞%F5,形容詞%F1,名詞%F1" aType="0"/> </W2> </AP> <AP orth="HBが" pron="エイチビーガ" aType="0" silence="NON"> <W2 orth="H" pos="記号-一般" pron="エイチ" aType="1" aConType=""> <W1 orth="H" pron="エイチ" pos="記号-一般" lex="エイチ!H" indexForm="エイチ" indexOrth="H" aType="1"/> </W2> <W2 orth="B" pos="記号-一般" pron="ビー" aType="1" aConType=""> <W1 orth="B" pron="ビー" pos="記号-一般" lex="ビー!B" indexForm="ビー" indexOrth="B" aType="1"/> </W2> <W2 orth="が" pos="助詞-格助詞-一般" pron="ガ" aType="0" aConType="動詞%F5,名詞%F1"> <W1 orth="が" pron="ガ" pos="助詞-格助詞-一般" lForm="ガ" lemma="が" aConType="動詞%F5,名詞%F1" aType="0"/> </W2> </AP> <AP orth="一本" pron="イッポン" aType="1" silence="NON"> <W2 orth="一本" pos="名詞-普通名詞-一般" pron="イッポン" aType="1" aConType="C3"> <W1 orth="一" pron="イッ" pos="名詞-数詞-一般" lForm="イチ" lemma="一" iConType="N1" fType="数・一" fForm="促音形" aConType="C3" aType="2"/> <W1 orth="本" pron="ポン" pos="接尾辞-名詞的-一般" lForm="ホン" lemma="本" iType="ホ混合" iForm="半濁音形" fConType="B1S6SjShS,B1S8SjShS" aConType="C3" aType="0"/> </W2> </AP> <AP orth="あります" pron="アリマス" aType="3" silence="NON"> <W2 orth="あり" pos="動詞-一般" cType="五段-ラ行-一般" cForm="連用形-一般" pron="アリ" aType="1" aConType="C3"> <W1 orth="あり" pron="アリ" pos="動詞-一般" cType="五段-ラ行-一般" cForm="連用形-一般" lForm="アル" lemma="有る" aConType="C3" aType="1"/> </W2> <W2 orth="ます" pos="助動詞" cType="助動詞-ジャ" cForm="基本形-一般" pron="マス" aType="0" aConType="動詞%F4@1"> <W1 orth="ます" pron="マス" pos="助動詞" cType="助動詞-ジャ" cForm="基本形-一般" lForm="マス" lemma="ます" aConType="動詞%F4@1" aType="0"/> </W2> </AP> <AP orth="。" pron="。" aType="0" silence="SILE"> <W2 orth="。" pos="補助記号-一般" pron="。" aType="0" aConType=""> <W1 orth="。" pron="。" pos="補助記号-一般" lForm="" lemma="。" aType="0"/> </W2> </AP> </S>