SlideShare a Scribd company logo
[Python × TwitterAPI]
日本のトレンドを取得してみた!
株式会社ラクス
楽楽販売開発課
高山 大貴
自己紹介
2
氏名:高山 大貴(タカヤマ ダイキ)
出身:長崎県
所属:株式会社ラクス
楽楽販売開発課(新卒1年目)
趣味:古着、映画鑑賞、読書、散歩
主に使う言語:
PHP(業務)
Python(趣味)
Twitter:@daiKi_ToT
目次
3
● 経緯
● TwitterAPIに利用申請を出し、KEYとTOKENを取得
● 地域トレンド取得
○ APIにアクセス
○ WOEIDをセットして、トレンドの一覧を取得
経緯
4
目的:Twitter API を使って地域別にトレンドを取得してみる
きっかけ:Twittrend(ついっトレンド)
というTwitterのトレンドを各地域ごとにまとめているWebサイト
どうやって情報をとってきているのか気になった
Twitter API に利用
申請を出す
1
5
TwitterAPIに利用申請
6
以下のURLから利用申請できる
https://developer.twitter.com/en/apps  
色々質問される
● Twitterアカウント情報(事前にアカウントが必要)
● 利用用途(英語500文字以上)
● 作成するアプリはツイート、リツイートなどの昨日を有するか?
(英語)
TwitterAPIに利用申請
7
● うまく登録できたら以下のKey/Token
をメモ(後で使う)
○ API Key
○ API Key Secret
○ Access Token
○ Access Token Secret
地域のトレンドを
取得
2
8
地域のトレンド取得
9
使用する言語:Python
a. 【事前準備】今回使用するライブラリをインポートしておく
ライブラリ名 使用用途
tweepy Twitter APIを利用した操作を簡略化
pandas APIから受け取った情報を csvデータ出力するために使用
% pip install tweepy
% pip install pandas
地域のトレンド取得
10
b. Twitter API のアクセス認証
● tweepy を使用してapiにアクセス
● tweepy.API(auth) でOAuth認証
"""
tweepy 設定
"""
# OAuthHandler インスタンス生成
auth = tweepy.OAuthHandler(API_KEY,API_KEY_SECRET
)
# アクセストークン設定(
API Token,API Token Secret
)
auth.set_access_token
(TOKEN, TOKEN_SECRET)
"""
apiにアクセス
(wait_on_rate_limit = True)
万が一利用制限に引っ掛かったら必要時間待機する
"""
api = tweepy.API(auth ,wait_on_rate_limit = True)
地域のトレンド取得
11
c. 地域別のトレンド取得
● WOEID(Where On Earth IDentifier)を活用
● 世界の国・都市(467箇所)にIDを割り振っている
(日本は21種類!)
● tweepy のavailable_trends() で世界中のwoeid の
リストを取得
今回は試しに日本・東京・大阪のトレンドを取得してみる
# 世界中のwoeid を取得
for woeid in
api.available_trends():
print(woeid)
# 日本、大阪、東京
woeids = {
'JAPAN' : 23424856,
'OSAKA' : 15015370,
'TOKYO' : 1118370
}
地域のトレンド取得
12
c. 地域トレンド取得
● get_place_trends (woeid):
引数に指定した地域のトレンド
をランキング順に辞書型で渡す
(上位50件)
● 整形しないと何がなんなのかよくわからない
for key,woeid in woeids.items():
# トレンド情報を取得
trends = api.get_place_trends (woeid)
pprint.pprint (trends)
地域のトレンド取得
13
d. 取得したデータをcsvに出力
● pandas を使用すると簡単
● 辞書型で受け取ったトレンドデータを
DataFrame型に変換
● csvファイルに出力
for key,woeid in woeids.items():
# トレンド情報を取得
trends = api.get_place_trends (woeid)
pprint.pprint (trends)
# pandas データフレームに変換
df = pd.DataFrame(trends[0]["trends"])
FILE_NAME = 'tw_trends_' + key +'.csv'
df.index = df.index + 1
# csvファイルを出力
df.to_csv(FILE_NAME,encoding =
'utf-8-sig' ,index = True)
地域のトレンド取得
14
● 実行結果(実行日:⅜ 08:45) 日本のトレンド
● DataFrame 型に整形することで、辞書型のkey が列名、行のインデックスを自
動で割り振り
↓辞書型のキー
→
イン
デッ
クス
地域のトレンド取得
15
● 実行結果(実行日:⅜ 08:45)
日本のトレンド
念の為ブラウザと比較
完全に
一致!!
今後の展望
16
高山⇦ ニュースを見ない
Bot化して、その日のトレンドを勝手に教えて欲しい!!
17
ご静聴ありがとうございました

More Related Content

What's hot

RTXで遊ぶ
RTXで遊ぶRTXで遊ぶ
RTXで遊ぶ
nvsofts
 
言語表現モデルBERTで文章生成してみた
言語表現モデルBERTで文章生成してみた言語表現モデルBERTで文章生成してみた
言語表現モデルBERTで文章生成してみた
Takuya Koumura
 
メタスタディ (Vision and Language)
メタスタディ (Vision and Language)メタスタディ (Vision and Language)
メタスタディ (Vision and Language)
Shintaro Yamamoto
 
確率ロボティクス第二回
確率ロボティクス第二回確率ロボティクス第二回
確率ロボティクス第二回
Ryuichi Ueda
 
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live![part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
KnowledgeGraph
 
大規模言語モデルとChatGPT
大規模言語モデルとChatGPT大規模言語モデルとChatGPT
大規模言語モデルとChatGPT
nlab_utokyo
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解する
AtsukiYamaguchi1
 
NLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライド
NLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライドNLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライド
NLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライド
JunSuzuki21
 
2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE
広樹 本間
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレート
Kei Uchiumi
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
Hideki Takase
 
FlutterでBLEを
いい感じにする
FlutterでBLEを
いい感じにするFlutterでBLEを
いい感じにする
FlutterでBLEを
いい感じにする
chigichan24
 
RAFT: Recurrent All-Pairs Field Transforms for Optical Flow
RAFT: Recurrent All-Pairs Field Transforms for Optical FlowRAFT: Recurrent All-Pairs Field Transforms for Optical Flow
RAFT: Recurrent All-Pairs Field Transforms for Optical Flow
MasanoriSuganuma
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
 
Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!
Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!
Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!
近藤 嘉雪
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
 
連続時間フラクショナル・トピックモデル(NLP2023 金融・経済ドメインのための言語処理)
連続時間フラクショナル・トピックモデル(NLP2023 金融・経済ドメインのための言語処理)連続時間フラクショナル・トピックモデル(NLP2023 金融・経済ドメインのための言語処理)
連続時間フラクショナル・トピックモデル(NLP2023 金融・経済ドメインのための言語処理)
Kei Nakagawa
 
Direct feedback alignment provides learning in Deep Neural Networks
Direct feedback alignment provides learning in Deep Neural NetworksDirect feedback alignment provides learning in Deep Neural Networks
Direct feedback alignment provides learning in Deep Neural Networks
Deep Learning JP
 
情報アクセス技術のためのテストコレクション作成
情報アクセス技術のためのテストコレクション作成情報アクセス技術のためのテストコレクション作成
情報アクセス技術のためのテストコレクション作成
kt.mako
 
画像の基盤モデルの変遷と研究動向
画像の基盤モデルの変遷と研究動向画像の基盤モデルの変遷と研究動向
画像の基盤モデルの変遷と研究動向
nlab_utokyo
 

What's hot (20)

RTXで遊ぶ
RTXで遊ぶRTXで遊ぶ
RTXで遊ぶ
 
言語表現モデルBERTで文章生成してみた
言語表現モデルBERTで文章生成してみた言語表現モデルBERTで文章生成してみた
言語表現モデルBERTで文章生成してみた
 
メタスタディ (Vision and Language)
メタスタディ (Vision and Language)メタスタディ (Vision and Language)
メタスタディ (Vision and Language)
 
確率ロボティクス第二回
確率ロボティクス第二回確率ロボティクス第二回
確率ロボティクス第二回
 
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live![part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
 
大規模言語モデルとChatGPT
大規模言語モデルとChatGPT大規模言語モデルとChatGPT
大規模言語モデルとChatGPT
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解する
 
NLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライド
NLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライドNLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライド
NLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライド
 
2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレート
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
 
FlutterでBLEを
いい感じにする
FlutterでBLEを
いい感じにするFlutterでBLEを
いい感じにする
FlutterでBLEを
いい感じにする
 
RAFT: Recurrent All-Pairs Field Transforms for Optical Flow
RAFT: Recurrent All-Pairs Field Transforms for Optical FlowRAFT: Recurrent All-Pairs Field Transforms for Optical Flow
RAFT: Recurrent All-Pairs Field Transforms for Optical Flow
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
 
Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!
Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!
Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
連続時間フラクショナル・トピックモデル(NLP2023 金融・経済ドメインのための言語処理)
連続時間フラクショナル・トピックモデル(NLP2023 金融・経済ドメインのための言語処理)連続時間フラクショナル・トピックモデル(NLP2023 金融・経済ドメインのための言語処理)
連続時間フラクショナル・トピックモデル(NLP2023 金融・経済ドメインのための言語処理)
 
Direct feedback alignment provides learning in Deep Neural Networks
Direct feedback alignment provides learning in Deep Neural NetworksDirect feedback alignment provides learning in Deep Neural Networks
Direct feedback alignment provides learning in Deep Neural Networks
 
情報アクセス技術のためのテストコレクション作成
情報アクセス技術のためのテストコレクション作成情報アクセス技術のためのテストコレクション作成
情報アクセス技術のためのテストコレクション作成
 
画像の基盤モデルの変遷と研究動向
画像の基盤モデルの変遷と研究動向画像の基盤モデルの変遷と研究動向
画像の基盤モデルの変遷と研究動向
 

Similar to Twitter apiを使って地域別のトレンドを取得する!

Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )
Ai Makabi
 
PyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LTPyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LT
Tetsuya Morimoto
 
Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk
Katayanagi Nobuko
 
S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5
Takeshi Akutsu
 
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
Yutaka Kato
 
Py datameetup1
Py datameetup1Py datameetup1
Py datameetup1
shiroyagi
 
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習Pythonを使った機械学習の学習
Pythonを使った機械学習の学習
Kimikazu Kato
 
Ruby開発の現場を支える技術
Ruby開発の現場を支える技術Ruby開発の現場を支える技術
Ruby開発の現場を支える技術
hiroponz
 
Demonstration of Einstein Language with Platform Event
Demonstration of Einstein Language with Platform EventDemonstration of Einstein Language with Platform Event
Demonstration of Einstein Language with Platform Event
Takahito Miyamoto
 
RFinanceJはじめました
RFinanceJはじめましたRFinanceJはじめました
RFinanceJはじめました
Nagi Teramo
 
HTML5でteratailが喋った!
HTML5でteratailが喋った!HTML5でteratailが喋った!
HTML5でteratailが喋った!
Shohei Tai
 
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Koji Shiraishi
 
アクティビストのためのTwitter講座! 入門編
アクティビストのためのTwitter講座! 入門編アクティビストのためのTwitter講座! 入門編
アクティビストのためのTwitter講座! 入門編
印鑰 智哉 INYAKU Tomoya
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
Takuya Nishimoto
 
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
株式会社MonotaRO Tech Team
 
DevRel Meetup27 Igarashi-pub
DevRel Meetup27 Igarashi-pubDevRel Meetup27 Igarashi-pub
DevRel Meetup27 Igarashi-pub
Tomohiro Igarashi
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17Shinya Okano
 
鳥取python勉強会 第1回
鳥取python勉強会 第1回鳥取python勉強会 第1回
鳥取python勉強会 第1回
Yuji Oyamada
 
Raspberry PiとPythonでできること
Raspberry PiとPythonでできることRaspberry PiとPythonでできること
Raspberry PiとPythonでできること
Lina Katayose
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpTakeshi Komiya
 

Similar to Twitter apiを使って地域別のトレンドを取得する! (20)

Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )
 
PyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LTPyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LT
 
Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk
 
S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5
 
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
 
Py datameetup1
Py datameetup1Py datameetup1
Py datameetup1
 
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習Pythonを使った機械学習の学習
Pythonを使った機械学習の学習
 
Ruby開発の現場を支える技術
Ruby開発の現場を支える技術Ruby開発の現場を支える技術
Ruby開発の現場を支える技術
 
Demonstration of Einstein Language with Platform Event
Demonstration of Einstein Language with Platform EventDemonstration of Einstein Language with Platform Event
Demonstration of Einstein Language with Platform Event
 
RFinanceJはじめました
RFinanceJはじめましたRFinanceJはじめました
RFinanceJはじめました
 
HTML5でteratailが喋った!
HTML5でteratailが喋った!HTML5でteratailが喋った!
HTML5でteratailが喋った!
 
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
 
アクティビストのためのTwitter講座! 入門編
アクティビストのためのTwitter講座! 入門編アクティビストのためのTwitter講座! 入門編
アクティビストのためのTwitter講座! 入門編
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
 
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
 
DevRel Meetup27 Igarashi-pub
DevRel Meetup27 Igarashi-pubDevRel Meetup27 Igarashi-pub
DevRel Meetup27 Igarashi-pub
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
 
鳥取python勉強会 第1回
鳥取python勉強会 第1回鳥取python勉強会 第1回
鳥取python勉強会 第1回
 
Raspberry PiとPythonでできること
Raspberry PiとPythonでできることRaspberry PiとPythonでできること
Raspberry PiとPythonでできること
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 

Twitter apiを使って地域別のトレンドを取得する!