Submit Search
Upload
興味から遠い論文を”あえて”レコメンドするSlack Botを作成してみる
•
Download as PPTX, PDF
•
1 like
•
916 views
K
Katsuya Ishiyama
Follow
arXivに毎日アップロードされる論文をレコメンドしてくれるSlack Botを作成しました。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 27
Download now
Recommended
欅坂46のメンバーを識別するアルゴリズムを作る
欅坂46のメンバーを識別するアルゴリズムを作る
Katsuya Ishiyama
Machine learning and_system_design
Machine learning and_system_design
yusuke shibui
Mercari Image search 1st Anniversary
Mercari Image search 1st Anniversary
yusuke shibui
エンジョイ☆スクレイピング
エンジョイ☆スクレイピング
Kazufumi Ohkawa
Pythonではじめる野球プログラミング PyCon JP 2014 9/14 Talk Session
Pythonではじめる野球プログラミング PyCon JP 2014 9/14 Talk Session
Shinichi Nakagawa
Testing machine learning development
Testing machine learning development
yusuke shibui
Rosbag search system
Rosbag search system
yusuke shibui
ML system design_pattern
ML system design_pattern
yusuke shibui
Recommended
欅坂46のメンバーを識別するアルゴリズムを作る
欅坂46のメンバーを識別するアルゴリズムを作る
Katsuya Ishiyama
Machine learning and_system_design
Machine learning and_system_design
yusuke shibui
Mercari Image search 1st Anniversary
Mercari Image search 1st Anniversary
yusuke shibui
エンジョイ☆スクレイピング
エンジョイ☆スクレイピング
Kazufumi Ohkawa
Pythonではじめる野球プログラミング PyCon JP 2014 9/14 Talk Session
Pythonではじめる野球プログラミング PyCon JP 2014 9/14 Talk Session
Shinichi Nakagawa
Testing machine learning development
Testing machine learning development
yusuke shibui
Rosbag search system
Rosbag search system
yusuke shibui
ML system design_pattern
ML system design_pattern
yusuke shibui
Pythonではじめる野球プログラミング - kawasaki.rb #15 2014/8/27
Pythonではじめる野球プログラミング - kawasaki.rb #15 2014/8/27
Shinichi Nakagawa
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Yukinori KITADAI
Getting started with MLOps
Getting started with MLOps
yusuke shibui
Rで野球のデータ解析がしたい (データが欲しい)
Rで野球のデータ解析がしたい (データが欲しい)
Takuma Hatano
Django learning Part2
Django learning Part2
Yusuke Muraoka
Electron + Mithril Async File Search
Electron + Mithril Async File Search
和晃 西澤
ギークを目指すエンジニャーの 情報収集方法 mohikan Slack
ギークを目指すエンジニャーの 情報収集方法 mohikan Slack
Kota Kanbe
Launchable and efficient test execution
Launchable and efficient test execution
yusuke shibui
Google cloudnext recap_DataAnalytics
Google cloudnext recap_DataAnalytics
Yu Yamada
Hachiojipm31
Hachiojipm31
Junichiro Suzuki
MLOps failure(1_108)
MLOps failure(1_108)
yusuke shibui
Railsではじめる野球プログラミング
Railsではじめる野球プログラミング
Shinichi Nakagawa
黄色いゾウさんと愉快な仲間たちの近況報告 #hadoopreading
黄色いゾウさんと愉快な仲間たちの近況報告 #hadoopreading
Yahoo!デベロッパーネットワーク
Pythonではじめる野球プログラミング(続き)PyCon JP 2014 LT
Pythonではじめる野球プログラミング(続き)PyCon JP 2014 LT
Shinichi Nakagawa
強化学習その5
強化学習その5
Hirokazu Nishio
【Inception-Deck】野球Hack! - Pythonを用いたデータ分析と可視化
【Inception-Deck】野球Hack! - Pythonを用いたデータ分析と可視化
Shinichi Nakagawa
Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3...
Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3...
Shinichi Nakagawa
More Related Content
What's hot
Pythonではじめる野球プログラミング - kawasaki.rb #15 2014/8/27
Pythonではじめる野球プログラミング - kawasaki.rb #15 2014/8/27
Shinichi Nakagawa
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Yukinori KITADAI
Getting started with MLOps
Getting started with MLOps
yusuke shibui
Rで野球のデータ解析がしたい (データが欲しい)
Rで野球のデータ解析がしたい (データが欲しい)
Takuma Hatano
Django learning Part2
Django learning Part2
Yusuke Muraoka
Electron + Mithril Async File Search
Electron + Mithril Async File Search
和晃 西澤
ギークを目指すエンジニャーの 情報収集方法 mohikan Slack
ギークを目指すエンジニャーの 情報収集方法 mohikan Slack
Kota Kanbe
Launchable and efficient test execution
Launchable and efficient test execution
yusuke shibui
Google cloudnext recap_DataAnalytics
Google cloudnext recap_DataAnalytics
Yu Yamada
Hachiojipm31
Hachiojipm31
Junichiro Suzuki
MLOps failure(1_108)
MLOps failure(1_108)
yusuke shibui
Railsではじめる野球プログラミング
Railsではじめる野球プログラミング
Shinichi Nakagawa
黄色いゾウさんと愉快な仲間たちの近況報告 #hadoopreading
黄色いゾウさんと愉快な仲間たちの近況報告 #hadoopreading
Yahoo!デベロッパーネットワーク
Pythonではじめる野球プログラミング(続き)PyCon JP 2014 LT
Pythonではじめる野球プログラミング(続き)PyCon JP 2014 LT
Shinichi Nakagawa
強化学習その5
強化学習その5
Hirokazu Nishio
【Inception-Deck】野球Hack! - Pythonを用いたデータ分析と可視化
【Inception-Deck】野球Hack! - Pythonを用いたデータ分析と可視化
Shinichi Nakagawa
Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3...
Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3...
Shinichi Nakagawa
What's hot
(17)
Pythonではじめる野球プログラミング - kawasaki.rb #15 2014/8/27
Pythonではじめる野球プログラミング - kawasaki.rb #15 2014/8/27
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Getting started with MLOps
Getting started with MLOps
Rで野球のデータ解析がしたい (データが欲しい)
Rで野球のデータ解析がしたい (データが欲しい)
Django learning Part2
Django learning Part2
Electron + Mithril Async File Search
Electron + Mithril Async File Search
ギークを目指すエンジニャーの 情報収集方法 mohikan Slack
ギークを目指すエンジニャーの 情報収集方法 mohikan Slack
Launchable and efficient test execution
Launchable and efficient test execution
Google cloudnext recap_DataAnalytics
Google cloudnext recap_DataAnalytics
Hachiojipm31
Hachiojipm31
MLOps failure(1_108)
MLOps failure(1_108)
Railsではじめる野球プログラミング
Railsではじめる野球プログラミング
黄色いゾウさんと愉快な仲間たちの近況報告 #hadoopreading
黄色いゾウさんと愉快な仲間たちの近況報告 #hadoopreading
Pythonではじめる野球プログラミング(続き)PyCon JP 2014 LT
Pythonではじめる野球プログラミング(続き)PyCon JP 2014 LT
強化学習その5
強化学習その5
【Inception-Deck】野球Hack! - Pythonを用いたデータ分析と可視化
【Inception-Deck】野球Hack! - Pythonを用いたデータ分析と可視化
Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3...
Python Professional Baseball Programming Open Data Edition #bpstudy 91(2015/3...
興味から遠い論文を”あえて”レコメンドするSlack Botを作成してみる
1.
2018/6/23 第6回 とっしんの会
2.
石山 賢也(いしやま
かつや) GitHub: Katsuya-Ishiyama Qiita: @kishiyama Blog: https://kishiyama.hatenablog.com (最近始めました) ソーシャルアプリ・ゲームを企画・開発・運営する会社にてデータサイエンティスト 最近の興味 - 画像データの人気度を定量化する - テキストマイニング - 因果推論 2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack Botを作成してみる 2
3.
arXivの更新情報を毎日チェックしたい。 ⇒ feedlyを試してみたが、あまり開かない。
職場で使っているチャットにBotが更新情報を流してくれると読みやすい。 ⇒ Slackが適している。 RSSで得られるすべての論文を流しても興味があるものを探すのが苦労する。 ※「それぐらいやれよ」と言われそうですが、推薦システムの勉強なので、それは考えないことにします。 論文の要旨 (abstract) が自分の興味に近いものをレコメンドして読むものを減らす。 ただし、煮詰まっているときは興味に近いものばかりでも息が詰まるので、専門領域 から少し逸れて気付きが得られるような論文もレコメンドしてほしい。 ⇒ それを興味が遠い論文をあえてレコメンドすることで達成できないか? 2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack Botを作成してみる 3
4.
自分の興味がある事柄を簡単な文に起こし、それに近い要旨の論文を1本と遠い要旨 の論文を1本の合計2本を投稿する。 投稿頻度は毎日1回。
扱える興味がある事柄は1つのみとする。 自分の興味がある事柄を説明する文は英語で書くこととする。 ※ arXivの論文は英語で書かれているので、興味の説明文も英語の方が扱いやすい 論文の分野は自分で予め指定しておく。 ※複数可。 (例)cs (コンピューターサイエンス), stat (統計学) 2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack Botを作成してみる 4
5.
利用言語 python 3.5以上 ※
Type Hintsを使っているため。 (参考)https://docs.python.jp/3/library/typing.html 依存ライブラリ requests, scikit-learn, pandas, BeautifulSoup4, PyYAML 推薦アルリズム TF-IDFとcosine類似度を使って内容ベース 2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack Botを作成してみる 5
6.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 6 レコメンド部分 類似度計算部分 RSSダウンロード部分 クエリは手打ち…
7.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 7 RSSは http://arxiv.org/rss/{your interested field} から取得できる。
8.
RSSScraperクラスを実装する。 main.pyでパッケージとして読み込まれることを想定。
RSSのダウンロードは fetch_rss メソッドで行う。 extract_paper_abstractで論文に関する下記の情報をXMLから抽出する。 date: RSSの更新日時 lang: 論文が書かれた言語(e.g. english) publisher: 出版元 (e.g. arxiv.org) subject: 分野 (e.g. Statistics) title: 論文のタイトル description: 論文の要旨 link: この論文が掲載されているWebサイトのURL authors: 論文の著者 詳細は https://github.com/Katsuya-Ishiyama/paper_recommend/blob/master/scraper.py 2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack Botを作成してみる 8
9.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 9 Cosine類似度は内積を 取るため、ベクトルの 長さを同じにしたい。 そのため、クエリ文と 論文の要旨のリストは 一緒にしてベクトル化 する。
10.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 10
11.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 11 先程保存したWebhook のURLを入力して保存
12.
main.pyから類似度と論文のタイトルなどの情報を受け取って、興味に近い論文と興 味から最も遠い論文を抽出し、Slackに投げる。 詳細は
https://github.com/Katsuya-Ishiyama/paper_recommend/blob/master/recommend.py 2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack Botを作成してみる 12
13.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 13
14.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 14
15.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 15
16.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 16
17.
最も近い論文は、興味に近いものの少し的が外れている印象を持った。 自分の興味を精度良く説明できる文章が書ければ、レコメンドの精度も上がるものと 考えられる。
最も遠い論文には、たとえ自分の専門領域の中であっても、まったく興味が無い論文 が推薦される。 「興味があって、かつ、こんな方法があるのか」という体験をするには、類似度で論 文をクラスタ分けして、その中から代表的な1本を選ぶほうが良さそう。 2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack Botを作成してみる 17
18.
arXivのRSSから自分の興味に最も近い論文と最も遠い論文を1本ずつレコメンドす るSlack Botを作った。
TF-IDFとcosine類似度を使って内容ベースの推薦アルゴリズムを実装した。 2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack Botを作成してみる 18
19.
自分の興味はSlack Botに投げられるようにしたい。
同様に専門分野についてもSlack Botに投げられるようにしたい。 今回は1つだったが、複数の興味ある事柄についても対応できるようにしたい。 より洗練された推薦アルゴリズムを採用する。 2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack Botを作成してみる 19
20.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 20
21.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 21
22.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 22 アカウントはすでに持っているものとします。 https://api.slack.com/ にアクセスして右上の ”Your Apps” をクリックします。
23.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 23 1. クリック 2. アプリの名前を入力 ※ ここではtestにしていますが、 実際に作ったアプリの名称は arXiv Botです。 3. 投稿先のワークス ペースを選択 4. クリック
24.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 24 Incoming Webhooksを設定する これをアクティベートすることで 外部からの投稿が可能になります。 クリック
25.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 25 Onにして、一番下 の”Add New Webhook to Workspace”を クリックする
26.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 26 1. 投稿先を選択 2. クリック
27.
2018/6/23第6回 とっしんの会 興味から遠い論文を"あえて"レコメンドするSlack
Botを作成してみる 27 許可をクリックして遷移した先 の一番下のこの部分をコピーし て、テキストファイルに保存し ておく。
Download now