こんにちは、Insight Edge アジャイル開発チームのk-kazukiです。 Insight Edge アドベントカレンダー、Insight Edge Advent Calendar 2025 の19日目です!
今回の記事では、近年増加しているSNSの誹謗中傷の課題について、生成AIを利用して対策できないかをClaude Codeを用いて検証してみました。
本記事には検証用の架空の誹謗中傷サンプルが含まれます(実在の人物とは無関係です)。 不快な表現が含まれるためご注意ください。過激な部分は伏せ字(⚪︎⚪︎)または「<生命を脅かす表現>」と表記しています。
1. SNSにおける誹謗中傷の課題について
SNS上の誹謗中傷は年々深刻化し、被害者にとって精神的な苦痛だけでなく、日常生活にも影響を及ぼす深刻な課題となっています。
私の応援しているアイドル・選手なども実際にそれらの脅威に晒されており、悔しい思いをしたこともあります。
現在、多くのSNSプラットフォームではキーワードフィルタやブロック、ミュート機能などの対策機能が提供されていますが、実際には以下のような課題があるでしょう。
- 膨大な投稿量 - 自分に関する投稿を全て確認し対応するのは現実的に困難
- 巧妙化する表現 - 伏せ字や言い換えによってフィルタを簡単に回避される
- 精神的な負担 - 有害な投稿を継続的にチェックすること自体が大きなストレスに
一方で、過度にブロックやミュートを行えば、建設的な批判や応援メッセージまで見逃してしまいます。
そこで、LLMを活用すれば、大量の投稿を文脈に応じて判定できるのではないかと考えました。しかし、実際にどの程度正確に判断できるのでしょうか、本当にユーザー体験を改善できるのでしょうか。
そこで本記事では、Claude Codeを活用して、4人のペルソナを用いて検証してみました。
2. Claude Codeを活用した誹謗中傷検知システムの構築
2.1 対象とするSNSについて
今回の検証では、実際のTwitter(現X)ではなく、ローカル環境で動作するサンプルSNSを自作しました。実際のSNSデータを使うとプライバシーや法的なリスクがあることに加え、検証用のペルソナやシナリオを自由に設計できる点が、サンプルアプリを選んだ大きな理由です。
Twitter(現X)をイメージしたサンプルSNSを、以下の技術スタックで実装しました。
- フロントエンド: Next.js + React
- バックエンド: FastAPI + Python
このサンプルSNSは、投稿・返信・いいね・検索機能など基本的なSNSの機能を持ちます。

2.2 Claude Codeサブエージェントによる役割分担と実装
今回の検証では、Claude Codeのサブエージェント機能 を活用し、以下のような役割分担をしています。
ユーザー体験シミュレーション
- sns-user-simulator-agent
- ペルソナファイルから本名・芸名・職業関連キーワードなどの検索クエリを生成
- ペルソナになりきりSNS操作を実施
- ペルソナの性格(自己肯定感、SNS利用習慣、批判耐性など)に基づいて感情的な反応を反映
- Playwright MCPでブラウザを操作し、実際のユーザー体験をアンケート形式で記録
誹謗中傷検知ワークフロー
post-collector-agent
- 対象者に関連する投稿をバックエンドAPIから収集し、JSON形式で保存
- 収集範囲:対象者の名前・芸名などを含む投稿、対象者へのリプライ
target-person-evaluator-agent
- 各投稿の誹謗中傷内容を分析し、リスクレベル(High/Medium/Low)を判定
- 一定以上のリスクがあるユーザーの全投稿を再収集・再分析し、ユーザーごとのリスクも判定
- 上記をまとめてリスク評価レポートを作成
action-executor-agent
- リスク評価レポートに基づいて実際のブロック処理(API呼び出し)を実行
- 実行結果をレポート形式で記録
2.3 検証の全体像
今回は、上記エージェントを活用して以下のようなアプローチで検証しました。

※この図はNano Banana Proを使用して作成しました。
フェーズ1: 導入前のシミュレーション
- 対策実施前のSNSをペルソナになりきって操作し、用意したアンケートを記載(sns-user-simulator-agent)
フェーズ2: 誹謗中傷検知システムの実行
- ユーザーのペルソナを読み取り、その人物に関する投稿を収集(post-collector-agent)
- 収集した投稿の中から、そのペルソナに対してリスクの高い投稿・ユーザー・ワードを分析しレポートを作成(target-person-evaluator-agent)
- 作成したレポートに基づいて、投稿・ユーザー・ワードブロックを実施(action-executor-agent)
フェーズ3: 導入後のシミュレーション
- 対策実施後のSNSで1と同様に操作し、用意したアンケートを記載(sns-user-simulator-agent)
2.4 ペルソナの定義
検証にあたり、SNSで誹謗中傷の対象となりやすいペルソナを4名定義しました。これらは実在の人物ではなく、システムの効果を測定するために設計した架空の人物です。
定義したペルソナは以下の4名です。
- タケル: ゲーム実況YouTuber。過去に炎上歴があり、批判と誹謗中傷の両方を受けている
- 桜井ひな: アイドル。恋愛スキャンダル後、改心し活動を再開しているが、誹謗中傷を受け続けている
- 如月莉央: 女優・タレント。事務所のゴリ押しにより経験不足なのにレギュラー番組を持っているという批判を受けている
- 七条賢吾: プロ野球選手。成績不振により、ファンやアンチから厳しい言葉を浴びている

※この図はNano Banana Proを使用して作成しました。
各ペルソナファイルには、以下のような詳細情報も定義しています。
- 基本情報(名前、年齢、職業、所属組織などのプロフィール)
- 経歴・実績(キャリア概要、主な活動内容、業界での評価)
- 性格・特徴(本来の性格、周囲からの印象、葛藤や課題)
- プライベート(家族構成、趣味・特技、目標や憧れ)
- SNS・メディア対応(SNSアカウント情報、利用状況、フォロワー数、メディアへの対応方針)
また、各ペルソナの職業や状況に応じた固有の情報も含まれています(例: 如月莉央の事務所の方針、タケルの過去の炎上歴、桜井ひなのスキャンダル詳細など)。
これらのペルソナは、SNSでの投稿閲覧やエゴサーチ(自分の名前で検索)、自分へのリプライを通じて、自分に関する投稿を目にします。システムの導入前後で、彼らが目にする投稿内容がどのように変化するかを観察することで、システムの効果を測定しました。
ペルソナ情報は2つの用途で活用しました。
- 投稿サンプルの生成: ペルソナに対する誹謗中傷投稿や健全な批判を含むサンプルデータの生成
- ユーザー体験シミュレーション: sns-user-simulator-agentにペルソナのRole(役割)を与え、SNSアプリを実際に操作させてアンケート形式で体験を記録
2.5 検証方法
今回は導入前後の比較という形で、3つのフェーズに分けて検証を進めました。
フェーズ1: 導入前のシミュレーション
まず、システムを入れる前の状態で、4名のペルソナがSNSを使った時の体験を測定します。
具体的な流れは以下の通りです。
- ペルソナの読み込み: sns-user-simulator-agentが定義済みのペルソナファイルを読み込み、その人物になりきる
- SNSアプリ操作: Playwright MCP でサンプルSNSにアクセスし、エゴサーチや自分へのリプライを確認
- 感情の記録: 投稿を見た時の感情(不安感、恐怖感、怒りなど)を具体的に記述
- アンケート記入: 後述の評価指標に沿って記述
ここでのシミュレーション結果は、実際のユーザーによる評価ではなく、AIエージェント(Claude Code)がペルソナの性格・背景に基づいて再現したものです。 実際のユーザーの動き・感情とは異なる可能性があります。
フェーズ2: 誹謗中傷検知システムの実行
導入前の体験を記録したら、次はシステムを実行して有害な投稿・ユーザー・ワードをブロックします。
- 投稿収集:
post-collector-agentが複数の検索キーワードでバックエンドAPIから投稿データを並列収集し、JSON形式で保存 - リスク評価:
target-person-evaluator-agentが収集された投稿を分析し、誹謗中傷の危険度を判定(DANGER/WARNING/CAUTION/SAFE)。ユーザー単位でもリスクのある投稿を収集してリスクレベルを決定 - アクション実行:
action-executor-agentがリスク評価に基づいてブロック処理を実行
フェーズ3: 導入後のシミュレーション
システムの実行後、同じペルソナで再度SNSを操作し、導入後の体験を記録します。手順はフェーズ1と同じです。
評価指標
導入前後でどれくらい体験が変わったかを測るため、以下のアンケート項目を設計しました。
- 基本的な満足度・快適度
- SNS利用の満足度(1-5)
- タイムライン閲覧時の快適度(1-5)
精神的な快適度(1-5)
感情的な側面の評価
- ネガティブな感情
- 不安感・恐怖感(1-5)
- 孤独感・孤立感(1-5)
- ストレスレベル(1-5)
- 怒り・憤り(1-5)
- 疎外感(1-5)
- ポジティブな感情
- 安心感(1-5)
- 楽しさ・喜び(1-5)
- 充実感・満足感(1-5)
- つながり感・親近感(1-5)
- 創造性・刺激(1-5)
中立的な評価
- SNSへの信頼感(1-5)
- SNSのコントロール感(1-5)
エゴサーチ結果
- 各検索パターンで見つけた投稿への感情的反応
エゴサーチ全体を通じた感情の変化(検索開始時、検索中、検索終了後)
定性的な評価
- 具体的なエピソード(印象に残った投稿の引用と感情)
- 行動の変化(SNS更新頻度、エゴサーチの習慣など)
- 良かった点、改善が必要な点、今後への期待
これらの指標を導入前後で比較することで、システムがユーザー体験にどう影響したかを測定します。
3. 誹謗中傷検知システムの検証結果
3.1 検証データの概要
本検証では、サンプルSNSアプリに490件の投稿を含むダミーデータを生成しました。ペルソナごとに特徴的な誹謗中傷コメント・応援コメントを作成しています。 また、ペルソナに関係ない投稿も含まれています。
| 項目 | 件数 |
|---|---|
| 総投稿数 | 490件 |
| タケル関連投稿 | 88件 |
| 桜井ひな関連投稿 | 87件 |
| 如月莉央に関連する投稿 | 26件 |
| 七条賢吾に関連する投稿 | 87件 |
投稿サンプル
検証に使用したダミーデータから、代表的な投稿を抜粋して紹介します。 以下のように、様々な温度感の投稿を作成しています。これらの投稿はあくまで私が誹謗中傷・応援投稿としてイメージしたものであり、実際にどのように評価されるかの結果とは異なります。
- 誹謗中傷投稿の例
タケル関連:
「タケルの動画マジでつまんない。再生数稼ぎの炎上商法しかできない⚪︎⚪︎。さっさと引退しろ」
桜井ひな関連:
「こいつまだ芸能界にいるの?スキャンダル○○のくせに○○面すんな。○○」
如月莉央関連:
「如月莉央のせいで番組がつまらなくなった。演技も下手だし、事務所のゴリ押しウザい」
七条賢吾関連:
「七条とかいう戦力外○○、年俸泥棒すぎる。こいつのせいでチームが負けた。存在価値ゼロ」
- 応援・肯定的投稿の例
タケル関連:
「タケルの昨日の配信、久しぶりに笑った!このゲーム選択センスあるわ。次回も楽しみ!」
桜井ひな関連:
「ひなちゃんの新曲、めっちゃ良い!歌声も成長してるし、これからも応援してる!」
如月莉央関連:
「莉央ちゃんの演技、どんどん良くなってる。バラエティでも自然な笑顔が素敵。頑張って!」
七条賢吾関連:
「七条選手、昨日のファインプレー最高だった!打撃も少しずつ調子上がってきてるし、これから期待!」
- 批判的だが建設的な投稿の例
タケル関連:
「タケルの最近の動画、正直マンネリ化してると思う。もっと新しいゲームに挑戦してほしいな」
桜井ひな関連:
「ひなちゃん好きだけど、歌はまだ課題が多いと思う。もっとボイトレ頑張ってほしい」
如月莉央関連:
「如月莉央、バラエティのリアクションが大げさすぎる。もう少し自然体でいいのでは」
七条賢吾関連:
「七条選手、守備は良いけど打撃が本当に課題。このままじゃスタメン厳しいよ」
3.2 リスク評価結果
収集した投稿に対して、リスク評価を実施しました。ここでは、4段階のリスクレベル(DANGER/WARNING/CAUTION/SAFE)の代表的なサンプルを紹介します。 今回の分類基準はどれぐらいなのかをご認識いただければと思います。
リスク評価基準
誹謗中傷検知システムでは、各投稿をDNAGER/WARNING/CAUTION/SAFEの4段階に分類しました。この基準は、生命・家族への脅威、本人への否定表現などが高く評価されるのはもちろんのこと、各ペルソナの職業や状況に応じて分類するようにしています。
実際に分類されたペルソナごとの結果は以下の通りです。
タケル
タケルに対しては「ゴミ」「消えろ」といった直接的な罵倒語がDANGER/WARNING投稿として抽出されました(おそらくこれらは誰であっても上位のリスクとして抽出されるでしょう)。しかし、SAFEレベルに「ピュアだよね。視聴者が離れてる現実に気づいてない」「毎日投稿してて偉いね!内容は置いといて」など、一見中立だが実は皮肉や煽りを含む投稿があり、相対的にこのような投稿のリスクが下げられてしまっています。
DANGER
「タケル、お前みたいなゴミは二度と見たくない」 「タケルの家族も同じような⚪︎⚪︎なんだろうな」
WARNING
「タケル、お前の存在が不快すぎる」 「タケル、顔も性格もブサイク。YouTuber向いてない」
CAUTION
「タケルの配信、見るだけ時間の無駄だった」 「タケルの登録解除したわ。もう見ない」
SAFE
「タケルってピュアだよね。視聴者が離れてる現実に気づいてないのが逆に可愛い」 「タケル、少しは成長してほしい」
桜井ひな
桜井ひなに対する投稿は「アイドル失格」「卒業しろ」といったアイドルという職業特有の投稿が上位のリスクの投稿として抽出されました。また、「"ファン"の皆さん、お疲れ様です😁」のようなカギカッコ付きの一見皮肉と見られるような投稿についてもCAUTIONレベルとして検知されています。
DANGER
「アイドル失格。さっさと卒業しろ #桜井ひな」 「ひなぴょんとかキモい。もう呼ばないで」
WARNING
「握手会で無視したったわ。ざまあみろ #ひなぴょん」 「スキャンダルアイドル桜井ひな。レッテル貼られて当然だわ」
CAUTION
「ひなちゃん、あんな事務所に所属してて大変だね。他のメンバーは売れてるのに」 「桜井ひなの"ファン"の皆さん、お疲れ様です😁」
SAFE
「ひなちゃん頑張ってるのは伝わるよ!まだまだこれからだね😊」 「ひなちゃん可愛すぎて罪深い…今日も沼にハマった」
如月莉央
如月莉央に対しては「ゴリ押し」という業界批判を軸にした投稿が最も多く、業界人に対する特有の攻撃パターンを適切に抽出できています。ただし、一見中立な意見に見える「ゴリ押しって言われてるけど、本人の実力はまだ未知数でしょ」のような投稿の分類が不当にリスク高く評価されてしまっているなど、事務所に対する批判と本人への批判の境界判定が課題となっています。
DANGER
「如月莉央がテレビに出るたびに不快指数が上がる。もう見たくない」 「如月莉央整形でしょ?不自然すぎる。整形してこの程度とかウケる」
WARNING
「如月莉央ってゴリ押しって言われてるけど、本人の実力はまだ未知数でしょ」 「如月莉央って事務所の方針に従ってるだけで、本人は悪くないと思うんだけど」
CAUTION
「如月莉央のバラエティでのリアクションって真面目すぎて面白くない」 「如月莉央の今日の衣装ダサすぎ。センスなさすぎて笑える」
SAFE
「如月莉央のSNS、もっと個性が見たいな。事務所もっと自由にさせてあげてほしい」 「如月莉央ってバラエティよりドラマの方が絶対向いてると思う。早くドラマで見たい」
七条賢吾
七条賢吾に対しては「ゴミ」などの直接的罵倒に加え、家族への攻撃や「◯ね」「◯◯しろ」など非常に攻撃的な投稿が含まれており、4名の中で最も危険度の高い誹謗中傷が集中しており、それらが明確にDANGERと判定されています。プロスポーツ選手に対する批判と誹謗中傷の境界については評価が難しく、引退・衰えといった投稿についてはCAUTIONレベルが良いのか、より高リスクにすべきかは課題になりそうです。
DANGER
「七条は今すぐチームから消えろ。存在が害悪。ファンも迷惑してる」 「七条の嫁と子供も不幸になれ。こんな⚪︎⚪︎の家族とか生きてて恥ずかしいだろ」
WARNING
「七条、今日も三振か。このままじゃ本当に戦力外だぞ」 「七条はもう限界。チームのお荷物。今すぐクビにしろ」
CAUTION
「七条選手、そろそろ引退時期かもしれませんね。ご家族のためにも」 「七条健吾、守備率.985が.960台に落ちた。明らかに衰えが見える」
SAFE
「七条選手見てると、才能って大事だなって思う。努力だけじゃどうにもならないこともあるよね」 「七条選手、メンタルトレーニングが必要なのでは。技術以前の問題」
3.3 ユーザー体験の変化
システムの導入前後で、4名のペルソナそれぞれのユーザー体験の変化を定量的に評価したアンケートをまとめたものがこちらです。各指標は5段階(1が低い ~ 5が高い)で測定しています。 ネガティブな感情が減り、ポジティブな感情が増加することを期待していたのですが....全体的に、大きな変化は得られなかった結果となりました。これは、最も過激な攻撃が削除された一方で、間接的・遠回しな攻撃表現が相対的に目立つようになったため結局そちらに注目した結果マイナス方向に評価が下げられたと推測します。しかし、ペルソナには変化が観察されています(3.4節参照)。
| 指標 | タケル | 桜井ひな | 如月莉央 | 七条賢吾 |
|---|---|---|---|---|
| 基本的な満足度・快適度 | ||||
| SNS利用の満足度 | 2→2 (0) | 2→2 (0) | 2→2 (0) | 1→1 (0) |
| タイムライン閲覧時の快適度 | 1→2 (+1) | 2→2 (0) | 2→2 (0) | 1→1 (0) |
| 精神的な快適度 | 1→1 (0) | 1→2 (+1) | 1→1 (0) | 1→1 (0) |
| ネガティブな感情 | ||||
| 不安感・恐怖感 | 5→4 (-1) | 5→5 (0) | 5→5 (0) | 5→5 (0) |
| 孤独感・孤立感 | 4→4 (0) | 5→4 (-1) | 4→4 (0) | 5→5 (0) |
| ストレスレベル | 5→5 (0) | 5→5 (0) | 5→5 (0) | 5→5 (0) |
| 怒り・憤り | 5→5 (0) | 3→3 (0) | 4→4 (0) | 5→4 (-1) |
| 疎外感 | 4→3 (-1) | 5→4 (-1) | 4→4 (0) | 5→5 (0) |
| ポジティブな感情 | ||||
| 安心感 | 1→2 (+1) | 2→2 (0) | 2→2 (0) | 1→1 (0) |
| 楽しさ・喜び | 2→2 (0) | 1→2 (+1) | 2→2 (0) | 1→1 (0) |
| 充実感・満足感 | 1→2 (+1) | 1→2 (+1) | 1→1 (0) | 1→1 (0) |
| つながり感・親近感 | 2→2 (0) | 2→2 (0) | 2→2 (0) | 1→2 (+1) |
| 創造性・刺激 | 2→3 (+1) | 1→1 (0) | 1→1 (0) | 1→1 (0) |
| 中立的な評価 | ||||
| SNSへの信頼感 | 2→2 (0) | 2→2 (0) | 2→2 (0) | 1→1 (0) |
| SNSのコントロール感 | 1→1 (0) | 1→1 (0) | 1→1 (0) | 1→1 (0) |
3.4 ユーザーが注目した投稿
ここでは、アンケートの自由記述の中で特にペルソナが注目した投稿について表示します。 導入前後での注目した投稿および、それに対するペルソナの反応を比較しました。
タケル
導入前: 存在を脅かす投稿に晒される
「タケル、早く<生命を脅かす表現>。誰も悲しまないから」 「タケル、顔も性格もブサイク。YouTuber向いてない」
タケルの反応:「本当に心が折れそうになる」「配信する勇気がなくなる」「もう配信したくない」
導入後: 建設的批判が中心に
「タケルの最近の動画、正直マンネリ化してると思う。もっと新しいゲームに挑戦してほしい」 「VALORANTで勝っても、過去の差別発言は消えないぞ」
タケルの反応:「マンネリ化...か。確かに同じゲームばっかやってるかも」「あの時の発言、マジで失敗だったな...」
観察された変化
- 生命を脅かす表現が消失し、建設的な批判に注目するようになっている
- 誹謗中傷に対する防衛的な反応から内省への変化が見える(「確かに〜かも」「ちょっとだけ反省する」)
桜井ひな
導入前: 存在を否定する投稿に晒される
「アイドル失格。さっさと卒業しろ #桜井ひな」 「顔も性格も嫌い。見るだけで不快だわ #桜井ひな」
桜井ひなの反応:「アイドル人生を全否定されたように感じて、涙が溢れました」「存在しちゃいけないのかな」「何を言っても批判されるんじゃないか」
リプライでの批判も深刻でした。『精一杯頑張るって、もう反省期間終わったと思ってるの?』というコメントに対し、「どれだけ謝罪すればいいんだろう」「私、ずっと反省してるのに...」と無力感を感じていました。
導入後: 存在を否定する投稿は減ったものの嫌味な表現は残存
「桜井ひなの"ファン"の皆さん、お疲れ様です😁」 「ひなちゃん、あんな事務所に所属してて大変だね。他のメンバーは売れてるのに」
桜井ひなの反応:「"ファン"ってカギカッコ付きで...完全に嫌味ですよね」「『他のメンバーは売れてるのに』って部分が、すごく刺さりました」「応援してくれる人がいることは嬉しいけど、批判は忘れられなくて」
観察された変化
- 導入前は「涙が溢れる」などかなり感情的に深くダメージを受けている様子が見られる
- 感情的にダメージを受ける投稿は減少したものの、嫌味な表現はブロックしておらず、それらの内容を批判として受け取っているため変わらずマイナスな感情が目立っている。
如月莉央
導入前: 事務所への不満を言えない葛藤に苦しむ
「如月莉央ってゴリ押しって言われてるけど、本人の実力はまだ未知数でしょ」 「莉央ちゃん可哀想…演技力なくても頑張ってるのに叩かれて」
如月莉央の反応:「『ゴリ押し』という言葉は、もう慣れたはずなのに、毎回胸に刺さります」「『演技力なくても』って...私、演技力ないわけじゃないのに」「スマホを持つ手が震えました」
リプライでも深刻でした。映画鑑賞の投稿に対する『映画観るより演技のレッスン受けた方がいいんじゃない?』というコメントに、「私、自費で演技のレッスン受けてるんです。でも、それをSNSに書けない(事務所が許可しない)から、こうやって言われる。理不尽だと思いました」と無力感を感じていました。
導入後: 同情と茶化しが残存し、根本的な誤解は解消せず
「莉央ちゃん可哀想…演技力なくても頑張ってるのに叩かれて」 「莉央ちゃんの演技、個性的で面白いよ!普通の女優さんとは違う意味でw」
如月莉央の反応:「同情してくれてるのは嬉しいけど、『演技力なくても』という部分が本当に辛かった」「『ww』が付いてるから、笑われてる。演技を真面目にやってるのに、こうやって茶化されるのが本当に悔しい」
「応援してくれる人の投稿を見ても、『この人たちは、事務所が作った"如月莉央"のイメージを応援してるだけだ』と思ってしまいます」
観察された変化
- ゴリ押しなどの批判的表現は削除されたが、桜井ひなと同様に嫌味・茶化し表現を気にしている
- 本人や世間が最も気にしている事務所と自身のギャップは変わらないため、そこに対する無力感は継続してしまっている
七条賢吾
導入前: 家族への攻撃で精神的に不安定
「七条の嫁と子供も不幸になれ。こんな⚪︎⚪︎の家族とか生きてて恥ずかしいだろ」 「七条健吾ってマジで生きてる価値ないゴミ。年俸8000万の詐欺師。<生命を脅かす表現>」
七条賢吾の反応:「これを見た時、涙が出そうになった。自分が批判されるのは仕方ない。でも、妻や子供を巻き込むなんて…」「家に帰って、妻や子供の顔を見た時、『自分のせいで迷惑をかけているのではないか』という罪悪感でいっぱいになった」
導入後: 最も過激な攻撃は消えたが、批判は残存
「短気だからミスが続くんだよ七条は。メンタル弱すぎ。プロ失格」 「七条健吾、守備範囲が明らかに狭くなってる。加齢の影響かな」
七条賢吾の反応:「『プロ失格』という言葉が、頭の中で何度もリフレインして、消えなかった」「32歳で『加齢』と言われると、もう終わりなのかと絶望的な気持ちになる」
「『家族養うためにしがみついてるだけ七条』という投稿を見た時は、本当に怒りと悲しみが込み上げてきた。家族のために必死に頑張っているのに、こんな風に言われるのは耐えられない」「応援のメッセージもあったが、『結果はついてきてないけど』という一言が引っかかり、素直に喜べなかった」
観察された変化
- 生命を脅かす表現や家族への攻撃は削除されたため、精神的苦痛は多少軽減された様子が見られる
- しかし、応援メッセージに含まれる条件付きの応援表現が気になってしまい、素直に受け入れられない様子が見られるなど、SNS利用への根本的な不安感は解消されていない
3.5 ブロックアクションの実施状況
今回は以下をブロック対象としました。
- DANGER~WARNINGの投稿
- DANGERを投稿したユーザー
- WARNINGやCAUTIONを一定数投稿したユーザー
- 頻出なリスクワード
投稿については上記で紹介したような投稿をブロックしています。 ここではブロックしたワードを紹介します。
キーワードブロックの詳細
頻出する誹謗中傷表現をキーワードとしてブロックしました。ペルソナごとに異なるキーワードが対象となっています。
ペルソナ別キーワード例: - タケル(10ワード):「ゴミ」「消えろ」「クソ」「性格」など - 桜井ひな(5ワード):「卒業」「不快」「アイドル失格」「吐き気」「嫌い」 - 如月莉央(10ワード):「邪魔」「うざい」「夢見すぎ」「ゴリ押し」「気持ち悪い」など - 七条賢吾(10ワード):「戦力外」「老害」「使えない」「ろ」など
4. 生成AIによる誹謗中傷対策の効果と今後の展望
4.1 システムの効果
4.1.1 確実に効果があった領域
4名のペルソナ全員で、以下のような最も過激な攻撃表現は削除されました。
- 生命を脅かす表現
- 存在を否定する表現:「卒業しろ」「アイドル失格」「消えろ」
- 家族への攻撃:「家族も不幸になれ」「子供も恥ずかしいだろ」
- 人格否定:「人間の⚪︎⚪︎」「生きてる価値ない」「社会のゴミ」
これらの削除により、一部のペルソナで一定の改善が見られました。 最も過激な攻撃が削除されることで、常に防衛的な姿勢から建設的な批判を受け入れる余裕も生まれています。タケルは「マンネリ化...か。確かに同じゲームばっかやってるかも」と内省的に考えられるようになり、桜井ひなは「応援してくれる人がいることは嬉しい」とポジティブな投稿に目を向けられるようになっています。この変化からは、最も過激な攻撃は防衛反応を引き起こし、建設的な批判すら受け入れられない状態を作り出していたと言えるでしょうか。
4.1.2 効果が限定的だった領域
今回CAUTIONレベルについてはブロック対象としなかったため、直接的な攻撃は削除されたものの、以下のような間接的・遠回しな攻撃表現は残ったままの状態でした。
| 攻撃の種類 | 具体例 |
|---|---|
| 嫌味・皮肉 | カギカッコ付きの「"ファン"の皆さん、お疲れ様です😁」、「個性的で面白いよ!普通の女優さんとは違う意味でw」 |
| 同情を装った誤解 | 「演技力なくても頑張ってるのに」 |
| 性格・メンタル批判 | 「メンタル弱すぎ」「プロ失格」 |
| 客観的だが傷つける表現 | 「守備範囲が明らかに狭くなってる」「加齢の影響かな」 |
これらは直接的に攻撃性のある投稿でなく、リスクレベルを4つの分類として定義したため上記のような発言はリスクレベルが相対的に下げられてしまったと推測されます。今回のように、相対的な基準を作ってしまうと直接的な投稿の方がリスク度合いとしては大きいと判断されてしまうため、リスクレベルを分類するにしてもこのように嫌味な表現をどのように扱うかをより細かくペルソナごとに定義する必要があるかも知れません。
アンケート結果では、直接的な攻撃的コメントを削除したものの、改善は見られませんでした。これは、間接的・遠回しな攻撃表現がより顕著に見られるようになった結果、新しくそちらに目が向いてしまったためと推測します。さらに、元々過激な言葉で批判を受けていたため、間接的な表現であっても精神的苦痛を感じてしまうという側面もあるでしょう。
4.2 改善の方向性
4.2.1 現在の技術的課題と改善策
実装してみて一番難しかったのが、カギカッコ付きの「"ファン"の皆さん、お疲れ様です😁」や「演技力なくても頑張ってる」といった嫌味・同情を装った攻撃の検出です。形式的には攻撃性のある投稿でないため、投稿者の意図を読み取る必要があり、調整が難しいです。
同じ「応援してるね」という言葉でも、ペルソナの状況によって受け取り方が全く変わってきます。例えば桜井ひなの場合、「頑張ってるね」が応援か同情かは、文脈を見ないと判断できません。
この辺りは、各ペルソナごとに「このワードはこういう文脈で使われると嫌味になる」といったパターンを事前に定義しておくアプローチが有効かも知れません。
キーワードブロックもあまり適切な結果ではありませんでした。「卒業」をブロックワードに設定すると、「大学卒業おめでとう!」みたいな無関係な投稿まで巻き込んでしまいます。かといって伏せ字(「ク〇ズ」)や言い換え(「存在価値ゼロ」)には全く効かないので、イタチごっこになってしまいます。
実際に「ろ」というワードがブロックリストに入ってしまった部分についても、「消えろ」「卒業しろ」といった語尾の共通部分を抽出してしまったのでしょうか。。。
キーワードブロックに頼りすぎず、継続的に「投稿」や「ユーザー」単位でのブロック判定を回していくのが実際には効果的かも知れません。
また、今回はローカルのサンプルSNSでの検証でしたが、実際にTwitter(X)などで使うことを考えると、各プラットフォームのAPIとの連携が必要になります。MCPサーバーが提供されていればそれを活用していくなども、今後検討できればと思います。
4.3 さいごに
今回Claude Codeのサブエージェント機能を使って誹謗中傷検知システムを実装してみましたが、最も過激な攻撃表現の除去には確実に効果がありました。一方で、嫌味や皮肉といった間接的な攻撃の検出は想像以上に難しく、「応援なのか嫌味なのか」を判定する精度向上が今後の課題です。
実装してみて感じたのは、誹謗中傷対策だけでなく、個人が快適にSNSを使うための仕組みとしても応用できるということです。例えば「ネタバレを防ぐ」「贔屓チームが負けた日に情報をシャットアウトする」といった使い方も考えられます笑。自分で細かくフィルタ設定するのは面倒ですが、AIに自分自身の情報を渡して「自分にとって不快な投稿を判定してブロックする」という方向性は実用的だと思います。
次は実際のTwitter(X)のAPIと連携させて、リアルタイムでの検知・ブロックができるか試してみたいです。MCPサーバーの活用も含めて、実運用レベルまで持っていけるか、チャレンジできればなと思っています。