前回Word2Vecという単語の意味をベクトルとして表現する手法を紹介しました。そのときに学習には青空文庫のデータを使ったのですが調べた中にはTwitterからツィートを集めて学習データとしているものもありました。APIを使えば簡単にできるみたいなのでやってみようと思いましたが、どうやら今はそのは廃止されて使えないようです。そこで他にデータ収集に使えそうなものを探していたところMastodonのAPIで似たようなことができるみたいなので今回はそれを試してみることにしました。Mastodonとはミニブログサービスを提供するためのフリーソフトウェアでTwitterによく似た機能を持っている。知識さえあれば誰でもインスタンスと呼ばれるサーバーを立てることができるようです。オープンソースであり、初めて公開されたのは2016年の10月で日本では2017年の4月ごろから話題になっていたようです。日本向けのインスタンスは色々あるようですが今回はもっとも有名なmstdn.jpに登録しました。画面は以下のような感じです。・環境Windows10Python3.7.1(Anaconda)この環境にMastodon.pyをインストール。Mastodon.pyはMastodonのAPIのラッパー。Pronptで以下のコマンドを実行してインストールしました。mastodon.py※Python3.7以降ではasyncが予約語となっていたようで、Mastodon.pyを利用する際にSyntaxErrorが発生しました。実行するにはPython3.7より前のものを使うかMastodon.py内で使われているasyncをリネームする必要があります。secret、それからユーザー認証を行いアクセストークンを取得しておく必要があります。これらは以下のコードで取得できます。以上でMastodonのAPIの利用準備は完了です。2回目以降は出力したファイルを使って以下のようにAPIにアクセスできます。#アクセス先トゥートの取得Mastodonクラスのtimelineメソッドを使うことでタイムラインを取得することができます。以下のコードは自分のアカウントのタイムラインを取得し、トゥートの内容だけ表示したものになります。今回は自分のタイムラインから取得しましたがmastodon.timeline()メソッドの引数timelineに”local”、”public”を指定することでアクセス先のインスタンスの全ユーザーのトゥートが流れているローカルタイムラインや連合タイムラインを取得することができるようです。APIを使うといいようです。このクラスには投稿や通知などイベント時に呼び出されるメソッドが用意されており、実際に使う場合はサブクラスを作ってそれらをオーバーライドして使います。次のコードはローカルタイムラインの投稿を取得してそのトゥートを垂れ流すものです。こんな感じでトゥートを取得する方法がわかったのであとは適当にデータを集めて機械学習で何かやってみたいです。編集トップへ戻る閉じる。