Ngram kana-kanji conversion with grammatical annotations
Transcript of Ngram kana-kanji conversion with grammatical annotations
N-gram かな漢字変換
• 必要なノードを残して枝刈り
• 高次の N-gram
• 短単位の語幹と語尾を切り離したかな-表記ペア、形態素情報なし例: [ほん/本] [を/を] [か/買] [い/い] [た/た] [い/い]
• 去年の発表(Python 実装)、その後 C++ にN-gram データ構造の見直し、ブルームフィルタの導入省サイズ化・高速化
12年12月28日金曜日
文節区切り
• 文節区切りがないねこをかいたい→○猫を 飼いたい×猫 を 飼 い た い
• 「飼いたい」を修正したい場合:- 目的の場所への移動が直感的でない(右ボタン一回で移動したい)- 「飼」の別候補として「蚊」のようなものはいらない-「かいたい」全体に対する「解体」のような候補もほしい
12年12月28日金曜日
異表記の一貫性
• [メガネ]→めがね/メガネ/眼鏡、[オモイコム]→思い込む/思いこむ-コーパス内では不統一-そのまま N-gram に→前後の文脈に影響される 例: メガネヲカケル: 眼鏡をかける メガネヲカウ: メガネを買う
• ユーザの好みによって統一したい-「眼鏡をかける」と変換→「眼鏡を買う」-「思い込んだ」と変換→「思い込まない」-「思いこむ」と変換→「思いこまない」
12年12月28日金曜日
追加用言
• IME には単語登録が必須-体言: 単純に追加-用言: 活用形を考慮する必要
• 「ポチる」を登録→「ポチラナイ」「ポチリマス」「ポチッタ」などが変換できなければいけない
12年12月28日金曜日
語彙素
• BCCWJ で採用
• 眼鏡・メガネ・めがね→[メガネ/眼鏡](語彙素)(読みと漢字表記のペア)
• 語彙素の N-gram を構築
• まず語彙素列に変換、それから語彙素に対する優先表記に変換(学習可能)メガネヲカケル→[メガネ/眼鏡][ヲ/を][カケル/掛ける][メガネ/眼鏡]→眼鏡・メガネ・めがね[ヲ/を]→を[カケル/掛ける]→掛ける・かける
12年12月28日金曜日
用言の扱い
• 原形と活用形に分解する買えば: [買う][仮定][ば]買いたい: [買う][連用][たい][終止]
• N-gram を有効活用できる-「本を買った」と「本を買いたい」: [本][を][買う][テ形][た][終止] [本][を][買う][連用][たい][終止]-「本を読みたい」と「本を買いたい」: [本][を][読む][連用][たい][終止] [本][を][買う][連用][たい][終止]
12年12月28日金曜日
N-gram モデルへの組み込み
• 用言活用をどうやって N-gram に組み込むか- 元コーパスの用言を分解、N-gram モデルの構築- デコード(かな漢字変換)時に用言辞書を参照
12年12月28日金曜日
元コーパスの用言を分解
• 元コーパスは形態素解析済み「本を買いたい」[本 名詞][を 助詞][買い 動詞 原形:買う 連用][たい 助動詞 原形:たい 終止]→[本][を][買う][連用][たい][終止]
• 用言を原形と活用形に単純に分解する
12年12月28日金曜日
デコード(かな漢字変換)
• 用言の活用形を展開して trie を構築[カク 書く 五段-カ行]→ カカ:[書く][未然] カキ:[書く][連用] カク:[書く][終止] ...
• デコード時に共通接頭辞検索 イキル→ イ: [いる][連用] イキ: [行く][連用] イキ: [生きる][未然] イキル: [生きる][終止] ...
12年12月28日金曜日
ラティスの構築• 生の用言が活用形以外に接続してはいけないイクヒト:×[行く][人]○[行く][連体][人]
• 活用タイプの同じものに接続する活用形はひとつのノードにまとめたい活用タイプの違うものは接続できない例: カイ
連用
テ形
買う(五段-ワア行)飼う(五段-ワア行)
書く(五段-カ行)掻く(五段-カ行)
×
12年12月28日金曜日
アイデア
• 用言は特殊な位置で終わるとし、活用形はその位置から始まるとする-「カイ」に対するノード [買う]: 「位置 0」から始まり「位置 2 活用形 五段-ワア行」で終わる [連用]: 「位置 2 活用形 五段-ワア行」から始まり「位置 2」で終わる [書く]: 「位置 0」から始まり「位置 2 活用形 五段-カ行」で終わる [テ形]: 「位置 2 活用形 五段-カ行」から始まり「位置 2」で終わる
• 可能動詞・テ形の問題
12年12月28日金曜日
可能動詞: 問題
• すべての五段動詞は可能動詞にできる(追加用言も変換できなければいけない: ポチる→ポチれる)
• かな単位では分解できない(ikeru: ik-er-u)
• 別用言とすると N-gram が有効活用できない例: [すらすら][書く] [すらすら][書ける]
12年12月28日金曜日
可能動詞: 対策
• 書ける→[書く][可能] と解析すらすら書く: [すらすら][書く][終止]すらすら書ける: [すらすら][書く][可能][終止]書けそうにない: [書く][可能][そう][に][ない]読めそうにない: [読む][可能][そう][に][ない]
• 動詞辞書に登録イケ: [行く][仮定] [行く][命令] [行く][可能][未然] [行く][可能][連用] ...
12年12月28日金曜日
テ形: 問題
• 「て(で)」に接続する形(「書い」「読ん」「持っ」)
• 「て」「た」「たり」「ちゃう」等の限られたものにしか接続しない
• 五段ナ・マ・ガ・バ行に接続すると濁音になる(死んで・読んだ・注いだり・飛んじゃう 等)
• 清音のものと濁音のものは同じ役割
12年12月28日金曜日
テ形: 対策
• テ形は特殊な位置とする例:「カイテ」[書く]: 「位置 0」から始まり「位置 2 活用形 五段-カ行」で終わる[テ形]: 「位置 2 活用形 五段-カ行」から始まり「位置 2 テ形-清音」で終わる[て]: 「位置 2 テ形-清音」で始まり、「位置 3」で終わる例:「ヨンデ」[読む]: 「位置 0」から始まり「位置 2 活用形 五段-ガ行」で終わる[テ形]: 「位置 2 活用形 五段-ガ行」から始まり「位置 2 テ形-濁音」で終わる[で]: 「位置 2 テ形-濁音」で始まり、「位置 3」で終わる
• テ形接続の濁音は、デコード時に清音に正規化
12年12月28日金曜日
用言活用を考慮したラティス: 「カイタイ」
買う位置: 0 位置: 2 活用型: 11(五段-ワア行)
連用位置: 2
書く位置: 2活用型: 1(五段-カ行)
テ形
貝
た 胃
鯛
たい終止
掻く
飼う位置: 3
位置: 4
解体
連体
位置: 4 活用型: 31(形容詞)
位置: 2活用型: 33(テ形-清音)
他終止
活用型: 31(助動詞-タ)
連体
12年12月28日金曜日
用言活用を考慮したデコード例: 「カケナイ」
書く位置: 0 位置: 2 活用型: 1(五段-カ行)
可能
位置: 2
掛けるテ形 な 胃
内
ない 終止
欠ける
掻く
位置: 3
位置: 4
連体
位置: 4 活用型: 31(形容詞)
位置: 2 活用型: 17(一段)
未然
命令
連用
位置: 2 活用型: 33(テ形-清音)
12年12月28日金曜日
変換例
• ボクトウミニイカナイカボク/僕/代名詞/ ト/と/助詞-格助詞/ ウミ/海/名詞-普通名詞-一般/ ニ/に/助詞-格助詞/ イク/行く/動詞-非自立可能/2 未然形-一般 ナイ/ない/助動詞/I 終止形-一般 カ/か/助詞-終助詞/
• イエヲカイタイイエ/家/名詞-普通名詞-一般/ ヲ/を/助詞-格助詞/ カウ/買う/動詞-一般/; 連用形-一般 タイ/たい/助動詞/O 終止形-一般
• ビルヲカイタイビル/ビル/名詞-普通名詞-一般/ ヲ/を/助詞-格助詞/ カイタイ/解体/名詞-普通名詞-サ変可能/
12年12月28日金曜日
長所・短所
• 長所- 手作業での調整が基本的に必要ない- 高精度のコーパスを使えば高精度の変換ができる- モデルサイズが調整可能(N-gram プルーニングの閾値を設定)
• 短所- 手作業で変換を調整するのが難しい- コーパスの精度に影響される- ある程度のモデルサイズは必要(10MB~)- 変換速度(190文字の文の変換に 3秒程度)
12年12月28日金曜日
難しいところ
• 動詞の語彙素: 例「あう」-BCCWJ: 「合う」「会う」-使用実態: 「合う」「会う」「遭う」-語源: すべて同じ
• 「彼に 言う」「彼という 人」-BCCWJ では区別なし、同一語彙素-前者は自立・漢字表記、後者は非自立・かな表記
• その他、BCCWJ の性質・品質による問題点が多々
12年12月28日金曜日