狠狠撸

狠狠撸Share a Scribd company logo
自作かな漢字変換
「Genji 」をつくったよ
はしもとまさ
@OSC Nagoya 2018
2018/5/19
2018/5/19New Genji をつくったよ 2/18
自己紹介
Name: はしもとまさ(または鹿)
● 東海道らぐ
…の関東案内人
● おーぷん万葉プロジェクト
主に自然言語処理について調べたりいろいろと
● ちびぎーこ保護者会(別名:日本openSUSEユーザ会)
本日はこちらの活動はお休み???
…と思ったら、なぜか今日は薄い本売ってた?(売れた冊数=0冊)
2018/5/19New Genji をつくったよ 3/18
今日は???
かな漢字変換を自作したよ?!
というお話
(正確には前からあったのを大改修)
2018/5/19New Genji をつくったよ 4/18
でもかな漢字変換作るのって???
巨大なコーパス(=日本語の文章)の
解析をする必要があるよね!
そもそもそんなに使用できるコーパスなんて
持ってるの???
注)一番大きな日本語コーパスは買うと何十万円だったりしますorz
2018/5/19New Genji をつくったよ 5/18
唐突ですが、最近始めたこと
私事で全然関係ない話ですが、小説書き始めました!
● 「きらめきインターラプト」 @エブリスタ
– オープンソースカンファレンス準拠作品!??
– OSC名古屋編を現在連載中???「あひる焼き」も登場!?
● 冴えカノの二次小説「冴えないフミオの育てかた」 @カクヨム
→ かな漢字変換のコーパスの元ネタに
  できるじゃないか!!(ぇ
2018/5/19New Genji をつくったよ 6/18
話を戻しまして、、、
自作かな漢字変換「Genji」が
復活しました!
注)そもそもOSC大阪?OSC東京で展示物がなかったおーぷん万葉…orz
2018/5/19New Genji をつくったよ 7/18
一番大きな変更点
純粋なコスト最小法を採用!
※詳細は次のスライドで
2018/5/19New Genji をつくったよ 8/18
コスト最小法とは?
Mozc(Google日本語入力)の場合:
文
頭
私
の 名前
は
中野
注:ちょっと(かなり?)端折って説明します^^;
 例)「わたしのなまえはなかのです」を変換する場合 (コストの値はテキトーです!)
です
文
末ので す
中
綿 市 花 課
10
30 15
30 15
10
15 40
20
50
● 単語生起コスト: 単語の出現優先度を表したコスト
● 連接コスト: 単語と単語の結びつきやすさを表したコスト
→ 全て足して、合計値が最も低いルートが候補になります
15
30 40
45
20
20
20
20
50
20
25
30
40
45
20
20
出現頻度の高い単語は
単語生起コストが低い
「名前」と「花」という単語は
結びつきにくいので連接コストは高い
2018/5/19New Genji をつくったよ 9/18
New Genji (vol.1) のコスト最小法
文節単位(自立語と付属語の組み合わせ)でコストを決定
文
頭
私の
名前
名前は
中野
例)「わたしのなまえはなかのです」を変換する場合 (やはりコストの値はテキトーです!)
です
文
末
中野です
私 の
900
1000 1000 1000
750
1000 1000
860
1000
単語コスト = 1000 (MAX)固定
※文節コストよりも必ず高い
は
文節コスト (自立語 + 付属語) は
単語コストよりも低い
●
単語生起コスト: 1000 固定 (いまのところ)
●
文節コスト(自立語+付属語): 0 < x < 1000
?文節単位の単語の組み合わせが優先される
2018/5/19New Genji をつくったよ 10/18
文節とは?
「自立語 + 付属語」です
Genjiの元となるコーパスでは文節を下記のように定義しています
{
"Independent" : {
"surface" : "私",
"original" : "私",
"read" : "わたし",
"position" : [ "名詞", "代名詞", "一般", "*" ],
"conjugate" : [ "*", "*" ]
},
"Ancillary" : {
"surface" : "の",
"original" : "の",
"read" : "の",
"position" : [ "助詞", "連体化", "*", "*" ],
"conjugate" : [ "*", "*" ]
},
}
自立語 と 付属語 が
1 対 1 で定義されてます
※自立語 = 1 のみの場合もあり
2018/5/19New Genji をつくったよ 11/18
自立語 1 : 付属語 1 だとなにが嬉しいか?
例文 「あひる焼き食べたいな」を単語分割
● Mecab :
「あひる」「焼き」「食べ」「たい」「な」
? 単語の組み合わせによってはあひる焼けない?
● Genji :
「あひる焼き」「食べたいな」
? 確実に「あひる焼き」が召し上がれる!
文節単位で辞書に登録されている!
「あひる」(名詞) + 「焼き」(連体詞)
2018/5/19New Genji をつくったよ 12/18
今後の「Genji」開発予定
● 「係り受けコスト」の追加
文節同士のつながり=文脈を考慮にいれる
→ OSC京都(2018/7)にて公開!?
● 辞書の洗練化
文節単位ではなく、単語単位の辞書を作成したい
例)「あひる焼き」「あひる焼きが」→「あひる焼き」ひとつにする
課題)単語単位の辞書だけでいかにありうる文節を作るか?
2018/5/19New Genji をつくったよ 13/18
実演!
(時間あるかな?)
2018/5/19New Genji をつくったよ 14/18
おーぷん万葉とは?
かな漢字変換も含めて、自然言語処理のアプリを
作成するには巨大なコーパスが必要!
→ 買おうとすると ?0万円!??
→ オープンデータを使えば解決できるのでは?
オープンデータ: 青空文庫、Wikipedia etc...
2018/5/19New Genji をつくったよ 15/18
New Genji とその周囲
コーパス登録
「Kasuga」
辞書集計→CSV化
「GenjiDicBuilder」
「Genji」
辞書バイナリ作成
「Fujitsubo」
ローマ字→かな
「Aoi」
かな→かな漢字
「Murasaki」
MongoDB
辞書
CSV
2018/5/19New Genji をつくったよ 16/18
おーぷん万葉の守備範囲
コーパス登録
「Kasuga」
辞書集計→CSV化
「GenjiDicBuilder」
「Genji」
辞書バイナリ作成
「Fujitsubo」
ローマ字→かな
「Aoi」
かな→かな漢字
「Murasaki」
MongoDB
辞書
CSV
ここ。オープンデータでどんどん活用したい!
2018/5/19New Genji をつくったよ 17/18
Genji & Kasuga 公開場所
● コーパス作成ツール「Kasuga」
https://github.com/hashimom/Kasuga
● かな漢字変換「Genji」
https://github.com/hashimom/Genji
● Genji用辞書構築ツール「GenjiDicBuilder」
https://github.com/hashimom/GenjiDicBuilder
2018/5/19New Genji をつくったよ 18/18
ご清聴ありがとうございましたm(_ _)m
あ、OSC小説「きらめきインターラプト」もよろしくどーぞです
※「きらめきインターラプト」で検索

More Related Content

自作かな汉字変换「骋别苍箩颈」をつくったよ

  • 2. 2018/5/19New Genji をつくったよ 2/18 自己紹介 Name: はしもとまさ(または鹿) ● 東海道らぐ …の関東案内人 ● おーぷん万葉プロジェクト 主に自然言語処理について調べたりいろいろと ● ちびぎーこ保護者会(別名:日本openSUSEユーザ会) 本日はこちらの活動はお休み??? …と思ったら、なぜか今日は薄い本売ってた?(売れた冊数=0冊)
  • 3. 2018/5/19New Genji をつくったよ 3/18 今日は??? かな漢字変換を自作したよ?! というお話 (正確には前からあったのを大改修)
  • 4. 2018/5/19New Genji をつくったよ 4/18 でもかな漢字変換作るのって??? 巨大なコーパス(=日本語の文章)の 解析をする必要があるよね! そもそもそんなに使用できるコーパスなんて 持ってるの??? 注)一番大きな日本語コーパスは買うと何十万円だったりしますorz
  • 5. 2018/5/19New Genji をつくったよ 5/18 唐突ですが、最近始めたこと 私事で全然関係ない話ですが、小説書き始めました! ● 「きらめきインターラプト」 @エブリスタ – オープンソースカンファレンス準拠作品!?? – OSC名古屋編を現在連載中???「あひる焼き」も登場!? ● 冴えカノの二次小説「冴えないフミオの育てかた」 @カクヨム → かな漢字変換のコーパスの元ネタに   できるじゃないか!!(ぇ
  • 6. 2018/5/19New Genji をつくったよ 6/18 話を戻しまして、、、 自作かな漢字変換「Genji」が 復活しました! 注)そもそもOSC大阪?OSC東京で展示物がなかったおーぷん万葉…orz
  • 7. 2018/5/19New Genji をつくったよ 7/18 一番大きな変更点 純粋なコスト最小法を採用! ※詳細は次のスライドで
  • 8. 2018/5/19New Genji をつくったよ 8/18 コスト最小法とは? Mozc(Google日本語入力)の場合: 文 頭 私 の 名前 は 中野 注:ちょっと(かなり?)端折って説明します^^;  例)「わたしのなまえはなかのです」を変換する場合 (コストの値はテキトーです!) です 文 末ので す 中 綿 市 花 課 10 30 15 30 15 10 15 40 20 50 ● 単語生起コスト: 単語の出現優先度を表したコスト ● 連接コスト: 単語と単語の結びつきやすさを表したコスト → 全て足して、合計値が最も低いルートが候補になります 15 30 40 45 20 20 20 20 50 20 25 30 40 45 20 20 出現頻度の高い単語は 単語生起コストが低い 「名前」と「花」という単語は 結びつきにくいので連接コストは高い
  • 9. 2018/5/19New Genji をつくったよ 9/18 New Genji (vol.1) のコスト最小法 文節単位(自立語と付属語の組み合わせ)でコストを決定 文 頭 私の 名前 名前は 中野 例)「わたしのなまえはなかのです」を変換する場合 (やはりコストの値はテキトーです!) です 文 末 中野です 私 の 900 1000 1000 1000 750 1000 1000 860 1000 単語コスト = 1000 (MAX)固定 ※文節コストよりも必ず高い は 文節コスト (自立語 + 付属語) は 単語コストよりも低い ● 単語生起コスト: 1000 固定 (いまのところ) ● 文節コスト(自立語+付属語): 0 < x < 1000 ?文節単位の単語の組み合わせが優先される
  • 10. 2018/5/19New Genji をつくったよ 10/18 文節とは? 「自立語 + 付属語」です Genjiの元となるコーパスでは文節を下記のように定義しています { "Independent" : { "surface" : "私", "original" : "私", "read" : "わたし", "position" : [ "名詞", "代名詞", "一般", "*" ], "conjugate" : [ "*", "*" ] }, "Ancillary" : { "surface" : "の", "original" : "の", "read" : "の", "position" : [ "助詞", "連体化", "*", "*" ], "conjugate" : [ "*", "*" ] }, } 自立語 と 付属語 が 1 対 1 で定義されてます ※自立語 = 1 のみの場合もあり
  • 11. 2018/5/19New Genji をつくったよ 11/18 自立語 1 : 付属語 1 だとなにが嬉しいか? 例文 「あひる焼き食べたいな」を単語分割 ● Mecab : 「あひる」「焼き」「食べ」「たい」「な」 ? 単語の組み合わせによってはあひる焼けない? ● Genji : 「あひる焼き」「食べたいな」 ? 確実に「あひる焼き」が召し上がれる! 文節単位で辞書に登録されている! 「あひる」(名詞) + 「焼き」(連体詞)
  • 12. 2018/5/19New Genji をつくったよ 12/18 今後の「Genji」開発予定 ● 「係り受けコスト」の追加 文節同士のつながり=文脈を考慮にいれる → OSC京都(2018/7)にて公開!? ● 辞書の洗練化 文節単位ではなく、単語単位の辞書を作成したい 例)「あひる焼き」「あひる焼きが」→「あひる焼き」ひとつにする 課題)単語単位の辞書だけでいかにありうる文節を作るか?
  • 13. 2018/5/19New Genji をつくったよ 13/18 実演! (時間あるかな?)
  • 14. 2018/5/19New Genji をつくったよ 14/18 おーぷん万葉とは? かな漢字変換も含めて、自然言語処理のアプリを 作成するには巨大なコーパスが必要! → 買おうとすると ?0万円!?? → オープンデータを使えば解決できるのでは? オープンデータ: 青空文庫、Wikipedia etc...
  • 15. 2018/5/19New Genji をつくったよ 15/18 New Genji とその周囲 コーパス登録 「Kasuga」 辞書集計→CSV化 「GenjiDicBuilder」 「Genji」 辞書バイナリ作成 「Fujitsubo」 ローマ字→かな 「Aoi」 かな→かな漢字 「Murasaki」 MongoDB 辞書 CSV
  • 16. 2018/5/19New Genji をつくったよ 16/18 おーぷん万葉の守備範囲 コーパス登録 「Kasuga」 辞書集計→CSV化 「GenjiDicBuilder」 「Genji」 辞書バイナリ作成 「Fujitsubo」 ローマ字→かな 「Aoi」 かな→かな漢字 「Murasaki」 MongoDB 辞書 CSV ここ。オープンデータでどんどん活用したい!
  • 17. 2018/5/19New Genji をつくったよ 17/18 Genji & Kasuga 公開場所 ● コーパス作成ツール「Kasuga」 https://github.com/hashimom/Kasuga ● かな漢字変換「Genji」 https://github.com/hashimom/Genji ● Genji用辞書構築ツール「GenjiDicBuilder」 https://github.com/hashimom/GenjiDicBuilder
  • 18. 2018/5/19New Genji をつくったよ 18/18 ご清聴ありがとうございましたm(_ _)m あ、OSC小説「きらめきインターラプト」もよろしくどーぞです ※「きらめきインターラプト」で検索