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;
}
モデレーション戦略
- ブロック:Zalgoスコアが閾値を超えるコンテンツを拒否
- 除去:すべての結合マークを削除(攻撃的、正当なアクセントも削除)
- 制限:基底文字あたりの結合マークを2–3個に制限(アクセントを保持)
- フラグ:人間によるレビュー用にマーク
- レンダー制限:文字あたり最初のN個の結合マークのみ表示
ユースケース
Zalgoテキストのコンテンツモデレーションは、チャットアプリケーション、フォーラム、SNSプラットフォーム、ゲームコミュニティ、過剰な結合マークが読みやすさやレイアウトを損なう可能性のあるユーザー生成テキストを受け付けるシステムに不可欠です。