見出し画像

[妄想テック]不適切発言を非表示にするチャットシステム開発を妄想する

GIGAスクール構想はなんだかんだ進行し、ほとんどの教室ではタブレットやPCが導入されたようです。

しかし生徒のITリテラシー教育はまだまだです。いじめなどの問題に発展しないためには、チャットやSNSでの不適切発言のチェックは欠かせません。

ということで、不適切発言を非表示にする機能を持ったチャットシステム開発を妄想!今回は技術者、アーキテクト向けの内容です。

チャット初期リリース簡易版

いつものように、初期リリースは簡便な実装で素早くローンチしましょう。

サーバーサイドに関して、2021年現在では、GoogleのmBaaSであるFirebaseというサービスのFirestoreで作るのが鉄板になっています。

しかし使い始めるのは簡便ながらとても自由度が高く、奥の深いサービスでして、最初からデータ構造をかなりしっかり作らないと後々手痛い手戻りが発生します。セキュリティ的機能はしっかりしていますが、使いこなすのに勉強が必要ですし、リリース直前にセキュリティ設定を掛けようとするとひどい手戻りが発生したりします。設計時点ですべてを見込んでおく必要があります。

グラージでは数件、Firebaseを利用したアプリを開発してきましたが、最初はFirestoreのセキュリティの癖を工数勘定に入れていなく、苦労しました。経験者は語る。

Firebase案件は、Firebase経験が豊富な人員にレビューしてもらうなどの対策が必須に思います。

不適切発言の検知簡易版

さて実装しましょう。

まずは、禁止用語のリストを作り、これと照らし合わせて検出する昔ながらの方法を試しましょう。とにかく簡易に作りたいですからね。

Firestoreの変更をリアルタイムで検知し、投稿を読み取って不適切発言かどうかを判定していきます。Firestoreをsubscribeする事になるので、常時起動しているワーカーを用意する必要がありますが、FirebaseのCloud Functionsで対応可能です。

Cloud Functionsを後々に書き直すのは簡単な事なので、Cloud Functions上でロジックを実装してしまいましょう。禁止ワードをGoogle Sheets上で管理し、CloudFunctionsからGAS(Google Apps Script)という、Googleの各種オフィスアプリを操作するAPIインターフェイスを叩いて禁止ワードリストを取得。正規表現をぐるぐる回すというパフォーマンス的には非常に良くないが、とにかく動くものを実装しましょう。

禁止ワードを見つけたら、非表示にします。その際の注意ですが、Firestore上に非表示フラグを持たせて、クライアントからの取得時にクエリで不適切投稿を除外する実装にしてしまうと、クライアントから取得しようと思ったらクエリを書き換えるだけでできてしまいます。

それではセキュリティ的に片手落ちになりますので、表示用のドキュメント(テーブル)と、本体を保存するドキュメントに2重保存するのがベターかと思います。(セキュリティ要件に依りますが

ちゃんと作る

雑に作ってリリースしましたので、ビジネス的な検証ができたら本格的な実装に変えていきます。

とはいえ、チャットはFirestoreのママで、かなりの規模までスケールします。チャット機能をFirestoreで実現できないレベルまでリッチにしたいという要件が出るまでこのままでOKです。

不適切発言の検知に、AI的なアプローチを入れていきましょう。

実装済みの禁止用語チェックと、感情分析・独自に不適切発言を集めてデータセットを作って教師あり学習のあわせ技になってくるかなと思います。

投稿文章の感情分析は既存のクラウドサービスを利用してすぐに作れますが、それをどのようにサービスに反映するか、設計が必要ですね。怒りの勘定があればマイナス判定をつける。あるスコア以下になると運営に通知が来るような形が有り得そうです。

もう一つは教師あり学習です。ここで一番たいへんなのは独自に不適切発言を集める事ですね。まずは公開されているデータセットを調べて利用したいところです。Yahoo! JAPAN様が公開されているデータセットがあるので、このあたりをまずは取り込んで見るのがよいと思います。

AI(ML)全盛の現代では、データセットこそ価値がある、というのはなかなか変わりそうにないですね。

グラージベンチャーズは、スタートアップ開発のお仕事承っております。お仕事のご連絡はお問い合わせページまたはEmailまでお気軽に! info@garage-ventures.com
また、グラージベンチャーズは絶賛エンジニア募集中です。ご相談はWantedlyか、Emailまでお気軽に! hr@garage-ventures.com

この記事が気に入ったらサポートをしてみませんか?