Skip to content

Query disambiguator for twitter search (was: syou6162/saba_disambiguator)

Notifications You must be signed in to change notification settings

lufia/saba_disambiguator

Repository files navigation

saba_disambiguator

Twitterのmackerelの検索結果からmackerel.ioに関連するものだけをSlackに通知するスクリプトです。AWS Lambda上で定期実行して動かします。

Overview

  • AWS Lambda上で直近のmackerelに関連するtweetを定期的に収集
  • tweetのjsonから特徴量を生成し、分類器にかけます
  • 正例であると判定されたtweetは所望のSlackのチャンネルに通知されます

下準備

教師ラベルの整備

教師あり学習を行なうため、教師ラベルを必要とします。data/pos.txtdata/neg.txtに正例と負例それぞれのtweetのパーマリンクを1行1tweetで書いていきます。例えば、data/pos.txtに以下のように書いていきます。

https://twitter.com/syou6162/status/931754069806297089
https://twitter.com/mackerelio_jp/status/931369140534747137

JSONファイルの収集

教師ラベルが整備できたら各tweetに対応するJSONファイルを収集します。これでデータの整備は完了です。

% make import

分類器の学習

データの整備が完了したので、教師データを用いて以下のコマンドで分類器(平均化パーセプトロン)を学習させます。

% make learn

学習の完了後、functions/saba_disambiguator/build/model.binというファイルが自動生成されているはずです。

AWS Lambdaで動かす

設定ファイル

動かす前に設定が必要です。設定はfunctions/saba_disambiguator/build/config.ymlに書きます。functions/saba_disambiguator/build/config_sample.ymlにサンプルがあるので、それを参考にするとよいでしょう。secretキーなどはリポジトリで管理したくない情報なので、AWS Systems Manager パラメータストアで管理します

Deploy

AWS LambdaへのdeployはSAMを使います。以下のコマンドでdeployできます。

% make sam-package sam-deploy

CloudWatchイベントを用いてスケジューリングする

SAMでdeployをすると自動的にCloudWatchイベントでスケジュールされます。間隔を変更したい場合はスケジューリングをoffにしたい場合はtemplate.ymlを変更してから再deployしましょう。

About

Query disambiguator for twitter search (was: syou6162/saba_disambiguator)

Resources

Stars

Watchers

Forks

Packages

No packages published