一つ前にGPT2を使って↓こういう記事を書きました。
面白かったので今度はツイートでやってみます。
##Twitter Developerで認証用のキーデータを取得する
まずはツイートを取得する前準備としてTwitter Developerにログインしてアプリケーション登録をし以下の情報を取得します。
・Consumer Key
・Consumer Secret
・Access Token
・Access Token Secret
↓こちらで詳しく解説されています。
PythonでTwitter API を利用していろいろ遊んでみる
##自分のツイートを取得する
###Colabの準備
Google Colaboratoryにアクセスして新しくNotebookを作成します。
※ツイートを取得するだけであればGPUは使わなくて大丈夫なのでNotebook settingsは変更しなくて大丈夫です。
また取得したツイートを保存するためにGoogle Driveをマウントします。
↓Notebookをツリー表示して出てくるDriveのアイコンをクリックするとマウントできます。
###ツイートの取得
まず初めにpipでtweepyをインストールします。
!pip install tweepy
そしてツイートを取得するPythonのコードです。
↓こちらを参考にさせていただき一部改良しています。
ここで気をつけるべきところはTwitterのAPI制限です。
取得するためには特に以下を気をつける必要があります。
・1リクエストで取得できるツイート数は100
・15分間に180リクエストまで
ツイート数が多い方は取得にそれなりに時間がかかると思います。
import tweepy
import csv
import pprint
import pandas as pd
import os
import time
#ここはお決まりです。
consumer_key = 'xxxxxxxx'
consumer_secret = 'xxxxxxxx'
access_token = 'xxxxxxxx'
access_token_secret = 'xxxxxxxx'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
#ツイートを保存するGoogle Driveのディレクトリです。事前に作っておきましょう。
drive_path = '/content/drive/MyDrive/xxxxx/'
#学習用のデータセットで必要なツイート数を指定しています。
max_tweets = 10000
def getMtTweet():
#取得したツイートを格納するための配列
tweets = []
num = 0
i = 1
print('page ' + str(i))
#自分のタイムラインを取得するためuser_timelineを使用します。1リクエストで取得できるツイートの上限数は100です。
tweet_data = api.user_timeline(count=100)
if(len(tweet_data) > 0):
for tweet in tweet_data:
#データセット用に各ツイートの最後に<|endoftext|>をつけて整形します。
tweets.append([tweet.text+"<|endoftext|>"])
num += 1
i += 1
next_max_id = tweet_data[-1].id
while True:
print('page ' + str(i))
tweet_data = api.user_timeline(count=100, max_id=next_max_id-1)
if(len(tweet_data) > 0):
next_max_id = tweet_data[-1].id
for tweet in tweet_data:
tweets.append([tweet.text+"<|endoftext|>"])
num += 1
if(num >= max_tweets):
break
i += 1
#Twitter API制限の上限でエラーにならないようにディレイをかけています。
time.sleep((15*60)/180)
else:
break
saveTweets(tweets)
else:
print('zero tweet')
def saveTweets(tweets):
ut = time.time()
#csv使ってますがデータセット用にテキストファイルで保存します。
file_path = drive_path+'myTweets_' + str(ut) + '.txt'
file = open(file_path, 'w')
w = csv.writer(file)
w.writerows(tweets)
file.close()
with open(file_path) as f:
print(f.read())
getMtTweet()
これでツイートがテキストファイルに保存されました。
##学習から生成
あとは↓こちらを元に学習と生成をすれば完了です。
【GPT2】AIにラノベのタイトルを作らせてみる
ちなみに自分の結果は↓こんな感じでした。
なんか微妙に言い回しが自分ぽくないんですが、、
自分のツイートを元に生成したと考えるとなんとも言えない感情に襲われますね。🤔
@usbに接続した音楽データが自動で再生へ持ってこいの時は自動でPOIが終了するって話じゃなかったんだな
========
PS3とMSIの対応の違いって、どう違うのかな?
========
Flex_IPが10MBって超超便利すぎ。
========
scalaはGLSLのコードで実装する。pdfとかThunderbirdとかTouchDesignerって言ったらあれだけどね。
========
@touchdのserviceの値がnullに変わってる
========
TwitterでFOMAのことしかできない人は多い。
========
Twitterのつぶやきはこういうのもあるよー。「おいしそうなものがたくさんあるぞ」ってね。