20190506: 機械学習を用いたSlack上の自動リアクションの考察

裏の理由

  • Slackでおしゃべりbotを作りたかった。
  • アルゴリズム(学習と反応)を実装しようとしたが難しかった
  • Slackの会話を支えるのは会話もだがリアクションもである
  • リアクションは会話の流れなどの推察がしやすい ということで、「チャンネルに常駐して会話にリアクションを返すbot」の作成を検討する。

目標の設定とアプローチ等

  • 誰でもないが誰かのようにリアクションするをテーマとする。
  • SLACKのスタンプを自動でリアクションするBOTであり、「チャンネル毎」に適切なリアクションを行う。
  • SPAM検知の考え方を基とするつまりSPAM(そのリアクションをするか)とHAM(しないか)を学習する。この単位は「リアクション毎」である。
  • ポストのイベントを検出した際、本機構はすべてのスタンプに対してリアクションを行うべきかを判定する。結果、SPAMと判定された場合そのリアクションを行う。
  • 学習は定期的なタイミングで一定期間のデータを分析する。例えば24時間ごとに「25時間前~1時間前のデータ」を分析対象とする
    • リアクションのイベントがあったポストはSPAMとしての学習を該当のリアクションno SPAMとして学習させる
    • 該当のリアクションがないものについては全てのリアクションに対してHAMとしての学習を行う

ここまでで検討したこと

spamassassinの様なknownなSPAM判定ソフトウェアが利活用できないか検討した。

  • メールでないフォーマットの文章を正常に処理できるかの課題
  • Slackのメッセージはメールに対して文章量の少ない
  • メールヘッダが存在せず情報量が少ない
  • そもそも日本語につよくない(らしい) ことから検討をやめた