37
金岡プロジェクト 5516021 円城寺祐太 5516030 小澤明弘 5517092 丸山里沙 5517096 矢澤弘輝 1

金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

金岡プロジェクト

5516021 円城寺祐太5516030 小澤明弘5517092 丸山里沙5517096 矢澤弘輝 1

Page 2: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

作業割り当て

6月29日 7月6日 7月13日

円城寺 指定したニュースの取得 商品情報の取得ボットの状態管理

結合テスト

小澤 Mecabによる形態素解析単語の抽出

単語の保存 パワーポイントの作成

丸山 会話データ作成Pythonの文法取得

Pythonの文法習得 会話データ作成

矢澤 会話データ作成Pythonの文法取得

天気機能の作成 天気機能の作成

2

Page 3: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

目的

・その人に合った商品をおすすめする。

・人間味のあるボットをつくる。

・Pythonの基本文法習得。

3

Page 4: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

人間味のあるボット

・キャラの名前:レコ(Recommend Botから)

4

Page 5: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

人間味のあるボット

・ボットの会話内容を人間らしく

好きなスポーツは何ですか?,ちなみに私は運動音痴です好きな服は何ですか?,そんなあなたに福がきますように☆好きな映画は何ですか?,TUTAYAに行って借りてきましょう

質問内容→返答の順でテキストに保存。

5

Page 6: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

シャーロックホームズです。

好きな本は何ですか?

読書家は嫌いじゃないです。

好きな本は何ですか?,読書家は嫌いじゃないです。

6

Page 7: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

実装予定だった機能

・amazonの商品のおすすめを紹介する。

・会話内容を保存しそのデータによって相手の傾向を予測する。

メイン機能

7

Page 8: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

サブ機能

実装予定だった機能

・保存中のデータに基づいたニュースの提供。

・天気を教える。

・アラーム機能(時間指定機能)

8

Page 9: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

実装した機能

・楽天の商品のおすすめを紹介する。

・会話内容を保存しそのデータをキーワードとしておすすめを紹介。

メイン機能

9

Page 10: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

サブ機能

実装した機能

・保存中のデータに基づいたニュースの提供。

・天気を教える。

・時間経過でBotが発言する。

10

Page 11: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

その人に合った商品をおすすめする

機械学習です。

どんなものに興味がありますか?

単語を保存

また一つ知ることができました11

Page 12: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

ぎっくり腰機械学習ひつじディープラーニング

保存した単語データ

単語をキーワードとして「ニュース」や「商品」を検索する。

12

Page 13: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

・クエリ文字列

https://app.rakuten.co.jp/services/api/IchibaItem

/Search/20170706?format=xml

・?の後に変数名=値

を書くことでそれに基づいたページを要求できる。

Format(形式)をxmlという形式に指定。13

Page 14: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

日本語を値として指定したい場合は変換する必要がある。

http://example.com?keyword=

%E3%83%9C%E3%83%83%E3%83%88

http://example.com?keyword=ボット

14

Page 15: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

クエリ文字列を利用して保存データからニュースや商品を検索する!

ぎっくり腰機械学習ひつじディープラーニング http://example.com?keyword=

%E3%81%B2%E3%81%A4%E3%81%98

http://example.com?keyword=ひつじ

15

Page 16: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

http://example.com?keyword=

%E3%81%B2%E3%81%A4%E3%81%98

http://example.com?keyword=ひつじ

このように求めたurlに対してスクレイピングを行い情報を得る。

16

Page 17: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

トリガー(反応するキーワード)→返答の順で保存。

コンニチハ,こんにちは!アリガトウ,礼に及ぶことの程ではないですよアキタ,そんなこと言わないで

基本的な返答

17

Page 18: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

ありがとう。

礼に及ぶことの程ではないですよ。

アリガトウ,礼に及ぶことの程ではないですよ。

18

Page 19: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

使用した主な技術

・楽天の情報取得→楽天市場商品検索API

・スクレイピング

・ネット上の画像の表示

・Mecabによる形態素解析

19

Page 20: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

attachmentsの使用

・messageのreply_webapiメソッドを使うことでslackApiのattachmentsを使うことが可能。

message.reply_webapi(“発言内容”,attachments= [

attachmentの中身

]20

Page 21: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

Attachmentの書き方は公式のドキュメントに書かれている。

slackAPIAttaching content and links to messages

https://api.slack.com/docs/message-attachments

21

Page 22: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

ネット上の画像の表示

ここに画像のurlを入力!

22

Page 23: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

実行例

23

Page 24: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

attachmentsの中身を変えることでリンク付きボタンを作成することも可能。

24

リンク付きボタン

Page 25: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

実行例

25

Page 26: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

waitCityName(地名待機)

WaitQReply(質問待機)

None(通常状態)

状態遷移

26

Page 27: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

工夫した点

・テキストファイルでのパターンの追加を容易にした。・slackのAPIを用いることでUIの見栄えを良くした。

27

Page 28: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

課題

・質問に対応した特定の反応しかできない。・Mecabで単語を分解するときうまく分解できないときがある。

28

Page 29: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

参考文献

・Attaching content and links to messages

https://api.slack.com/docs/message-attachments

・slackbot - A chat bot for Slackhttps://github.com/lins05/slackbot/blob/develop/README.md

・PythonとBeautiful Soupでスクレイピング - Qiitahttps://qiita.com/itkr/items/513318a9b5b92bd56185

29

Page 30: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

参考文献

・pythonでシンプルなinteractive button付きSlackbotを作る – Qiita

https://qiita.com/sh-tatsuno/items/55cd5f9e78b212fb57c2

・Slack API attachmentsチートシート – Qiita

https://qiita.com/daikiojm/items/759ea40c00f9b539a4c8

・楽天ウェブサービス: 楽天商品検索API(version:2017-07-06) | API一覧

https://webservice.rakuten.co.jp/api/ichibaitemsearch/

30

Page 31: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

参考文献

・Slack Interactive Messageリファレンス – Qiita

https://qiita.com/hypermkt/items/b2ffaf610ac92235c4d6

31

Page 32: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

デモ

32

Page 33: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

33

Page 34: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

34

Page 35: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

35

Page 36: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

36

Page 37: 金岡プロジェクトœ€終...Pythonの文法取得 Pythonの文法習得 会話データ作成 矢澤 会話データ作成 Pythonの文法取得 ... スクレイピングを行い情報を得る。

37