(57)【要約】【課題】ユーザがサービスメニューと無関係の会話（テキストメッセージや音声メッセージなど）を行っている場合でも、システム、例えば、チャットボットやバックエンドシステムなどのリソースを増やすことなく、チャットボットおよびバックエンドシステムなどに対して、適切なリソース割り当てが行える技術を提供する。【解決手段】サービスメニューと関係する会話数および前記サービスメニューと無関係の会話数に基づいてチャットボットおよびバックエンドシステムのリソース割り当てを判断する手段を設ける。【選択図】図１
2020071563.tif 000002
【特許請求の範囲】
【請求項１】
ユーザからメッセージによる問い合わせを受けて自動回答するチャットボットおよび前記チャットボットと連携して動作するバックエンドシステムに対してリソースを割り当てるリソース割り当て方法であって、
前記ユーザと前記チャットボット間のメッセージによる会話が、サービスメニューと関係する会話か、サービスメニューと無関係な会話かを判定して区分する会話内容判定・区分ステップと、
前記サービスメニューと関係する会話数および前記サービスメニューと無関係の会話数をカウントする会話数カウントステップと、
前記会話数カウントステップにてカウントした前記サービスメニューと関係する第１会話数と前記サービスメニューと無関係の第２会話数の増減に基づいて、前記チャットボットの割り当てリソース量を決定し、また、前記第１会話数の増減に基づいて、前記バックエンドシステムの割り当てリソース量を決定する割り当てリソース決定ステップと、
前記割り当てリソース決定ステップにて決定したリソース量を前記チャットボットおよび前記バックエンドシステムに対して割り当てるリソース割り当てステップを含む、
ことを特徴とするリソース割り当て方法。
【請求項２】
請求項１に記載されたリソース割り当て方法において、
前記会話数カウントステップにてカウントした前記サービスメニューと関係する第１会話数と前記サービスメニューと無関係の第２会話数を受け、前記第１会話数、前記第２会話数を予測する会話数予測ステップと、
前記会話数予測ステップにて予測した第１、第２会話数の増減に基づいて、前記チャットボットの割り当てリソース量を決定し、また、前記サービスメニューと関係する第１会話数を受け、前記第１会話数の増減に基づいて、前記バックエンドシステムの割り当てリソース量を決定する割り当てリソース決定ステップと、
をさらに有することを特徴とするリソース割り当て方法。
【請求項３】
請求項１に記載されたリソース割り当て方法において、
前記会話内容判定・区分ステップは、
前記会話と前記サービスメニューとの関係有無を、前記チャットボットと前記ユーザとの間の会話シナリオにおける会話内容判定・区分処理の各ステップにおいて定義された判定用フラグに基づいて判定するステップからなる
ことを特徴とするリソース割り当て方法。
【請求項４】
請求項１に記載されたリソース割り当て方法において、
前記会話内容判定・区分ステップは、
前記会話と前記サービスメニューとの関係有無を、前記ユーザのメッセージの自然言語処理に基づく分類結果と前記サービスメニューとの関係有無を対応した分類結果・サービスとの関係有無対応テーブルに基づいて判定するステップからなる
ことを特徴とするリソース割り当て方法。
【請求項５】
請求項１に記載されたリソース割り当て方法において、
前記チャットボットが、前記ユーザからの音声メッセージを受けた場合、
前記割り当てリソース決定ステップは、
前記ユーザの言い間違いおよび／または前記チャットボットの認識間違いによって生じた会話の繰り返しの会話数は、前記バックエンドシステムのリソース割り当て判断には使用しない
ことを特徴とするリソース割り当て方法。
【請求項６】
請求項１に記載されたリソース割り当て方法において、
前記サービスメニューと関係のない会話は、前記チャットボットと異なる第２のチャットボットにディスパッチするステップをさらに有し、
前記第２のチャットボットには、前記チャットボットよりも低い優先度および／または低い上限でリソース量を割り当てる
ことを特徴とするリソース割り当て方法。
【請求項７】
請求項６に記載されたリソース割り当て方法において、
前記サービスメニューと関係のない会話数が所定の閾値を超えたとき、前記第２のチャットボットのインスタンスを作成するステップをさらに有する
ことを特徴とするリソース割り当て方法。
【請求項８】
請求項６に記載されたリソース割り当て方法において、
前記サービスメニューと関係のない会話数が所定の閾値を下回ったとき、前記第２のチャットボットのインスタンスを削除するステップをさらに有する
ことを特徴とするリソース割り当て方法。
【請求項９】
請求項６に記載されたリソース割り当て方法において、
過去の履歴で、前記サービスメニューと関係のない会話数の割合が所定の閾値を超えた前記ユーザの会話は、前記第２のチャットボットにて自動応答を対応させるステップをさらに有する
ことを特徴とするリソース割り当て方法。
【請求項１０】
ユーザからメッセージによる問い合わせを受けて自動回答するチャットボット、および前記チャットボットと連携して動作するバックエンドシステムに対してリソースを割り当てるリソース割り当て部を有するリソース割り当てシステムであって、
前記ユーザと前記チャットボット間のメッセージによる会話が、サービスメニューと関係する会話か、サービスメニューと無関係な会話かを判定して区分する会話内容判定・区分部と、
前記サービスメニューと関係する会話数および前記サービスメニューと無関係の会話数をカウントする会話数カウント部と、
前記会話数カウントステップにてカウントした前記サービスメニューと関係する第１会話数と前記サービスメニューと無関係の第２会話数の増減に基づいて、前記チャットボットの割り当てリソース量を決定し、また、前記第１会話数の増減に基づいて、前記バックエンドシステムの割り当てリソース量を決定する割り当てリソース決定部と、
前記割り当てリソース決定ステップにて決定したリソース量を前記チャットボットおよび前記バックエンドシステムに対して割り当てるリソース割り当て部を含む、
ことを特徴とするリソース割り当てシステム。
【請求項１１】
請求項１０に記載されたリソース割り当てシステムにおいて、
前記会話数カウント部にてカウントした前記サービスメニューと関係する第１会話数と前記サービスメニューと無関係の第２会話数を受け、前記第１会話数、前記第２会話数を予測する会話数予測部と、
前記会話数予測部にて予測した第１、第２会話数の増減に基づいて、前記チャットボットの割り当てリソース量を決定し、また、前記会話数予測部にて予測した第１会話数の増減に基づいて、前記バックエンドシステムの割り当てリソース量を決定する割り当てリソース決定部と、
をさらに有することを特徴とするリソース割り当てシステム。
【請求項１２】
請求項１０に記載されたリソース割り当てシステムにおいて、
前記サービスメニューと関係のない会話は、前記チャットボットと異なる第２のチャットボットにディスパッチするメッセージルーティング部をさらに有し、
前記メッセージルーティング部は、前記第２のチャットボットには、前記割り当てリソース決定部において、前記チャットボットよりも低い優先度および／または低い上限でリソース量を割り当てる
ことを特徴とするリソース割り当てシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はリソース割り当て方法およびリソース割り当てシステムに関する。さらに、詳しくは、チャットボットを利用したシステムにおけるリソース割り当て方法およびリソース割り当てシステムに関する。
【背景技術】
【０００２】
自動会話プログラムを利用して、問い合わせ（例えば、商品に関する問合せで在庫、納期、クレーム、他など）に対する回答や商品レコメンドなどを自動的に行うチャットボット（バーチャルアシスタントなどとも呼ばれる）を含むチャットボットシステムが広く普及している。
係るチャットボットシステムとして、例えば、特開２００９−３５３３号公報（特許文献１）がある。この公報には、「ネットワークに接続された複数のユーザの端末からの質問文に自動応答するチャットボットシステムであって、前記ユーザの質問文に対する応答メッセージを生成する応答メッセージ生成部と、前記生成された応答メッセージを一時的に格納するためのキャッシュバッファを含む記憶部と、前記キャッシュバッファに、前記ユーザごとに割り当てられたチャンネル別に、前記応答メッセージが所定の長さ以上の場合に発言キャッシュ要素に分割してキューイングして格納する応答メッセージキューイング部と、前記キャッシュバッファに分割して格納された前記応答メッセージの各発言キャッシュ要素を、前記ユーザの発言に対し適切な時間間隔を空けて、前記ユーザの端末に提示する応答メッセージ提示部と、を備える、チャットボットシステム」との記載がある。
また、クラウドコンピューティングリソースの管理技術として、ＵＳ９８１７６９０Ｂ２（特許文献２）がある。この公報には、負荷傾向に基づくリソース割り当て技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−３５３３号公報
【特許文献２】ＵＳ９８１７６９０Ｂ２
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、チャットボットのリソースの割り当てまでは想定されていない。そのため、複数のユーザに対して長文の応答メッセージを効率よくキャッシュし、提示するチャットシステムをＣＳ手段として提供することに留まる。また、特許文献２に記載されたリソース割り当て技術を用いることで、チャットボットの負荷傾向に基づいてチャットボットやバックエンドシステムのリソース割り当てを変更することができる。しかし、係る従来技術では、チャットボットの負荷増加の要因を考慮しておらず、ユーザがサービスメニューと無関係の会話を行っていても負荷増加と見なしてバックエンドのリソースを増やしてしまう課題があった。
【０００５】
そこで、本発明では、ユーザがサービスメニューと無関係の会話（テキストメッセージや音声メッセージなど）を行っている場合でも、システム、例えば、チャットボットやバックエンドシステムなどのリソースを増やすことなく、チャットボットおよびバックエンドシステムなどに対して、適切なリソース割り当てが行える技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、代表的な本発明のリソース割り当て方法およびリソース割り当てシステムの一つは、
ユーザからメッセージによる問い合わせを受けて自動回答するチャットボットおよび前記チャットボットと連携して動作するバックエンドシステムに対してリソースを割り当てるリソース割り当て方法であって、
前記ユーザと前記チャットボット間のメッセージによる会話が、サービスメニューと関係する会話か、サービスメニューと無関係な会話かを判定して区分するステップと、
前記サービスメニューと関係する会話数および前記サービスメニューと無関係の会話数をカウントする会話数カウントステップと、
前記会話数カウントステップにてカウントした前記サービスメニューと関係する第１会話数と前記サービスメニューと無関係の第２会話数の増減に基づいて、前記チャットボットの割り当てリソース量を決定し、また、前記第１会話数の増減に基づいて、前記バックエンドシステムの割り当てリソース量を決定する割り当てリソース決定ステップと、
前記割り当てリソース決定ステップにて決定したリソース量を前記チャットボットおよび前記バックエンドシステムに対して割り当てるリソース割り当てステップを含む、
ことを特徴とする。
【図面の簡単な説明】
【０００７】
【図１】図１は、本発明のチャットボットシステムにおけるチャットボットとバックエンドシステムとリソース管理システムにおけるリソース割り当て部を備えたシステムの概略構成を説明するブロック図。
【図２】図２は、本発明の会話フローデータ（会話シナリオデータ）とサービスとの関係有無の一判定方法を説明する図。
【図３】図３は、本発明の会話フローデータ（会話シナリオデータ）とサービスとの関係有無の他の判定方法を説明する図。
【図４】図４は、会話数記録テーブル、会話数予測テーブル、チャットボットのリソース割り当て条件テーブル、バックエンドシステムのリソース割り当て条件テーブル、リソーステンプレートテーブルを用いてリソース割り当てテーブルにリソースを割り当てる本発明のリソース割り当て方法の一例を説明する図。
【図５】図５は、本発明の実施例１におけるリソース割り当てシステムの構成を示すブロック図。
【図６】図６は、実施例１の会話シナリオテーブルのデータ構成例を示す図。
【図７】図７は、実施例１のチャットボット会話処理を説明するフローチャート。
【図８】図８は、実施例１のリソース割り当て変更処理を説明するフローチャート。
【図９】図９は、本発明の実施例２におけるリソース割り当てシステムの構成を示すブロック図。
【図１０】図１０は、実施例２の会話数記録テーブル、会話数予測テーブル、チャットボットのリソース割り当て条件テーブルの構成例を示す図。
【図１１】図１１は、実施例２のチャットボット会話処理を説明するフローチャート。
【図１２】図１２は、実施例２のリソース割り当て変更処理を説明するフローチャート。
【図１３】図１３は、実施例３のリソース割り当てシステムの構成を示すブロック図。
【図１４】図１４は、実施例３のリソース割り当て上限テーブルのデータ構成を示す図。
【図１５】図１５は、実施例３のチャットボットの会話処理を説明するフローチャート。
【図１６】図１６は、実施例３のリソース割り当て変更処理を説明するフローチャート。
【図１７】図１７は、実施例３のチャットボットインスタンス管理処理を説明するフローチャート。
【図１８】図１８は、実施例３のユーザごとの会話数記録テーブルの構成例を示す図。
【図１９】図１９は、実施例３の会話の初期ルーティング決定処理を説明するフローチャート。
【発明を実施するための形態】
【０００８】
まず、本発明の概要について、図１〜図４を用いて説明する。
図１は、本発明のチャットボットシステム１０におけるチャットボット１１とバックエンドシステム３０とリソース管理システム４０におけるリソース割り当て部４１３を備えたシステム１の概略構成を示すブロック図であって、リソース割り当て部４１３によるチャットボット１１およびバックエンドシステム３０へのリソース割当てを説明する図である。
【０００９】
チャットボットシステム１０は、サービスメニューと関係する会話数（Ｂ）とサービスメニューと関係ない、つまり、無関係な会話数（Ａ）をカウントし、これらの会話数（Ａ）、（Ｂ）を記録日時とともに、後述する会話数記憶部１１３２の会話数記録テーブル１１３２１に記録する機能を有し、また、バックエンドシステム３０を呼び出す機能を有する。
【００１０】
バックエンドシステム３０は、チャットボット１１からの呼び出しやフロントエンドからの入力や指示を受けて、所望のバック業務の処理を行って、その結果を出力したりする機能を有するシステムであり、例えば、ユーザ管理システムや販売管理システム、その他のシステムからなり、ユーザ情報や販売情報などを扱うシステムである。
【００１１】
リソース管理システム４０は、チャットボット１１やバックエンドシステム３０などのリソースを管理するとともに、後述する会話数記憶部１１３２の会話数記録テーブル１１３２１の情報に基づいて、リソースをチャットボット１１やバックエンドシステム３０などに割り当てる機能を有する。
【００１２】
図２は、リソース割り当て部４１３によるリソース割り当て制御に際して、チャットボット１１における会話フローデータにおいて、サービスとの関係有無の判定方法の一例を説明する図であって、会話フローデータとサービスメニューとの関係有無を区別するフラグ（Ｆｌａｇ）との関係を説明する図である。
【００１３】
会話フローデータ、例えば、「ご用件はなんですか？」との応答データを示すステップＳ１１４１のときには、このステップにフラグ“ｔｒｕｅ”を定義し、
ユーザ側からの出荷状況の問合せにおける「注文番号を教えて下さい」との応答データを示すステップＳ１１４２のときには、このステップにフラグ“ｔｒｕｅ”を定義し、
故障の問合せにおける「製造番号を教えて下さい」との応答データを示すステップＳ１１４３のときには、このステップにフラグ“ｔｒｕｅ”を定義し、
その他における雑談用の会話フローのステップＳ１１４４のときには、このステップにフラグ“ｆａｌｓｅ”を定義する。
【００１４】
図３は、本発明の会話シナリオデータ（図６参照）とサービスとの関係有無の他の判定方法を説明する図である。
【００１５】
サービスとの関係有無の他の判定方法として、図３に示すように、チャットボット１１のチャットボット機能の一部である自然言語処理（公知の技術でよい）に基づく分類結果（出荷状況問合せなど）とサービスとの関係有無の関係を、後述する分類結果・サービス関係有無対応記憶部１１３４のテーブル１１３４１（図３参照）を用いて判定してもよい。
【００１６】
すなわち、ユーザ端末２０側からのユーザメッセージ、例えば、“商品が届かないので、出荷状況を知りたい”に対する自然言語処理の分類結果が“出荷状況問合せ”、または“注文問合せ”や“在庫問合せ”などである場合には、サービスとの関係がある“ｔｒｕｅ”、とし、また、 “明日の天気は？”などに対する自然言語処理の分類結果が“雑談”である場合には、サービスとの関係がない“ｆａｌｓｅ”とする分類結果・サービス関係有無対応テーブル１１３４１を用意し、分類結果とサービスとの関係有無を比較する判定方法である。
【００１７】
図４（ａ）〜（ｆ）は、本発明のリソース割り当て方法の一例を説明する図である。
リソース割り当て部４１３によるチャットボット１１やバックエンドシステム３０へのリソースの割り当て方法としては、例えば、図４（ａ）〜（ｆ）に示すように、会話数予測記録テーブル１１３２１、会話数予測テーブル４１５１１、チャットボット１１のリソース割り当て条件テーブル４１５３１、バックエンドシステム３０のリソース割り当て条件テーブル４１５３２、リソーステンプレートテーブル４１５２１、リソース割り当てテーブル４１５４１を用意する。
【００１８】
そして、会話数記録テーブル１１３２１から、次のタイムスロットにおけるサービスメニューと関係する会話数（Ｂ）とサービスメニューと無関係な会話数（Ａ）の予測値（１０００，５００）を算出し、これらの予測値を会話数予測テーブル４１５１１に記憶する。
会話数の予測値を算出する方法は、既存の統計的な手法や、機械学習を用いた手法を使ってもよく、特に限定する必要はない。
なお、サービスメニューと関係する会話数（Ｂ）とサービスメニューと無関係な会話数（Ａ）の予測値を算出する処理を省略し、予め定められた期間におけるサービスメニューと関係する会話数（Ｂ）とサービスメニューと無関係な会話数（Ａ）の合計値を代わりに用いても良い。リソース割り当てに予測値を用いる方法は、将来の会話数の増減予測に基づいて事前にリソースを割り当てる方法である。他方、リソース割り当てに合計値を用いる方法は、過去の会話数の増減に基づいてリソースを割り当てる方法である。
【００１９】
次に、チャットボット１１に対しては、会話数予測テーブル４１５１１におけるサービスメニューと関係する会話数（Ｂ）とサービスメニューと無関係な会話数（Ａ）の予測値の合計（１５００）と、チャットボット１１のリソース割り当て条件テーブル４１５３１（会話総数（Ａ＋Ｂ）：１００１〜３０００、リソーステンプレート：ｔ２）およびリソーステンプレートテーブル４１５２１（ＩＤ：ｔ２、仮想ＣＰＵ数：２、メモリ量：４ＧＢ、ストレージタイプ：ＨＤＤ）からリソーステンプレート（ｔ２）を決定し、例えば、チャットボット（システムＩＤ：ChatBot）に対しては、リソーステンプレートテーブル４１５２１（ＩＤ：ｔ２）で定義されたリソース（仮想ＣＰＵ数：２、メモリ量：４ＧＢ、ストレージタイプ：ＨＤＤ）を割り当て、リソース割り当てテーブル４１５４１のテンプレートをｔ１からｔ２に変更する。
【００２０】
他方、バックエンドシステム３０に対しては、会話数予測テーブル４１５１１におけるサービスメニューと関係する会話数（Ｂ）の予測値（５００）と、バックエンドシステム３０のリソース割り当て条件テーブル４１５３２（サービスメニューと関係する会話数（Ｂ）：３０１〜１０００）およびリソーステンプレートテーブル４１５２１からリソーステンプレート（ＩＤ：ｔ３）を決定し、このテンプレートに基づいてバックエンドシステム（システムＩＤがChatBot以外のシステム）に対するリソース割り当てテーブル４１５５のリソース割り当てをｔ２からｔ３に変更し、リソーステンプレートテーブル４１５２１（ＩＤ：ｔ３）で定義されたリソース（仮想ＣＰＵ数：４、メモリ量：１６ＧＢ、ストレージタイプ：ＳＳＤ）を割り当てる。
ここで、バックエンドシステム３０ごとに異なるバックエンドシステム３０のリソース割り当て条件テーブル４１５３２を持ち、より細かい割り当て制御を行ってもよい。
【実施例１】
【００２１】
次に、本発明の具体的な実施例について説明する。
図５は、本発明の実施例１におけるリソース割り当てシステムの構成を示すブロック図である。
【００２２】
リソース割り当てシステム１は、チャットボットシステム１０、リソース管理システム４０、バックエンドシステム３０を有する。
【００２３】
チャットボットシステム１０は、ネットワークを介してユーザ端末２０に接続されるチャットボット１１を有する。
【００２４】
チャットボット１１は、ユーザ端末２０との間でユーザが入力したテキストメッセージに対して自然な受け応えや雑談を返信する自動応答会話機能を有する自動会話エンジンを含む。
【００２５】
自動会話エンジンとは、ユーザが入力したテキストメッセージに対して自然な受け応えや雑談などの応答テキストメッセージを返信するエンジンである。
【００２６】
チャットボット１１は、メッセージ受信／応答部１１１、自然言語処理部１１２、記憶部１１３、会話内容判定・区分部１１４、会話数カウント部１１５、バックエンド呼出部１１６などを含む。
【００２７】
メッセージ受信／応答部１１１は、ユーザ端末２０からのテキストメッセージを受信し、また、当該テキストメッセージに対する応答を行う機能を有する。
【００２８】
自然言語処理部１１２は、上述したように、ユーザ端末２０からのテキストメッセージの自然言語処理を行って、その処理結果を分類結果（出荷状況問合せ、注文問合せ、在庫問合せなど）として出力する機能を有する。
【００２９】
記憶部１１３は、メッセージ記憶部１１３１、会話数記記憶部１１３２、会話シナリオ記憶部１１３３、分類結果・サービス関係有無対応記憶部１１３４などを有する。
【００３０】
メッセージ記憶部１１３１は、応答メッセージなどを記憶するメッセージ記憶テーブル１１３１１を含む。
会話数記憶部１１３２は、記録日時１１３２１１、サービスメニューと無関係な会話数（Ａ）１１３２１２、サービスメニューと関係する会話数（Ｂ）１１３２１３、を記憶する会話数記憶テーブル１１３２１（図４ａ参照）を含む。
会話シナリオ記憶部１１３３は、会話シナリオ、例えば、メッセージ意図１１３３１１、会話ステップＩＤ１１３３１２、応答メッセージ１１３３１３、バックエンドシステム呼出し要否１１３３１４、バックエンドシステム識別子１１３３１５、サービスメニューとの関係有無１１３３１６、次会話ステップ１１３３１７などの各情報を記憶する会話シナリオテーブル１１３３１（図６参照）を含む。
分類結果・サービス関係有無対応記憶部１１３４は、自然言語処理による分類結果とサービス関係有無との対応関係を示す情報を記憶する分類結果・サービス関係有無対応テーブル１１３４１（図３参照）を含む。
【００３１】
会話内容判定・区分部１１４は、例えば、ユーザ端末２０からのテキストメッセージに対して、会話シナリオテーブル１１３３１（図６参照）に基づいて、サービスメニューとの関係有無を判定する。例えば、ユーザ端末２０からのテキストメッセージに対して自然言語処理を実行した結果が“出荷状況問合せ”であった場合、チャットボットは会話シナリオテーブル１１３３１のメッセージ意図１１３３１１＝“出荷状況問合せ”、会話ステップＩＤ１１３３１２＝０で示される行の応答メッセージ１１３３１３（“注文番号を教えて下さい。”）をユーザ端末２０に応答する。このとき、該当行のサービスメニューとの関係有無１１３３１６（ｔｒｕｅ）に基づき、この会話（ユーザ端末２０とのメッセージと応答メッセージのやりとり）をサービスメニューに関係のある会話として判定し、区分する。
【００３２】
リソース管理システム４０は、会話数予測部４１１、割当リソース決定部４１２、リソース割り当て部４１３、記憶部４１５などを含む。そして、会話数予測テーブル４１５１１のサービスメニューと関係する会話数（Ｂ）と無関係な会話数（Ａ）を参照し、会話数（Ｂ）と会話数（Ａ）に基づきチャットボット１１のリソース割り当てを制御し、また、会話数（Ｂ）に基づきバックエンドシステム３０のリソース割り当てを制御する機能を有する。
【００３３】
会話数予測部４１１は、会話数記録テーブル４１５１におけるサービスメニューと関係する会話数（Ｂ）と無関係な会話数（Ａ）から、将来の会話数を予測する機能を有する。
【００３４】
割当リソース決定部４１２は、記憶部４１５における会話数予測テーブル４１５１１、チャットボット１１のリソース割り当て条件テーブル４１５３１、バックエンドシステム３０のリソース割り当て条件テーブル４１５３２、リソーステンプレート４１５２１などに基づき、チャットボット１１やバックエンドシステム３０へのリソース割り当てを決定する機能を有する。
【００３５】
リソース割り当て部４１３は、リソース割当記憶部４１５４におけるリソース割り当てテーブル４１５４１に基づき、リソースをチャットボット１１やバックエンドシステム３０に割り当てる機能を有する。
これらの機能の詳細については具体的な実施例を参照して後述する。
【００３６】
リソース記憶部４１５は、図４に示すような会話数予測テーブル４１５１１、チャットボットのリソース割当条件テーブル４１５３１、バックエンドシステムのリソース割当条件テーブル４１５３２、リソーステンプレートテーブル４１５２１、リソース割り当てテーブル４１５４１を有する。
【００３７】
会話数予測テーブル４１５１１は、サービスメニューと関係する会話数（Ｂ）と無関係な会話数（Ａ）を記憶するエリアを含む。
チャットボットのリソース割当条件テーブル４１５３１は、会話総数（Ａ＋Ｂ）、リソーステンプレートＩＤを記憶するエリアを含む。
バックエンドシステムのリソース割当条件テーブル４１５３２は、サービスメニューと関係する会話数（Ｂ）とリソーステンプレートＩＤを記憶するエリアを含む。
リソーステンプレートテーブル４１５２１は、ＩＤ、仮想ＣＰＵ数、メモリ量、ストレージタイプを記憶するエリアを含む。リソーステンプレートテーブル４１５２１は他に、ネットワーク帯域などの他のリソースに関する情報を記憶するエリアを有していても良い。
リソース割り当てテーブル４１５４１１は、システムＩＤ、リソーステンプレートＩＤを記憶するエリアを含む
【００３８】
オペレータ端末５０は、例えば、チャットボット１１にて自動的に回答できない問合せなどの場合、オペレータが回答する端末である。
【００３９】
図６は、会話シナリオ記憶部１１３３における会話シナリオテーブル１１３３１のデータ構成例を示す図である。なお、会話シナリオデータの構造は、テーブルであっても、その他の構造であってもよい。また、会話シナリオをデータとして持たず、チャットボットのプログラムとして実装してもよい。
会話シナリオテーブル１１３３１は、メッセージ意図１１３３１１、会話ステップＩＤ１１３３１２、応答メッセージ１１３３１３、バックエンド呼出し要否１１３３１４、バックエンドシステム識別子１１３３１５、サービスメニューとの関係有無１１３３１６、次会話ステップ１１３３１７の各情報を記憶するエリアを含む。
【００４０】
メッセージ意図１１３３１１は、ユーザ端末２０から送られたメッセージに対する自然言語処理の結果と比較するための情報であり、例えば、“会話開始”、“出荷状況問合せ”、“故障問合せ”、“雑談”、“会話終了”などである。
【００４１】
会話ステップＩＤ１１３３１２は、会話シナリオ内における会話ステップの位置を示す情報であり、例えば、数字の“０”〜“５”などである。図６の例では、メッセージ意図１１３３１１と、会話ステップＩＤ１１３３１２の組合せによって、会話シナリオ内における会話ステップの位置を一意に特定可能である。
【００４２】
応答メッセージ１１３３３は、ユーザ端末２０から送られたメッセージに対して応答として返すメッセージであり、例えば、“ご用件は何ですか？”、“注文を教えて下さい”、出荷状況をお調べしますのでお待ちください”、“出荷状況は｛Ｓｔａｔｕｓ｝です。”、“製造番号を教えてください”、“どのような不具合でしょうか？”、“解決策をお調べしますのでお待ちください。”、“｛Ｓｏｌｕｔｉｏｎ｝をお試しください”、“解決しましたか？”、“弊社修理センターまで商品を送付ください。送付先住所は｛Ａｄｄｒｅｓｓ｝です。”、“ご利用ありがとうございました。”などである。
図６の例では、応答メッセージ１１３３３に含まれる｛｝で囲まれた変数には、バックエンドシステムを呼び出した結果として得られた情報を格納することを示している。例えば“出荷状況は｛Ｓｔａｔｕｓ｝です。”という応答メッセージの変数｛Ｓｔａｔｕｓ｝の部分には、バックエンドシステムである出荷管理システムから取得される出荷状況の情報が格納された上で、ユーザ端末２０に送信される。
【００４３】
バックエンド呼出し要否１１３３４はバックエンドサービスの呼び出しが必要か否かを示す情報である。サービスメニューとの関係有無１１３３６は、ユーザとの会話がサービスメニューと関係するか否かを示す情報である。バックエンド呼出し要否１１３３４およびサービスメニューとの関係有無１１３３６は、“ｆａｌｓｅ”、“ｔｒｕｅ”などである。図６の例では、バックエンド呼出し要否１１３１４の値が“ｆａｌｓｅ”の場合はバックエンドサービスの呼出しが必要ないことを、“ｔｒｕｅ”の場合はバックエンドサービスの呼出しが必要あることを、それぞれ示している。また同様に、サービスメニューとの関係有無１１３３６の値が“ｆａｌｓｅ”の場合は、ユーザとの会話がサービスメニューとの関係がないことを、“ｔｒｕｅ”の場合は、ユーザとの会話がサービスメニューとの関係があることを、それぞれ示している。
【００４４】
バックエンドシステム識別子１１３３５は、バックエンドシステムを一意に特定する情報であり、例えば“ｎｕｌｌ”、“出荷管理システム”、“ＦＡＱシステム”などである。図６の例では、バックエンド呼出し要否１１３１４の値が“ｆａｌｓｅ”の場合は、バックエンドシステム１１３３５は“ｎｕｌｌ”となる。これはバックエンドシステムの呼び出しが必要ない場合、呼び出すべきバックエンドシステムが存在しないことを示している。バックエンド呼出し要否１１３１４の値が“ｔｒｕｅ”の場合は、バックエンドシステム１１３３５には呼び出すべきバックエンドシステムを一意に識別するための情報（例えば、“出荷管理システム”、“ＦＡＱシステム”など）が含まれる。
【００４５】
次会話ステップ１１３３７は、会話シナリオ内における次の会話ステップの位置を一意に識別する情報であり、例えば“ｎｕｌｌ”、“出荷状況問合せ．１”、“故障問合せ．１”、“ｉｆ  ｎｅｘｔ＿ｍｅｓｓｇｅ＝＝”はい“、会話終了．０”などである。次会話ステップ１１３３１７の値は、メッセージ意図１１３３１１と会話ステップＩＤ１１３３１２とを“．”記号で連結した値と比較することができる。
図６の例では、例えばメッセージ意図１１３３１１＝“出荷状況問合せ”、会話ステップＩＤ＝０の次の会話ステップは、メッセージ意図１１３３１１＝出荷状況問合せ、会話ステップＩＤ＝１で示されるステップであることを示している。
【００４６】
図７は、実施例１におけるチャットボット１１のメッセージ受信／応答部１１１、自然言語処理部１１２、会話内容判定・区分部１１４、会話数カウント部１１５、バックエンドシステム呼出部１１６などによる会話処理を説明するフローチャートである。本処理は、チャットボット１１がユーザ端末２０からのテキストメッセージを受ける度に実行される。
【００４７】
図７のフローチャートに基づく動作は以下のとおりである。
ステップＳ１１０１：
チャットボット１１は、メッセージ受信／応答部１１１にて、ユーザ端末２０からメッセージを受信し、記憶部１１３のメッセージ記憶部１１３１に記憶し、格納する。
【００４８】
ステップＳ１１０２：
チャットボット１１は、自然言語処理部１１２にて、ユーザ端末２０からのメッセージに対し、自然言語処理を行い、該当するメッセージの意図（図３参照）を判定する。
【００４９】
ステップＳ１１０３：
チャットボット１１は、会話内容判定・区分部１１４にて、メッセージの意図と会話シナリオに基づき、応答メッセージを決定する。
【００５０】
ステップＳ１１０４：
チャットボット１１は、会話内容判定・区分部１１４にて、メッセージ意図と会話シナリオに基づき、バックエンドシステムの呼び出し要否を判定する。
【００５１】
ステップＳ１１０５：
チャットボット１１は、ステップＳ１１０４におけるバックエンドシステムの呼び出し要否判定の結果、バックエンドシステムの呼び出し「要」の場合（Ｙｅｓ）は、ステップＳ１１０６に進み、「否」の場合（Ｎｏ）は、ステップＳ１１０６に進む。
【００５２】
ステップＳ１１０６：
チャットボット１１は、バックエンドシステム呼出部１１６にて、該当のバックエンドシステムを呼び出す。バックエンドシステムを呼び出し方法には、該当のバックエンドシステムのＡＰＩを呼び出す方法などがあるが、特に限定はしない。
【００５３】
ステップＳ１１０７：
チャットボット１１は、会話内容判定・区分部１１４にて、メッセージの内容がサービスメニューと関係か否かを判定する。
このステップは、会話シナリオテーブル１１３３１の「サービスメニューとの関係有無」に基づいて判定してもよい。または、ユーザメッセージの自然言語処理結果（分類結果）と、サービスとの関係有無を示す分類結果・サービス関係有無対応テーブル１１３３によって判定してもよい（図３参照）。
【００５４】
ステップＳ１１０８：
チャットボット１１は、ステップＳ１１０７におけるサービスメニューとの関係判定の結果、関係ありの場合（Ｙｅｓ）は、ステップＳ１１０９に進み、関係ない場合（Ｎｏ）は、ステップＳ１１００に進む。
【００５５】
ステップＳ１１０９：
チャットボット１１は、会話数カウント部１１５が、会話数記録テーブル１１３２１のサービスメニューと関係する会話数（Ｂ）をカウントアップする。
【００５６】
ステップＳ１１１０：
チャットボット１１は、会話数カウント部１１５にて、会話数記録テーブル１１３２１のサービスメニューと無関係な会話数（Ａ）をカウントアップする。
【００５７】
ステップＳ１１１１：
チャットボット１１は、メッセージ受信／応答部１１１にて、ステップＳ１１０３で決定した応答メッセージをユーザ端末２０に送信する。
【００５８】
図８は、リソース管理部４１における会話数予測部４１１、割当てリソース決定部４１２、リソース割り当て部４１３などによるリソース割り当て変更処理を示すフローチャートである。本実施例においては、本処理は、ユーザとチャットボット１１との会話処理とは独立して定期的に実行する。本処理を実行する契機としては他にも特定のイベント（例えば、チャットボット１１やバックエンドシステム３０のリソース不足アラートのイベント）の受信を契機として実行しても良いし、チャットボット１１やバックエンドシステム３０の管理者が手動で実行しても良く、特に限定はしない。
【００５９】
図８のフローチャートに基づく動作は以下のとおりである。
ステップＳ４１３１：
会話数予測部４１１は、会話数記録テーブル１１３２１を参照し、次のタイムスロットにおける会話数の予測値を算出し、会話数予測テーブル４１５１１（図４ｂ参照）に記憶し、格納する。
【００６０】
ステップＳ４１３２：
割当てリソース決定部４１２は、会話数予測テーブル４１５１１を参照し、サービスメニューと無関係な会話数（Ａ）の予測値と、サービスメニューと関係する会話数（Ｂ）の予測値と、チャットボット１１のリソース割り当て条件テーブル４１５３１とに基づいてチャットボット１１に適用するリソーステンプレートを決定する（図４参照）。
【００６１】
ステップＳ４１３３：
ステップＳ４１３２の結果、チャットボット１１に適用するテンプレートに変化あるか否かを判定し、変化がない場合（Ｎｏ）は、ステップＳ４１３４に進み、変化がある場合（Ｙｅｓ）は、ステップＳ４１３５に進む。
【００６２】
ステップＳ４１３４：
割当てリソース決定部４１２は、会話数予測テーブル４１５１１を参照し、サービスメニューと関係する会話数（Ｂ）の予測値と、バックエンドシステム３０のリソース割り当て条件テーブル４１５３２とに基づいてバックエンドシステム３０に適用するリソーステンプレートを決定し、ステップＳ４１３６に進む（図４参照）。
【００６３】
ステップＳ４１３５：
リソース割り当て部４１３は、リソーステンプレートテーブル４１５２１を参照し、ステップＳ４１３２で決定したリソーステンプレートに基づいて、チャットボット１１に対する割り当てリソース量を変更する。そして、リソース割り当てテーブル４１５４１のリソーステンプレートＩＤをステップＳ４１３２で決定したリソーステンプレートのＩＤに更新し、ステップＳ４１３４に進む。
【００６４】
ステップＳ４１３６：
ステップＳ４１３４の結果、バックエンドシステム３０に適用するテンプレートに変化あるか否かを判定し、変化がない場合（Ｎｏ）は、処理を終了し、変化がある場合（Ｙｅｓ）は、ステップＳ４１３７に進む。
【００６５】
ステップＳ４１３７：
リソース割り当て部４１３は、リソーステンプレートテーブル４１５２１を参照し、ステップＳ４１３４で決定したリソーステンプレートに基づいて、バックエンドシステム３０に対する割り当てリソース量を変更する。また、リソース割り当てテーブル４１５４１のリソーステンプレートＩＤをステップＳ４１３４で決定したリソーステンプレートのＩＤに更新し、処理を終了する。
【実施例２】
【００６６】
本実施例は、チャットボット１１において、ユーザによるメッセージの言い間違いやチャットボットによるユーザメッセージの認識間違いによって生じた会話の繰り返しを別カウントし，バックエンドシステム３０のリソース割り当て判断には使わないようにしたものである。このような言い間違いや認識間違いは、例えばユーザとチャットボットとの間のメッセージのやり取りを音声によって行う場合に起こり得るが、特にコミュニケーション手段は限定しない。
【００６７】
以下、図９〜図１２を参照し、実施例１から変更がある部分（構成およびステップ）について以下に示す。
【００６８】
図９は、実施例２のリソース割り当てシステム１の構成を示すブロック図であり、実施例１と異なる構成のみ、以下に示す。
【００６９】
チャットボット１１は、音声メッセージ受信／応答部１１１’、音声メッセージを認識する音声認識部１１７を有する。
【００７０】
図１０は、実施例２の会話数記録テーブル１１３２１’、会話数予測テーブル４１５１１’、チャットボット１１のリソース割り当て条件テーブル４１５３１’の構成例を示すものであり、実施例１と異なる部分のみ、以下に示す。
【００７１】
会話数記録テーブル１１３２１’は、記録日時、サービスメニューと関係する会話数（Ｂ）、サービスメニューと無関係な会話数（Ａ）の他に、さらに、認識間違いの会話数（Ｃ）を記録するエリアを含む。なお、ユーザによるメッセージの言い間違いによって生じた会話数も、認識間違いの会話数（Ｃ）に含めて良い。
【００７２】
会話数予測テーブル４１５１１’は、さらに、認識間違いの会話数（Ｃ）の予測値を記録するエリアを含み、チャットボット１１のリソース割り当て条件テーブル４１５３１’の会話総数には、認識間違いの会話数（Ｃ）を含む。
つまり、チャットボット１１へのリソース割り当て判断には、音声認識間違いの会話数（Ｃ）をカウントに入れる。但し、バックエンドシステム３０のリソース割り当て条件テーブル４１５３２には実施例１から差分はない。すなわち、バックエンドシステム３０へのリソース割り当て判断には、音声認識間違いの会話数（Ｃ）はカウントに入れない。
【００７３】
図１１は、実施例２のチャットボット会話処理を説明するフローチャートである。
図１１のフローチャートに基づく動作は以下のとおりであり、実施例１から変更があるステップのみ、以下に示す。
【００７４】
ステップＳ１１０１’：
チャットボット１１は、音声メッセージ受信／応答部１１１’にて、ユーザ端末２０から音声メッセージを受信し、メッセージ記憶部１１３１に記憶し、格納する。なお、音声メッセージをメッセージ記憶部１１３１に記憶する代わりに、ステップＳ１１２１でテキストに変換したメッセージを記憶しても良い。
【００７５】
ステップＳ１１２１：
ステップＳ１１０１’のあと、チャットボット１１は、音声認識部１１７にて、音声メッセージをテキストに変換する。そして、ステップＳ１１０２に進む。
【００７６】
ステップＳ１１２２：
ステップＳ１１０２のあと、チャットボット１１は、メッセージ受信／応答部１１１にて、メッセージ意図が正しいか否かをユーザに確認する音声メッセージを送信し、ユーザからの応答を受信する。
【００７７】
ステップＳ１１２３：
チャットボット１１は、メッセージ意図が正しいか否かを判定する。この判定の結果、意図が正しい場合（Ｙｅｓ）は、ステップＳ１１０３に進み、上述したステップＳ１１０３〜ステップＳ１１１１’を順次実行する。ステップＳ１１１１’は、音声メッセージ受信／応答部１１１’にて、応答音声メッセージをユーザ端末に送信し、処理を終了する。
意図が正しくない場合（Ｎｏ）は、ステップＳ１１２４に進む。
【００７８】
ステップＳ１１２４：
チャットボット１１は、会話数カウント部１１５にて、会話数記録テーブル１１３２１’の、認識間違いの会話数（Ｃ）をカウントアップし、ステップＳ１１２５に進む。
【００７９】
ステップＳ１１２５：
チャットボット１１は、メッセージ受信／応答部１１１にて、ユーザにメッセージを言い直すことを促す音声メッセージを送信し、処理を終了する。
【００８０】
なお、本実施例において、音声とテキストの相互変換はすべて、または一部をユーザ端末２０で行ってもよい。例えば、ユーザ端末２０は音声メッセージをチャットボット１１に送信する代わりに、ユーザ端末２０にて音声メッセージをテキスト変換した上で、テキストメッセージをチャットボットに送っても良い。また、チャットボット１１は応答音声メッセージをユーザ端末２０に送信する代わりに、応答テキストメッセージを送信し、ユーザ端末２０が応答テキストメッセージを音声に変換しても良い。
【００８１】
図１２は、実施例２のリソース割り当て変更処理のフローチャートを示すものである。図１２のフローチャートに基づく動作は以下のとおりであり、実施例１から変更があるステップのみ、以下に示す。
【００８２】
ステップＳ４１３１’：
会話数予測部４１１は、会話数記録テーブル１１３２１’を参照し、次のタイムスロットにおける会話数（Ａ），（Ｂ），（Ｃ）の予測値を算出し、会話数予測テーブル４１５１１’に記憶し、格納する。
【００８３】
ステップＳ４１３２’：
ステップ４１３１’のあと、割当てリソース決定部４１２は、会話数予測テーブル４１５１１’を参照し、サービスメニューと無関係な会話数（Ａ）の予測値と、サービスメニューと関係する会話数（Ｂ）の予測値と、認識間違いの会話数（Ｃ）の予測値と、チャットボット１１のリソース割り当て条件テーブル４１５３１’とに基づいてチャットボット１１に適用するリソーステンプレートを決定し（図１０参照）、ステップＳ４１３３〜ステップＳ４１３７を順次実行し、処理を終了する。
【実施例３】
【００８４】
本実施例は、チャットボット１１（第１チャットボット）の他に別のチャットボット１１’（第２チャットボット）、会話引継ぎ判定・処理部１１８、メッセージルーティング部１１９を設け、サービスメニューと関係ない会話（Ａ）は、メッセージルーティング部１１９にて第２チャットボット１１’にディスパッチするものである。また、第２チャットボットのインスタンスには、第１チャットボット１１よりも低い優先度、かつ、低い上限でリソースを割り当てるものである。
【００８５】
また、サービスメニューと無関係な会話数（Ａ）が所定の閾値を超えた場合、第２チャットボット１１’のインスタンスを作成し、閾値を下回った場合、第２チャットボットのインスタンスを削除するものである。
【００８６】
また、過去の履歴で、サービスメニューと無関係な会話数（Ａ）の割合が閾値を超えたユーザに対しては、ユーザ端末２０からのテキストメッセージに対する応答を、初めから第２チャットボット１１’に対応させるものである。
【００８７】
以下、図１３〜図１９を参照し、実施例１から変更がある部分（構成およびステップ）について以下に示す。
【００８８】
図１３は、実施例３のリソース割り当てシステム１の構成を示すブロック図であり、実施例１と異なる構成のみ、以下に示す。
【００８９】
チャットボットシステム１０は第２チャットボット１１’と、メッセージルーティング部１１９を有する。チャットボット１１は、会話引き継ぎ判定・処理部１１８を有する。また、リソース管理部４１は、チャットボットインスタンス管理部４１４、リソース割り当て上限テーブル４１５６１を含むリソース割り当て上限記憶部４１５６を有する。
なお、チャットボット１１’の構成はチャットボット１１と同等であって良い。
【００９０】
図１４は、リソース割り当て上限テーブル４１５６１のデータ構成を示す図である。
ソース割り当て上限テーブル４１５６１は、チャットボット全体のリソース割り当て上限値と、チャットボットインスタンスごとのリソース割り当て上限値を保持するものであり、システムＩＤ、仮想ＣＰＵ数、メモリ量を含む。
本例では、チャットボット全体には仮想ＣＰＵ数１０、メモリ量３６ＧＢが上限として設定されている（システムＩＤ＝“Ｔｏｔａｌ”の行を参照）。また、チャットボットインスタンス１（図１３のチャットボット１１に該当）には、仮想ＣＰＵ数８、メモリ量３２ＧＢが上限として設定されている（システムＩＤ＝“ＣｈａｔＢｏｔ１”の行を参照）。また、チャットボットインスタンス２（図１３のチャットボット１１’に該当）には、仮想ＣＰＵ数４、メモリ量１６ＧＢが上限として設定されている（システムＩＤ＝“ＣｈａｔＢｏｔ２”の行を参照）。すなわち、この例では、ＣｈａｔＢｏｔ１に最大リソースを割り当てると、ＣｈａｔＢｏｔ２には、最大リソースを割り当てられなくなること、つまり、全体の上限を超えることを示している。
【００９１】
図１５は、実施例３のリソース割り当て変更処理を示すフローチャートである。
図１５のフローチャートに基づく動作は以下のとおりであり、実施例１または実施例２から変更があるステップのみ、以下に示す。
【００９２】
ステップＳ１１３１：
ステップＳ１１０１，Ｓ１１０２のあと、チャットボット１１は、会話引き継ぎ判定・処理部１１８にて、メッセージ意図と会話シナリオに基づき、第２チャットボット１１’への会話の引継ぎ要否を判定する。
本実施例では、サービスメニューとの関係有無＝ｆａｌｓｅの場合、引継ぎ要と判定する。なお、他の方法として、サービスメニューとの関係有無＝ｆａｌｓｅの会話が連続した回数を記録し、当該回数が予め定義された閾値を超えた場合に引継ぎ要と判定しても良い。
【００９３】
ステップＳ１１３２：
ステップＳ１１３１における引継ぎ要否判定の結果、引継ぎ要の場合（Ｙｅｓ）は、ステップＳ１１３３を実行して、ステップＳ１１３４に進み、引継ぎ否の場合（Ｎｏ）は、前述のステップＳ１１０３からステップＳ１１１１の処理を実行して、処理を終了する。
【００９４】
ステップＳ１１３３：
チャットボット１１は、会話引き継ぎ判定・処理部１１８にて、会話シナリオの次会話ステップとメッセージ記憶部に格納されたメッセージの履歴とを、第２チャットボット１１’に送信する。また、第１チャットボット１１からは会話の状態や履歴を削除する。そして、ステップＳ１１３４に進む。
【００９５】
ステップＳ１１３４：
チャットボット１１は、会話引き継ぎ判定・処理部１１８にて、メッセージルーティング部１１９にユーザ識別子と会話識別子とを送信し、該当の会話におけるユーザメッセージを第２チャットボット１１’に送信するよう指示し、処理を終了する。
【００９６】
図１６は、実施例３のリソース割り当て変更処理のフローチャートを示すものである。
図１６のフローチャートに基づく動作は以下のとおりであり、実施例１から変更があるステップのみ、以下に示す。
【００９７】
ステップＳ４２３２’’：
ステップＳ４１３１のあと、リソース管理部４１は、会話数予測部４１１にて、会話数予測テーブル４１５１１とリソース割り当て上限テーブル４１５６１を参照し、サービスメニューと関係する会話数（Ｂ）の予測値とチャットボットのリソース割り当て条件テーブルに基づいてチャットボットごとの上限を超えない範囲でチャットボットに適用するリソーステンプレートを決定し、ステップＳ４１４１に進む。
【００９８】
ステップＳ４１４１：
リソース管理部４１はステップＳ４２３２’’で決定したリソーステンプレートに基づき、チャットボット全体のリソース割り当て上限を超過したか否かを判定する。判定の結果、リソース割り当て上限を超過した場合（Ｙｅｓ）は、ステップＳ４１４２に進み、リソース割り当て上限を超過していない場合（Ｎｏ）は、ステップＳ４１３３へ進む。
【００９９】
ステップＳ４１４２：
ステップＳ４１４１にて、リソース割り当て上限を超過した場合（Ｙｅｓ）は、リソース管理部４１は、割当てリソース決定部４１２にて、第２チャットボットに適用するリソーステンプレートを１ランク下げる。例えば本実施例においては、リソーステンプレートテーブル４１５２１のＩＤの数字部分が小さい値であるほどランクが低いことを示し、数字部分が大きい値であるほどランクが高いことを示している。従って、リソーステンプレートを１ランク下げるとは、例えばステップＳ４２３２’’で決定したリソーステンプレートのＩＤがｔ２の場合、第２チャットボットに適用するリソーステンプレートをｔ１に変更することを意味している。なお、リソーステンプレートのランクの高低を表現する方法はこれに限らず、他の方法であっても良い。
ステップＳ４１４２の後、リソース管理部４１は、再びステップＳ４１４１に戻り、チャットボット全体のリソース割り当て上限を超過したか否かを判定する。
リソース割り当て上限を超過していない場合（Ｎｏ）は、ステップＳ４１３３に進み、前述のステップＳ４１３３〜ステップＳ４１３７を順に実行し、処理を終了する。
【０１００】
図１７は、実施例３のチャットボットインスタンス管理部４１４におけるチャットボットインスタンス管理処理を説明するフローチャートである。本フローチャートは、ユーザとの会話とは独立に定期的に実行される。
【０１０１】
ステップＳ４１６１：
チャットボットインスタンス管理部４１４は、会話数記録テーブル１１３２１を参照し、予め定義された期間におけるサービスメニューと無関係な会話数（Ａ）の合計値と予め定義された閾値を比較する。予め定義された期間とは、例えばステップＳ４１６１の処理を実行している時刻から遡って１時間などと定めて良く、特に限定はしない。
【０１０２】
ステップＳ４１６２：
ステップＳ４１６１による処理結果、サービスメニューと無関係な会話数（Ａ）の合計値が予め定義された閾値を超過していない場合（Ｎｏ）は、ステップＳ４１６３に進み、サービスメニューと無関係な会話数（Ａ）の合計値が予め定義された閾値を超過した場合（Ｙｅｓ）は、ステップＳ４１６４に進む。
【０１０３】
ステップＳ４１６３：
チャットボットインスタンス管理部４１４は、第２チャットボット１１’が存在するか否かを判定する。このステップによる判定結果、第２チャットボット１１’が存在しない場合は、処理を終了する。
第２チャットボット１１’が存在する場合は、ステップＳ４１６５に進む。
なお、第２チャットボット１１’の存在を判定する方法には、例えばリソース管理部４１が記憶部４１５に、存在するチャットボットインスタンスの一覧を記憶して保持することで判定する方法や、第２チャットボット１１’に対してネットワークを経由して存在を確認するためのコマンドを実行して、その応答有無によって判定する方法があるが、特に限定はしない。
【０１０４】
ステップＳ４１６５：
チャットボットインスタンス管理部４１４は、メッセージルーティング部１１９に対し、第２チャットボット１１’をルーティング対象から除外、つまり、第２チャットボットへのメッセージ送信を停止するように指示し、ステップＳ４１６６に進む。
【０１０５】
ステップＳ４１６６：
チャットボットインスタンス管理部４１４は、第２チャットボット１１’のインスタンスを削除し、処理を終了する。
【０１０６】
ステップＳ４１６４：
チャットボットインスタンス管理部４１４は、第２チャットボット１１’が存在するか否かを判定する。このステップによる判定の結果、第２チャットボット１１’が存在する場合（Ｙｅｓ）は、処理を終了する。
第２チャットボット１１’が存在しない場合（Ｎｏ）は、ステップＳ４１６７に進む。
【０１０７】
ステップＳ４１６７：
チャットボットインスタンス管理部４１４は、第２チャットボット１１’のインスタンスを生成し、ステップＳ４１６８に進む。
【０１０８】
ステップＳ４１６８：
チャットボットインスタンス管理部４１４は、メッセージルーティング部１１９に対し、第２チャットボット１１’をルーティング対象に追加するように指示し、処理を終了する。
【０１０９】
図１８は、実施例３のユーザごとの会話数記録テーブル１１３２２のデータ構成を示す図である。
ユーザごとの会話数記録テーブル１１３２２は，ユーザＩＤごとに記録日時、サービスメニューと無関係な会話数（Ａ）、サービスメニューと関係する会話数（Ｂ）を含む。本例では、ユーザ１と比較してユーザ２は、サービスメニューと無関係な会話数（Ａ）が多いことを示している。
【０１１０】
図１９は、実施例３の会話引継ぎ判定・処理部１１８における会話の初期ルーティング決定処理を示すフローチャートである。図１９のフローチャートに基づく動作は以下のとおりである。
なお、本実施例においては、図１９のフローチャートに示す処理は、チャットボット１１がユーザから最初のメッセージを受信した際に、チャットボット会話処理に先立って実行される。
【０１１１】
ステップＳ４１７１：
会話引継ぎ判定・処理部１１８は、ユーザごとの会話数記録テーブル１１３２２を参照し、該当ユーザの過去の会話数を取得する。
【０１１２】
ステップＳ４１７２：
会話引継ぎ判定・処理部１１８は、予め定義された期間におけるサービスメニューと無関係な会話数（Ａ）の合計値と予め定義された閾値を比較する。
【０１１３】
ステップＳ４１７３：
ステップＳ４１７２における判定の結果、サービスメニューと無関係な会話数（Ａ）の合計値が予め定義された閾値を超過したか否かを判定し、超過した場合（Ｙｅｓ）は、ステップＳ４１７４に進み、超過していない場合（Ｎｏ）は、ステップＳ４１７５に進む。
【０１１４】
ステップＳ４１７４：
会話引継ぎ判定・処理部１１８は、メッセージルーティング部１１９にユーザ識別子と会話識別子を送信し、該当の会話におけるユーザメッセージを第２チャットボット１１’に送信するよう指示し、処理を終了する。
【０１１５】
ステップＳ４１７５：
図１５で説明したチャットボット会話処理を実行し、終了する。
【０１１６】
以上述べた実施例によれば、チャットボットとバックエンドシステムそれぞれに対して適切なリソース割り当てを行うことができる。特にサービスメニューと無関係な会話の増加によるバックエンドシステムに対する不要なリソース増加を避けることができる。
また、サービスを提供する側にとっては、チャットボットとバックエンドシステムのリソース割り当て適正化により，不要なリソース割り当てに伴うコスト増加を避けることができる。
【符号の説明】
【０１１７】
１  リソース割り当てシステム
１０  チャットボットシステム
１１、１１’  チャットボット
１１１  メッセージ受信／応答部
１１１’  音声メッセージ受信／応答部
１１２  自然言語処理部
１１３  記憶部
１１３１  メッセージ記憶部
１１３２  会話数記憶部
１１３３  会話シナリオ記憶部
１１３４  分類結果・サービスとの関係有無対応記憶部
１１４  会話内容判定・区分部
１１５  会話数カウント部
１１６  バックエンドシステム呼出部
１１７  音声認識部
１１８  会話引継ぎ判定・処理部
１１９  メッセージルーティング部
２０  ユーザ端末
３０  バックエンドシステム
４０  リソース管理システム
４１  リソース管理部
４１１  会話数予測部
４１２  割り当てリソース決定部
４１３  リソース割り当て部
４１４  チャットボットインスタンス管理部
４１５  記憶部
４１５１  会話数予測記憶部
４１５２  リソーステンプレート記憶部
４１５３  リソース割り当て条件記憶部
４１５４  リソース割り当て記憶部
４１５６  リソース割り当て上限記憶部
５０  オペレータ端末
【図１】
2020071563.tif 000003
【図２】
2020071563.tif 000004
【図３】
2020071563.tif 000005
【図４】
2020071563.tif 000006
【図５】
2020071563.tif 000007
【図６】
2020071563.tif 000008
【図７】
2020071563.tif 000009
【図８】
2020071563.tif 000010
【図９】
2020071563.tif 000011
【図１０】
2020071563.tif 000012
【図１１】
2020071563.tif 000013
【図１２】
2020071563.tif 000014
【図１３】
2020071563.tif 000015
【図１４】
2020071563.tif 000016
【図１５】
2020071563.tif 000017
【図１６】
2020071563.tif 000018
【図１７】
2020071563.tif 000019
【図１８】
2020071563.tif 000020
【図１９】
2020071563.tif 000021