SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
あいさつ学習すると
     友達が
ぽぽぽぽーんと増えるよ!
     2011/07/16 しょうゆ
     (twitter,hatena:showyou)
                           1
自己紹介

名前:しょうゆ(@showyou)
 職業:データマイニン
 グエンジニア
 趣味:人工無脳づくり

               2
自己紹介

         名前:しょうゆ(@showyou)
          職業:データマイニン
          グエンジニア
          趣味:人工無脳づくり
                  今日もこの話
@ha_ma   @yuka_            3
発表の注意点
●
  いわゆる「やってみた」系です。
  理論的に高度なものはつかってま
  せん。
●
  高度な話が聞きたければ
  TokyoNLPにも参加しましょう!
  ACL読みとかもあるよ!

                       4
最近抱える悩み
●
  ランダム発言→ほんと適当。つまんな
  い
●
  固定の挨拶→パターン少ない。飽きる

●
    挨拶を他人のやりとりからパク学習
    できないか

                   5
図で言うと

愛してるよ!

   私も!
   じー・・




          6
図で言うと

       愛してるよ!

えっ!!

       私も!

             in   out
             愛してる 私も
                        7
一番簡単な方法
●   あいさつがあった発言(あいさつ元
    発言)と全く同じものが来たら、
    過去に覚えた文章を返す
    ●
        実装はとても楽
    ●
        だけど文が全く一致することはない
        –   語尾が変わるだけでも一致しない


                              8
ちょっと凝った方法
●
    あいさつ元発言と似たもの
    →過去に覚えたのと似た言葉を返
    す
    ・・「似た」って何だ?編集距離が近
    いとか?




                        9
以下の方法を取った
●
    あいさつ元発言と似たもの
    =単語に分解して単語の出現頻度
    が近い物。単語の出現順は考慮しない
●
    さらに手抜き
    「入力文章を単語に分ける→それぞれ
    の単語の応答が一番出そうな返信語を
    持つ文」
    を返事とするようにした
                        10
イメージ
●
    おはようございます。今日は暑いで
    すね




                   11
イメージ
●
    おはようございます。今日は暑いで
    すね



      助詞などありふれた単語はカット


                    12
イメージ
●
    おはようございます。今日は暑いで
    すね
文章            返信文章
おはようございます。今   おはようございます
日も一日頑張りましょ
う。
おはよう。今日も電車 おはよう。お気の毒
が止まった      に。
・・・
      単語に分割集計
                          13
イメージ
●
    おはようございます。今日は暑いで
    すね
    順位   返信語    確率     順位 返信語   確率    順位 返信語    確率
    1    おはよう   0.8    1   今日   0.5   1   溶ける   0.5

    2    おはよー   0.5    2   明日   0.1   2   水分    0.1

    3    お気の毒   0.5    3              3




              「おはよう」
          (一番有意な単語/属性を推定)
           (今回はまだ単語一つのみ)
                                                  14
イメージ
●
    おはようございます。今日は暑いで
    すね

●   {おはよう}を含む文章を取ってくる



                        15
イメージ
●
    おはようございます。今日は暑いで
    すね

●   {おはよう,}を含む文章を取ってくる

●
    「おはよう、今日も溶けるよ~」
                      16
実装
● 大量のTweetを収集
● 中からin_reply_toを含むTweet(応

  答Tweets)を抽出
● (Tweetから名詞を抜き出す


● {応答元名詞:応答先名詞}の組み

  わせで共起回数を集計)
                             17
デモ
● Python + MySQL + MeCab
●
  学習データ
    ●   Tweets 7000万,75GB(thx
        @penguinana_)
    ●   応答Tweets 740万,15GB



                                18
Future work
●   現状応答の都度、適応する文章をlike
    検索しているためとても重い
    共起テーブル入れます。。↓
    返信元単語 返信先単語    回数
    帰宅    ただいま     125
    起きた   おはよう     30

                         19
Future work
●
    返答精度向上
    ●
        モデル改良
        –   返答元の単語群から一番尤度の高い返答語群
            を選べないか?
    ●
        大量の学習データ
        –   現状
            ●   MySQL + TokyoCabinet
        –   Hadoop等も視野

                                       20
Future work
●
  会話を行ってる人の感情をモデル化
  できないか
● 例:HMMを使って状態を推測してか

  ら発言
    ●
        ツン状態→「ふん、あなたの入り込む余地
        はなくてよ」
    ●
        デレ状態→「や、あなたと離れ離れになる
        なんていや・・」
                           21
●   HMMを使って状態を推測してか
          ら発言
B




       おはよう   やあ、       またねー    またねー


A
      「朝の挨拶」の状態     「さよなら」の状態




        発話               発話
                                   22
課題
●   Penguinana_様のデータに
    in_reply_toがなかった
    ●   tweetのidから元tweetを取得し、そこから
        in_reply_to抽出
    ●   API制限(IP制限)
●   Mecabの品詞判定ミス
    ●   (とかが名詞と判定される
    ●
        このあたりは仕掛けでなんとかできそう      23
まとめ
●
  「応答を自動で学習する」ことを力
  づくで行った
●
  何も考えなくても形態素解析と集計
  と抽出だけでほとんど出来ている
    ●
        今後はちゃんとモデルとか数式とか考えて
        いきたいけど・・


                          24

Contenu connexe

En vedette

TomonkenTohoku40th(20150125)
TomonkenTohoku40th(20150125)TomonkenTohoku40th(20150125)
TomonkenTohoku40th(20150125)真 岡本
 
CA Japan seminar mainframe2.0 2011/10/26
CA Japan seminar mainframe2.0 2011/10/26CA Japan seminar mainframe2.0 2011/10/26
CA Japan seminar mainframe2.0 2011/10/26Kaneko Izumi
 
レジリエンス・コーチング
レジリエンス・コーチングレジリエンス・コーチング
レジリエンス・コーチングKeita Kiuchi
 
至近距離ガールVR 開発事例
至近距離ガールVR 開発事例至近距離ガールVR 開発事例
至近距離ガールVR 開発事例Kohki Nakaji
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)Yasuhiko Yamamoto
 
プログラミング生放送20160213
プログラミング生放送20160213プログラミング生放送20160213
プログラミング生放送20160213雅希 森
 
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2GREE/Art
 
第100回カーネル読書会の作り方
第100回カーネル読書会の作り方第100回カーネル読書会の作り方
第100回カーネル読書会の作り方Hiro Yoshioka
 
イトクロ就活総研「大学生のキャリア志向性・学習状況・大学への要望等に関するアンケート」報告書
イトクロ就活総研「大学生のキャリア志向性・学習状況・大学への要望等に関するアンケート」報告書イトクロ就活総研「大学生のキャリア志向性・学習状況・大学への要望等に関するアンケート」報告書
イトクロ就活総研「大学生のキャリア志向性・学習状況・大学への要望等に関するアンケート」報告書株式会社イトクロ 人材戦略部
 
How to read linux kernel
How to read linux kernelHow to read linux kernel
How to read linux kernelNaoya Ito
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきことmao999
 
機械学習を学ぶための準備 その4 (行列の掛け算について) 試験問題 解答
機械学習を学ぶための準備 その4  (行列の掛け算について) 試験問題 解答機械学習を学ぶための準備 その4  (行列の掛け算について) 試験問題 解答
機械学習を学ぶための準備 その4 (行列の掛け算について) 試験問題 解答NHN テコラス株式会社
 
ネットワーク超入門
ネットワーク超入門ネットワーク超入門
ネットワーク超入門xyzplus_net
 
私はこうやってSlackを社内で流行らせました
私はこうやってSlackを社内で流行らせました私はこうやってSlackを社内で流行らせました
私はこうやってSlackを社内で流行らせましたNHN テコラス株式会社
 
Linuxカーネル超入門
Linuxカーネル超入門Linuxカーネル超入門
Linuxカーネル超入門Takashi Masuda
 

En vedette (18)

LSM Leaks
LSM LeaksLSM Leaks
LSM Leaks
 
TomonkenTohoku40th(20150125)
TomonkenTohoku40th(20150125)TomonkenTohoku40th(20150125)
TomonkenTohoku40th(20150125)
 
CA Japan seminar mainframe2.0 2011/10/26
CA Japan seminar mainframe2.0 2011/10/26CA Japan seminar mainframe2.0 2011/10/26
CA Japan seminar mainframe2.0 2011/10/26
 
計算機(物理)
計算機(物理)計算機(物理)
計算機(物理)
 
レジリエンス・コーチング
レジリエンス・コーチングレジリエンス・コーチング
レジリエンス・コーチング
 
至近距離ガールVR 開発事例
至近距離ガールVR 開発事例至近距離ガールVR 開発事例
至近距離ガールVR 開発事例
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
 
プログラミング生放送20160213
プログラミング生放送20160213プログラミング生放送20160213
プログラミング生放送20160213
 
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
 
第100回カーネル読書会の作り方
第100回カーネル読書会の作り方第100回カーネル読書会の作り方
第100回カーネル読書会の作り方
 
イトクロ就活総研「大学生のキャリア志向性・学習状況・大学への要望等に関するアンケート」報告書
イトクロ就活総研「大学生のキャリア志向性・学習状況・大学への要望等に関するアンケート」報告書イトクロ就活総研「大学生のキャリア志向性・学習状況・大学への要望等に関するアンケート」報告書
イトクロ就活総研「大学生のキャリア志向性・学習状況・大学への要望等に関するアンケート」報告書
 
How to read linux kernel
How to read linux kernelHow to read linux kernel
How to read linux kernel
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
 
機械学習を学ぶための準備 その4 (行列の掛け算について) 試験問題 解答
機械学習を学ぶための準備 その4  (行列の掛け算について) 試験問題 解答機械学習を学ぶための準備 その4  (行列の掛け算について) 試験問題 解答
機械学習を学ぶための準備 その4 (行列の掛け算について) 試験問題 解答
 
ネットワーク超入門
ネットワーク超入門ネットワーク超入門
ネットワーク超入門
 
家庭で使うSlack
家庭で使うSlack家庭で使うSlack
家庭で使うSlack
 
私はこうやってSlackを社内で流行らせました
私はこうやってSlackを社内で流行らせました私はこうやってSlackを社内で流行らせました
私はこうやってSlackを社内で流行らせました
 
Linuxカーネル超入門
Linuxカーネル超入門Linuxカーネル超入門
Linuxカーネル超入門
 

Plus de show you

Iaas, paasと利用者
Iaas, paasと利用者Iaas, paasと利用者
Iaas, paasと利用者show you
 
Classification of Visualize Tool
Classification of Visualize ToolClassification of Visualize Tool
Classification of Visualize Toolshow you
 
An introduction of hue
An introduction of hueAn introduction of hue
An introduction of hueshow you
 
A survey of 2013 data science salary survey”
A survey of   2013 data science salary survey”A survey of   2013 data science salary survey”
A survey of 2013 data science salary survey”show you
 
二階堂愛と二階堂藍の違いについて
二階堂愛と二階堂藍の違いについて二階堂愛と二階堂藍の違いについて
二階堂愛と二階堂藍の違いについてshow you
 
Pycon tw 2013
Pycon tw 2013Pycon tw 2013
Pycon tw 2013show you
 
Mobageのhadoop活用環境と適用方法
Mobageのhadoop活用環境と適用方法Mobageのhadoop活用環境と適用方法
Mobageのhadoop活用環境と適用方法show you
 
13.2 隠れマルコフモデル
13.2 隠れマルコフモデル13.2 隠れマルコフモデル
13.2 隠れマルコフモデルshow you
 
plot beta dist
plot beta distplot beta dist
plot beta distshow you
 
SIG-WI2 twitterにおける、人工無脳との インタラクション
SIG-WI2 twitterにおける、人工無脳との インタラクションSIG-WI2 twitterにおける、人工無脳との インタラクション
SIG-WI2 twitterにおける、人工無脳との インタラクションshow you
 

Plus de show you (12)

Iaas, paasと利用者
Iaas, paasと利用者Iaas, paasと利用者
Iaas, paasと利用者
 
Classification of Visualize Tool
Classification of Visualize ToolClassification of Visualize Tool
Classification of Visualize Tool
 
An introduction of hue
An introduction of hueAn introduction of hue
An introduction of hue
 
A survey of 2013 data science salary survey”
A survey of   2013 data science salary survey”A survey of   2013 data science salary survey”
A survey of 2013 data science salary survey”
 
二階堂愛と二階堂藍の違いについて
二階堂愛と二階堂藍の違いについて二階堂愛と二階堂藍の違いについて
二階堂愛と二階堂藍の違いについて
 
Pycon tw 2013
Pycon tw 2013Pycon tw 2013
Pycon tw 2013
 
Mobageのhadoop活用環境と適用方法
Mobageのhadoop活用環境と適用方法Mobageのhadoop活用環境と適用方法
Mobageのhadoop活用環境と適用方法
 
Yuka
YukaYuka
Yuka
 
3.4
3.43.4
3.4
 
13.2 隠れマルコフモデル
13.2 隠れマルコフモデル13.2 隠れマルコフモデル
13.2 隠れマルコフモデル
 
plot beta dist
plot beta distplot beta dist
plot beta dist
 
SIG-WI2 twitterにおける、人工無脳との インタラクション
SIG-WI2 twitterにおける、人工無脳との インタラクションSIG-WI2 twitterにおける、人工無脳との インタラクション
SIG-WI2 twitterにおける、人工無脳との インタラクション
 

aisatsu suruto tomodachiga popopoponnto hueruyo

  • 1. あいさつ学習すると 友達が ぽぽぽぽーんと増えるよ! 2011/07/16 しょうゆ (twitter,hatena:showyou) 1
  • 3. 自己紹介 名前:しょうゆ(@showyou) 職業:データマイニン グエンジニア 趣味:人工無脳づくり 今日もこの話 @ha_ma @yuka_ 3
  • 4. 発表の注意点 ● いわゆる「やってみた」系です。 理論的に高度なものはつかってま せん。 ● 高度な話が聞きたければ TokyoNLPにも参加しましょう! ACL読みとかもあるよ! 4
  • 5. 最近抱える悩み ● ランダム発言→ほんと適当。つまんな い ● 固定の挨拶→パターン少ない。飽きる ● 挨拶を他人のやりとりからパク学習 できないか 5
  • 6. 図で言うと 愛してるよ! 私も! じー・・ 6
  • 7. 図で言うと 愛してるよ! えっ!! 私も! in out 愛してる 私も 7
  • 8. 一番簡単な方法 ● あいさつがあった発言(あいさつ元 発言)と全く同じものが来たら、 過去に覚えた文章を返す ● 実装はとても楽 ● だけど文が全く一致することはない – 語尾が変わるだけでも一致しない 8
  • 9. ちょっと凝った方法 ● あいさつ元発言と似たもの →過去に覚えたのと似た言葉を返 す ・・「似た」って何だ?編集距離が近 いとか? 9
  • 10. 以下の方法を取った ● あいさつ元発言と似たもの =単語に分解して単語の出現頻度 が近い物。単語の出現順は考慮しない ● さらに手抜き 「入力文章を単語に分ける→それぞれ の単語の応答が一番出そうな返信語を 持つ文」 を返事とするようにした 10
  • 11. イメージ ● おはようございます。今日は暑いで すね 11
  • 12. イメージ ● おはようございます。今日は暑いで すね 助詞などありふれた単語はカット 12
  • 13. イメージ ● おはようございます。今日は暑いで すね 文章 返信文章 おはようございます。今 おはようございます 日も一日頑張りましょ う。 おはよう。今日も電車 おはよう。お気の毒 が止まった に。 ・・・ 単語に分割集計 13
  • 14. イメージ ● おはようございます。今日は暑いで すね 順位 返信語 確率 順位 返信語 確率 順位 返信語 確率 1 おはよう 0.8 1 今日 0.5 1 溶ける 0.5 2 おはよー 0.5 2 明日 0.1 2 水分 0.1 3 お気の毒 0.5 3 3 「おはよう」 (一番有意な単語/属性を推定) (今回はまだ単語一つのみ) 14
  • 15. イメージ ● おはようございます。今日は暑いで すね ● {おはよう}を含む文章を取ってくる 15
  • 16. イメージ ● おはようございます。今日は暑いで すね ● {おはよう,}を含む文章を取ってくる ● 「おはよう、今日も溶けるよ~」 16
  • 17. 実装 ● 大量のTweetを収集 ● 中からin_reply_toを含むTweet(応 答Tweets)を抽出 ● (Tweetから名詞を抜き出す ● {応答元名詞:応答先名詞}の組み わせで共起回数を集計) 17
  • 18. デモ ● Python + MySQL + MeCab ● 学習データ ● Tweets 7000万,75GB(thx @penguinana_) ● 応答Tweets 740万,15GB 18
  • 19. Future work ● 現状応答の都度、適応する文章をlike 検索しているためとても重い 共起テーブル入れます。。↓ 返信元単語 返信先単語 回数 帰宅 ただいま 125 起きた おはよう 30 19
  • 20. Future work ● 返答精度向上 ● モデル改良 – 返答元の単語群から一番尤度の高い返答語群 を選べないか? ● 大量の学習データ – 現状 ● MySQL + TokyoCabinet – Hadoop等も視野 20
  • 21. Future work ● 会話を行ってる人の感情をモデル化 できないか ● 例:HMMを使って状態を推測してか ら発言 ● ツン状態→「ふん、あなたの入り込む余地 はなくてよ」 ● デレ状態→「や、あなたと離れ離れになる なんていや・・」 21
  • 22. HMMを使って状態を推測してか ら発言 B おはよう やあ、 またねー またねー A 「朝の挨拶」の状態 「さよなら」の状態 発話 発話 22
  • 23. 課題 ● Penguinana_様のデータに in_reply_toがなかった ● tweetのidから元tweetを取得し、そこから in_reply_to抽出 ● API制限(IP制限) ● Mecabの品詞判定ミス ● (とかが名詞と判定される ● このあたりは仕掛けでなんとかできそう 23
  • 24. まとめ ● 「応答を自動で学習する」ことを力 づくで行った ● 何も考えなくても形態素解析と集計 と抽出だけでほとんど出来ている ● 今後はちゃんとモデルとか数式とか考えて いきたいけど・・ 24