狠狠撸
Submit Search
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
?
0 likes
?
1,243 views
Masahiko Hashimoto
Follow
DNNを使用した新しいかな漢字変換『EgoisticLily』 はAutoEncoderを使用したモデルです。その仕組みを紹介します。
Read less
Read more
1 of 31
Download now
Download to read offline
More Related Content
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
1.
DNNを使用した新しいかな漢字変換 New『Genji』(仮) その仕組みとは? はしもとまさひこ@おーぷん万葉 KANSAI Open
Forum 2019 2019/11/8
2.
2019/11/8DNNを使用した新しいかな漢字変換 2/31 自己紹介 Name: はしもとまさ(または鹿) Twitter: @shikanotsukimi ● 東海道らぐ (Tokaido
Liuxn Uesr Gruop) …の関東案内人 ● おーぷん万葉プロジェクト オープンデータを使用したかな漢字変換の自作など ● ちびぎーこ保護者会(別名:日本openSUSEユーザ会) およそ雑用……?
3.
2019/11/8DNNを使用した新しいかな漢字変換 3/31 鹿野月美として小説書いてる件 ● 『冴えないフミオの育てかた』 – 今秋映画化された『冴えない彼女の育てかた』の二次小説 –
めちゃくちゃ可愛い絵描きさんが主人公 (アニメには一切出てこない地味キャラですが) – 映画も始まったせいか、まもなく10000PV達成(見込み) ● 冬コミにて脚本デビュー!?? – 『おーぷんそーすちゃんねる』にてラジオCDの脚本を担当 – 今回は初の壁配置サークル!! そして豪華声優陣!!? 4日目(大晦日!!)南ナ39b 当日は声優さんもいる……かな? – 絶賛シナリオ書いてます???orz
4.
2019/11/8DNNを使用した新しいかな漢字変換 4/31 本日のアジェンダ ● これまでのかな漢字変換 ● これまでのDNNを使用したかな漢字変換? ● New『Genji』その仕組みとは? ←本日のお題 ● 今後の課題
5.
2019/11/8DNNを使用した新しいかな漢字変換 5/31 これまでのかな漢字変換 OSSでもかな漢字変換は数多くリリースされてきました – 1987年: FreeWnn ● OSC京都でお馴染み(?)のかな漢字変換 –
1990年: Canna ● 逐次変換機能(いわゆるライブ変換?)の先駆者 – 2000年: SKK ● 未だに現役!?? – 2001年: Anthy ● 京都の生んだもう一つのOSSかな漢字変換
6.
2019/11/8DNNを使用した新しいかな漢字変換 6/31 最近のかな漢字変換と言えば? ● 2010年: Mozc – Google日本語入力のOSS版 –
最近のLinuxディストリビューションの標準 ● 2013年: libkkc – RedHatが開発したN-gramのかな漢字変換 – Fedora & RadHatで使用
7.
2019/11/8DNNを使用した新しいかな漢字変換 7/31 Mozc ?
Since 2010 ? Google日本語入力のオープンソース版 ● 現在のLinuxデフォルトといえばほぼこれ! – Ubuntu、Debian、openSUSE… – 例外: RedHat系(Fedora、CentOS) ● 形態素解析を用いたかな漢字変換 形態素解析器 Mecab と同じ開発者(工藤拓氏)
8.
2019/11/8DNNを使用した新しいかな漢字変換 8/31 こんな感じの変換方法(コスト最小法) 文 頭 私 の 名前 は 中野 注:ちょっと(かなり?)端折って説明します^^; 例)「わたしのなまえはなかのです」を変換する場合
(コストの値はテキトーです!) です 文 末ので す 中 綿 市 花 課 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.
2019/11/8DNNを使用した新しいかな漢字変換 9/31 Mozcの問題点 ● 現在開発が停止してしまっています!! – 例えば『令和』 この単語を追加するのに 各ディストリビューション毎に対応する必要が 発生してしまっている状況 (Debian,
Ubuntu, openSUSE...) – 連接コストについては『平成』からの丸パクリ対応 – 但し、単語生起コストについては適当な値を 入れるしかない ※本来はコーパスから導く必要のある値
10.
2019/11/8DNNを使用した新しいかな漢字変換 10/31 (もうひとつの)libkkc ?Since
2013? N-gramによるかな漢字変換 = ビッグデータ(巨大コーパス)を十分に活かせる その反面、辞書が大きくなりすぎてしまう危険性… つまり、形態素解析を行わないかな漢字変換 ? 文節区切りができません!
11.
2019/11/8DNNを使用した新しいかな漢字変換 11/31 libkkcの変換用データ -1.114728 ぬいぐるみ/ぬいぐるみ
」/」 ていど/程度 -0.667107 ぬいぐるみ/ぬいぐるみ 」/」 と/と -0.643911 ぬいぐるみ/ぬいぐるみ うらない/占い を/を -0.740726 ぬいぐるみ/ぬいぐるみ たすう/多数 を/を -0.454970 ぬいぐるみ/ぬいぐるみ だ/だ が/が -0.814252 ぬいぐるみ/ぬいぐるみ で/で わりお/ワリオ -1.110465 ぬいぐるみ/ぬいぐるみ は/は かのじょ/彼女 -0.802579 ぬいぐるみ/ぬいぐるみ やら/やら しゃしん/写真 -1.626115 ぬいぐるみ/ぬいぐるみ を/を 「/「 -1.708439 ぬいぐるみ/ぬいぐるみ を/を せいさく/製作 -1.631926 ぬいぐるみ/ぬいぐるみ を/を つく/作 -1.713616 ぬいぐるみ/ぬいぐるみ を/を なげつけ/投げつけ -1.681401 ぬいぐるみ/ぬいぐるみ を/を のこ/残 -1.713256 ぬいぐるみ/ぬいぐるみ を/を もちこ/持ち込 -1.714574 ぬいぐるみ/ぬいぐるみ を/を よご/汚 -1.716680 ぬいぐるみ/ぬいぐるみ を/を りんぐ/リング -0.813648 ぬいぐるみ/ぬいぐるみ (/( じょん/ジョン -0.803737 ぬいぐるみ/ヌイグルミ の/の こと/こと 単語単位ではなく 単語の組み合わせ単位で 変換用データとして 登録されていますね libkkcの場合は 3単語ずつの組み合わせ = 3-gram = tri-gram これ、ノイズでは??? 実は品詞情報を 一切持っていません!
12.
2019/11/8DNNを使用した新しいかな漢字変換 12/31 そしたらよく言われるの…… AIでなんとか ごにょごにょすればいいじゃん!! あまり無責任なこと言うのやめましょう…
13.
2019/11/8DNNを使用した新しいかな漢字変換 13/31 これまでの深層学習を利用したかな漢字変換 自然言語処理の深層学習といえば……? – RNN –
奥辞谤诲2痴别肠 ←この実装本当にある???
14.
2019/11/8DNNを使用した新しいかな漢字変換 14/31 深層学習の主流はこんな感じとか かな漢字変換 ?
RNN RNN = 時系列が存在するニューラルネットワーク 私 輪他市 綿し わたし の の 野 生絵名前 なまえ 菜真絵 青丸ひとつひとつが「重み」 これだけの計算が必要…orz
15.
2019/11/8DNNを使用した新しいかな漢字変換 15/31 その他は? 例えばWord2Vec…… Word2Vecを利用したかな漢字変換は さすがに聞いたことない。。。 (類似の単語を取り出してかな漢字変換???)
16.
2019/11/8DNNを使用した新しいかな漢字変換 16/31 私の(これまでの)正直な感想。 深層学習でかな漢字変換って やっぱりまだまだなのでは? ……と、去年まではそう話しておりました。
17.
2019/11/8DNNを使用した新しいかな漢字変換 17/31 ところ変わって私の職場のお話 そもそも今回のお話のきっかけ。 私の職場(どことは言わないけど自然言語処理ではない)では 深層学習を利用している ?いわゆる異常検知 これはどこにでもありがちな話ですよね!
18.
2019/11/8DNNを使用した新しいかな漢字変換 18/31 使用しているモデル =
AutoEncoder 入力をエンコードして、特徴抽出した後 デコードしてデータを復元し、入力値と比較する ?きちんと復元できればそれって異常なし! 異常検知ではわりとどこでも使われてる一般的なモデルです! 入力 出力 特徴抽出 二乗誤差を算出して 誤差が大きい 異常度が高い?
19.
2019/11/8DNNを使用した新しいかな漢字変換 19/31 あれ? このパターン、ついさっき見ませんでしたっけ?
20.
2019/11/8DNNを使用した新しいかな漢字変換 20/31 異常度==コスト!?? ● Mozc – 連接コスト&生起コストを算出し コストが低いルートを選択してかな漢字変換を行う ● 異常検知 –
異常度を算出し、異常度が高いと異常を検知する ようはスコアが低くなるルートを選択するんですよね? やってること同じじゃない!??
21.
2019/11/8DNNを使用した新しいかな漢字変換 21/31 ところで異常度が高い日本語って? 「私の名前は中野です」=正常 「私が名前は中野です」=異常 どうしてこれが異常なのか??
22.
2019/11/8DNNを使用した新しいかな漢字変換 22/31 係り受けに着目してみよう ● 「私 /
の / 名前」 ?「私」が「名前」に係っている 「私」と「名前」という単語を「の」が結んでいる ● 「私 / が / 名前」 ?「私」が「名前」に係っていない 上記の3単語は関連性がない 3単語をペアにして、正常か否かを学習させてみる
23.
2019/11/8DNNを使用した新しいかな漢字変換 23/31 とりあえずこんな学習させてみた 1.係り受けで紐づく3単語をセットにして抽出 ?それぞれの単語に16bitの乱数を設定 ?16列のベクトル(0 or
1)に変換して 3単語 × 16bit = 48列をひとつの学習データとする 1 0 0 1 …… 1 0 1 1 1 …… 0 1 1 1 0 …… 0 私 の 名前 合計48bitの 0 or 1 をAutoEncoderの入力へ 単語ごとに テキトーな乱数を 16bit化
24.
2019/11/8DNNを使用した新しいかな漢字変換 24/31 単語をベクトル化??? 2.AutoEncoderで学習させて出力として出てきたベクトルを 次回学習時の入力として使用する ※平均をとり、平均以上の値を “1”、そうでなければ
“0” として 再度16bitの値へ変換する(もっといい方法ある…?) 入力 出力 48bitの 0 or 1 の行列 48個の float型 の配列 Auto Encoder 配列の平均を取り 0 or 1 の行列へ 変換 再び入力へ
25.
2019/11/8DNNを使用した新しいかな漢字変換 25/31 試した結果 ちゃんと損失値は下がりました! てことは、学習は進んでる!?
26.
2019/11/8DNNを使用した新しいかな漢字変換 26/31 というわけで新かな漢字変換 名前: EgoisticLily 某ラノベに出てくるサークル名から。
27.
2019/11/8DNNを使用した新しいかな漢字変換 27/31 AutoEncoderを使用するメリット ● 学習が速い! ※対RNN? ←比較対象間違え? ● 品詞情報と一緒に学習しておくと 新単語追加時にひとまず品詞情報さえ入れておけば どうにか動く! ● 従来のN-Gramかな漢字変換と異なり 品詞情報を付与できる! →文節区切りが可能なはず……?
28.
2019/11/8DNNを使用した新しいかな漢字変換 28/31 本日、東海道らぐブースにて展示しております! ……え、もう展示時間終わり??? ※興味のある方はこの後片付け中にでも(汗) 実演については……
29.
2019/11/8DNNを使用した新しいかな漢字変換 29/31 今後の課題 実はこのモデル(気づいたと思いますが) 頻度情報を持っていません!! ※敢えて持たせないようにしていたとも言う…… 下記の問題をどう解決するか? おおさかじょう 大阪城?
or 大坂城!? ※品詞も同じのため、どちらが優先されるかは運次第?
30.
2019/11/8DNNを使用した新しいかな漢字変換 30/31 今後の運用方針 ● 現状KNPの結果から学習データを生成している ?できればNEologdの辞書データも使いたい! ● 辞書ベースによるかな漢字変換は継続したい ?毎回DNNを学習するのはさすがに避けたい! ● オープンデータをさらに活かした形で! ?青空文庫のコーパス化を進めたい!
31.
2019/11/8DNNを使用した新しいかな漢字変換 31/31 ご清聴、ありがとうございました!
Download