(58)【調査した分野】(Int.Cl.,DB名)
入力文字列と、前記入力文字列に対応する修正候補文字列と、前記入力文字列を前記修正候補文字列で置換する確率を表す修正正解確率とを、相互に関連付けて記憶する文字列修正データ記憶部と、
前記文字列修正データ記憶部を参照することにより、外部の端末装置から受信したチャットのテキストに含まれる入力文字列に対応する修正候補文字列を特定する修正処理部と、
前記修正処理部によって特定された前記修正候補文字列で、前記チャットのテキストに含まれる前記入力文字列を置換するフロントエンド処理部と、
前記フロントエンド処理部による文字列の置換処理後の前記チャットのテキストを、前記端末装置のチャットの相手方に転送するチャット処理部と、
を具備するチャットシステム。
前記フロントエンド処理部は、前記修正処理部によって特定された前記修正候補文字列で前記チャットのテキストに含まれる前記入力文字列を置換するか否かを前記端末装置に問い合わせ、前記端末装置から肯定的な応答が得られた場合にのみ前記修正候補文字列で、前記チャットのテキストに含まれる前記入力文字列を置換する、
請求項1に記載のチャットシステム。
前記フロントエンド処理部が前記チャットのテキストに含まれる前記入力文字列を置換するか否かを前記端末装置に問い合わせた結果として、前記端末装置から肯定的な応答が得られたか否定的な応答が得られたかに応じて、前記文字列修正データ記憶部を更新する文字列修正データ更新部、
をさらに具備する請求項2に記載のチャットシステム。
入力文字列と、前記入力文字列に対応する修正候補文字列と、前記入力文字列を前記修正候補文字列で置換する確率を表す修正正解確率とを、相互に関連付けて予め文字列修正データ記憶部に記憶させておき、
修正処理部が、前記文字列修正データ記憶部を参照することにより、外部の端末装置から受信したチャットのテキストに含まれる入力文字列に対応する修正候補文字列を特定し、
フロントエンド処理部が、前記修正処理部によって特定された前記修正候補文字列で、前記チャットのテキストに含まれる前記入力文字列を置換し、
チャット処理部が、前記フロントエンド処理部による文字列の置換処理後の前記チャットのテキストを、前記端末装置のチャットの相手方に転送する、
チャット方法。
入力文字列と、前記入力文字列に対応する修正候補文字列と、前記入力文字列を前記修正候補文字列で置換する確率を表す修正正解確率とを、相互に関連付けて記憶する文字列修正データ記憶部、
を具備するコンピューターを、
前記文字列修正データ記憶部を参照することにより、外部の端末装置から受信したチャットのテキストに含まれる入力文字列に対応する修正候補文字列を特定する修正処理部と、
前記修正処理部によって特定された前記修正候補文字列で、前記チャットのテキストに含まれる前記入力文字列を置換するフロントエンド処理部と、
前記フロントエンド処理部による文字列の置換処理後の前記チャットのテキストを、前記端末装置のチャットの相手方に転送するチャット処理部と、
を具備するチャットシステムとして機能させるためのプログラム。
【発明を実施するための形態】
【0014】
[第1実施形態]
次に、本発明の一実施形態について、図面を参照しながら説明する。
図1は、本実施形態によるチャットシステムおよび端末装置の全体的な機能構成を示す機能ブロック図である。図示するように、チャットシステム1は、チャットサーバー装置11と修正サーバー装置12とを含んで構成される。チャットシステム1は、本実施形態のチャット方法を実行し、端末装置2−1,2−2等に対してチャットのサービスを提供する。チャットサーバー装置11と修正サーバー装置12とは、通信可能なように相互に接続されている。端末装置2−1,2−2は、通信ネットワーク等を介して、チャットサーバー装置11との間でデータの送受信を行えるように構成されている。同図では2台の端末装置のみを記載しているが、より多くの(例えば、数万台あるいはそれ以上の)端末装置からチャットサーバー装置11に同時に接続することも可能である。端末装置2−1,2−2等を、まとめて端末装置2と呼ぶ場合がある。
【0015】
チャットサーバー装置11と修正サーバー装置12とは、連携して、端末装置2に対してチャットサービスを提供する。チャットサービスとは、端末装置間でインタラクティブにテキストのやり取りを行うことのできるサービスである。チャットサービスにおいて、例えば端末装置2−1は、端末装置2−2をチャットの相手として指定して、チャットを行うことができる。端末装置2−1において入力されたテキストは、チャットサーバー装置11に送信され、さらに、チャットサーバー装置11から、相手方である端末装置2−2に送信される。逆方向に、端末装置2−2から端末装置2−1に、チャットサーバー装置11経由で、テキストを送信することもできる。端末装置2が送信したり受信したりするテキストは、実質的にリアルタイムで、端末装置2自身が有するディスプレイ画面上に表示される。これにより、複数の端末装置2間でテキストによる対話を行うことが可能となる。なお、チャットサービスにおいて、テキスト以外のデータ(例えば、静止画データや、動画データや、音声データ等)を適宜送信し合うことも可能であるが、本実施形態においては直接の関係がないため、テキスト以外のデータについての記載を省略する。
【0016】
図示する各装置の機能構成は、次の通りである。
チャットサーバー装置11は、通信部111と、フロントエンド処理部112と、チャット処理部113とを含んで構成される。
修正サーバー装置12は、修正処理部121と、知識ベース記憶部122とを含んで構成される。なお、知識ベース記憶部122は、「文字列修正データ記憶部」とも呼ばれる。
端末装置2は、通信部21と、チャットクライアント機能部22とを含んで構成される。
これらの各機能部は、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部は、必要に応じて、記憶手段を有する。記憶手段は、例えば、プログラム上の変数や、プログラムの実行によりアロケーションされるメモリーである。また、必要に応じて、磁気ハードディスク装置やソリッドステートドライブ(SSD)といった不揮発性の記憶手段を用いるようにしてもよい。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。
【0017】
次に各装置が有する機能について説明する。
【0018】
[チャットサーバー装置11]
チャットサーバー装置11の通信部111は、通信ネットワーク等を介して、他の装置との間でデータ通信を行う。通信部111は、例えば、端末装置2の通信部21との間でデータを送受信する。
【0019】
フロントエンド処理部112は、端末装置2側からチャット処理部113に向けて送られるチャットのテキストを受け取り、そのテキストに含まれる文字列に関して、検証を行う。具体的には、フロントエンド処理部112は、文字列の検証を修正サーバー装置12の修正処理部121に要請する。そして、フロントエンド処理部112は、修正処理部121から検証の結果を受け取る。検証の結果は、その文字列に関して修正候補の有無を表す情報を含む。文字列に異常がない場合には、修正候補がない。文字列が以上である可能性がある場合には、フロントエンド処理部112は、修正候補を修正処理部121から受け取る。修正候補がない場合(元の文字列に異常がない場合)には、フロントエンド処理部112は、端末装置2側から受け取っていた元のテキストを、チャット処理部113に渡す。修正候補がある場合(元の文字列に異常がある可能性がある場合)には、フロントエンド処理部112は、修正候補を適用するか否かを端末装置2に問い合わせる。そして、フロントエンド処理部112は、端末装置2からの応答(修正候補を適用するか否かを表す情報を含む)に基づく処理を行う。即ち、端末装置2からの応答が、修正候補を適用すべきであることを表す場合には、元のチャットのテキストの中の該当する文字列を修正候補の文字列で置換してから、チャットのテキストをチャット処理部113に渡す。一方、端末装置2からの応答が、修正広報を適用しないことを表す場合には、修正候補を適用せずに、即ち文字列の置換を行わずに、チャットのテキストをチャット処理部113に渡す。
【0020】
つまり、フロントエンド処理部112は、修正処理部121によって特定された修正候補文字列で、チャットのテキストに含まれる入力文字列を置換する処理を行う。
また、フロントエンド処理部112は、修正処理部121によって特定された修正候補文字列でチャットのテキストに含まれる入力文字列を置換するか否かを端末装置2に問い合わせ、端末装置2から肯定的な応答が得られた場合にのみ修正候補文字列でチャットのテキストに含まれる入力文字列を置換する。
このように、フロントエンド処理部112は、端末装置2側から見てチャット処理部113のフロントエンドに位置する機能であり、修正サーバー装置12の処理に基づく文字列の修正に関するハンドリングを行う。
【0021】
チャット処理部113は、チャットクライアント間のチャットを管理し、進行させる。具体的には、チャット処理部113は、一方のチャットクライアントからチャットのテキストを受け取り、そのチャットのテキストを、当該チャットに参加している他方のチャットクライアントに送信する。なお、一つのチャットに参加するチャットクライアントの数は2であることを基本とするが、3以上であってもよい。一つのチャットに参加している複数のチャットクライアントのいずれもが、チャットのテキストを送信する側にも受信する側にもなれる。
なお、上記のチャットクライアントとは、端末装置2で稼働するチャットクライアント機能部22である。
つまり、チャット処理部113は、フロントエンド処理部112による文字列の置換処理後のチャットのテキストを、元の端末装置2のチャットの相手方に転送する。
【0022】
[修正サーバー装置12]
修正サーバー装置12の修正処理部121は、チャットサーバー装置11のフロントエンド処理部112から、文字列の検証の要請を受け付け、知識ベース記憶部122を参照することによりその文字列を検証する。具体的には、修正処理部121は、指定された文字列に関して、知識ベース記憶部122を参照し、修正候補となり得る文字列が存在するか否かを調べる。修正候補となり得る文字列が存在するのは、知識ベース記憶部122のデータに基づき、検証対象の文字列が、修正候補の文字列の誤字・誤記である確率が所定の閾値以上である場合である。修正候補の文字列が存在する場合、修正処理部121は、検証の結果として修正候補の文字列をフロントエンド処理部112に通知する。なお、修正候補の文字列が複数存在する場合には、修正処理部121は、それらすべての修正候補の文字列をフロントエンド処理部112に通知するか、あるいは、最も確率の高い修正候補の文字列をフロントエンド処理部112に通知する。
つまり、修正処理部121は、知識ベース記憶部122を参照することにより、外部の端末装置2から受信したチャットのテキストに含まれる入力文字列に対応する修正候補文字列を特定する処理を行う。
【0023】
知識ベース記憶部122は、ある文字列とその修正候補の文字列との関係のデータ(文字列修正データ)を大量に記憶する。このデータは、上記の修正処理部121の処理において参照される。この知識ベース記憶部122が記憶するデータは、少なくとも、ある文字列が、その修正候補の文字列の誤記である可能性を表す数値の情報を含む。
より具体的には、知識ベース記憶部122は、入力文字列と、前記入力文字列に対応する修正候補文字列と、前記入力文字列を前記修正候補文字列で置換する確率を表す修正正解確率とを、相互に関連付けて記憶する。この修正正解確率は、入力文字列が、その修正候補の文字列の誤記である可能性を表す数値情報である。
知識ベース記憶部122が保持するデータの詳細については、後で別の図面を参照しながら説明する。
【0024】
[端末装置2]
端末装置2の通信部21は、通信ネットワーク等を介して、他の装置との間でデータ通信を行う。通信部21は、例えば、チャットサーバー装置11の通信部111との間でデータを送受信する。
【0025】
チャットクライアント機能部22は、チャットサーバー装置11によって提供されるチャットサービスのクライアントとして機能するものである。例えば、チャットクライアント機能部22は、端末装置2をコントロールするOS(オペレーティングシステム)上で稼働するアプリケーションプログラム(アプリ)として実現される。あるいは、チャットクライアント機能部22は、ウェブブラウザーによって解釈されるHTMLデータとして実現されてもよい。なお、「HTML」は「Hyper Text Manipulation Language」の略であり、HTMLデータ内には例えばインタープリター上で稼働するプログラムを記述することができる。
【0026】
チャットクライアント機能部22は、チャット相手に対して送信するテキストの入力を受け付け、通信部21を介してそのテキストをチャットサーバー装置11に送信する。また、チャットクライアント機能部22は、チャットサーバー装置11からチャットのテキストを受信し、そのテキストを画面に表示する。また、チャットクライアント機能部22は、チャットサーバー装置11のフロントエンド処理部112からチャットンテキストに含まれる文字列に関して修正候補の文字列を受信した場合、その修正候補を適用するか否かを決定する。具体的には、チャットクライアント機能部22は、例えば修正候補の文字列を画面に表示し、その修正候補を適用するか否かの指示情報を取得する。この指示情報は、例えば、ユーザーによる画面操作あるいはキーボード操作等により端末装置2に入力される。チャットクライアント機能部22は、修正候補の文字列を適用するか否かを表す情報を、フロントエンド処理部112に送信する。
【0027】
なお、入力文字列を修正候補文字列で置換する処理自体は、チャットサーバー装置11側のフロントエンド処理部112で行ってもよいし、端末装置2側のチャットクライアント機能部22で行ってもよい。
【0028】
図2は、修正サーバー装置12の知識ベース記憶部122が記憶する知識ベースのデータ構成を示す概略図である。図示するように、知識ベース記憶部122は、一例として、表形式で構成される文字列修正データを記憶する。この表は、入力文字列、修正候補文字列、入力回数、修正回数、修正正解確率の各項目を有する。この表は、入力文字列と修正候補文字列の組み合わせごとに、行を有する。
入力文字列は、チャットシステムにおいて端末装置側から入力される文字列であり、修正の対象となり得る文字列である。入力文字列は、例えば単語単位に予め区切られた文字列である。
修正候補文字列は、上記の入力文字列を置換し得る文字列である。言い換えれば、修正候補文字列は、入力文字列の修正候補である。1つの入力文字列に対して複数の修正候補文字列が存在する場合には、この表における別の行のデータとして保持される。
入力回数は、取得した統計値であり、過去において入力文字列が入力された回数を表す。
修正回数は、取得した統計値であり、過去において、当該行の入力文字列が当該行の修正候補文字列に実際に修正された回数を表す。
修正正解確率は、上記の入力回数および修正回数から計算によって求められた確率値である。修正正解確率は、統計として、過去において、当該行の入力文字列が入力された際に、当該行の修正候補文字列で実際に修正された回数の比率を表す。この修正正解確率は、上記の修正回数の値を上記の入力回数の値で除して得られる。同図においては、修正正解確率の値をパーセンテージで表している。この修正正解確率は、未来において入力された入力文字列が、当該行の修正候補文字列によって置換される(修正される)確率を表しているとみなせる。
【0029】
図2では、便宜的に、文字列修正データに行番号を示している。図示する文字列修正データの例は、次の通りである。
第1行目において、入力文字列は「びつよう」である。この入力文字列に対応する修正候補文字列は「ひつよう」である。入力文字列「びつよう」が入力された回数は、120000回である。また、入力文字列「びつよう」が修正候補文字列「ひつよう」で実際に修正された回数は、1200回である。そして、修正正解確率は10.0%(1200/12000)である。
第2行目において、入力文字列は「Yiu」である。この入力文字列に対応する修正候補文字列は「You」である。入力文字列「Yiu」が入力された回数は、9670回である。また、入力文字列「Yiu」が修正候補文字列「You」で実際に修正された回数は、1820回である。そして、修正正解確率は18.8%(1820/9670)である。
第3行目において、入力文字列は「あならは」である。この入力文字列に対応する修正候補文字列は「あなたは」である。入力文字列「あならは」が入力された回数は、11450回である。また、入力文字列「あならは」が修正候補文字列「あなたは」で実際に修正された回数は、1390回である。そして、修正正解確率は12.1%(1390/11450)である。
【0030】
図2に示した文字列修正データは、予め作成し、記憶手段に記憶させておく。文字列修正データを適切に管理するために、例えば、データベース管理システム(DBMS,Database Management System)を用いてもよい。
文字列修正データは、一例として、統計情報等に基づいて手作業で作成されてもよい。
また、文字列修正データは、実際のチャットシステムにおいてやりとりされるテキストを大量に収集し、それらのテキストデータを基に、自動的あるいは半自動的に作成されてもよい。ある入力文字列とその入力文字列に対応する修正候補の文字列との関係を、一例として、機械学習処理等によって決定してもよい。
また、上で大量に収集するテキストは、チャットシステムにおいてやりとりされるテキストだけではなく、一般に人手での端末装置の操作等によって入力されるテキストであってもよい。
【0031】
修正処理部121は、文字列修正データにおける修正正解確率が所定の閾値以上である場合に、その入力文字列をその修正候補文字列で置換すべきである可能性が高いと判定し、フロントエンド処理部112にその旨を通知する。
【0032】
次に、
図3,
図4,
図5を参照しながら、端末装置2とチャットシステム1との処理手順について説明する。
【0033】
図3は、チャットの文字列を送信するための、端末装置(送信側および受信側)とチャットサーバー装置と修正サーバー装置との間での相互のやりとりの手順を示すシーケンスチャートである。同図に示す場合おいて、文字列の修正候補は発見されない。以下、このシーケンスに沿って説明する。
ステップS1において、送信側の端末装置2−1からチャットサーバー装置11に文字列が送信される。
ステップS2において、チャットサーバー装置11は、修正サーバー装置12に対して、文字列の検証を要請する。なお、チャットサーバー装置11は、端末装置2−1から受信した文字列を適宜分割して(例えば、単語ごと、形態素ごとなど)、分割された文字列の単位で修正サーバー装置12に対して文字列の検証を要請してもよい。検証の要請を受信した修正サーバー装置12内では、知識ベースを参照し、文字列を検証する処理が行われる。
ここでは、修正サーバー装置12は、文字列を検証した結果、異常なし(修正候補なし)と判定する。
ステップS3において、修正サーバー装置12は、チャットサーバー装置11に対して、「異常なし」を表す応答を送る。これにより、チャットサーバー装置11内のフロントエンド処理部112は、端末装置2−1から受け取った文字列を修正する必要がないことを認識する。フロントエンド処理部112は、端末装置2−1から受け取った文字列を、そのままチャット処理部113に渡す。チャット処理部113は、受け取った文字列を、端末装置2−1のチャット相手である端末装置2−2に仕向ける。
ステップS4において、チャットサーバー装置11から、受信側の端末装置2−2に、文字列が送信される。
以上の、ステップS1からS4までの一連の処理により、1つの文字列が、端末装置2−1から、チャットサーバー装置11を経由して、端末装置2−2に送られた。
【0034】
図4は、チャットの文字列を送信するための、端末装置(送信側および受信側)とチャットサーバー装置と修正サーバー装置との間での相互のやりとりの手順を示すシーケンスチャートである。同図に示す場合おいて、文字列の修正候補は発見されるが、実際の修正は行われない。以下、このシーケンスに沿って説明する。
ステップS11およびステップS12の処理は、それぞれ、上のステップS1およびステップS2の処理と同様である。したがって、ここではこれらに関する説明を省略する。
そして、本シーケンスでは、修正サーバー装置12は、文字列を検証した結果、検証要請された文字列に関して修正候補が存在すると判定する。
ステップS13において、修正サーバー装置12は、チャットサーバー装置11に対して、修正候補の文字列の情報を含んだ応答を送る。これにより、チャットサーバー装置11内のフロントエンド処理部112は、端末装置2−1から受け取った文字列を修正する候補が存在することを認識する。フロントエンド処理部112は、修正候補を適用するか否かを端末装置2−1側に問い合わせるために次のステップの処理を行う。
ステップS14において、チャットサーバー装置11のフロントエンド処理部112は、修正サーバー装置12から提示された修正候補の文字列を適用するか否かを問い合わせるメッセージを、端末装置2−1に送信する。
本シーケンスにおいては、端末装置2−1側では、その修正候補の文字列を適用しないこと(修正不要)を決定する。具体的には、端末装置2−1側において、チャットクライアント機能部22が、修正候補の文字列を画面等に表示し、ユーザーからの指示を取得する。そして、ユーザーからの指示に基づき、チャットクライアント機能部22は、修正不要であることを決定する。
ステップS15において、端末装置2−1は、チャットサーバー装置11に対して、修正不要のメッセージを送信する。
ステップS16において、チャットサーバー装置11のフロントエンド処理部112は、修正不要であるとの応答を得たため、バッファーに一時的に蓄積していた文字列(修正前の文字列)をチャット処理部113に渡す。チャット処理部113は、その修正前の文字列を、端末装置2−2側に送信する。
【0035】
図5は、チャットの文字列を送信するための、端末装置(送信側および受信側)とチャットサーバー装置と修正サーバー装置との間での相互のやりとりの手順を示すシーケンスチャートである。同図に示す場合おいて、文字列の修正候補は発見され、実際にその修正が行われる。以下、このシーケンスに沿って説明する。
ステップS21からステップS24までの処理は、それぞれ、上のステップS11からステップS14までの処理と同様である。したがって、ここではこれらに関する説明を省略する。
本シーケンスにおいては、端末装置2−1側では、その修正候補の文字列を適用すること(修正すること)を決定する。具体的には、端末装置2−1側において、チャットクライアント機能部22が、修正候補の文字列を画面等に表示し、ユーザーからの指示を取得する。そして、ユーザーからの指示に基づき、チャットクライアント機能部22は、修正すること(元の文字列を、修正候補の文字列で置換すること)を決定する。
ステップS25において、端末装置2−1は、チャットサーバー装置11に対して、修正選択のメッセージを送信する。
ステップS26において、チャットサーバー装置11のフロントエンド処理部112は、修正を行う旨の応答を得たため、バッファーに蓄積していた文字列を、選択された修正候補の文字列で置換する。フロントエンド処理部112は、修正後の文字列を、チャット処理部113に渡す。チャット処理部113は、修正された文字列を、端末装置2−2側に送信する。
【0036】
次に、本実施形態における端末装置側でのユーザーインターフェースについて説明する。
図6は、チャットを実行する際の端末装置2側の画面表示の一例を示す概略図である。同図(A)は、ユーザーがチャットテキストを入力した段階の画面表示例を示している。また、同図(B)は、上記のチャットテキストに含まれる一部の文字列について、修正候補の文字列が提示されている状態の画面表示例を示している。
同図(A)においては、端末装置の画面上の入力枠内に、ユーザーが入力したテキストが表示されている。そのテキストは「What is yiur address in Japan?」というものである。
同図(B)においては、端末装置の画面上の入力枠内に、上記の入力されたテキストが表示されているとともに、その下の別の枠内に、修正に関する情報が表示されている。具体的には、端末装置2のチャットクライアント機能部22が、「誤字が感知されました。」というメッセージを表示するとともに、テキストの修正案を表示している。その修正案において、入力テキストに含まれる文字列「yiur」は、修正候補のテキスト「your」で置換されている。即ち「What is your address in Japan?」というテキストが提示されている。そして、チャットクライアント機能部22は、その修正候補のテキストで転送するか否かを、ユーザーに尋ねるメッセージを表示している。同図(B)に示すケースにおいては、この問い合わせに対して、ユーザーが肯定的に応答している。即ち、ユーザーによって選択された「はい」という応答が表示されている。
上記のように、端末装置のユーザーにとってもストレスのない方法で、チャットのテキストに含まれる誤字・誤記等を修正することが可能となる。
【0037】
以上説明したように、本実施形態によれば、知識ベース記憶部122に記憶されている文字列修正データに基づき、入力誤りである可能性の高い文字列を、自動的に修正することができる。
また、本実施形態によれば、入力文字列を修正候補文字列で置換するか否かを端末装置側に問い合わせ、端末装置から肯定的な応答を得た場合にのみ実際に入力文字列を修正候補文字列で置換する。これにより、端末装置のユーザーの意図に対してより忠実なチャットのテキストを、チャット相手に転送することができる。
【0038】
[第2実施形態]
次に、本発明の第2実施形態について説明する。なお、前実施形態において既に説明した事項については以下において説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。
【0039】
図7は、本実施形態によるチャットシステムおよび端末装置の全体的な機能構成を示す機能ブロック図である。図示するように、本実施形態の特徴は、チャットサーバー装置14が、仮想ユーザー機能部114を備える点である。即ち、チャットサーバー装置14は、通信部111と、フロントエンド処理部112と、チャット処理部113と、仮想ユーザー機能部114とを含んで構成される。本実施形態のその他の機能構成は、第1実施形態と同様である。
【0040】
本実施形態において、チャット処理部113は、端末装置2側のチャットクライアント機能部22だけでなく、下記の仮想ユーザー機能部114もチャットクライアントの一つとして扱う。
【0041】
仮想ユーザー機能部114は、内部にチャットクライアントの機能を備え、チャットを実行する仮想的なユーザーとして機能する。即ち、仮想ユーザー機能部114は、チャット処理部113を介して、端末装置2との間でチャットを実行する。その場合、端末装置2から送信されたチャットのテキストは、チャット処理部113を介して、仮想ユーザー機能部114に渡される。また、仮想ユーザー機能部114は、チャットの相手である端末装置2に向けたチャットのテキストをチャット処理部113に渡す。そのチャットのテキストは、チャット処理部113から、チャットの相手である端末装置2に送信される。仮想ユーザー機能部114は、端末装置2との間でチャットを実行するために、内部に人工知能を備え、入力テキスト(端末装置2からのテキスト)に対応した適切な出力テキスト(端末装置2へ送信するテキスト)を生成する。入力テキストと出力テキストとの関係は、予め学習され、知識として仮想ユーザー機能部114の内部に蓄積されている。また、仮想ユーザー機能部114は、直近の入力テキストのみに対応した出力テキストを出力するだけではなく、当該チャットの相手との過去の履歴情報にも依存した出力テキストを出力することもできる。また、仮想ユーザー機能部114は、定型的なチャットのパターンを記憶しており、必要に応じてその定型的チャットパターンに基づく出力テキストを生成する。例えば、商取引や金融取引を実施するチャットのパターンを用いる場合、仮想ユーザー機能部114は、取引条件を尋ねたり確認したりする文章を出力テキストとして生成し、その出力テキストに対応する入力テキストから、必要な情報を抽出する。つまり、仮想ユーザー機能部114の機能により、チャットサーバー装置14は、端末装置2からのチャットのテキストに対して自動的に応答する仮想的なユーザーとして機能することもできる。なお、仮想ユーザー機能部114のような機能の実現例については[文献:特許第6218057号公報]にも記載されている。
【0042】
本実施形態によれば、端末装置に対して自動応答する機能を有するチャットサーバー装置において、入力テキストに含まれる文字列を修正することができる。これにより、入力テキストの言語としての質が向上し、チャットサーバー装置は、より一層適切な応答を生成し、端末装置に対して返送することが可能となる。
【0043】
以上、複数の実施形態を説明したが、さらに次のような変形例でも実施することが可能である。複数の変形例を組み合わせることが可能な場合には、それらを組み合わせて実施してもよい。
【0044】
[第1変形例]
上記の実施形態では、修正処理部121が入力文字列に対応する修正候補の文字列をフロントエンド処理部112に通知した後、フロントエンド処理部112が端末装置2にその修正候補を適用するか否かを問い合わせ、端末装置2から肯定的な応答を得た場合にのみ、フロントエンド処理部112が実際に入力文字列を修正候補文字列で置換する処理を行った。代わりに、本変形例では、フロントエンド処理部112は、上記の端末装置2への問い合わせを行わない。即ち、フロントエンド処理部112は、修正処理部121から修正候補の文字列の通知を受けると、端末装置2に対する確認を行うことなく、当該入力文字列を当該修正候補文字列で置換する。本変形例を実施した場合、端末装置2のユーザーの手間を削減することができる。
【0045】
[第2変形例]
知識ベース記憶部122が記憶する文字列修正データ内に、入力文字列と修正候補文字列とが同一である行が含まれていてもよい。入力文字列と修正候補文字列とが同一である行のデータにおける修正正解確率は、その入力文字列が修正不要な文字列である確率の値を表す。
【0046】
[第3変形例]
本変形例では、修正サーバー装置12が、文字列修正データ更新部を備える。この文字列修正データ更新部は、フロントエンド処理部112がチャットのテキストに含まれる入力文字列を置換するか否かを端末装置2に問い合わせた結果として、端末装置2から肯定的な応答が得られたか否定的な応答が得られたかに応じて、知識ベース記憶部122に記憶されている文字列修正データを更新する。
つまり、上記の文字列修正データ更新部は、端末装置2から肯定的な応答が得られた場合と否定的な応答が得られた場合の両方において、該当する行の、入力回数のカウントを1だけ増分する。また、文字列修正データ更新部は、端末装置2から肯定的な応答が得られた場合にのみ、該当する行の、修正回数のカウントを1だけ増分する。また、文字列修正データ更新部は、更新後の入力回数および修正回数の数値に基づき、修正正解確率を再計算(修正正解確率=修正回数/入力回数)し、その計算結果で修正正解確率を更新する。
本変形例では、チャットシステム1を実際に運用するに伴って、知識ベース記憶部122に記憶されるデータ(入力回数、修正回数、修正正解確率)の精度を徐々に上げていくことができる。
【0047】
[第4変形例]
上記の実施形態では、
図1に示したように、チャットシステム1側の機能をチャットサーバー装置11および修正サーバー装置12に分散した。チャットシステム1を実現するための機能を、他の形態のサーバー(群)で実現してもよい。サーバー装置の物理的な配置や台数は任意である。
【0048】
なお、上述した各実施形態およびその変形例におけるチャットサーバー装置、修正サーバー装置、端末装置の各装置の少なくとも一部の機能をコンピューターで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM、DVD−ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0049】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【解決手段】文字列修正データ記憶部は、入力文字列と、前記入力文字列に対応する修正候補文字列と、前記入力文字列を前記修正候補文字列で置換する確率を表す修正正解確率とを、相互に関連付けて記憶する。修正処理部は、前記文字列修正データ記憶部を参照することにより、外部の端末装置から受信したチャットのテキストに含まれる入力文字列に対応する修正候補文字列を特定する。フロントエンド処理部は、前記修正処理部によって特定された前記修正候補文字列で、前記チャットのテキストに含まれる前記入力文字列を置換する。チャット処理部は、前記フロントエンド処理部による文字列の置換処理後の前記チャットのテキストを、前記端末装置のチャットの相手方に転送する。