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