以下、図面を参照して本発明の好適な実施の形態について説明する。なお、以下の実施形態では、通信機能を有する端末装置として携帯電話を利用するシステムに本発明を適用した場合について説明する。
なお、後述する猥褻語、差別語、同音語、同義語、検閲除外語、変換語等は文字列であるものとする。
[文字列検閲システム]
図1に、本発明の実施形態に係る文字列検閲システム150の概略構成を示す。図1において、文字列検閲システム150は、利用者携帯端末21、22及びサービス提供会社30のサーバ23が、ネットワーク20を介して通信可能に構成されている。ネットワーク20のもっとも好適な例は、インターネットである。なお、図1に示す利用者携帯端末21及び22以外にも、多数の利用者が同時にネットワーク20を通じてサーバ23にアクセスしているが、図1においては便宜上2人の利用者の携帯端末のみを図示している。複数の利用者が各自の利用者携帯端末を使用して、オンラインでチャット等を行う際に各利用者携帯端末において実行される処理は同じであるので、本実施形態では、利用者携帯端末21をとりあげて説明する。
利用者携帯端末21は、サーバ23へのアクセス、ウェブページの閲覧、及びチャット等のコンテンツの実行等を行う際に使用する端末装置である。利用者携帯端末21は、ネットワーク20を介しての通信機能及びウェブブラウザ機能を有し、チャット等のコンテンツを実行することができる携帯電話等の端末装置とすることができる。
ここで、チャット等とは、チャットや掲示板を指し、通信機能を有する端末装置によって、ネットワークを通じて遠くの人と文字によるメッセージの交換や会話を楽しむことができるコンテンツである。また、本実施形態では、利用者携帯端末21、22が携帯電話であるものとして説明を行うが、本発明の適用は携帯電話には限定されず、携帯型情報端末、携帯型パーソナルコンピュータなどの各種端末装置を利用することができる。
図2は、本発明が適用された利用者携帯端末のブロック図である。利用者携帯端末21は、マイクロプロセッサを主体として構成されたCPU1、そのCPU1に対する主記憶装置としてのROM2及びRAM3、画像処理及び音声処理用のGPU(Graphics Processing Unit)7及びSPU(Sound Processing Unit)9、入力処理用のキー入力部4、データ入力部11、並びに、データの送受信処理用の送受信処理部5がバス12を介して各部と接続されて構成されている。
ROM2には、利用者携帯端末21の全体の動作制御に必要なプログラムとしてのオペレーティングシステムが書き込まれる。RAM3は作業メモリとして機能し、ダウンロードしたアプリケーションのデータなどが必要に応じて書き込まれる。
GPU7は、装備された液晶等からなる所定のサイズのモニタ8に、送信先電話番号やメールアドレスを入力操作に応じて確認的に表示させたり、必要な機能をガイド的に表示させたり、作成中や着信したメールの内容を表示させたりする制御を行うものである。また、GPU7は、サーバからダウンロードしたゲームなどのアプリケーションの画像データ等をCPU1から受け取って、モニタ8に表示させる。SPU9は、着信時の音楽やゲームの効果音などの、楽音データや音源データ等を再生してスピーカ10から出力させる。
キー入力部4は相手先の電話番号やホームページアドレスの入力の他、メールデータの作成等をおこなうための各種のキーを備えているものである。データ入力部11は、キー入力部4の操作に応じてメール情報等を作成するものである。
送受信処理部5は、通常の無線公衆回線からの着信、送信の回線制御及び音声データの送受信の他、インターネットを経由するなどして用いられる電子メールやサーバからダウンロードされる各種アプリケーション等におけるデータ送受信を処理するもので、送受信データはアンテナ6を介して授受される。また、携帯電話で送受されるデータはパケットで通信される。
なお、携帯電話をはじめとする利用者携帯端末21は、上記の他にも、通常の会話のための発着信などの携帯電話等における本来の動作を実行するための各種の構成要素を備えるが、本発明と直接関係しない部分については便宜上説明を省略する。
次に、サービス提供会社30側の構成について説明する(図1)。サービス提供会社30は、チャットをオンラインで楽しむことができるウェブサイトを運営している会社である。サーバ23は、チャットデータベース(以下、「DB」と呼ぶ。)24、利用者DB25、禁止語DB26、同音同義語DB27、検閲除外語DB28及びフィルタDB29に接続されている。サーバ23は、ネットワーク20を介しての通信機能、利用者登録機能、文字検閲機能、チャット実行機能などを有する。
チャットDB24には、チャットの実行をはじめとする各種の処理に必要なプログラムやデータが記憶されている。記憶されたプログラムやデータは、サーバ23によって適時呼び出されて利用者携帯端末21へ送信され、図2に示すCPU1によって利用者携帯端末21上で処理が実行される。
利用者DB25は、図3に示すように、サービス提供会社30に対して既に登録を済ませた利用者の情報を記憶している。利用者には登録時に利用者IDなどの識別情報が発行される。利用者DB25は、利用者ID毎にその利用者の使用する利用者携帯端末21の端末ID、メールアドレス、名前、シークレットコード、ペナルティポイント及び不正電話番号を記憶している。ここで、端末IDとは、利用者携帯端末が個別に有する識別情報である。
また、名前とは、利用者が利用者登録の際に利用者携帯端末21から入力した情報であり、チャット実行時にネットワーク上で公開される。なお、名前の変更は、利用者の任意で行うことができる。また、シークレットコードとは、自分のメールアドレスに設定する4桁の暗証番号である。これによれば、シークレットコードを知らない相手からはメールを受信しないようにすることができる。
また、ペナルティポイントとは、文字列検閲処理により、他の利用者に不快感を与える不適切な文字列を入力したと判断された利用者に対して課されるポイントである。ペナルティポイントが一定の数値以上になると、当該利用者には、チャット実行中に一定の制限が生じる。
また、不正電話番号とは、後述する文字列検閲処理により、チャット実行中に所定の電話番号を入力したと判断された利用者の利用者情報ファイルに記憶される当該電話番号である。通常、公的な許可を得たチャットにでは、プライベートな情報である電話番号やメールアドレスは悪用防止のために入力を禁止されている。このように、禁止されているにも関わらずチャット実行中に入力された電話番号を、利用者DB25に利用者IDと対応付けて不正電話番号として記憶する。これにより、当該不正電話番号を参考にして文字列検閲処理を行うことができる。なお、本実施形態で不正な入力を行った利用者の利用者情報ファイルに記憶するのは、図3に示すように、不正電話番号のみであるが、住所やメールアドレスをはじめとするプライベート情報など、入力が禁止されている情報を記憶するように設定することも可能である。
禁止語DB26は、図4に示すように、種別フラグ、種別、禁止語及び変換語から構成されている。ここで、種別フラグとは種別と対応付けられた一意の識別情報であり、種別とは猥褻語、差別語、宗教語をはじめとする他の利用者に不快感を与える可能性のある文字列の分類である。禁止語とは、図4に示す、「あいうえお」、「カキク」、「甲乙丙」のように、種別により大別された他の利用者に不快感を与える可能性のある文字列である。なお、本明細書では、便宜上、実際のシステムにおいて使用される禁止語そのものの代わりに、上記「あいうえお」などの通常の文字列を代わりに使用して説明を行う。変換語とは、文字列検閲処理により禁止語が検出された際に、当該禁止語に変わってチャット実行中に画面上に表示される文字列である。例えば、利用者が、「甲乙丙なので〜」と入力した場合、文字列検閲処理により、文字列「甲乙丙」が「ピー」に変換され、チャット実行中に画面上には「ピーなので〜」と表示される。
同音同義語DB27は、図5に示すように、種別フラグ、種別、同音語、同義語及び英数字から構成されている。ここで、種別フラグとは種別と対応付けられた一意の識別情報である。また、種別は数字同音同義語、及び、英語同音同義語に分類され、利用者が、チャット実行中に入力が禁止されている電話番号やメールアドレスを伝えるために、数字及び英語を暗号化するパターンを大別したものである。英数字とは、0〜9までの数字とA〜Zまでのアルファベットである。
同音語は、英数字と同じ発音をするひらがな、カタカナ、漢字、記号、又はそれらの組み合わせである。例えば、図5に示すように、数字「0」の同音語は、「零」、「ゼロ」、「○」、「ゼろ」などが考えられる。
同義語は、同音語ではないが英数字を伝えることができるひらがな、カタカナ、漢字、記号、又はそれらの組み合わせである。例えば、図6に示すような携帯電話を使用して利用者がチャットを行っている場合、数字「0」はプッシュボタン40であり、ひらがな「わ」と同じプッシュボタン40に割り当てられている。通常、プッシュボタンに対する英数字の割り当ては、携帯電話の規格上同じであるため、数字「0」の同義語は、ひらがな「わ」となる。即ち、利用者間でプッシュボタンの配列を利用した暗号であるとの認識があれば、数字「090」は、ひらがな「わらわ」として他の利用者に伝えることができる。
検閲除外語DB28は、図7に示すように、種別フラグ、種別、検閲除外語及び変換語から構成されている。ここで、種別フラグとは種別と対応付けられた一意の識別情報である。また、種別とは除外猥褻語、除外差別語、除外同音同義語をはじめとする、単語の中に他の利用者に不快感を与える可能性のある文字列を含んでいるが、当該単語自体としては不快感を与えず通常使用されている単語などを大別したものである。検閲除外語は、例えば、図7に示すように「パチンコ」、「忘れず」などがあげられる。具体的には、「カキク」が不快感を与える猥褻な文字列であっても、「カキクけこ」が通常使用されている単語であれば、「カキクけこ」は除外猥褻語となる。また、「わからない」という単語は、上述した携帯電話のプッシュボタンの配列を利用した暗号である場合、ひらがな「わからな」は、数字「0295」として他の利用者に伝達することができる。詳細は後述するが、文字列検閲システム150は、一定の文字数以上の数字を電話番号とみなして検閲対象とする。このため、ひらがな「わからない」のように電話番号やメールアドレス等を伝達するための暗号化された英数字であると判断される単語を検閲対象から除外するため、除外同音同義語としている。
変換語とは、文字列検閲処理により検閲除外語を変換した際に、当該検閲除外語に変わってチャット実行中に画面上に表示される文字列である。これによれば、詳細は後述するが、検閲を行う際の優先度に基づいて「カキクけこ」や「わからない」のような単語が、猥褻語又は電話番号とみなされた場合であっても、上述した「ピー」等ではなく、「カキクけこ」や「わからない」と変換される。
フィルタDB29は、図8に示すように、フィルタ番号及びフィルタから構成されている。ここで、フィルタ番号とはフィルタに対応付けられた一意の識別情報である。フィルタは、文字の入力形式に従って複数存在し、「ひらがな変換」、「カタカナ変換」、「半角変換」等がある。文字の入力形式は、「ひらがな」、「カタカナ」、「半角」、「全角」などが挙げられ、利用者携帯端末21から入力可能な文字の形式である。
1つの文字列にひらがなやカタカナなど複数の入力形式による文字が混在している場合、所定のフィルタを利用することで、当該フィルタの入力形式の文字列に変換することができる。例えば、「ひらがな変換」フィルタは、例に示すように「いロは」を「いろは」に変換する。このように、フィルタを利用して、所定の文字列を当該フィルタの入力形式の文字列に変換することをフィルタリングという。
[利用者登録]
次に、図9乃至図13を参照し、利用者登録について説明する。利用者は、チャットを行う場合、利用者携帯端末21を使用して利用者登録を行う。まず、利用者は利用者携帯端末21を使用して、サービス提供会社30のウェブページにアクセスし、図9に示すような説明画面を表示する。そして、利用者は、チャットにおいて表示する名前と、設定があればシークレットコードを入力し、OKボタンを押下することで利用者の名前、シークレットコード及び端末IDをサービス提供会社30のサーバ23に送信する。
サーバ23は、図10に示すように、受信した情報から抽出したシークレットコード、端末ID及び受信した際の時間情報Aに基づいてパラメータAを作成し、当該パラメータAを符号化(暗号化)してメールアドレス50を作成する。そして、図11(a)に示すように、登録確認画面を利用者の利用者携帯端末21に表示させる。ここで、送信先のメールアドレス50は、当該パラメータAを符号化(暗号化)したメールアドレス50である。
利用者は、登録確認画面において修正がない場合、メールアドレス50を押下し、図11(b)に示すような登録メールの画面を表示する。ここで、送信者メールアドレス51は利用者の使用する利用者携帯端末21のメールアドレスであり、宛先のメールアドレス50は前述のパラメータAを符号化(暗号化)して作成したメールアドレス50である。即ち、宛先のメールアドレス50に対応するパラメータAは、図10に示すように、利用者携帯端末21のシークレットコード、端末ID及び時間情報である。そして、利用者は、図10(b)に示すような登録メールを送信する。
サーバ23は、登録メールを受信すると、宛先のメールアドレス50を復号化する。ここで、正しく復号化できない、若しくは、登録メールが届かない場合、サーバ23は、利用者携帯端末21に登録できない旨の画面を表示する。例えば、利用者が宛先のメールアドレス50を手入力した場合、人為的な入力ミス等により宛先のメールアドレス50が正しく入力されず、復号化できないことが考えられる。なお、宛先のメールアドレス50が正しく入力されていないと、登録メールがサーバ23に届かないことも考えられる。
一方、復号化が成功した場合、サーバ23は、図10に示すパラメータAを取得することができる。そして、サーバ23は、現在の時間情報を取得し、当該現在の時間情報とパラメータAとして含まれていた時間情報Aに基づいて、有効期限の確認を行う。有効期限は任意に設定することができる。例えば、有効期限が10分である場合、利用者が利用者登録を要求した時間と現在の時間に10分以上差があれば、当該利用者登録の要求を却下する。当該時間差が大きい場合、利用者の成りすまし等の不正行為が行われている可能性が高いからである。
さらに、サーバ23は、登録メールの送信者アドレス51を特定し、パラメータAに任意情報であるシークレットコードが設定されていれば当該シークレットコードを付加する。また、サーバ23は、図12に示すように、利用者のメールアドレス、シークレットコード、端末ID及び登録メールを受信した際の時間情報Bに基づいてパラメータBを作成し、当該パラメータBを符号化(暗号化)することによりURL52を作成する。そして、サーバ23は、図13に示すように、宛先が送信者アドレス51であり、URL52が付加された認証結果メールを送信する。
利用者は、認証結果メールを受信すると、登録を完了させるためURL52にアクセスする。一方、サーバ23は、URL52を復号化し、図12に示すパラメータBを取得する。そして、現在URL52に接続している端末の端末IDと、パラメータの端末IDを比較する。端末IDが一致した場合、サーバ23は、利用者の識別情報である利用者IDを発行し、当該利用者IDをキーとした利用者情報ファイルとして、図3に示すように、利用者携帯端末21の端末ID、メールアドレス、シークレットコード及び利用者の名前を記憶する。最後に、サーバ23は、登録完了を知らせる画面を利用者携帯端末21に表示し、利用者登録を完了する。一方、端末IDが一致しなかった場合、サーバ23は利用者携帯端末21に登録できない旨の画面を表示する。なお、サーバ23は、時間情報Bや予め設定された有効期限に基づいて、利用者携帯端末21に登録できない旨の画面を表示しても構わない。
これによれば、利用者が手入力したメールアドレスがサーバ23に記憶されるのではなく、利用者携帯端末21から送信されたメールの送信元アドレスがサーバ23に記憶されるため、人為的なミスにより、誤ったアドレスを利用者情報ファイルに記憶することがない。また、パラメータを暗号化して宛先メールアドレスやURLとすることで、利用者登録処理中における利用者による成りすまし等の不正な行為を禁止することができる。さらに、本発明の利用者登録では、メールの送信元及び宛先のみ使用しており、件名や本文は使用していない。メールの送信元及び宛先は、件名や本文と異なり、全てのメール関連ソフトで同じ規格であるため、本発明はメール機能を有する端末であれば、全ての端末で適用することができる。
[機能ブロック]
図14に、本発明の文字列検閲システム150におけるサーバ23の機能ブロック図を示す。図14に示す各機能は、サーバ23のチャットDB24に記憶されたプログラムをサーバ23が実行することにより実現される。
図14に示すように、本発明のサーバ23は機能的には、利用者登録手段100、メールアドレス正当性確認手段101、タブー検閲手段102、英数字検閲手段103、ペナルティポイント手段104及びチャット伝達手段105により構成されている。
利用者登録手段100は、利用者の識別情報である利用者IDを発行し、当該利用者IDをキーとして、当該利用者の使用する携帯端末の端末ID、メールアドレス、シークレットコード、及び、当該利用者の名前を利用者DB25に記憶する。
メールアドレス正当性確認手段101は、利用者が現在使用しているメールアドレスと、利用者DB25に記憶されているメールアドレスが一致しているか否かを確認する。
タブー検閲手段102は、利用者が入力した文字列の中に、禁止語DB26又は検閲除外語DB28に記憶された禁止語又は検閲除外語が含まれているか否かを検閲し、含まれている場合は、該当する変換語に当該文字列を変換する。
英数字検閲手段103は、利用者が入力した文字列の中に、同音同義語DB27に記憶された数字同音同義語や英語同音同義語を利用してプライベートな情報、例えば、電話番号やメールアドレスなどが含まれているか否かを検閲し、含まれている場合は、該当する変換語に当該文字列を変換する。
ペナルティポイント手段104は、利用者が猥褻語、差別語、又はプライベートな情報を入力した場合にペナルティポイントを加算し、当該ペナルティポイントに基づいてチャット実行中に制限を与える。
チャット伝達手段105は、利用者が入力した文字列をチャット相手である他の利用者に伝達する。
[チャット実行処理]
次に、チャット実行処理について、図15乃至図19のフローチャートを参照して説明する。図15は、チャット実行処理を示すフローチャートである。図16は図15におけるメールアドレス正当性確認処理を示すフローチャート、図17は図15における文字列検閲処理を示すフローチャートである。また、図18は図17におけるタブー検閲処理を示すフローチャートであり、図19は図17におけるペナルティポイント処理を示すフローチャートである。なお、以下に説明する処理は、図1に示すチャットDB24に記憶されたプログラムやデータに基づいて、図2に示すCPU1又はサーバ23が各種手段として機能することにより実行される。
利用者はチャットを行う場合、まず、サーバ23に対して利用者登録を行う必要がある。よって、利用者は、サーバ23に利用者登録要求を行う。図15によれば、利用者から利用者登録要求を受信すると、サーバ23は、利用者登録処理を行う(ステップS1)。利用者登録処理は、サーバ23が、利用者の識別情報である利用者IDを発行し、当該利用者IDをキーとして、当該利用者の使用する利用者携帯端末の端末ID、メールアドレス、シークレットコード及び当該利用者の名前を利用者DB25に記憶する処理である。
次に、サーバ23は、DB読込み処理を行う(ステップS2)。DB読込み処理は、文字列検閲処理を行う場合に検閲対象となる文字列及び変換語がペアで記憶されている禁止語DB26、同音同義語DB27及び検閲除外語DB28をサーバ23のメモリに読込む処理である。
サーバ23は、まず、禁止語DB26及び検閲除外語DB28の変換語を全てメモリに記憶する。例えば、禁止語DB26において変換語は「ピー」であり、検閲除外語DB28において変換語は検閲除外語と同じである。なお、禁止語DB26の変換語は、「ピー」以外にも任意に設定することが可能である。また、このとき変換語に対応付けられた種別もあわせてメモリに記憶する。
そして、サーバ23は、禁止語DB26の禁止語、同音同義語DB27の同音語及び同義語、並びに、検閲除外語DB28の検閲除外語を全て記憶する。このとき、禁止語や検閲除外語は、予めメモリに記憶された種別及び変換語と対応付けて記憶される。なお、文字列の検閲を行う場合の優先度は、検閲除外語を最も高く設定しておく。これによれば、例えば、「カキクけこ」が検閲除外語であり、「カキク」が禁止語であって、「カキクけこであるため〜」という文章が利用者により入力された場合、優先度に基づいて、「ピーけこであるため〜」ではなく、「カキクけこであるため」と正しく変換される。
そして、サーバ23は、フィルタDB29の全てのフィルタに基づいて、メモリに記憶されている禁止語、同音語、同義語、検閲除外語及び変換語の全てをフィルタリングする。なお、フィルタリングは、禁止語及び変換語、並びに、検閲除外語及び変換語の対応付けに基づいて行われるため、それぞれの入力形式は統一される。具体的には、禁止語「カキク」が変換語「ピー」と対応付けてメモリに記憶されており、サーバ23がひらがな変換フィルタを使用してフィルタリングを行った場合、禁止語「かきく」に対応付けされた変換語「ぴー」がメモリに新たに記憶される。また、禁止語「ABC」が変換語「PEE」と対応付けてメモリに記憶されており、サーバ23が小文字変換フィルタを使用してフィルタリングを行った場合、禁止語「abc」に対応付けされた変換語「pee」がメモリに新たに記憶される。
次に、サーバ23は、利用者登録確認処理を行う(ステップS3)。利用者登録確認処理は、利用者がサーバ23に対して、既に利用者登録済であり、当該利用者の情報が利用者DB25に記憶されているか否かを判断する処理である。サーバ23は、利用者携帯端末21からチャットの実行要求を受信すると、要求元の利用者携帯端末21の端末IDに基づいて、利用者DB25に利用者登録がされているか否かを確認する。利用者登録がされていない場合、サーバ23は、利用者携帯端末21に、図9に示すような、利用者登録の説明画面を表示させる。一方、既に利用者登録がされている場合、サーバ23は、メールアドレス正当性確認処理を行う(ステップS4)。
メールアドレス正当性確認処理は、利用者が現在使用しているメールアドレスと、利用者DB25に記憶されているメールアドレスが一致しているか否かを確認する処理であり、図16を参照して詳細に説明する。
図16によると、まず、サーバ23は、利用者DB25に記憶された端末IDを取得する(ステップS10)。そして、当該端末IDを有する利用者携帯端末が、現在チャットを実行中であるか否かを判断する(ステップS11)。現在チャットを実行中であれば、サーバ23は、前回メールアドレス正当性確認処理をしてからの経過時間が一定時間以上であるか、一定時間未満であるかを判断する(ステップS12)。経過時間が一定時間以上であれば、当該端末IDを有する利用者携帯端末の処理優先度を「最優先」とする(ステップS14)。一方、経過時間が一定時間未満であれば、当該端末IDを有する利用者携帯端末の処理優先度を「優先度(低)」とする(ステップS15)。これは、メールアドレス正当性確認処理後の経過時間が長いほど、利用者がメールアドレスを変更し、現在使用しているメールアドレスと利用者DB25に記憶されているメールアドレスが一致しない可能性が高いからである。
一方、当該端末IDを有する利用者携帯端末が、現在チャットを実行中でない場合も、同様に、サーバ23は、前回メールアドレス正当性確認処理をしてからの経過時間が一定時間以上であるか、一定時間未満であるかを判断する(ステップS13)。経過時間が一定時間以上であれば、当該端末IDを有する利用者携帯端末の処理優先度を「優先度(高)」とする(ステップS16)。一方、経過時間が一定時間未満であれば、当該端末IDを有する利用者携帯端末の処理優先度を「優先度(低)」とする(ステップS15)。
そして、サーバ23は、利用者DB25に記憶されている全ての端末IDに対する優先度を決定したか否かを判断する(ステップS17)。全ての端末IDに対する優先度を決定していない場合、サーバ23は、ステップS10〜S17を繰り返す。一方、全ての端末IDの優先度を決定した場合、当該決定した優先度、及び、前回メールアドレス正当性確認処理をしてからの経過時間に基づいて、当該処理を行う端末IDの順番を決定する(ステップS18)。
サーバ23は、決定した順番に従って、端末IDを取得する(ステップS19)。そして、サーバ23は、当該端末IDに基づいて利用者DB25に記憶されたメールアドレスを取得し、当該メールアドレスに基づいて所定のメールサーバに接続する(ステップS20)。サーバ23は、メールサーバへの接続に問題があるか否かを判定し(ステップS21)、接続に問題があれば、リトライ回数以内か否かを判定する(ステップS22)。
リトライ回数とは、接続に問題があった場合にステップS20に戻ってメールサーバへの確認を再び行う処理の制限回数であり、任意に設定することができる。これは、メールアドレスが利用者によって現在も正当に使用中であるにも関わらず、不測の事態によりステップS21において接続に問題ありと判定される可能性があるため、リトライ回数を設定せず直ちにエラー処理を行うのは適切でないからである。よって、ステップS22において、リトライ回数以内であれば、再びステップS20を行う。一方、リトライ回数を越えていれば、エラー処理を行う(ステップS24)。エラー処理とは、サーバ23が、メールアドレスは利用者によって現在使用されていない不正なものであると判断し、当該利用者に警告のメッセージを送る等の処理である。
一方、ステップS21において、接続に問題がなければ、当該メールサーバにおけるメールアドレスの存在を確認する(ステップS23)。当該メールサーバにメールアドレスが存在していない場合、サーバ23は、エラー処理を行う(ステップS24)。当該メールサーバにメールアドレスが存在している場合、サーバ23は、利用者DB25に記憶された全ての端末IDについて、メールアドレスの正当性を確認したか否かを判定する(ステップS25)。
全ての端末IDについて、メールアドレスの正当性を確認していない場合、サーバ23は、ステップS19〜S25を繰り返す。一方、全ての端末IDについて、メールアドレスの正当性を確認した場合、サーバ23は、メールアドレス正当性確認処理を終了し、図15のメインフローに戻る。
次に、図15に戻り、サーバ23は、文字列検閲処理を行う(ステップS5)。文字列検閲処理は、利用者が入力した文字列が検閲の対象語に該当するか否かを判断し、該当する場合は所定の変換語に変換する処理であり、その詳細を図17を参照して説明する。
図17を参照すると、まず、利用者携帯端末21から文字入力があるか否かを判断する(ステップS30)。文字入力がなければ、サーバ23は、文字列検閲処理を終了し、図15のメインフローに戻る。一方、文字入力があれば、サーバ23は、各状態フラグの状態を初期化する(ステップS31)。状態フラグとは、ある状態が成り立っているかどうかを示すための目印であり、状態が成り立っている場合は「フラグを立てる」、逆に成り立っていない場合は「フラグをおろす」という。「状態フラグの状態を初期化する」、とは、全ての状態フラグがおりている状態とすることをいう。
本実施形態において、状態フラグは、禁止語DB26及び同音同義語DB27に記憶された種別に基づいて存在しており、例えば、「猥褻語フラグ」、「差別語フラグ」、「プライベートフラグ」が存在する。「猥褻語フラグ」は、利用者が禁止語DB26の猥褻語に該当する文字列を入力した場合、フラグが立てられる。「差別語フラグ」は、利用者が禁止語DB26の差別語に該当する文字列を入力した場合、フラグが立てられる。また、「プライベートフラグ」は、利用者が同音同義語DB27の数字同音同義語や英語同音同義語を利用して、電話番号やメールアドレスを入力した場合、フラグが立てられる。
次に、サーバ23は、入力文字列をRAM3に保存し(ステップS32)、タブー検閲処理を行う(ステップS33)。タブー検閲処理は、利用者が入力した文字列の中に、禁止語DB26又は検閲除外語DB28に記憶された禁止語又は検閲除外語が含まれているか否かを検閲し、含まれている場合は、該当する変換語に当該文字列を変換する処理であり、その詳細を図18を参照して説明する。
図18によれば、まず、サーバ23は、ステップS2のDB読込み処理によりサーバ23のメモリに読込まれた検閲除外語及び変換語、並びに、禁止語及び変換語を1件ずつ取得する(ステップS40)。このとき、ステップS40において取得するのは、予め設定された文字列の検閲を行う場合の優先度に基づいている。なお、当該優先度は、検閲除外語の方が禁止語より高く設定されている。
また、サーバ23は、フィルタDB29に記憶されたフィルタを1つ取得し、利用者の入力した入力文字列を当該フィルタでフィルタリングする(ステップS41)。
そして、ステップS40において当該優先度に基づいて取得した検閲除外語若しくは禁止語と、ステップS41においてフィルタリングされた入力文字列が一致するか否かを判定する(ステップS42)。一致しなかった場合、サーバ23は、入力文字列を全てのフィルタでフィルタリングしたか否かを判定する(ステップS48)。全てのフィルタでフィルタリングしていない場合、ステップS41に戻り、フィルタDB29に記憶された別のフィルタを1つ取得し、当該入力文字列をフィルタリングする。そして、サーバ23は、再び、ステップS42を行う。
一方、入力文字列が一致した場合、サーバ23は、入力文字列の中で検閲除外語若しくは禁止語と一致する該当部分を変換語に変換する(ステップS43)。そして、サーバ23は、メモリに記憶された種別に基づいて、該当部分が猥褻語であるか否かを判定する(ステップS44)。該当部分が猥褻語である場合、サーバ23は、「猥褻語フラグ」を立て(ステップS45)、全てのフィルタで当該入力文字列をフィルタリングしたか否かを判定する(ステップS48)。
一方、該当部分が猥褻語でない場合、サーバ23は、種別に基づいて、該当部分が差別語であるか否かを判断する(ステップS46)。該当部分が差別語である場合、サーバ23は、「差別語フラグ」を立て(ステップS47)、全てのフィルタで当該入力文字列をフィルタリングしたか否かを判定する(ステップS48)。
一方、該当部分が差別語でない場合、サーバ23は、全てのフィルタで当該入力文字列をフィルタリングしたか否かを判定する(ステップS48)。全てのフィルタで当該入力文字列をフィルタリングしていない場合、サーバ23は、ステップS41〜S48を繰り返す。一方、全てのフィルタで当該入力文字列をフィルタリングした場合、サーバ23は、フィルタリングされた当該入力文字列と、RAM3に記憶された全ての検閲除外語及び禁止語をステップS42において比較したか否かを判断する(ステップS49)。全てを比較していない場合、サーバ23は、ステップS40〜S49を繰り返す。一方、全てを比較した場合、サーバ23は、タブー検閲処理を終了し、図17に示す文字列検閲処理に戻る。
次に、サーバ23は、英数字検閲処理を行う(ステップS34)。英数字検閲処理は、利用者が入力した文字列の中に、同音同義語DB27に記憶された数字同音同義語や英語同音同義語を利用してプライベートな情報、例えば、電話番号やメールアドレスなどが含まれているか否かを検閲し、含まれている場合は、当該文字列を「プライベートな情報です」と変換する処理である。なお、ここで、変換語は「プライベートな情報です」であるが、これに限定されるものではなく、サーバ23が任意に設定することができる。
英数字検閲処理において、サーバ23は、まず、利用者の入力した入力文字列を、半角小文字フィルタ及び半角カタカナフィルタによりフィルタリングする。そして、サーバ23は、当該入力文字列が、同音同義語DB27に記憶された検閲除外語と一致するか否かを判断する。ここで、検閲除外語と一致した当該入力文字列は、英数字検閲処理の対象としない。
そして、サーバ23は、検閲除外語と一致しなかった当該入力文字列を、同音同義語DBに記憶された数字同音同義語、及び、英語同音同義語に基づいて、英数字に変換する。サーバ23は、英数字に変換された当該入力文字列が利用者DB25に記憶された利用者のメールアドレスに含まれる文字列と一定以上の割合で重複しているか否かを判断する。なお、一定以上とは、例えば「5文字以上」などであり、サーバ23が任意に設定することができる。そして、当該入力文字列が一定以上の割合で重複している場合、サーバ23は、当該入力文字列を「プライベートな情報です」に変換する。これは、利用者が、数字同音同義語や英語同音同義語を利用し、メールアドレスを暗号化して入力した可能性が高いからである。そして、サーバ23は、「プライベートフラグ」を立て、英数字検閲処理を終了する。
一方、当該入力文字列が一定の割合で重複していなかった場合、サーバ23は、当該入力文字列が英数字のみで構成されているか否かを判断する。当該入力文字列が英数字のみで構成されている場合、サーバ23は、当該入力文字列を「プライベートな情報です」に変換する。これは、利用者が、数字同音同義語や英語同音同義語を利用し、メールアドレスや電話番号などのプライベートな情報を暗号化して入力した可能性が高いからである。そして、サーバ23は、「プライベートフラグ」を立て、英数字検閲処理を終了する。
一方、当該入力文字列が英数字のみから構成されているのではない場合、サーバ23は、桁数が一定以上の数字の組み合わせを含んでいるか否かを判断する。当該入力文字列が、桁数が一定以上の数字の組み合わせを含んでいる場合、利用者が電話番号を暗号化して入力した可能性が高いため、当該入力文字列を「プライベートな情報です」に変換する。そして、サーバ23は、「プライベートフラグ」を立て、英数字検閲処理を終了する。
一方、桁数が一定以上の数字の組み合わせを含んでいない場合、利用者はメールアドレスや電話番号などのプライベートな情報を入力していないと判断して、英数字検閲処理を終了する。
なお、サーバ23は、英数字検閲処理において利用者が電話番号を入力したと判断し、当該入力文字列を「プライベートな情報です」と変換した場合、当該電話番号を当該利用者の利用者情報ファイルに不正電話番号として記憶する。これによれば、予め不正電話番号が利用者DBに記憶されているため当該不正電話番号を参考にすることができ、電話番号の情報が何もない場合よりも正確に英数字検閲処理を行うことができる。
引き続き図17を参照し、サーバ23は、利用者が入力した入力文字列と、タブー検閲処理及び英数字検閲処理終了後の文字列を比較する(ステップS35)。当該入力文字列と検閲終了後文字列が一致している場合、利用者が猥褻語や差別語をはじめとする禁止語、及び、英数字の同音同義語を利用したプライベートな情報の入力を行っていないと判断し、サーバ23は、文字列検閲処理を終了し、図15に示すメインフローへ戻る。
一方、当該入力文字列と検閲終了後文字列が不一致の場合、サーバ23は、RAM3に記憶された状態フラグに変化があるか否かを判断する(ステップS36)。「状態フラグに変化がある」とは、「猥褻語フラグ」、「差別語フラグ」、「プライベートフラグ」のうち1つ以上が立っている状態をいう。状態フラグに変化がない場合、サーバ23は、文字列検閲処理を終了し、図15に示すメインフローへ戻る。
一方、状態フラグに変化がある場合、サーバ23は、ペナルティポイント処理を行う(ステップS37)。ペナルティポイント処理は、利用者が猥褻語、差別語、又はプライベートな情報を入力した場合にペナルティポイントを加算し、当該ペナルティポイントに基づいて、利用者のチャット実行中に制限を与える処理であり、その詳細を図19を参照して説明する。
図19によれば、サーバ23は、まず、「X=0」、「Y=0」、「Z=現在のペナルティポイント」となるようにそれぞれを設定する(ステップS50)。ここで、X、Y、Zは、ペナルティポイントを計算する際に便宜上使用する変数である。
そして、サーバ23は、利用者の入力文字列に対して、前回ペナルティポイント処理を行ってからの経過時間を確認する(ステップS51)。経過時間が一定時間以上であれば、サーバ23は、変数Xに「1」を設定する(ステップS52)。一方、経過時間が一定時間未満であれば、サーバ23は、変数Xに「2」を設定する(ステップS53)。ペナルティポイント処理を一定時間未満に複数回行うことは、利用者が猥褻語、差別語、又は、プライベートな情報を頻繁に入力していることを意味するため、当該利用者は、初めて猥褻語等を入力した利用者に比べて悪質といえる。よって、ペナルティポイントを計算する際に使用する変数Xに設定する値を変えることで、詳細は後述するが、最終的にはペナルティポイントの値を変えている。
ステップS52、又は、S53によって変数Xの値を設定すると、サーバ23は、状態フラグのうち猥褻語フラグが立っているか否かを判定する(ステップS54)。猥褻語フラグが立っている場合、サーバ23は、利用者が猥褻語を入力したと判定し、変数Yに「3」を設定する(ステップS55)。一方、猥褻語フラグが立っていない場合、サーバ23は、差別語フラグが立っているか否かを判定する(ステップS56)。
差別語フラグが立っている場合、サーバ23は、利用者が差別語を入力したと判定し、変数Yに「2」を設定する(ステップS57)。一方、差別語フラグが立っていない場合、サーバ23は、プライベートフラグが立っており、利用者がプライベートな情報を入力したと判定し、変数Yに「1」を設定する(ステップS58)。
ステップS55、S57、又は、S58により変数Yの値を設定すると、サーバ23は、計算式「Z=Z+X*Y」に基づいてZの値を算出する(ステップS59)。Zとは、ペナルティポイントの値であるとする。例えば、現在のペナルティポイントZが「5」、変数Xが「2」、変数Yが「2」である場合、上記計算式に基づいて、新しいペナルティポイントZは「9」となる。
新しいペナルティポイントZを算出すると、サーバ23は、当該ペナルティポイントZの値を利用者DB25の該当する利用者情報ファイルにおけるペナルティポイントに記憶し、当該ペナルティポイントが規定値を超えているか否かを判定する(ステップS60)。規定値は、サーバ23が任意に設定することが可能である。例えば、規定値が「6」である場合、当該ペナルティポイントZが「9」であれば、サーバ23は当該ペナルティポイントZが規定値を超えたと判定し、当該利用者を危険人物と判断する(ステップS61)。そして、サーバ23は、ペナルティポイント処理を終了し、図17に示す文字列検閲処理に戻る。
一方、当該ペナルティポイントZが規定値を超えていないと判定した場合、サーバ23は、ペナルティポイント処理を終了し、図17に示す文字列検閲処理に戻る。
なお、当該利用者は危険人物と判断されると、サーバ23によって、チャット実行中に制限が加えられる。制限は、例えば、自由に文字列の入力を行うことができず予め用意された文字列を選択するのみとなる、又は、1度に入力する文字列の数が通常は100文字であるにも関わらず20文字になる等であり、様々な種類の制限を任意に設定することが可能である。
図17に示す文字列検閲処理によれば、次に、サーバ23は、警告画面を表示する(ステップS38)。サーバ23は、警告画面を利用者携帯端末21に表示することで、利用者に、猥褻語、禁止語、又は、プライベートな情報など禁止されている文字列を入力したことを認識させ、反省を促す。また、利用者が入力した猥褻語等は、変換語に変換されているため、当該利用者に文字列の再入力をさせる(ステップS39)。そして、サーバ23は、文字列検閲処理を終了し、図15に示すメインフローに戻る。
図15に示すメインフローによれば、利用者は、チャット伝達処理を行う(ステップS6)。チャット伝達処理は、利用者が入力した文字列をチャット相手である他の利用者に伝達する処理である。サーバ23は、チャット伝達処理の後、利用者同士の文字列の入力が完了するまで、ステップS2〜S6を繰り返し、チャット実行処理を行う。
なお、本実施形態では、ペナルティポイント処理において、変数X及びYに基づいてペナルティポイントZを算出したが、ペナルティポイントの算出方法は任意に設定することができる。
また、禁止語DB、同音同義語DB、検閲除外語DBの種別、及び、状態フラグの種類についても、本実施形態で使用したものに限られるのではなく、任意に設定することが可能である。また、同音同義語DBに変換語として、1つの英数字毎に「*」などを設定することもできる。
また、本実施形態の同義語は携帯電話のプッシュボタン配列に適用したものであるが、パソコンのキー配列に適用することも可能である。
また、本発明は、チャットに限られるものではなく、オンラインゲームや掲示板などオンライン上でリアルタイムに文字のやり取りを行う場合に適用することができる。
以上説明したように、本発明によれば、チャットのように、利用者が入力した文字列によって会話がリアルタイムに進行する場合であっても、全ての利用者による文字列は自動的に検閲され、不適切な文字列が変換された後に他の利用者に伝達される。よって、他の利用者の心証を害するような不適切な文字列が伝達される可能性を極力少なくすることができる。また、文字列の検閲は自動的に行われるため、監視員を24時間体制で常駐させる必要がなく、コストを大幅に削減することができる。
また、本発明によれば、猥褻語や差別語のみならず、電話番号やメールアドレスなどの悪用される危険性の高いプライベート情報に対する検閲も可能である。この場合、通常の英数字のみならず、英数字の同音語や同義語を利用した暗号によって、プライベート情報を他の利用者に伝達する場合に対応することができる。
また、本発明の文字列検閲においては、猥褻語、差別語、英数字の同音同義語などを予めDBに記憶しておき、猥褻語等と利用者による入力文字列のそれぞれに、複数のフィルタに基づくフィルタリングをして文字列比較を行う。これによれば、ひらがなやカタカナ等の全ての文字形態を予めDBに記憶しておく必要がなく、フィルタの組み合わせによって柔軟に文字列比較を行うことができる。さらに、これによれば、猥褻語等の文字列をDBに追加するのではなく、フィルタの種類を増加させることでも文字列比較を強固にすることが可能である。また、猥褻語等と同様に変換語にもフィルタリングを行うことで、猥褻語等が変換語に変換された場合でも文字形態が同一である。たとえば、利用者が英文でチャットを行っている場合、猥褻語等は「ピー」ではなく「PEE」に変換される。よって、チャット実行中における文章の違和感を少なくすることができる。
また、本発明では、利用者が電話番号等のプライベートな情報を入力した場合、当該電話番号等を利用者の利用者情報ファイルに不正電話番号等として記憶する。これによれば、記憶された不正電話番号等を利用して文字列検閲を行うことができるため、より強固な検閲を行うことができる。
また、利用者が不適切な文字列の入力を頻繁に行う場合、ペナルティポイントに基づいて、チャットの実行に制限を課している。これによれば、利用者に反省を促し、再発を防止することができる。
さらに、本発明によれば、利用者登録の際、利用者に直接メールアドレスを入力させるのではなく、パラメータを利用してメールアドレスを登録している。これによれば、人為的な入力ミスを排除することができ、利用者登録中の成りすまし等を防止することができる。また、利用者が登録したメールアドレスに優先順位を付け、当該メールアドレスの正当性を定期的に確認している。これによれば、利用者登録後の成りすまし等を防止することができる。
以上説明したように、本発明によれば、匿名性の高いネットワーク上において不特定多数の利用者が参加するメッセージ交換型コンテンツにおいて、可能な限り人為的な手法は介さず、自動的に文字列検閲を行うことができる。
また、本発明によれば、実際に利用者が使用するメールアドレスを登録させ、定期的にメールアドレスの正当性を確認することで、成りすましをはじめとする利用者の不正を防止することができる。