Zalgoテキストの検出とコンテンツモデレーション

ユーザー生成コンテンツでZalgoテキストを検出しモデレーションする方法を学びます。検出アルゴリズム、閾値ベースのフィルタリング、サニタイゼーション戦略を含みます。

Practical Usage

詳細な説明

Zalgoテキストのモデレーション

ユーザー生成コンテンツを扱うプラットフォームにとって、Zalgoテキストは読みやすさとユーザー体験を損なう可能性があります。

検出アルゴリズム

正当なテキストは基底文字あたり2–3個以上の結合マークを持つことはほとんどありません。Zalgoテキストは通常5個以上です。

function detectZalgo(text, threshold = 3) {
  let consecutiveCombining = 0;
  for (const char of text) {
    if (/\p{Mn}/u.test(char)) {
      consecutiveCombining++;
      if (consecutiveCombining > threshold) return true;
    } else {
      consecutiveCombining = 0;
    }
  }
  return false;
}

モデレーション戦略

  1. ブロック:Zalgoスコアが閾値を超えるコンテンツを拒否
  2. 除去:すべての結合マークを削除(攻撃的、正当なアクセントも削除)
  3. 制限:基底文字あたりの結合マークを2–3個に制限(アクセントを保持)
  4. フラグ:人間によるレビュー用にマーク
  5. レンダー制限:文字あたり最初のN個の結合マークのみ表示

ユースケース

Zalgoテキストのコンテンツモデレーションは、チャットアプリケーション、フォーラム、SNSプラットフォーム、ゲームコミュニティ、過剰な結合マークが読みやすさやレイアウトを損なう可能性のあるユーザー生成テキストを受け付けるシステムに不可欠です。

試してみる — Zalgo Text Generator

フルツールを開く