SlideShare a Scribd company logo
1 of 24
Download to read offline
かな漢字変換ソフト「Genji」をつくってみた
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

What's hot

雑兵だけどGolangでコマンドラインツールを作ってみた
雑兵だけどGolangでコマンドラインツールを作ってみた雑兵だけどGolangでコマンドラインツールを作ってみた
雑兵だけどGolangでコマンドラインツールを作ってみた
Shota Inoue
 

What's hot (20)

TrieとLOUDS??
TrieとLOUDS??TrieとLOUDS??
TrieとLOUDS??
 
アヒルヤキを変換してみよう
アヒルヤキを変換してみようアヒルヤキを変換してみよう
アヒルヤキを変換してみよう
 
C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。
 
TeXで多言語文書作成! (2011年ごろの資料)
TeXで多言語文書作成! (2011年ごろの資料)TeXで多言語文書作成! (2011年ごろの資料)
TeXで多言語文書作成! (2011年ごろの資料)
 
BrowserMob-Proxyのお話
BrowserMob-Proxyのお話BrowserMob-Proxyのお話
BrowserMob-Proxyのお話
 
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
 
Sphinxで翻訳してたら本が出てた話
Sphinxで翻訳してたら本が出てた話Sphinxで翻訳してたら本が出てた話
Sphinxで翻訳してたら本が出てた話
 
PHP Matsuri2013でなにをしたか?
PHP Matsuri2013でなにをしたか?PHP Matsuri2013でなにをしたか?
PHP Matsuri2013でなにをしたか?
 
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますようにもっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
 
あひるに焼かれた話と今後のおーぷん万葉について
あひるに焼かれた話と今後のおーぷん万葉についてあひるに焼かれた話と今後のおーぷん万葉について
あひるに焼かれた話と今後のおーぷん万葉について
 
雑兵だけどGolangでコマンドラインツールを作ってみた
雑兵だけどGolangでコマンドラインツールを作ってみた雑兵だけどGolangでコマンドラインツールを作ってみた
雑兵だけどGolangでコマンドラインツールを作ってみた
 
2014.05.10.JAG中国支部 FirefoxOS勉強会やります!
2014.05.10.JAG中国支部 FirefoxOS勉強会やります!2014.05.10.JAG中国支部 FirefoxOS勉強会やります!
2014.05.10.JAG中国支部 FirefoxOS勉強会やります!
 
2014 03-15-kojskansai-2nd-public
2014 03-15-kojskansai-2nd-public2014 03-15-kojskansai-2nd-public
2014 03-15-kojskansai-2nd-public
 
子供と使う便利ツール
子供と使う便利ツール子供と使う便利ツール
子供と使う便利ツール
 
仁斤曰く 「”手間業”蔓延り易く、 “楽”成り難し」
仁斤曰く 「”手間業”蔓延り易く、 “楽”成り難し」仁斤曰く 「”手間業”蔓延り易く、 “楽”成り難し」
仁斤曰く 「”手間業”蔓延り易く、 “楽”成り難し」
 
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム   Gx#20再帰、漸化式、差分方程式とアルゴリズム   Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
 
ペアプロデモの裏話 #tddbc
ペアプロデモの裏話 #tddbcペアプロデモの裏話 #tddbc
ペアプロデモの裏話 #tddbc
 
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipmIT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
 
IPAmj明朝の漢字を検索
IPAmj明朝の漢字を検索IPAmj明朝の漢字を検索
IPAmj明朝の漢字を検索
 
Mitakalab in Hongo
Mitakalab in HongoMitakalab in Hongo
Mitakalab in Hongo
 

Similar to かな漢字変換ソフト「Genji」をつくってみた

Similar to かな漢字変換ソフト「Genji」をつくってみた (7)

CLSイベント企画について
CLSイベント企画についてCLSイベント企画について
CLSイベント企画について
 
Wikibana20100612
Wikibana20100612Wikibana20100612
Wikibana20100612
 
OSC2010 Sendai - Tokyo OpenSolaris User Group Lightning Talk 「地方在住でOSS活動をするには」
OSC2010 Sendai - Tokyo OpenSolaris User Group Lightning Talk 「地方在住でOSS活動をするには」OSC2010 Sendai - Tokyo OpenSolaris User Group Lightning Talk 「地方在住でOSS活動をするには」
OSC2010 Sendai - Tokyo OpenSolaris User Group Lightning Talk 「地方在住でOSS活動をするには」
 
室井尚氏(横浜国立大学教授)講演採録(2018新歓パンフレット特集)
室井尚氏(横浜国立大学教授)講演採録(2018新歓パンフレット特集)室井尚氏(横浜国立大学教授)講演採録(2018新歓パンフレット特集)
室井尚氏(横浜国立大学教授)講演採録(2018新歓パンフレット特集)
 
名古屋生まれのPHP逆引きレシピ
名古屋生まれのPHP逆引きレシピ名古屋生まれのPHP逆引きレシピ
名古屋生まれのPHP逆引きレシピ
 
Jml kanji-look-and-learn-121215034654-phpapp01
Jml kanji-look-and-learn-121215034654-phpapp01Jml kanji-look-and-learn-121215034654-phpapp01
Jml kanji-look-and-learn-121215034654-phpapp01
 
酒井英禎のカレーなる半生
酒井英禎のカレーなる半生酒井英禎のカレーなる半生
酒井英禎のカレーなる半生
 

More from Masahiko Hashimoto

続・Cannaをフォークしてみた
続・Cannaをフォークしてみた続・Cannaをフォークしてみた
続・Cannaをフォークしてみた
Masahiko Hashimoto
 
秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法
Masahiko Hashimoto
 
AzureとSUSE Studioのあつ~い関係
AzureとSUSE Studioのあつ~い関係AzureとSUSE Studioのあつ~い関係
AzureとSUSE Studioのあつ~い関係
Masahiko Hashimoto
 
オープンソースで始める「超」VPN 構築術
オープンソースで始める「超」VPN 構築術オープンソースで始める「超」VPN 構築術
オープンソースで始める「超」VPN 構築術
Masahiko Hashimoto
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto
 

More from Masahiko Hashimoto (11)

OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望
OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望
OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望
 
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
 
Dockerいろいろ使って思うこと
Dockerいろいろ使って思うことDockerいろいろ使って思うこと
Dockerいろいろ使って思うこと
 
C++アプリをCmakeとEclipseで開発するお話
C++アプリをCmakeとEclipseで開発するお話C++アプリをCmakeとEclipseで開発するお話
C++アプリをCmakeとEclipseで開発するお話
 
続・Cannaをフォークしてみた
続・Cannaをフォークしてみた続・Cannaをフォークしてみた
続・Cannaをフォークしてみた
 
Cannaをフォークしてみた
CannaをフォークしてみたCannaをフォークしてみた
Cannaをフォークしてみた
 
秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法
 
AzureとSUSE Studioのあつ~い関係
AzureとSUSE Studioのあつ~い関係AzureとSUSE Studioのあつ~い関係
AzureとSUSE Studioのあつ~い関係
 
X window managerで遊んでみた
X window managerで遊んでみたX window managerで遊んでみた
X window managerで遊んでみた
 
オープンソースで始める「超」VPN 構築術
オープンソースで始める「超」VPN 構築術オープンソースで始める「超」VPN 構築術
オープンソースで始める「超」VPN 構築術
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
 

Recently uploaded

Recently uploaded (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

かな漢字変換ソフト「Genji」をつくってみた