こんばんは。
前に書いた記事を消してしまったため、再掲させてください。
やることは標題の通りです。
今回やることの大まかな流れと、準備
最終的に出力したいこと
「特定のワードでツイートを取得し、結果を見える形で出力する」。
方法
1.PythonでtwitterAPIを利用し、ツイートデータを取得します。
2.特定のワードで絞ります。
3.結果をCSVで出力します。
準備
・TwitterAPIのデベロッパーアカウントを取得する。
→データの公開などtwitter社の規約などに触れないか確認します。
・Pythonを書くエディタを用意する
→anacondaでやろうと思ったのですが、ハマったので今回はVisual Studioでいこうと思います。
取り組む前に悩んだこと
元記事は 「KDDIが約款に抵触したかどうか、検証したい(失敗した)」 というものでした。それを踏まえて以下のことについて考えていました。
・どのように出力すれば判定可能か
いわゆる効果測定というところでしょうか(良い用語が思いつかないのであったら教えてください)。あんまり統計学とか分からないなとも思ってどうしたものかと。
→今回はツイートの取得が目的なので、そこまで厳密に考えないことにしました。
・ワードの選択
自然言語処理とか形態素分析とか、言語学の範囲の話になってくると思います。
→こちらも今回は触れないでいきます。
とりあえずコーディングしながら考えます。
コード
import tweepy
import pytz
import pandas as pd
import collections
import matplotlib.pyplot as plt
#twitterAPIに接続
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''
auth = tweepy.OAuthHandler('', '')
auth.set_access_token('','')
api = tweepy.API(auth)
#ツイートを検索する
#ワードは半角スペースで区切ると複数検索できる
tweets = tweepy.Cursor(api.search_tweets, q = '検索ワード',lang = 'ja').items(1000)
#検索から取得したデータを配列に入れる
tw_data = []
for tweet in tweets:
tw_data.append([
tweet.text
])
#CSVファイルに出力するときの列の名前を定義
labels=[
'ツイート本文'
]
#tw_dataのリストをpandasのDataFrameに変換
df = pd.DataFrame(tw_data,columns=labels)
#CSVファイルに出力する
#CSVファイルの名前を決める
file_name='tw_data_test.csv'
#CSVファイルを出力する
df.to_csv(file_name,encoding='utf-8-sig',index=False)
今回省いていること
・日付を指定したり、複雑な検索をしていない。
TwitterAPIって有償アカウントじゃないと、できること結構限られますよね。
・ワード検索の「AND」「OR」など。
多分できますが割愛させてください。
ハマったところ
・Twitter社からAPI利用申請の許可がおりない
はじめから駄目で草でした。英文で何通かやりとりしました。
(Google翻訳です。後日友人に「DeepL使いなよ…」と言われました。確かに。)
審査に時間がかかったとかではなく、私の利用目的が分からん!と言われていました。
最終的に 「貴社の規約に沿って使用することを誓うよ」 と強めに書いて、通りました。
・anacondaがローカルホスト側から切れる
これなんでだろう?
権限周りとか確認していきたいですが、とりあえず今はおいておきます。
でもJupiterとか使うとグラフ出力できたりしますもんね。
この機会に再チャレンジしようかな。
・Python、久しぶり。
書き方忘れてる。たくさん調べました。特に配列とか。
参考
ツイートデータの取得自体は本当に初歩的なことなんだろうな、と思いつつ。
でも久しぶりの言語で、慣れないエディタで良いリハビリになりました。
Visual Studioも今後使うことがありそうなので精進します。
いろいろ省いていますが、Twitter社への申請・エディタのインストールから、CSV出力までトータルで7時間くらいでした。多分遅いんですが、使い慣れないツールでやってたのでこんなもんなんじゃないかな…と言い訳します。
プログラマとしての実務経験はあるものの、実際何をどうやってできるのか?を示すのは難しいですね。前の記事にも書きましたが、どの言語とかどのツールとかは、どうでも良くて、 「『成果物から逆算してこれを実装するにはどのような要素が必要か?』など自分で調べること」 が大切なんじゃないかと考えています。
実務で開発に携われることって実は恵まれたことなんじゃないかと思います。現場は保守がほとんどじゃないかな、と。だから、どちらかというとコードリーディングとかgitの社内での使い方(上長にプルリクするとか)の方が大変だし、私は苦手だなあと思うので、gitもそうですが、チームワークにかかわるものを優先して学習していきたいと思います。
おしまい。