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

裏の理由

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

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

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

ここまでで検討したこと

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

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

つくるもののイメージ

書いたけどいらなくなった表の建前

前の日記と強く関係するが、一部のSlackのワークスペースでは、 人工無能にちかいおしゃべりbotやおみくじ機能付きbotなど簡易なbotが動作しており、 コミュニケーションを活性化させている。 この記事では、リアクションを介したコミュニケーションについて述べる。 Slackには、リアクションと呼ばれる所謂、顔文字がある。 従来から顔文字を用いたメッセージングはガラケー時代から広く使われてきたが、 Slackの大きな特徴として、

  • a. 従来: 文章の文字相当としてリアクションを入れ込む(=完全に絵文字としてのコミュニケーション)
  • b. Slack的: 他人のメッセージに対する反応としてそのメッセージ自身にリアクションをする のbの機能を有する。

また、さらに、Slackでは、カスタムリアクションを作成することができる。 絵文字ジェネレータ のようなサイトがこれに当たる。 日本語の表意文字的な特徴から、 これはSlackのコミュニケーションを大きく支援している。

この例を以下に示す。 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

所属するワークスペースの一部ではリアクションはコミュニティの活性化に用いられている。