- PR -

文字列のチェックに関しまして

1
投稿者投稿内容
どんたくお
ベテラン
会議室デビュー日: 2005/08/29
投稿数: 88
投稿日時: 2006-01-18 16:58
みなさま、こんにちは。
どんたくおです。

現在掲示板チックなWEBアプリケーションを作成しております。
そこで、皆様にご質問です。

掲示板などの不特定多数の人から書き込まれるものに関しては、
あんまり良くない言葉を処理する必要があるかと思います。
// 便宜上、放送禁止用語とよばさていただきます。


僕が今考えているのは、「,」で区切ったCSVを用意して、それを
読み込み、合うものがあるか判断する方法です。

コード:
String FUSE = "****";
String str = "対象文字列";
String[] csv = StringUtils.split("あんなこと,こんなこと", ",");



for (int i = 0; i < csv.length; i++) {
	String s = csv[i];
	str = str.replaceAll(s, FUSE);
}


といった感じです。
ただこの場合ですと、例えば
「あ ん な こ と」
とか入力された場合、スルーしてしまいます。

こういう放送禁止用語の処理などは皆さんどのように行われている
のでしょうか。
効率的な方法をご存知の方がおいでましたら、ご教授いただえける
と幸いです。

よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-18 17:06
引用:

どんたくおさんの書き込み (2006-01-18 16:58) より:

ただこの場合ですと、例えば
「あ ん な こ と」
とか入力された場合、スルーしてしまいます。


これに関してだけ言えば、文字を 1 文字ずつ取って、
スペースを無視した状態で結合した String で検証すれば良いでしょう。

ただ、

 「こ−ん−な−こ−と」とか、
 「す!ご!い!こ!と」とか、

言い出したらキリがないですので、根本的な解決は難しいと思います。
(さらに言えば、同じ文字が間に入るとも限りませんし)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
明智重蔵
大ベテラン
会議室デビュー日: 2005/09/05
投稿数: 127
投稿日時: 2006-01-18 17:21
正規表現を使って

あ\s*ん\s*な\s*こ\s*と\s*
|こ\s*ん\s*な\s*こ\s*と\s*

とすればある程度は防げるかな?

\s*を(\s|ー|-)*
とかに変更すれば区切り文字を変更できます
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-18 17:24
引用:

明智重蔵さんの書き込み (2006-01-18 17:21) より:

正規表現を使って

あs*んs*なs*こs*とs*
|こs*んs*なs*こs*とs*

とすればある程度は防げるかな?


問題のない表現までヒットするかも。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
どんたくお
ベテラン
会議室デビュー日: 2005/08/29
投稿数: 88
投稿日時: 2006-01-18 17:32
みなさん、ご返信いただきまして、ありがとうございます。

やはり、ある程度は仕方ないかなと、思っております。
皆さんの意見を参考にさせていただきまして、こんな感じにしようかと思います。
コード:
String str = "対象文字列".replaceAll("\\\\s", "");


制御文字を排除して、処理を行おうかなと思いました。

う〜ん。確かに、考えれば考えるほどきりがなさそうですね・・・。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-01-18 19:47
2chでの表現のように、誤字脱字で書かれた場合、
きりがないと思いますよ。

たとえば、NGワードが「死ね」として、
2chで有名な「死ね」を「氏ね」と表現されると、チェックできません。
逆に、「死ねというような内容で、中傷されました・・・」
みたいな書き込みも弾いてしまいます。

質問に対してこんな回答では大変失礼ですが、
チェックしないというのが一番いいと思います。
但し、書き込み者のIPなどの証拠物は残したほうがいいでしょう。
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2006-01-19 09:39
かつのりさんの言われているように、実効的な自動的なチェックは
たぶん、不可能だと思います。できるとしたら、よほど高度な
日本語解析能力を備えたAIのようなものになるんじゃないでしょうか。
もし、どうしてもチェックしなければならない、というのであれば、
利用者の書き込みをすぐに反映させず、管理者の内容確認を経由してから、
掲示板に反映させる、というような手段しかないのでは?

どんたくお
ベテラン
会議室デビュー日: 2005/08/29
投稿数: 88
投稿日時: 2006-01-21 00:04
かつのりさん、flatlineさん、ご返信いただきまして、ありがとうございます。
皆様のアドバイスを参考にさせていただきまして、ある程度しか防げないことを、ご説明させていただこうと思います。

皆様、ありがとうございました。m(_|_)m
1

スキルアップ/キャリアアップ(JOB@IT)