![見出し画像](https://assets.st-note.com/production/uploads/images/37399298/rectangle_large_type_2_412d769873e01248b16479c66414a9ee.png?width=800)
Twitterの日本語コーパスの準備
Twitterの日本語コーパスを準備する方法をまとめました。
1. TwitterAPI登録
「Twitter Developers」でTwitterAPI登録を行い、「APIキー」を取得します。
「Rate Limit」でTwitterAPIの利用制限を確認できます。
2. APIキーの定義とOAuth認証
「APIキー」を定義と「OAuth認証」を行います。
import tweepy
# APIキーの定義
consumer_key = '<Consumer Keyを記述>'
consumer_secret = '<Consumer Secretを記述>'
access_token = '<Access Tokenを記述>'
access_token_secret = '<Access Token Secretを記述>'
# OAuth認証
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)
◎ APIキーの定義
「Twitter Developers」で取得したAPIキーを記述します。
◎ OAuth認証
「Tweepy」でTwitterAPIの制御を行います。「wait_on_rate_limit = True」で、TwitterAPIの利用制限に引っかかった時に、必要な時間だけ待機するようになります。
3. ホームタイムラインの取得
ホームタイムラインの取得方法は、次のとおりです。
%%time
# ファイルのオープン
f = open('home_timeline.txt', mode='w')
# ホームタイムラインの取得 (最新20件)
for status in api.home_timeline():
# Status → 行
line = status.text.replace('\n', ' ').strip()
if len(line) == 0:
continue
# 1行書き込み
f.write(line+'\n')
# ファイルのクローズ
f.close()
改行をスペースに置換して、1行1ツイートとしています。
4. 特定単語を含むツイートの取得
特定単語を含むツイートの取得方法は、次のとおりです。
%%time
# ファイルのオープン
f = open('search_q.txt', mode='w')
# 特定単語を含むツイートの取得
for status in tweepy.Cursor(api.search, q='機械学習').items(100):
# Status → 行
line = status.text.replace('\n', ' ').strip()
if len(line) == 0:
continue
# 1行書き込み
f.write(line+'\n')
# ファイルのクローズ
f.close()
今回は、'機械学習'という単語を含む最新100ツイートを取得しています。
5. 特定ユーザーのツイートの取得
特定ユーザーのツイートの取得方法は、次のとおりです。
%%time
# ファイルのオープン
f = open('user_timeline.txt', mode='w')
# 特定ユーザーのツイートの取得
for status in tweepy.Cursor(api.user_timeline, id='entaro8960').items(100):
# Status → 行
line = status.text.replace('\n', ' ').strip()
if len(line) == 0:
continue
# 1行書き込み
f.write(line+'\n')
# ファイルのクローズ
f.close()
今回は、’entaro8960’(ヤクルトスワローズのマスコット)の最新100ツイートを取得しています。
6. フィルタリング
RT、メンション(@)、ハッシュタグ(#)、URL(http(s)://) の要素が含まれる行を削除するコードは、次のとおりです。
%%time
# ファイルのオープン
fw = open('user_timeline_filtering.txt', mode='w')
# フィルタリング
with open('user_timeline.txt') as fr:
for line in fr:
# RT,@,#のフィルタリング
if (list(line)[:2]==['R', 'T']) | ('@' in line) | ('#' in line):
continue
# URLのフィルタリング
if ('http://' in line) | ('https://' in line):
continue
# 1行書き込み
fw.write(line)
# ファイルのクローズ
fw.close()
この記事が気に入ったらサポートをしてみませんか?