狠狠撸

狠狠撸Share a Scribd company logo
かな汉字変换ソフト「骋别苍箩颈」をつくってみた
2016/11/12 東海道らぐ@Kansai Open Forum
はしもとまさひこ
自己紹介
●
東海道らぐ関東の案内人(元名古屋案内人)
– 東海道らぐ5周年!!!
●
ちびぎーこ保護者会(別名:日本openSUSEユーザ会)の人
●
最近は日本語入力についていろいろ勉強中。
– 今日のお題
注:お断り。
私はKOF終了後にこの資料をアップするかもですが
基本的に統計学などには「ド素人」なので
その点は承知頂ますようお願いします^^;;
※私の大学時代の専攻はむしろ日本語学の方…
(某大学の日本文学文化学科卒とかそんなレベル)
7月末のOSC京都にて…
かな漢字変換「Genji」のrc phase1をリリース!
…が、今回は「まず動くこと」が第一だったので
本当に動くくらいの機能しかなかったw
そもそも変換のための辞書ファイルを
行きの新幹線で作成してる始末だったので
まともな変換ができるわけなかったorz
「Genji rc phase1」の実力
●
できたこと
– 当然「わたしのなまえはなかのです」は変換可能
– 「あひるやき」も変換できた
●
できなかったこと
– 「きょうと」が「京と」になってしまう ←致命的!!!
– 「おおさか」が「大坂」になってしまう
ところでどんな変換アルゴリズムだったのか?
純粋に「文節区切りの単語n-gram」です
例: 「私の名前は中野です」
→ これを単語区切りにするとこうなります
「私」「の」「名前」「は」「中野」「です」
→ で、単語n-gramなのでこうなります
「私の」「の名前」「名前は」「は中野」「中野です」
→ ただし、文節でデータを区切るので
「私の」「名前は」「中野です」
↑この単位で辞書に登録!
確率の計算方法 @OSC京都
「文節の出現頻度 / 自立語の出現頻度」
例)「私の」 ※これは文節
– 「私」「の」 ←出現回数 5回 = 5 / 9 = 0.55
– 「私」「は」 ←出現回数 3回 = 3 / 9 = 0.33
– 「私」「を」 ←出現回数 1回 = 1 / 9 = 0.11
この確率に1足したものを辞書に登録。
さて、今回。。。
確率の計算方法 @ OSC東京
「文節の出現頻度 / 自立語の出現頻度
 ? / その自立語と同音異義語の出現頻度」
例)例) 「私の」 ※これは文節
– 「私」「の」 ←出現回数 5回 = 5 / 10 = 0.50
– 「私」「は」 ←出現回数 3回 = 3 / 10 = 0.30
– 「私」「を」 ←出現回数 1回 = 1 / 10 = 0.10
– 「渡し」「を」 ←出現回数 1回 = 1 / 10 = 0.10
↑これが追加されました
※これで「おおさか」→「大坂」にはなりにくいはず!!
1週間前
结果???
「わたしのなまえはなかのです」
すら変換できなくなった???orz
なぜ?
母数が多くなって全体的に確率が低くなった
…反面、孤高の自立語が確率「2」を有してしまったw
どうゆうことか?
「私」「中野」といった名詞、動詞だけでなく
連接詞、接尾辞なども自立語に含めていた???
例)
– あひる焼き →「あひる」「焼き」
– ひよわ焼き →「ひよわ」「焼き」
– 鹿焼き  →「鹿」「焼き」
→「焼き」も自立語と判定され、「焼き」が強くなりすぎて
 「焼き」の確率ばかりが高くなる(焼かれてばかり)
※他にも「と」を変換すると「都」になってしまうなど。
焼かれてばっかじゃね?か
う?ん???
うまく行かないけど今年の秋はこれにて終了???
???で、终っていいと思っているのか!!!?(ぇ
まさか1週間で
アルゴリズムが劇的に変わって
変換効率が劇的に変わる
…なんてことは…
…あった(笑)
確率の計算方法 @OSC京都
「文節の出現頻度 ? 自立語の出現頻度」
例) 「私の」 ※これは文節
– 「私」「の」 ←出現回数 5回 = 5 / 9 = 0.55
– 「私」「は」 ←出現回数 3回 = 3 / 9 = 0.33
– 「私」「を」 ←出現回数 1回 = 1 / 9 = 0.11
この確率に1足したものを辞書に登録。
ちょっと前のスライドです
ここに注目!!
そもそもなんで「1」を足していたの?
今まではポイント積算法でした
例)私の名前は中野です
「私の」(1.5) × 「名前は」(1.2) × 「中野です」(1.1)
= ポイント 1.98
「私の」 × 「名前は」 × 「中の」(1.2) × 「出」(1.5) × 「巣」(2.0)
= ポイント 6.48
→ 負けた(笑)
Genjiの辞書は「自立語」or「自立語+付属語」
という特性上、1文字の自立語が出現すると
ポイントが高くなる→変換効率が極端に落ちる
というのがあった…orz
[新提案?] n-gram × コスト最小法
コスト算出方法: 2 ? (n-gramの出現確率)
例) わたしのなまえはなかのです
– 「私の」(1.5) × 「名前は」(1.8) × 「中野です」(1.9)
= 5.13
– 「私の」×「名前は」×「中の」(1.8) ×「出」(1.5) ×「巣」(1)
= 7.29
→ 「コスト最小法」なのでコストが小さい方を選択
→ 「中野です」の出現頻度は低いのでコストは大きいが、
 代わりに積算される数が減るので、結果的に選択されやすくなる
→ 勝った!!(何にだよ?)
ところで「n-gram × コスト最小法」って
実はいろんな場面で使えるのでは?
(いかがでしょう?^^;)
ご清聴、ありがとうございましたm(_ _)m

More Related Content

かな汉字変换ソフト「骋别苍箩颈」をつくってみた