Twitterのmackerel
の検索結果からmackerel.ioに関連するものだけをSlackに通知するスクリプトです。AWS Lambda上で定期実行して動かします。
- AWS Lambda上で直近の
mackerel
に関連するtweetを定期的に収集 - tweetのjsonから特徴量を生成し、分類器にかけます
- 正例であると判定されたtweetは所望のSlackのチャンネルに通知されます
教師あり学習を行なうため、教師ラベルを必要とします。data/pos.txt
とdata/neg.txt
に正例と負例それぞれのtweetのパーマリンクを1行1tweetで書いていきます。例えば、data/pos.txt
に以下のように書いていきます。
https://twitter.com/syou6162/status/931754069806297089
https://twitter.com/mackerelio_jp/status/931369140534747137
教師ラベルが整備できたら各tweetに対応するJSONファイルを収集します。これでデータの整備は完了です。
% make import
データの整備が完了したので、教師データを用いて以下のコマンドで分類器(平均化パーセプトロン)を学習させます。
% make learn
学習の完了後、functions/saba_disambiguator/build/model.bin
というファイルが自動生成されているはずです。
動かす前に設定が必要です。設定はfunctions/saba_disambiguator/build/config.yml
に書きます。functions/saba_disambiguator/build/config_sample.yml
にサンプルがあるので、それを参考にするとよいでしょう。secretキーなどはリポジトリで管理したくない情報なので、AWS Systems Manager パラメータストアで管理します
AWS LambdaへのdeployはSAMを使います。以下のコマンドでdeployできます。
% make sam-package sam-deploy
SAMでdeployをすると自動的にCloudWatchイベントでスケジュールされます。間隔を変更したい場合はスケジューリングをoffにしたい場合はtemplate.yml
を変更してから再deployしましょう。