JP4885070B2 - チャットボットシステム - Google Patents

チャットボットシステム Download PDF

Info

Publication number
JP4885070B2
JP4885070B2 JP2007161386A JP2007161386A JP4885070B2 JP 4885070 B2 JP4885070 B2 JP 4885070B2 JP 2007161386 A JP2007161386 A JP 2007161386A JP 2007161386 A JP2007161386 A JP 2007161386A JP 4885070 B2 JP4885070 B2 JP 4885070B2
Authority
JP
Japan
Prior art keywords
cache
buffer
message
response message
pointer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007161386A
Other languages
English (en)
Other versions
JP2009003533A (ja
Inventor
清 新田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2007161386A priority Critical patent/JP4885070B2/ja
Publication of JP2009003533A publication Critical patent/JP2009003533A/ja
Application granted granted Critical
Publication of JP4885070B2 publication Critical patent/JP4885070B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、チャットボットシステムに関する。特に、複数ユーザに応答するネットワーク上でチャットサービスを提供するためのチャットボットシステムに関する。
近年、コンピュータネットワークの普及により、オンラインネットワーク上のチャットボットシステムで複数のユーザが会話することで、様々な情報交換を行うことが容易になってきた。例えば、特許文献1には、オンラインチャットシステムにおける、音声によって複数のユーザが対話する音声対話システムに関して、ユーザ間の通話量を適切に制御する音声対話システムが開示されている。また、特許文献2には、各ユーザが、自ら自動対話プログラム(CGIスクリプト)を作成しなくとも、自己固有かつ個性を有する人工無能を動作させて、他者と擬似対話させることができるネットワーク擬似会話システムが開示されている。なお、人工無能(人工無脳とも書く)とは、自動対話プログラムに従い、ユーザとの間で擬似的に会話(チャット)を成立させるコンピュータシステムであり、本明細書ではチャットボットシステムと呼んでいる。
特開平9−83655号公報 特開2004−178299号公報
企業が一般顧客に対してネットワーク上で提供するサービスで、低コストのCS(Customer Support)手段のひとつとして、チャットネットワークなどを利用した会話の自動応答による方法が考えられる。しかしながら、上記特許文献1,2に記載のような既存の自動応答技術は、1つのシステムにつき1人の相手をすることを想定しているため、多数のユーザを相手にするためには多数の計算機資源、すなわち、メモリ、CPU時間などを相手にする人数分の計算機資源を消費する。また、一般的には単純な会話を想定しているため、長文の複雑な発言を適切なタイミングで行うことができない。すなわち、従来の自動応答システムでは、1行程度の一問一答形式であることが多く、システムからの回答を長文(例えば数ページ)に構成することが難しく、いきなり数ページ分の回答が表示されてしまうことになる。
本発明は、上記課題に鑑み、複数のユーザに対して長文の応答メッセージを効率よくキャッシュし、提示するチャットボットシステムをCS手段として提供することを目的とする。
本発明では以下のような解決手段を提供する。
(1) ネットワークに接続された複数のユーザの端末からの質問文に自動応答するチャットボットシステムであって、
前記ユーザの質問文に対する応答メッセージを生成する応答メッセージ生成部と、
前記生成された応答メッセージを一時的に格納するためのキャッシュバッファを含む記憶部と、
前記キャッシュバッファに、前記ユーザごとに割り当てられたチャンネル別に、前記応答メッセージが所定の長さ以上の場合に発言キャッシュ要素に分割してキューイングして格納する応答メッセージキューイング部と、
前記キャッシュバッファに分割して格納された前記応答メッセージの各発言キャッシュ要素を、前記ユーザの発言に対し適切な時間間隔を空けて、前記ユーザの端末に提示する応答メッセージ提示部と、
を備える、チャットボットシステム。
(1)の構成によれば、本発明のチャットボットシステムは、応答メッセージを格納するためのキャッシュバッファを記憶部に備える。このキャッシュバッファにユーザごとに割り当てられたチャンネル別の応答メッセージを適切な長さの要素に分割して、キューイングして格納するチャンネル別キューイング部を備えている。そして、応答メッセージ提示部は、活動状態のバッファからチャンネル別のユーザそれぞれに対して、応答メッセージを要素単位でユーザ発言に対し適切な時間間隔(例えば数秒)を空けてユーザに理解できるペースで少しずつ提示(発言)する。提示の方法は、文字列の表示であっても音声による発話であってもよい。
このようにすることによって、単一のチャットボットシステムであっても長文の応答メッセージをその要素ごとにキャッシュするので、複数のユーザに効率よく提示することができる。
カスタマーサポート情報は一般に情報量が多い。一度に大量の情報を発話した場合、ユーザは消化不良を起こす。したがって、この非同期長文発言手段により、ユーザは消化不良を起こすことなく、必要な情報を受け取ることができるようになる。また、カスタマーサポートは同時に複数の質問を受けることが想定される。チャンネル別キャッシュの手段により、複数のボットサーバを稼働させることなく、効率的に、複数の質問を処理できるようになる。
(2) 前記キャッシュバッファは、活動状態キャッシュバッファと非活動状態キャッシュバッファによって2重化され、前記活動状態キャッシュバッファにおいて、新たな応答メッセージのためのバッファのメモリ領域確保が失敗した場合に、使用中の前記発言キャッシュ要素の領域を前記活動状態キャッシュバッファから前記非活動状態キャッシュバッファに複製し、前記活動状態キャッシュバッファと前記非活動状態キャッシュバッファの活動状態と非活動状態を入れ替えるバッファ制御部を更に備え、
前記活動状態キャッシュバッファ及び前記非活動状態キャッシュバッファは、前記複数のユーザの想定される利用状況に基づきバッファサイズが決定される、(1)に記載のチャットボットシステム。
(2)の構成によれば、キャッシュバッファは、活動状態(アクティブ)のバッファと非活動状態(インアクティブ)のバッファに2重化される。バッファ制御部は、活動状態のバッファにおいて使用中の要素の領域(以降、発言キャッシュ要素と呼ぶ)を非活動状態のバッファに複製した後、活動状態のバッファと非活動状態のバッファを入れ替える。
複数チャンネルで回答を行う場合、キャッシュバッファが1つである場合には、発言処理が済んで未使用になった領域を再利用できるのは、全チャンネルで同時にキャッシュがクリアされるタイミングのみである。チャンネル数が十分多いとき、このようなタイミングはなかなか訪れないことが予想される。長文バッファ2重化の手段により、それ以外のタイミングでも再利用できるようになり、メモリ資源を効率的に利用した運用が可能になる。
なお、いずれのバッファのサイズもユーザの想定される利用状況に基づいて最適なものとすることができる。例えば、参加するユーザ数が多い場合は、バッファサイズを大きく、少ない場合はバッファサイズを小さくする。このようにすることで、システム起動時にアクティブ、インアクティブの2つのバッファを確保するだけで、多数のユーザに対してチャットを続けていくことができる。
(3) 前記キャッシュバッファは、前記発言キャッシュ要素を含んだ一時記憶領域である発言キャッシュ要素を構成単位として複数格納し、
前記発言キャッシュ要素は、チャンネルID、前記発言キャッシュ要素、同一チャンネルの次の発言キャッシュ要素へのポインタ、及び別チャンネルの発言キャッシュ要素へのポインタ、を含む(2)に記載のチャットボットシステム。
(3)の構成によれば、キャッシュバッファにおけるチャンネルと発言キャッシュ要素との2次元のキューイング構造を実現できる。
(4) 前記ユーザが入力した制御キーワードによって、前記応答メッセージの中止、停止、再開を行う(3)に記載のチャットボットシステム。
長文の情報提供時に、ユーザが他の急を要する処理を行う必要が生じた場合、発言中の情報を適切に読む機会、あるいは、チャットの他の機能を使って情報を得る機会を失ってしまう。(4)の構成によれば、キーワードによる制御手段により、ユーザの都合に合わせて長文発言を取り止め、一時停止、再開することが可能になり、ユーザの利便性が向上する。
(5) 一時停止用フラグを前記発言キャッシュ要素に更に保持し、前記応答メッセージの処理中に前記活動状態キャッシュバッファにおいて前記一時停止用フラグを検出すると、前記一時停止用フラグより以降の同一チャンネルの発言を停止する、(4)に記載のチャットボットシステム。
一時停止機能を実装する場合、一時停止用のバッファを別に確保する方法が考えられるが、この場合メモリ資源を余分に消費する。(5)の構成によれば、一時停止用フラグにより、余分なバッファ用メモリを使用することなく、効率的に一時停止機能を実装することができる。
(6) 一時停止中のチャンネルに新たな応答メッセージが生じた場合に、前記一時停止中の要素より前に前記新たな応答メッセージを追加する、(5)に記載のチャットボットシステム。
(6)の構成によれば、一時停止の後の再開が矛盾なく行える。
(7) ネットワークに接続された複数のユーザの端末からの質問文に自動応答するチャットボットシステムにおけるチャット制御のための方法であって、
前記ユーザの質問文に対する応答メッセージを生成する応答メッセージ生成ステップと、
前記生成された応答メッセージを一時的に格納するためのキャッシュバッファに、前記ユーザごとに割り当てられたチャンネル別に、前記応答メッセージが所定の長さ以上の場合に発言キャッシュ要素に分割してキューイングして格納する応答メッセージキューイングステップと、
前記キャッシュバッファに分割して格納された前記応答メッセージの各発言キャッシュ要素を、前記ユーザの発言に対し適切な時間間隔を空けて、前記ユーザの端末に提示する応答メッセージ提示ステップと、
を含む、方法。
(7)の構成によれば、(1)のチャットボットシステムと同様な作用効果を実現する方法を提供できる。
(8) ネットワークに接続された複数のユーザの端末からの質問文に自動応答するチャットボットシステムにおけるチャット制御のためのコンピュータプログラムであって、
前記ユーザの質問文に対する応答メッセージを生成する応答メッセージ生成ステップと、
前記生成された応答メッセージを一時的に格納するためのキャッシュバッファに、前記ユーザごとに割り当てられたチャンネル別に、前記応答メッセージが所定の長さ以上の場合に発言キャッシュ要素に分割してキューイングして格納する応答メッセージキューイングステップと、
前記キャッシュバッファに分割して格納された前記応答メッセージの各発言キャッシュ要素を、前記ユーザの発言に対し適切な時間間隔を空けて、前記ユーザの端末に提示する応答メッセージ提示ステップと、
をコンピュータに実行させる、コンピュータプログラム。
(8)の構成によれば、(1)のチャットボットシステムと同様な作用効果を実現するコンピュータプログラムを提供できる。
本発明によれば、複数のユーザに対して長文の応答メッセージを効率よくキャッシュし、提示するチャットボットシステムを提供することができる。
以下、本発明の実施形態について図を参照しながら説明する。
[チャットボットシステムの機能ブロック]
図1は、本発明の好適な実施形態の一例に係るチャットボットシステム10の機能ブロックを示す図である。
図示するように、チャットボットシステム10は、主として、通信部11、応答メッセージ生成部12、応答メッセージキューイング部13、記憶部14、バッファ制御部15、応答メッセージ提示部16から構成される。ただし、このような構成はあくまで例示であり、機能的に同等であれば他の構成やその他のバリエーションを排除するものではない。また、図ではチャットボットシステム10は、単一の装置として示されているが、複数の装置に機能を分割して実現してもよい。
通信部11は、ネットワークを介してユーザ端末(図示せず)と接続され、ユーザ端末からの質問文を受信したり、質問文に対する本システムからの応答メッセージを該ユーザ端末に送信する。
応答メッセージ生成部12は、ユーザからの質問文を受信すると、その質問文に適切な応答メッセージを生成する。応答メッセージは、質問文とその回答を予め格納した知識データベースを使用して、人工無能によって生成されてよい。
応答メッセージキューイング部13は、応答メッセージ生成部12によって生成された応答メッセージが所定の長さ(イメージ的にはパッと見てすぐに理解できる範囲を超えた文字数。例えば、30〜40文字程度)以上の「長文」であった場合に、その応答メッセージを段落など適切な長さに分割し、キャッシュバッファにキューイングする。キューイングする単位は、後述するように、「発言キャッシュ要素」と呼ばれ、長文発言ヒープと呼ばれる短期記憶領域にキュー構造を構成する。
記憶部14は、上記のキャッシュバッファを備え、更にキャッシュバッファは、活動状態であるアクティブ・キャッシュバッファ17と、非活動状態のインアクティブ・キャッシュバッファ18との2重化された構成も持つ。ここで、活動状態のバッファとは、そのバッファに応答メッセージがキューイングされ、かつ、そのキューから順次応答メッセージがユーザに提示される処理が行われているバッファのことを意味する。また、非活動状態のバッファは、現在処理が行われていない待機中のバッファであり、活動状態のバッファが一杯になりそうな場合に使用される。
バッファ制御部15は、上記の活動状態のバッファと非活動状態のバッファを管理し、活動状態のバッファに新たな応答メッセージをキューイングできないときは、非活動状態のバッファに対して、活動状態のバッファで処理中の内容をコピーした後、活動状態のバッファと非活動状態のバッファを入れ替える。
応答メッセージ提示部16は、活動状態バッファ(アクティブ・キャッシュバッファ)から、発言キャッシュ要素を順次取り出し、通信部11を介して、質問文を発したユーザ端末に対して応答メッセージをユーザの発言とは非同期(適切な時間間隔を空けて)に発言キャッシュ要素単位で少しずつ出力する。
図2は、従来のチャットボットシステムと、本発明のチャットボットシステム10の使用される環境の違いを示したものである。従来のチャットボットシステムでは、1システムにつき1人の相手をすることを想定しているため、多数の相手をするためには、人数分だけの多くの計算機資源(メモリ、CPU時間など)を消費する。また、単純な会話を想定しているため、長文の複雑な発言を適切なタイミングで行うことができない。また、1行程度の一問一答形式であることが多く、チャットボットシステムからの回答を長文にすることが難しい。
一方、本発明のチャットボットシステムでは、単一のチャットボットシステム10で多数のチャンネルに対応する。これにより、多数のユーザに対しても1つのプロセスで済み、計算機資源を有効に利用することが可能となる。また。長文の回答であっても適切な単位に分割してキューイングするので、ユーザが理解しやすいタイミングで応答することができる。
図3は、本発明のチャットボットシステムにおいて、長文の応答メッセージを分割してキューイングする概念を示したものである。この例では、ユーザの質問に対する長文の応答メッセージ(以下、長文発言と呼ぶ)が、「Aをクリック、Bを選択。Cになったら、Dをクリック。Eが表示されたら、Fを入力。Gを聞かれるので、Hを回答する。」のように生成されたと仮定している。図示するように、この長文発言は、意味を持つ適切な段落(発言キャッシュ要素)に分割されて発言キューにキューイングされる。ここで、意味を持つ適切な段落に分割すること自体は、句読点などの区切り点を予め回答文に用意する他、公知の言語処理の技術を利用してよい。本発明のチャットボットシステムでは、適切なタイミングで(ユーザの発言に対し適切な時間間隔を空けて)、発言キューから分割された発言キャッシュ要素を順次取り出して発言(出力)する。例えば、「Aをクリック」、「Bを選択」と発言した後、一定時間(例えば1秒)後に、次の「Cになったら」を発言するように制御することができる。
図4は、長文バッファの2重化についての概念図を示したものである。既に説明したように、チャットボットシステム10は、バッファ制御部15を備え、発言キューを格納するためのバッファを2重に持ち、長文発言用のメモリ領域確保に失敗したときは、もう一方にバッファ(インアクティブ・バッファ)に必要なキャッシュ(発言キャッシュ要素)のみをアクティブ・バッファからコピーして、再度メモリ領域確保を試みる。
図4(a)で示すように、アクティブなバッファにおいて、発言キャッシュ要素A,B,C,D,E,Fが使用中であり、新たに3つの発言キャッシュ要素X,Y,Zをキューイングしようとしたときに、このままでは使用済みの領域(濃い網掛けで示す領域)を開放しない限り、現状アクティブなバッファには入りきらない。そこで、使用済みの領域をいちいち開放するのではなく、図4(b)に示すように、使用中のA,B,C,D,E,Fのみをインアクティブのバッファにコピーする。次に、図4(c)に示すように、アクティブとインアクティブを入れ替える。そして、インアクティブのバッファを全て未使用とし、最後に、X,Y,Zをアクティブバッファにキューイングする。
このようにすることで、想定される利用状況から最適なバッファ量を見積もれば、システム起動時にアクティブ、インアクティブの2つのバッファを確保するだけで発言を多数のユーザに続けていくことが可能になる。
[チャットボットシステムのソフトウェア構成]
本発明の好適な実施形態におけるチャットボットシステムのハードウェア構成については後述の図27で説明する。
図5は、本発明の好適な実施形態におけるチャットボットシステム10をソフトウェアシステムにより実現する場合のモジュール構成を示したものである。チャットボットシステム10(以下、チャットボットサーバと呼ぶこともある)のIRCクライアントモジュールは、IRC(Internet Relay Chat)サーバが提供するIRCネットワークを介して、ユーザとの対話を行う。なお、IRCサーバとは、インターネット上の文字チャット専用システムで複数のサーバ上で、情報がリレー、交換しながらつながっているサーバをいう。IRCクライアントは、ここではIRCプロトコルに基づきIRCサーバとのやりとりを行うプログラムモジュールをいう。また、カーネルモジュールは、チャットボットシステムの起動や終了などの全般的な処理を行う。
ヒープモジュールは、長文発言用の2重キャッシュバッファを管理する長文発言ヒープAモジュールと長文発言ヒープBモジュール、及びその他のヒープ(長文発言でない場合のヒープや、実装する場合に必要なその他の記憶領域)を管理するその他ヒープモジュールで構成される。ヒープモジュールは、メモリリークを防止するために、起動時にヒープモジュールに必要なメモリ資源を確保した後は、一切動的なメモリ確保を行わない。
チャットボットサーバは次の手順で起動するものとする。長文発言ヒープA、B、その他ヒープのメモリ領域をオペレーティングシステムより確保する。確保できない場合は起動を失敗し、エラーを報告する。IRCクライアントの発言モニタに制御を移す。長文発言制御応答、その他応答で定義された発言がなされた場合は、該当するIRCクライアントの応答モジュールにより応答処理を行う。
図6は、チャットボットサーバの各モジュールが行う長文の非同期発言の処理を示したものである。発言モニタモジュールは、ユーザの発言へ応答する。その他の応答モジュールは、長文発言を応答するため、現在アクティブな長文発言ヒープ(ここでは長文発言ヒープA)へ発言を格納し、制御を発言モニタモジュールに戻す。発言モニタモジュールは、ユーザの発言に応答、制御を繰り返す。一定時間を経ると、発言モニタは、長文発言ヒープAから一要素の発言を行う。そして、再び発言モニタモジュールに制御が戻る。又、図示していないが、長文発言制御応答モジュールは、ユーザが入力した制御キーワードに対する処理を行う。
[バッファ構造]
図7は、長文発言ヒープの構造を示したものである。長文発言ヒープ(キャッシュバッファ)には、複数の発言キャッシュ要素がキューイングして格納される。キューイングは、図の横方向で示すチャンネル毎と、縦方向で示すメッセージの発言キャッシュ要素ごとになされる。それぞれの発言キャッシュ要素は、[チャンネル]、[メッセージ]、[次チャンネル]、[次メッセージ]、及び[一時停止フラグ]の5つのデータフィールドを持つ。
ここで、[チャンネル]フィールドは、ユーザごとに対応するチャンネルのIDであり、チャンネル番号であってもよい。[メッセージ]フィールドは、発言キャッシュ要素に分割された応答メッセージの内容を格納するフィールドであり、固定サイズで定義されている。[次チャンネル]フィールドは、別のチャンネル(別ユーザの)への発言キャッシュ要素へのポインタであり、[次メッセージ]フィールドは、同じチャンネル内の次の発言キャッシュ要素へのポインタである。また、[一時停止フラグ]は、応答メッセージの発言を一時停止するための制御フラグである。
本チャットボットサーバは、制御用のキーワードに反応することで、長文発言の取り止めや、一時停止、再開を行うことができる。[一時停止フラグ]は、長文発言ヒープを構成する発言キャッシュ要素を探索するときに、このフラグが現れた場合、それ以降の同一チャンネルの発言を停止するための制御フラグである。キーワードによる制御時には、このフラグを操作して発言キャッシュ要素の一時停止、再開を行う。一時停止中のチャンネルに新たに長文発言が生じた場合は、その発言より前の発言キャッシュ要素に追加する。
[キュー追加フロー]
図8,9,10は、キャッシュバッファに発言キャッシュ要素をキューに追加する処理を示したフローチャートである。図8は、メインフローであり、図9は、同じチャンネルにキューが存在するときの処理、図10は、同じチャンネルにキューが存在しないときの処理である。
フローチャートの説明の前に、以降に登場する各種のポインタについて説明する。
[長文キューポインタ]は、次に発言処理を行う発言キャッシュ要素を指すポインタである。また、[次メッセージポインタ]は、[長文キューポインタ]の指す発言キャッシュ要素中の[次メッセージ]の値を格納するポインタである。また、[先頭キューポインタ]は、キャッシュバッファから、新たに発言キャッシュ要素のメモリ領域を確保したときの先頭の要素を指すポインタである。ポインタにはその他、ワーク用に使用する[workポインタ]や終了位置を示す[終了ポインタ]が存在する。
まず、図8のステップS101において、追加するキューに必要なバッファを確保する。次に、ステップS102において、確保したバッファに、[チャンネル]、[メッセージ]、[次メッセージ]の値を設定する。そして、ステップS103において、[先頭キューポインタ]に確保したバッファの先頭キューのポインタ値を代入する。
次に、ステップS104において、[長文キューポインタ]がnullであるかをチェックし、nullであればステップS107に移り、[長文キューポインタ]に[先頭キューポインタ]の値を代入して処理を終わる。ステップS104で[長文キューポインタ]がnullでなければ、ステップS105において、[workポインタ]に[長文キューポインタ]の値を代入する。そして、ステップS106において、[workポインタ]が指す発言キャッシュ要素中の[チャンネル](図中では、[workポインタ]→チャンネルと略記する。以下同様)、[先頭キューポインタ]が指す発言キャッシュ要素中の[チャンネル](図中では、[先頭キューポインタ]→チャンネル)とを比較し、一致すれば、図9のステップS111へ移動し、一致しなければ図10のステップS121に処理を渡す。
図9は、同じチャンネルにキューが存在するときの処理である。まず、[workポインタ]の指す発言キャッシュ要素中の[次メッセージ]がnullであるかをチェックする。nullであれば、ステップS113に移り、[workポインタ]の指す発言キャッシュ要素中の[次メッセージ]に[先頭キューポインタ]の値を代入する。nullでなければ、ステップS112に移り、[workポインタ]に、[workポインタ]の指す発言キャッシュ要素中の[次メッセージ]の値を代入する。その後、図8のステップS106に戻る。
図10は、同じチャンネルにキューが存在しないときの処理である。まず、ステップS121において、[workポインタ]の指す発言キャッシュ要素中の[次チャンネル]がnullであるかをチェックする。nullであれば、ステップS123に移り、[workポインタ]の指す発言キャッシュ要素中の[次チャンネル]に[先頭キューポインタ]の値を代入して処理を終わる。nullでなければ、ステップS122に移り、[workポインタ]に[workポインタ]の指す発言キャッシュ要素中の[次チャンネル]の値を代入する。その後、図8のステップS106に戻る。
図11は、単一チャンネルにおけるキュー新規追加のメモリメージを示した図である。ここでは、長文が何もキューイングされていない状態から、分割された長文発言キャッシュ要素e1,e2,e3(以下、単にe1,e2,e3と呼ぶ)がキューイングされるフローを示す。
(1)アクティブなバッファからe1,e2,e3用のバッファを確保する。
(2)確保したバッファにチャンネル、メッセージ、次メッセージを設定する。
(3)長文キューポインタがnullかどうかをチェックする。
(4)長文キューポインタがnullの場合は、最初のメッセージのポインタ(この場合は、e1)を設定する。
図12は、単一チャンネルにおけるキュー新規追加のより詳細なメモリメージを示した図である。図の符号(a),(b),(c),(d)に対応して以下の処理を行う。なお、以降、「次メッセージ」を「次メ」と、「次チャンネル」を「次チャ」と略記することにする。
(a)バッファを確保する。この時点で各ポインタは全てnullである。
(b)チャンネル、メッセージ、次メッセージの値を設定する。
(c)先頭キューポインタに確保したバッファの先頭キューポインタを代入する。
(d)長文キューポインタに先頭キューポインタの値を代入する。
図13は、別チャンネルキュー追加のメモリメージ図である。ここでは、長文がキューイングされている状態から、別のチャンネルの分割されたe10,e11,e12がキューイングされるフローを以下に示す。
(1)アクティブなバッファからe10,e11,e12用のバッファを確保する。
(2)確保したバッファにチャンネル、メッセージ、次メッセージを設定する。
(3)長文キューポインタがnullかどうかチェックする。
(4)長文キューポインタがnullでない場合、workポインタに長文キューポインタの値(e1)をコピーする。
(5)workポインタの指しているキューの処理を開始する。
(6)workポインタの指しているキューのチャンネルと今回追加するキューの先頭(e10)のチャンネルが等しいかどうかチェックする。
(7)チャンネルが異なる場合は、workポインタの指しているキューの次チャンネルがnullかどうかチェックする。
(8)workポインタの指しているキューの次チャンネルがnullの場合、次チャンネルに先頭キューのポインタ(e10)を設定する。
図14は、別チャンネルキュー追加のメモリメージのより詳細な図である。以下の(a)〜(e)のステップは図中の符号に対応している。
(a)バッファを確保する。この時点で各ポインタは全てnullである。
(b)チャンネル、メッセージ、次メッセージの値を設定する。
(c)先頭キューポインタに確保したバッファの先頭ポインタを代入する。長文キューポインタがnullでなければ、workポインタに長文キューポインタを代入する。
(c’)workポインタ→チャンネル(e1のチャンネル=1)と、先頭キューポインタ→チャンネル(e10のチャンネル=2)が等しくない場合は、workポインタ→次チャンネル(e1の次チャンネル=null)がnullかどうかをチェックし、nullであれば(d)に進む。
(d)workポインタ→次チャンネル(e1次チャンネル)に先頭キューポインタを代入する。
3チャンネル以上を追加する場合は、workポインタ→次チャンネルがnullになるまで図8のステップS106、図10のステップS121,S122を繰り返す。
図15は、同チャンネルキュー追加のメモリメージ図である。ここでは、長文がキューイングされている状態から、同一のチャンネルの分割されたe4,e5,e6がキューイングされるフローを以下に示す。
(1)アクティブなバッファからe4,e5,e6用のバッファを確保する。
(2)確保したバッファにチャンネル、メッセージ、次メッセージを設定する。
(3)長文キューポインタがnullかどうかチェックする。
(4)長文キューポインタがnullでない場合、workポインタに長文キューポインタの値(e1)をコピーする。
(5)workポインタの指しているキューの処理を開始する。
(6)workポインタの指しているキューのチャンネルと今回追加するキューの先頭(e4)のチャンネルが同じかどうかチェックする。
(7)チャンネルが同じ場合は、workポインタの指しているキューの次メッセージがnullかどうかチェックする。
(8)workポインタの指しているキューの次メッセージがnullの場合、次メッセージに先頭キューのポインタ(e4)を設定する。
図16〜図17は、同チャンネルキュー追加のメモリメージのより詳細な図である。以下の(a)〜(f)のステップは図中の符号に対応している。
まず、図16において、
(a)バッファを確保する。この時点で各ポインタは全てnullである。
(b)チャンネル、メッセージ、次メッセージの値を設定する。
(c)先頭キューポインタに確保したバッファの先頭ポインタを代入する。長文キューポインタがnullでなければ、workポインタに長文キューポインタを代入する。
(d)workポインタ→チャンネル(e1のチャンネル=1)と、先頭キューポインタ→チャンネル(e4のチャンネル=1)が等しければ、workポインタ→次メッセージ(e1の次メッセージ=e2)がnullかどうかをチェックし、nullでなければ、workポインタ→次メッセージ(e1の次メッセージ=e2)を代入する。
次に、図17に移り、
(e)workポインタ→チャンネル(e2のチャンネル=1)と、先頭キューポインタ→チャンネル(e4のチャンネル=1)が等しい場合は、workポインタ→次メッセージ(e2の次メッセージ=e3)がnullであるかどうかチェックし、nullでなければworkポインタにworkポインタ→次メッセージ(e2の次メッセージ=e3)を代入する。
(f)workポインタ→チャンネル(e3のチャンネル=1)と、先頭キューポインタ→チャンネル(e4のチャンネル=1)が等しい場合は、workポインタ→次メッセージ(e3の次メッセージ=null)がnullかどうかチェックし、nullであれば、workポインタ→次メッセージ(e3の次メッセージ)に先頭キューポインタを代入する。
[発言フロー]
図18は、発言処理のフローチャートを示したものである。
まず、ステップS201において、[長文キューポインタ]がnullかどうかをチェックする。nullであれば、処理を終了する。nullでなければ、ステップS202において、[終了ポインタ]に[長文キューポインタ]→次メッセージの値を代入する。そして、ステップS203において、[終了ポインタ]の値と[長文キューポインタ]の値を比較し、一致していれば処理を終了する。一致していなければ、ステップS204において、[次メッセージポインタ]に[[長文キューポインタ]→次メッセージ]の値を代入する。
次に、ステップS205において、[workポインタ]に[長文キューポインタ]の値を代入する。そして、ステップS206において、[workポインタ]→[次チャンネル]がnullであるかどうかをチェックし、nullでなければ、ステップS207において、[workポインタ]に[workポインタ]→[次チャンネル]の値を代入する。nullであれば、ステップS208に移り、[workポインタ]→[次チャンネル]に、[次メッセージポインタ]の値を代入する。そして、ステップS209において、[長文キューポインタ]→メッセージ]の内容を発言する。更に、ステップS210において、[長文キューポインタ]に、[長文キューポインタ]→[次チャンネル]の値を代入して、ステップS203に戻る。
図19は、単一チャンネルにおける発言フローのメモリメージを示した図である。ここでは、以下のような長文発言のフローを示す。
(1)長文キューポインタがnullかどうかをチェックする。
(2)長文キューポインタがnullでない場合は、ポインタの指しているキュー(e1)の処理を開始する。
(3)次メッセージの値(e2)を次メッセージポインタにコピーする。
(4)次チャンネルがnullかどうかチェックする。
(5)次チャンネルがnullの場合、次メッセージポインタの値(e2)を次チャンネルにコピーする。
(6)キュー(e1)のメッセージ(A)を発言する。
(7)次チャンネルの値(e2)を長文キューポインタにコピーする。
図20は、単一チャンネルにおける発言フローのメモリメージのより詳細を示した図である。以下の(a)〜(e)のステップは図中の符号に対応している。
(a)長文キューポインタがnullでなければ、終了ポインタに長文キューポインタ→次メッセージ(e2)を代入する。
(b)終了ポインタが長文キューポインタに等しくなければ、次メッセージポインタに長文キューポインタ→次メッセージ(e2)を代入する。
(c)workポインタに長文キューポインタ(e1)を代入する。
(d)workポインタ→次チャンネル(e1→次チャンネル=null)がnullであれば、workポインタ→次チャンネルに次メッセージポインタ(e2)を代入する。
(e)長文キューポインタ(e1)のメッセージを発言する。そして、長文キューポインタに長文キューポインタ→次チャンネル(e2)を代入する。そして、終了ポインタと長文キューポインタが等しい場合は処理を終了する。
図21〜24は、複数チャンネルにおける発言フローのメモリメージを示した図である。ここでは、複数チャンネルがキューイングされている場合の長文発言フローを示す。以下の(a)〜(l)のステップは図中の符号に対応している。
まず、図21を参照する。
(a)長文キューポインタがnullでなければ、終了ポインタに長文キューポインタ→次メッセージ(e2)を代入する。
(b)終了ポインタが長文ポインタに等しくなければ、次メッセージポインタに長文キューポインタ→次メッセージ(e2)を代入する。
(c)workポインタに長文キューポインタ(e1)を代入する。
(d)workポインタ→次チャンネル(e1→次チャンネル=e10)がnullでないない場合は、workポインタにworkポインタ→次チャンネル(e10)を代入する。
次に、図22に移る。
(e)workポインタ→次チャンネル(e10→次チャンネル=null)がnullの場合、workポインタ→次チャンネルに次メッセージポインタを代入する。
(f)長文キューポインタ(e1)のメッセージを発言する。そして、長文キューポインタに長文キューポインタ→次チャンネル(e10)を代入する。
次に、図23に移る。
(g)終了ポインタと長文キューポインタが等しくなければ、次メッセージポインタに長文キューポインタ→次メッセージ(e11)を代入する。
(h)workポインタに長文キューポインタを代入する。
(i)workポインタ→次チャンネルがnullでなければ、workポインタにworkポインタ→次チャンネル(e2)を代入する。
次に、図24に移る。
(j)workポインタ→次チャンネル(e2→次チャンネル=null)がnullであれば、workポインタ→次チャンネルに次メッセージポインタを代入する。
(k)長文キューポインタ(e10)のメッセージを発言する。そして、長文キューポインタに長文キューポインタ→次チャンネル(e2)を代入する。
(l)終了ポインタと長文キューポインタが等しいので処理を終了する。
終了時のメモリメージは、e1,e10は処理済みで、長文キューポインタは、次回発言する先頭のe2を指す。また、各チャンネルは、各チャンネルの先頭メッセージが次のチャンネルによって指されている。
図25、図26は、3チャンネルにおける発言フローのメモリメージを示した図である。(a)は3チャンネルがキューイングされた状態を示しており、順次(b)、(c)、(d)、(e)、(f)、(g)、と発言の処理が進んでいき、(h)は終了時のメモリメージである。
[チャットボットシステムのハードウェア構成]
図27は、本発明の好適な実施形態の一例に係るチャットボットシステム10(以下、単にチャットボットシステムと呼ぶ)のハードウェア構成を示す図である。
チャットボットシステム10は、制御部130を構成するCPU131(マルチプロセッサ構成ではCPU132など複数のCPUが追加されてもよい)、バスライン105、通信I/F(I/F:インターフェイス)120、メインメモリ170、BIOS(Basic Input Output System)180、USBポート190、I/Oコントローラ160、キーボード及びマウスなどの入力装置110、並びに表示装置140を備える。
I/Oコントローラ160には、テープドライブ151、ハードディスク153、光ディスクドライブ152、及び半導体メモリ154などの記憶装置150を接続することができる。
BIOS180は、チャットボットシステム10の起動時にCPU131が実行するブートプログラムや、チャットボットシステム10のハードウェアに依存するプログラムなどを格納する。
ハードディスク153は、チャットボットシステムとして機能するための各種プログラム及び本発明の機能を実行するプログラムを記憶する。
光ディスクドライブ152としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、DVD−RAMドライブ、CD−RAMドライブを使用することができる。この場合は各ドライブに対応した光ディスク1521を使用する。光ディスク1521から光ディスクドライブ152によりプログラム又はデータを読み取り、I/Oコントローラ160を介してメインメモリ170又はハードディスク153に提供することもできる。又、同様にテープドライブ151に対応したテープメディア1511を主としてバックアップのために使用することもできる。
チャットボットシステム10に提供されるプログラムは、ハードディスク153、光ディスク1521、又はメモリカードなどの記録媒体に格納されて提供される。このプログラムは、I/Oコントローラ160を介して、記録媒体から読み出され、又は通信I/F120を介してダウンロードされることによって、チャットボットシステム10にインストールされ実行されてもよい。
上述のプログラムは、内部又は外部の記憶媒体に格納されてもよい。ここで、記憶媒体としては、ハードディスク153、光ディスク1521、又はメモリカードの他に、MDなどの光磁気記録媒体、テープメディア1511を用いることができる。又、専用通信回線やインターネットなどの通信回線に接続されたサーバシステムに設けたハードディスク153又は光ディスクライブラリなどの記憶装置を記録媒体として使用し、通信ネットワークを介してプログラムをチャットボットシステム10に提供してもよい。
ここで、表示装置140は、ユーザによるデータの入力を受け付ける画面を表示したり、チャットボットシステム10による演算処理結果の画面を表示したりするものであり、ブラウン管表示装置(CRT)、液晶表示装置(LCD)などのディスプレイ装置を含む。
ここで、入力装置110は、操作員による入力の受け付けを行うものであり、キーボード及びマウスなどにより構成してよい。
又、通信I/F120は、チャットボットシステム10を専用ネットワーク又は公共ネットワークを介して端末と接続できるようにするためのネットワーク・アダプタである。通信I/F120は、モデム、ケーブル・モデム及びイーサネット(登録商標)・アダプタを含んでよい。
以上の例は、チャットボットシステム10のハードウェア構成について主に説明したが、一般的なコンピュータに、プログラムをインストールして、そのコンピュータをチャットボットシステムとして動作させ、上記で説明した機能を実現することもできる。
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。又、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
本発明の好適な実施形態の一例に係るチャットボットシステム10の機能ブロックを示す図である。 従来のチャットボットシステムと、本発明のチャットボットシステム10の使用される環境の違いを示した図である。 本発明のチャットボットシステムにおいて、長文の応答メッセージを分割してキューイングする概念を示した図である。 長文バッファの2重化についての概念図である。 本発明の好適な実施形態におけるチャットボットシステム10をソフトウェアシステムにより実現する場合のモジュール構成を示した図である。 チャットボットサーバの各モジュールが行う長文の非同期発言の処理を示した図である。 長文発言ヒープの構造を示した図である。 キャッシュバッファに発言キャッシュ要素をキューに追加する処理を示したフローチャート(メインフロー)である。 キャッシュバッファに発言キャッシュ要素をキューに追加する処理を示したフローチャート(同じチャンネルにキューが存在するときの処理)である。 キャッシュバッファに発言キャッシュ要素をキューに追加する処理を示したフローチャート(同じチャンネルにキューが存在しないときの処理)である。 単一チャンネルにおけるキュー新規追加のメモリメージを示した図である。 単一チャンネルにおけるキュー新規追加のより詳細なメモリメージを示した図である。 別チャンネルキュー追加のメモリメージ図である。 別チャンネルキュー追加のメモリメージのより詳細な図である。 同チャンネルキュー追加のメモリメージ図である。 同チャンネルキュー追加のメモリメージのより詳細な図(その1)である。 同チャンネルキュー追加のメモリメージのより詳細な図(その2)である。 発言処理のフローチャートを示したものである。 単一チャンネルにおける発言フローのメモリメージを示した図である。 単一チャンネルにおける発言フローのメモリメージのより詳細を示した図である。 複数チャンネルにおける発言フローのメモリメージを示した図(その1)である。 複数チャンネルにおける発言フローのメモリメージを示した図(その2)である。 複数チャンネルにおける発言フローのメモリメージを示した図(その3)である。 複数チャンネルにおける発言フローのメモリメージを示した図(その4)である。 3チャンネルにおける発言フローのメモリメージを示した図(その1)である。 3チャンネルにおける発言フローのメモリメージを示した図(その2)である。 本発明の好適な実施形態の一例に係るチャットボットシステム10のハードウェア構成を示す図である。
符号の説明
10 チャットボットシステム
11 通信部
12 応答メッセージ生成部
13 応答メッセージキューイング部
14 記憶部
15 バッファ制御部
16 応答メッセージ提示部
17 アクティブ・キャッシュバッファ
18 インアクティブ・キャッシュバッファ

Claims (3)

  1. ネットワークに接続された複数のユーザの端末からの質問文に自動応答するチャットボットシステムであって、
    前記ユーザの質問文に対する応答メッセージを生成する応答メッセージ生成部と、
    前記生成された応答メッセージを一時的に格納するためのキャッシュバッファを含む記憶部と、
    前記キャッシュバッファに、前記ユーザごとに割り当てられたチャンネル別に、前記応答メッセージが所定の長さ以上の場合に発言キャッシュ要素に分割してキューイングして格納する応答メッセージキューイング部と、
    前記キャッシュバッファに分割して格納された前記応答メッセージの各発言キャッシュ要素を、前記ユーザの発言に対し適切な時間間隔を空けて、前記ユーザの端末に提示する応答メッセージ提示部と、を備え
    前記キャッシュバッファは、活動状態キャッシュバッファと非活動状態キャッシュバッファによって2重化され、前記活動状態キャッシュバッファにおいて、新たな応答メッセージのためのバッファのメモリ領域確保が失敗した場合に、使用中の前記発言キャッシュ要素の領域を前記活動状態キャッシュバッファから前記非活動状態キャッシュバッファに複製し、前記活動状態キャッシュバッファと前記非活動状態キャッシュバッファの活動状態と非活動状態を入れ替えるバッファ制御部を更に備え、
    前記活動状態キャッシュバッファ及び前記非活動状態キャッシュバッファは、前記複数のユーザの想定される利用状況に基づきバッファサイズが決定され、
    前記キャッシュバッファは、前記発言キャッシュ要素を含んだ一時記憶領域である発言キャッシュ要素を構成単位として複数格納し、
    前記発言キャッシュ要素は、チャンネルID、前記発言キャッシュ要素、同一チャンネルの次の発言キャッシュ要素ヘのポインタ、及び別チャンネルの発言キャッシュ要素へのポインタ、を含む
    チャットボットシステム。
  2. ネットワークに接続された複数のユーザの端末からの質問文に自動応答するチャットボットシステムにおけるチャット制御のための方法であって、前記チャットボットシステムが、
    前記ユーザの質問文に対する応答メッセージを生成する応答メッセージ生成ステップと、
    前記生成された応答メッセージを一時的に格納するためのキャッシュバッファに、前記ユーザごとに割り当てられたチャンネル別に、前記応答メッセージが所定の長さ以上の場合に発言キャッシュ要素に分割してキューイングして格納する応答メッセージキューイングステップと、
    前記キャッシュバッファに、チャンネルID、前記発言キャッシュ要素、同一チャンネルの次の発言キャッシュ要素ヘのポインタ、及び別チャンネルの発言キャッシュ要素へのポインタ、を含む発言キャッシュ要素を含んだ一時記憶領域である発言キャッシュ要素を構成単位として複数格納するステップと、
    前記キャッシュバッファが、活動状態キャッシュバッファと非活動状態キャッシュバッファによって2重化され、前記活動状態キャッシュバッファにおいて、新たな応答メッセージのためのバッファのメモリ領域確保が失敗した場合に、使用中の前記発言キャッシュ要素の領域を前記活動状態キャッシュバッファから前記非活動状態キャッシュバッファに複製し、前記活動状態キャッシュバッファと前記非活動状態キャッシュバッファの活動状態と非活動状態を入れ替えるバッファ制御ステップと、
    前記活動状態キャッシュバッファ及び前記非活動状態キャッシュバッファが、前記複数のユーザの想定される利用状況に基づきバッファサイズを決定するステップと、
    前記キャッシュバッファに分割して格納された前記応答メッセージの各発言キャッシュ要素を、前記ユーザの発言に対し適切な時間間隔を空けて、前記ユーザの端末に提示する応答メッセージ提示ステップと、
    実行する方法。
  3. ネットワークに接続された複数のユーザの端末からの質問文に自動応答するチャットボットシステムにおけるチャット制御のためのコンピュータプログラムであって、コンピュータに、
    前記ユーザの質問文に対する応答メッセージを生成する応答メッセージ生成ステップと、
    前記生成された応答メッセージを一時的に格納するためのキャッシュバッファに、前記ユーザごとに割り当てられたチャンネル別に、前記応答メッセージが所定の長さ以上の場合に発言キャッシュ要素に分割してキューイングして格納する応答メッセージキューイングステップと、
    前記キャッシュバッファに、チャンネルID、前記発言キャッシュ要素、同一チャンネルの次の発言キャッシュ要素ヘのポインタ、及び別チャンネルの発言キャッシュ要素へのポインタ、を含む発言キャッシュ要素を含んだ一時記憶領域である発言キャッシュ要素を構成単位として複数格納するステップと、
    前記キャッシュバッファが、活動状態キャッシュバッファと非活動状態キャッシュバッファによって2重化され、前記活動状態キャッシュバッファにおいて、新たな応答メッセージのためのバッファのメモリ領域確保が失敗した場合に、使用中の前記発言キャッシュ要素の領域を前記活動状態キャッシュバッファから前記非活動状態キャッシュバッファに複製し、前記活動状態キャッシュバッファと前記非活動状態キャッシュバッファの活動状態と非活動状態を入れ替えるバッファ制御ステップと、
    前記活動状態キャッシュバッファ及び前記非活動状態キャッシュバッファが、前記複数のユーザの想定される利用状況に基づきバッファサイズを決定するステップと、
    前記キャッシュバッファに分割して格納された前記応答メッセージの各発言キャッシュ要素を、前記ユーザの発言に対し適切な時間間隔を空けて、前記ユーザの端末に提示する応答メッセージ提示ステップと、
    をコンピュータに実行させる、コンピュータプログラム。
JP2007161386A 2007-06-19 2007-06-19 チャットボットシステム Expired - Fee Related JP4885070B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007161386A JP4885070B2 (ja) 2007-06-19 2007-06-19 チャットボットシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007161386A JP4885070B2 (ja) 2007-06-19 2007-06-19 チャットボットシステム

Publications (2)

Publication Number Publication Date
JP2009003533A JP2009003533A (ja) 2009-01-08
JP4885070B2 true JP4885070B2 (ja) 2012-02-29

Family

ID=40319887

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007161386A Expired - Fee Related JP4885070B2 (ja) 2007-06-19 2007-06-19 チャットボットシステム

Country Status (1)

Country Link
JP (1) JP4885070B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500956B2 (en) 2019-11-29 2022-11-15 Ricoh Company, Ltd. Information processing apparatus, information processing system, information processing method, and program

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5249960B2 (ja) * 2010-01-08 2013-07-31 株式会社コナミデジタルエンタテインメント イベント提示装置、イベント提示方法、ならびに、プログラム
JP6917446B2 (ja) * 2016-09-16 2021-08-11 オラクル・インターナショナル・コーポレイション 意図判断を有する、インターネットクラウドによってホストされた自然言語インタラクティブメッセージングシステム
JP2018200602A (ja) 2017-05-29 2018-12-20 パナソニックIpマネジメント株式会社 データ転送方法およびコンピュータプログラム
JP7063031B2 (ja) * 2018-03-20 2022-05-09 富士フイルムビジネスイノベーション株式会社 メッセージ提供装置、プログラム、及び表示制御方法
JP7185489B2 (ja) 2018-10-30 2022-12-07 株式会社日立システムズ リソース割り当て方法およびリソース割り当てシステム
JP6489670B1 (ja) * 2018-10-30 2019-03-27 Jeインターナショナル株式会社 チャットシステム、チャットボットサーバー装置、チャットボットid管理装置、チャット仲介サーバー装置、プログラム、チャット方法、およびチャット仲介方法
CN111309875B (zh) * 2018-12-10 2023-08-04 百度在线网络技术(北京)有限公司 问题应答的方法、装置、设备和存储介质
JP7342534B2 (ja) * 2019-08-30 2023-09-12 富士通株式会社 チャットプログラム、装置、及び方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0435248A (ja) * 1990-05-25 1992-02-06 Nec Corp データ通信システム
JP2815716B2 (ja) * 1991-02-04 1998-10-27 富士電機株式会社 メッセージ送信処理方法
JPH06309359A (ja) * 1991-09-24 1994-11-04 Hitachi Maxell Ltd 携帯形電子読書装置
JPH0736936A (ja) * 1993-07-23 1995-02-07 Nec Corp 電子書籍表示装置
US5909546A (en) * 1996-03-08 1999-06-01 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Network interface having support for allowing remote operations with reply that bypass host computer interaction
JP4345748B2 (ja) * 1997-11-21 2009-10-14 オムロン株式会社 メモリ割当装置、メモリ割当方法、およびプログラム記録媒体
JP2001229128A (ja) * 2000-02-17 2001-08-24 Hitachi Ltd オンライントランザクション処理のメッセージ送信制御方式
JP2004178299A (ja) * 2002-11-27 2004-06-24 Nifty Corp ネットワーク疑似会話システム及びネットワーク疑似会話プログラム
JP2004220109A (ja) * 2003-01-09 2004-08-05 Japan Science & Technology Agency テキスト高速順次切替表示システムおよびテキスト高速順次切替表示プログラム並びにテキスト高速順次切替表示方法
JP2005251034A (ja) * 2004-03-05 2005-09-15 Konami Co Ltd 文字列表示システム、文字列表示方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11500956B2 (en) 2019-11-29 2022-11-15 Ricoh Company, Ltd. Information processing apparatus, information processing system, information processing method, and program

Also Published As

Publication number Publication date
JP2009003533A (ja) 2009-01-08

Similar Documents

Publication Publication Date Title
JP4885070B2 (ja) チャットボットシステム
US11314944B2 (en) Transitioning between prior dialog contexts with automated assistants
JP2021012384A (ja) 会議能力を有する自動アシスタント
CN112334976B (zh) 利用本地文本响应映射呈现对用户的口头话语的响应
CN113168336B (zh) 基于实验参数适配功能电话的客户端应用
CN104035683B (zh) 一种通讯终端分屏多任务交互方法
US12080271B2 (en) Speech generation using crosslingual phoneme mapping
KR20190139966A (ko) 선택가능한 그래픽 엘리먼트를 통해 자동화된 에이전트로 대화를 초기화하기
US11854533B2 (en) Speaker awareness using speaker dependent speech model(s)
CN111699483A (zh) 提供助理深度链接以实行第三方对话会话转移的系统、方法和装置
JP7488382B2 (ja) 自動音声認識のためのコンテキスト非正規化
KR20220127319A (ko) 계산적으로 낭비되는 애플리케이션 실행 동작을 완화하기 위해 애플리케이션 콘텐츠에 기초하여 통지를 제공할지 여부 및/또는 시기를 결정
KR20200011483A (ko) 사용자 구성의 맞춤형 인터렉티브 대화 애플리케이션
US20240169989A1 (en) Multimodal responses
US20240329919A1 (en) Speech message playback
US11544473B2 (en) System and method for sentiment analysis of chat ghost typing
US20240103893A1 (en) Generating content endorsements using machine learning nominator(s)
US11164576B2 (en) Multimodal responses
KR101917325B1 (ko) 리시버 스테이트를 이용한 챗봇 대화 관리 장치, 방법 및 컴퓨터 판독가능 저장매체
US20240029728A1 (en) System(s) and method(s) to enable modification of an automatically arranged transcription in smart dictation
US20240256533A1 (en) Semantic parsing using embedding space representations of example natural language queries
CN106204360A (zh) 一种基于iOS系统语音控制VR楼盘展示方法及系统
WO2024019766A1 (en) System(s) and method(s) to enable modification of an automatically arranged transcription in smart dictation
JPH08202579A (ja) プログラミング支援装置及びプログラミング支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4885070

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350