Python の自動文章生成ライブラリmarkovchains とその活用方法  (Twitter Bot) について   株式会社オーシーシー 小野裕作                       1
自己紹介•   氏名: 小野裕作•   株式会社オーシーシー•   琉大情報工学科出身•   github: http://github.com/yono•   主に python 使ってます                          ...
Twitter Bot とは?• Twitter: ユーザーが「つぶやき」を投稿する Web サービス http://twitter.com/yono• Twitter 上で自動的に発言をするプログラム• 人間の発言を模倣してコミュニケーション...
会話文の作り方• Twitter やチャットなどから収集したログを使う• 開発者自身が手作業で文章を用意する• マルコフ連鎖を利用して文を生成する   → 本発表でのテーマ                               4
マルコフ連鎖で文章生成• 単語を順次発生させる• 次に選択される単語は現在の単語を基に決定される        は 今日現在の単語       これから                            5
マルコフ連鎖で文章生成• 単語を順次発生させる• 次に選択される単語は現在の単語を基に決定される     現在の単語                    とても       は今日             これから              ...
マルコフ連鎖で文章生成• 単語を順次発生させる• 次に選択される単語は現在の単語を基に決定される               とても       は今日              現在の単語                      暑い   ...
N階マルコフ連鎖• 単語を順次発生させる• 次に選択される単語は現在の単語を含む N - 1 個の 単語を基に決定される      現在の単語                     とても        は今日              これ...
ライブラリを開発• マルコフ連鎖による文章生成はとてもポピュラー• N階マルコフ連鎖に対応させようとすると途端に面倒• 日本語文を取り扱う際にも面倒な部分が多々→ python-markovchains の開発                 ...
markovchains の機能一覧1.読み込んだ文章を基に、文章を生成する2.読み込んだ文章を分解してデータベースに保存する3.データベースに保存した情報を基に文章を生成する  → PostgreSQL, MySQL に対応4.N階マルコフ連...
markovchains の機能について(1)• 読み込んだ文章を基に、文章を生成する from markovchains import markovchains # library を import m = markovchains.Mark...
markovchains の機能について(2)• 読み込んだ文章を分解してデータベースに保存する from markovchains import markovchains # library を import m = markovchains...
markovchains の機能について(3)• データベースに保存した情報を基に文章を生成する from markovchains import markovchains # library を import m = markovchains...
markovchains の機能について(4) • N階マルコフ連鎖に対応from markovchains import markovchains   # library を importm = markovchains.MarkovChai...
実行例• 2階と3階マルコフ連鎖の違い                   15
markovchains の活用例•   Twitter Bot を作成•   yonobot (http://twitter.com/yonobot)•   特定のユーザの発言を定期的にDBに保存•   Reply に対して返事をする    ...
まとめ• マルコフ連鎖で文章生成• ライブラリがあるといろいろと便利• Twitter Bot が簡単に実装できる github でソース公開してます markovchains  http://github.com/yono/python-ma...
Upcoming SlideShare
Loading in …5
×

Javakuche yono

1,206 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,206
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Javakuche yono

  1. 1. Python の自動文章生成ライブラリmarkovchains とその活用方法 (Twitter Bot) について 株式会社オーシーシー 小野裕作 1
  2. 2. 自己紹介• 氏名: 小野裕作• 株式会社オーシーシー• 琉大情報工学科出身• github: http://github.com/yono• 主に python 使ってます 2
  3. 3. Twitter Bot とは?• Twitter: ユーザーが「つぶやき」を投稿する Web サービス http://twitter.com/yono• Twitter 上で自動的に発言をするプログラム• 人間の発言を模倣してコミュニケーションを図るタイプ → 人工無脳• 自発的に話しかけたり、呼び掛けに応じたり• すどりが有名 http://twitter.com/sudori 3
  4. 4. 会話文の作り方• Twitter やチャットなどから収集したログを使う• 開発者自身が手作業で文章を用意する• マルコフ連鎖を利用して文を生成する → 本発表でのテーマ 4
  5. 5. マルコフ連鎖で文章生成• 単語を順次発生させる• 次に選択される単語は現在の単語を基に決定される は 今日現在の単語 これから 5
  6. 6. マルコフ連鎖で文章生成• 単語を順次発生させる• 次に選択される単語は現在の単語を基に決定される 現在の単語 とても は今日 これから 6
  7. 7. マルコフ連鎖で文章生成• 単語を順次発生させる• 次に選択される単語は現在の単語を基に決定される とても は今日 現在の単語 暑い 7
  8. 8. N階マルコフ連鎖• 単語を順次発生させる• 次に選択される単語は現在の単語を含む N - 1 個の 単語を基に決定される 現在の単語 とても は今日 これから 8
  9. 9. ライブラリを開発• マルコフ連鎖による文章生成はとてもポピュラー• N階マルコフ連鎖に対応させようとすると途端に面倒• 日本語文を取り扱う際にも面倒な部分が多々→ python-markovchains の開発 9
  10. 10. markovchains の機能一覧1.読み込んだ文章を基に、文章を生成する2.読み込んだ文章を分解してデータベースに保存する3.データベースに保存した情報を基に文章を生成する → PostgreSQL, MySQL に対応4.N階マルコフ連鎖に対応 10
  11. 11. markovchains の機能について(1)• 読み込んだ文章を基に、文章を生成する from markovchains import markovchains # library を import m = markovchains.MarkovChains() # instance 生成 text = u””” 親譲(おやゆず)りの無鉄砲(むてっぽう)で 小供の時から損ばかりしている。 ””” m.analyze_sentence(text) # 文章解析 print m.make_sentence() # 文章生成 11
  12. 12. markovchains の機能について(2)• 読み込んだ文章を分解してデータベースに保存する from markovchains import markovchains # library を import m = markovchains.MarkovChains() # instance 生成 text = u””” 親譲(おやゆず)りの無鉄砲(むてっぽう)で 小供の時から損ばかりしている。 ””” m.analyze_sentence(text) # 文章解析 m.load_db(‘postgresql’, ‘markov’) # DBMS, DB名を指定 m.db.register_data() # DB に保存 12
  13. 13. markovchains の機能について(3)• データベースに保存した情報を基に文章を生成する from markovchains import markovchains # library を import m = markovchains.MarkovChains() # instance 生成 m.load_db(‘postgresql’, ‘markov’) # DBMS, DB名を指定 m.db.make_sentence() # 文章生成 13
  14. 14. markovchains の機能について(4) • N階マルコフ連鎖に対応from markovchains import markovchains # library を importm = markovchains.MarkovChains() # デフォルトだと3階m = markovchains.MarkovChains(order_num=2) # 2階マルコフ連鎖 14
  15. 15. 実行例• 2階と3階マルコフ連鎖の違い 15
  16. 16. markovchains の活用例• Twitter Bot を作成• yonobot (http://twitter.com/yonobot)• 特定のユーザの発言を定期的にDBに保存• Reply に対して返事をする 16
  17. 17. まとめ• マルコフ連鎖で文章生成• ライブラリがあるといろいろと便利• Twitter Bot が簡単に実装できる github でソース公開してます markovchains http://github.com/yono/python-markovchains yonobot http://github.com/yono/py-yonobot 17

×