ASP.NETアプリケーションの場合、カスタムの冒とく的な単語のリムーバー/リプレースメントのベストプラクティスの実装方法は何ですか?
これがデータテーブルソリューションである場合、データを取得するための無料のリソースはありますか?(スペルチェックのためにシステムにインポートできる公開ディクショナリテーブルを見つけるのと同様です)
ASP.NETアプリケーションの場合、カスタムの冒とく的な単語のリムーバー/リプレースメントのベストプラクティスの実装方法は何ですか?
これがデータテーブルソリューションである場合、データを取得するための無料のリソースはありますか?(スペルチェックのためにシステムにインポートできる公開ディクショナリテーブルを見つけるのと同様です)
勝つための唯一の方法はプレーしないことです。
次の文を考えてみましょう。
「エドワード2世は、記録された野郎を産んだほんの一握りの君主の1人でした。」
バスタードは境界線の冒とく的な言葉ですが、この文脈では完全に賢明な用語です。
また、考慮してください:
使用法が正しいかどうかを判断できるパーサーを作成することはできません。とにかく先に進んでそれらの単語を単にスターアウトすることに決めたとしても、それらはとにかく簡単に破壊されます。
自問してみてください。「Tw*t」は「twat」よりもはるかに不快感が少ないのでしょうか。誰もがあなたが指している単語を知っており、誰もがそれが何を意味するのかを理解しています。
結局のところ、この問題の解決策は技術的なものではありません。本当に、あなたはある種の人間のモデレーターを使って、宣誓する人々を追い出したいのです。人間の穏健派には、アルゴリズムには決してない機能があります。それは判断力を行使することができます。この判断を使用することは、問題にコンピュータサイエンスを投げかけるよりもはるかに便利です。
これは、この質問に対する他の回答で詳細に説明されています。
さて、私たちが (*) 行ったことは、「悪い言葉」の 2 層のリストを作成することです (正規表現を使用して、いくつかのバリエーションを見つけられることを願っています)。Tier 1 の単語を使用すると、利用規約に違反していることを示す警告が表示され、修正するまでそのメッセージを保存できません。Tier 2 の単語を使用すると、メッセージは投稿されますが、それに対して異議が自動的に提出されます。異議のフラグが立てられたすべてのメッセージ (システムまたはユーザーによって生成されたもの) は、人間によってレビューされ、留まるかなくなるかが決定されます。
(*) 「私たち」は、ウェブサイトでユーザー生成コンテンツの許可を開始したばかりの、大規模で安定した実店舗のチェーン店の e コマース部門です。