IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社オアースの特許一覧

<>
  • 特開-自動応答プログラム構築システム 図1
  • 特開-自動応答プログラム構築システム 図2
  • 特開-自動応答プログラム構築システム 図3
  • 特開-自動応答プログラム構築システム 図4
  • 特開-自動応答プログラム構築システム 図5
  • 特開-自動応答プログラム構築システム 図6
  • 特開-自動応答プログラム構築システム 図7
  • 特開-自動応答プログラム構築システム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023049851
(43)【公開日】2023-04-10
(54)【発明の名称】自動応答プログラム構築システム
(51)【国際特許分類】
   G06F 16/90 20190101AFI20230403BHJP
   G06F 8/30 20180101ALI20230403BHJP
【FI】
G06F16/90 100
G06F8/30
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021159841
(22)【出願日】2021-09-29
(11)【特許番号】
(45)【特許公報発行日】2022-02-14
(71)【出願人】
【識別番号】521426947
【氏名又は名称】株式会社オアース
(74)【代理人】
【識別番号】100185270
【弁理士】
【氏名又は名称】原田 貴史
(74)【代理人】
【識別番号】100225347
【弁理士】
【氏名又は名称】鬼澤 正徳
(72)【発明者】
【氏名】足立 楓
(72)【発明者】
【氏名】松本 樹
(72)【発明者】
【氏名】片岡 大輔
(72)【発明者】
【氏名】水野 ゆり
(72)【発明者】
【氏名】伊藤 翔映
(72)【発明者】
【氏名】金鶴 晴香
(72)【発明者】
【氏名】若林 海斗
(72)【発明者】
【氏名】畠山 一実
(72)【発明者】
【氏名】中村 実
【テーマコード(参考)】
5B175
5B376
【Fターム(参考)】
5B175DA01
5B175EA01
5B175FA03
5B175KA06
5B376BC31
5B376BC38
(57)【要約】      (修正有)
【課題】対話データから階層化されたチャットシナリオ作成用データを容易に生成することと、階層化されたチャットシナリオ作成用データに基づく階層化されたチャットシナリオに沿った対話を実現可能な自動応答プログラムを効率的に構築する自動応答プログラム構築システムを提供する。
【解決手段】自動応答プログラム構築システム1は、対話データをグループ分けしてグループを得ることが可能なグループ化部111と、対話データを階層化した階層化対話データを得ることが可能な階層化部112と、対話の項目名及び対話の階層情報を階層化対話データに設定して設定済対話データを得ることが可能な設定部113と、対話に関する学習データを作成して設定済対話データに付与可能な学習データ作成部114と、設定済対話データを変換してチャットシナリオを得ることが可能な変換部115と、自動応答プログラムを構築可能な構築部116と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
対話の分類、前記対話における質問、及び前記質問に対する回答を含む2以上の対話データの少なくとも一部を前記分類及び/又は前記質問を用いてグループ分けして1以上のグループを得ることが可能なグループ化部と、
前記分類及び前記グループを用いて、前記対話データを階層化した階層化対話データを得ることが可能な階層化部と、
前記対話の項目名及び前記対話の階層情報を前記階層化対話データに設定して設定済対話データを得ることが可能な設定部と、
前記設定済対話データの少なくとも一部について、前記対話に関する学習データを作成して前記設定済対話データに付与可能な学習データ作成部と、
前記設定済対話データを変換して、前記質問に対して前記階層情報に応じた階層化回答を行う対話のチャットシナリオを得ることが可能な変換部と、
前記質問を受信した場合に前記対話の階層に応じて前記階層化回答を出力する自動応答プログラムを、前記チャットシナリオを用いて構築可能な構築部と、
を備える、自動応答プログラム構築システム。
【請求項2】
前記設定済対話データの上位階層に相当する前記設定済対話データのすべてを識別可能な階層化ラベルを前記設定済対話データに付与可能なラベル付与部をさらに備え、
前記ラベル付与部は、前記設定済対話データが最下位の階層に相当する場合に最下位階層情報を含む前記階層化ラベルを付与可能である、請求項1に記載のシステム。
【請求項3】
前記階層化部は、前記階層化対話データの直下の階層に相当するいずれかの階層化対話データが最下位の階層に相当する場合に、前記直下の階層に相当する他の階層化対話データのすべてが最下位の階層に相当するよう前記階層化対話データを得ることが可能である、請求項2に記載のシステム。
【請求項4】
前記ラベル付与部は、前記設定済対話データの前記項目名が前記設定済対話データと異なる他の設定済対話データの前記項目名と同じである場合に重複情報を含む前記階層化ラベルを前記設定済対話データに付与可能であり、
前記変換部は、前記重複情報を用いて前記チャットシナリオを得ることが可能である、請求項2又は3に記載のシステム。
【請求項5】
前記ラベル付与部は、前記設定済対話データの直上の階層に相当する直上階層化対話データの前記階層化ラベルと前記設定済対話データを識別可能な情報とを含む前記階層化ラベルを前記設定済対話データに付与可能であり、
前記設定部は、前記直上階層化対話データの前記階層情報と前記項目名とを用いて前記階層情報を前記階層化対話データに設定可能である、請求項2から請求項4のいずれか1項に記載のシステム。
【請求項6】
前記学習データ作成部は、前記学習データに対応する前記回答を含む前記設定済対話データの上位階層にある前記設定済対話データのいずれかに前記学習データを付与可能である、請求項1から請求項5のいずれか1項に記載のシステム。
【請求項7】
前記グループ化部は、
前記質問から1以上の単語を抽出可能な抽出部と、
前記1以上の単語のうち、所定の単語リストに含まれる1以上の所定単語のいずれでもない1以上の特定単語を含む特定単語リストを生成可能な特定単語リスト生成部と、
前記質問が含む前記1以上の特定単語に基づいて前記質問に対応する前記対話データをグループ分けして前記グループを生成可能なグループ分け部と、
を有する、請求項1から請求項6のいずれか1項に記載のシステム。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自動応答プログラム構築システムに関する。
【背景技術】
【0002】
チャット及びSNS(ソーシャルネットワーキングサービス)等によって例示される、ユーザ間でメッセージをやり取りするメッセージサービスの普及に伴い、このメッセージサービス上で動作し、テキスト及び/又は音声を通じて会話を自動的に行う自動応答プログラムであるチャットボットが普及している。
【0003】
チャットボットは、ユーザが入力したメッセージに合う予め用意された応答を出力するように動作する。このようなチャットボットは、例えば、企業及び店舗等によって例示されるチャットボットの運用者が運用する、広告用または商業用に割り当てられたメッセンジャーサービスアカウントによって運用される。チャットボットを用いることにより、ユーザは、自然なメッセージのやり取りを通じて種々のサービスを利用したり、チャットボットの支援を受けて所定の作業を行ったりすることができる。
【0004】
ユーザとチャットボットの対話の流れをスムーズに行うためのチャットシナリオにしたがって動作するようチャットボットを構成することにより、チャットボットは、よりいっそう自然なメッセージのやり取りを実現できる。しかし、チャットボットを運用する運用者の意図に沿ったチャットシナリオを生成するには、多大な労力を要し得る。したがって、チャットシナリオを効率的に生成する手段が求められている。
【0005】
チャットシナリオを効率的に生成する手段に関し、特許文献1は、ユーザ入力に基づいてチャットシナリオを生成するための外部システムからチャットシナリオ作成用データを取得し、当該チャットシナリオ作成用データに該当する第1の定義構造を用いて処理することで、取得したチャットシナリオ作成用データを第2の定義構造に変換し、第2の定義構造をプログラムとして実装することで取得したチャットシナリオ作成用データに基づいたチャットシナリオを動的に生成可能なチャットボット制御装置を開示している。
【0006】
特許文献1の発明によると、チャットセッションにおけるユーザ入力に応じて、当該ユーザに対応するための適切なチャットシナリオに必要なチャットシナリオ作成用データを外部システムから取得し、チャットシナリオを動的に生成することが可能なチャットボットを提供し得る。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2021-117690号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、チャットシナリオに関し、対話を繰り返すことで対話のトピックをより詳細に限定するよう階層化されたチャットシナリオがある。階層化されたチャットシナリオとして、例えば、「会社について教えてください。」というユーザ入力に対して「会社の何を知りたいですか。」という出力を行い、「会社の沿革について教えてください。」「会社の組織について教えてください。」等のより詳細なトピックを指定するユーザ入力を促すチャットシナリオがある。階層化されたチャットシナリオでは、ユーザ入力を受けてより詳細なトピックを指定するユーザ入力を促すことにより、対話を繰り返すことで対話のトピックをより詳細に限定し、ユーザが求める応答を効率的に出力することを見込みうる。
【0009】
したがって、階層化されたチャットシナリオを効率的に生成できれば、対話を繰り返すことで対話のトピックをより詳細に限定し、ユーザが求める応答を出力するチャットボットをより効率的に構築できる。
【0010】
しかしながら、特許文献1の技術は、チャットセッションにおけるユーザ入力に応じて、当該ユーザに対応するための適切なチャットシナリオに必要なチャットシナリオ作成用データを外部システムから取得し、チャットシナリオを動的に生成することが可能であるにとどまり、階層化されたチャットシナリオを効率的に生成する点において、さらなる改良の余地がある。
【0011】
また、特許文献1は、適切なチャットシナリオに必要なチャットシナリオ作成用データを外部システムから取得し得るにとどまり、チャットシナリオ作成用データを容易に生成する点においても、さらなる改良の余地がある。
【0012】
本発明は、上述のような従来技術の問題点を解決すべくなされたものであり、対話データから階層化されたチャットシナリオ作成用データを容易に生成することと、階層化されたチャットシナリオ作成用データに基づく階層化されたチャットシナリオに沿った対話を実現可能な自動応答プログラムを効率的に構築可能とすることと、を支援可能な手段を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明者らは、上記課題を解決するために鋭意検討した結果、対話の分類及び/又は質問を用いて対話データをグループ分けし、分類及びグループを用いて対話データを階層化し、階層化した対話データに項目名及び階層情報を設定し、設定した対話データの少なくとも一部に学習データを付与し、階層情報を設定等した対話データを変換してチャットシナリオを得ることで上記課題を解決できることを見出し、本発明を完成させるに至った。具体的に、本発明は以下のものを提供する。
【0014】
第1の特徴に係る発明は、対話の分類、前記対話における質問、及び前記質問に対する回答を含む2以上の対話データの少なくとも一部を前記分類及び/又は前記質問を用いてグループ分けして1以上のグループを得ることが可能なグループ化部と、前記分類及び前記グループを用いて、前記対話データを階層化した階層化対話データを得ることが可能な階層化部と、前記対話の項目名及び前記対話の階層情報を前記階層化対話データに設定して設定済対話データを得ることが可能な設定部と、前記設定済対話データの少なくとも一部について、前記対話に関する学習データを作成して前記設定済対話データに付与可能な学習データ作成部と、前記設定済対話データを変換して、前記質問に対して前記階層情報に応じた階層化回答を行う対話のチャットシナリオを得ることが可能な変換部と、前記質問を受信した場合に前記対話の階層に応じて前記階層化回答を出力する自動応答プログラムを、前記チャットシナリオを用いて構築可能な構築部と、を備える、自動応答プログラム構築システムを提供する。
【0015】
自動応答プログラムの対話の流れを定めるチャットシナリオが対話を繰り返すことで対話のトピックをより詳細に限定するよう階層化されたチャットシナリオであれば、自動応答プログラムの利用者が必要な情報に効率よく到達する可能性を高め得る。
【0016】
第1の特徴に係る発明は、グループ化部が対話の分類及び質問を用いて対話データをグループ分け可能であることにより、類似の質問を有する対話データが同じグループとなるようグループ分けされ得る。そして、階層化部が分類及びグループを用いて対話データを階層化可能であることにより、類似の質問を同じ階層にまとめて、階層を進むにつれて対話のトピックがより詳細になるよう対話データが階層化され得る。
【0017】
第1の特徴に係る発明は、設定部が項目名及び階層情報を設定可能であるため、設定された項目名及び階層情報により、階層化対話データの階層化が適切であるかの判別が容易となる。これにより、より適切に階層化されたチャットシナリオ作成用データの生成が容易となる。また、設定部が項目名及び階層情報を設定可能であるため、設定された項目名及び階層情報により、チャットシナリオに新たな対話の流れを追加することが容易となる。
【0018】
第1の特徴に係る発明は、学習データ作成部が学習データを作成して付与可能であるため、対話データだけでなく、対話に関する学習データをも用いたチャットシナリオ作成用データが生成され得る。これにより、自動応答プログラムの運用を通して蓄積された学習データを活用した対話が実現され得る。
【0019】
第1の特徴に係る発明は、階層化され、階層情報等が設定された設定済対話データをチャットシナリオ作成用データとして用い、変換部が当該チャットシナリオ作成用データを変換するため、質問に対して階層情報に応じた階層化回答を行う対話のチャットシナリオ(階層化されたチャットシナリオ)を得ることができる。そして、構築部は、階層化されたチャットシナリオを用いて、階層化された対話を実現可能な自動応答プログラムを構築できる。
【0020】
したがって、第1の特徴に係る発明は、対話データから階層化されたチャットシナリオ作成用データを容易に生成することと、階層化されたチャットシナリオ作成用データに基づく階層化されたチャットシナリオに沿った対話を実現可能な自動応答プログラムを効率的に構築可能とすることと、を支援可能な自動応答プログラム構築システムを提供できる。
【0021】
第2の特徴に係る発明は、第1の特徴に係る発明であって、前記設定済対話データの上位階層に相当する前記設定済対話データのすべてを識別可能な階層化ラベルを前記設定済対話データに付与可能なラベル付与部をさらに備え、前記ラベル付与部は、前記設定済対話データが最下位の階層に相当する場合に最下位階層情報を含む前記階層化ラベルを付与可能である、システムを提供する。
【0022】
第2の特徴に係る発明は、ラベル付与部が階層化ラベルを付与することにより、階層化ラベルを用いて対話の階層を容易に把握することを支援できる。これにより、新たな対話の流れをチャットシナリオ作成用データの適切な階層に追加することがよりいっそう容易に行われ得る。
【0023】
また、第2の特徴に係る発明は、ラベル付与部が最下位の階層の対話データの階層化ラベルに最下位階層情報を付与することにより、トピックが十分に詳細化され、階層化されたチャットシナリオ作成用データにおいて対話を終えるタイミングを把握することを支援できる。これにより、十分に詳細化されたトピックに応じた回答を行うチャットシナリオがよりいっそう容易に生成され得る。
【0024】
したがって、第2の特徴に係る発明は、対話データから階層化されたチャットシナリオ作成用データを容易に生成することと、階層化されたチャットシナリオ作成用データに基づく階層化されたチャットシナリオに沿った対話を実現可能な自動応答プログラムを効率的に構築可能とすることと、を支援可能な自動応答プログラム構築システムを提供できる。
【0025】
第3の特徴に係る発明は、第2の特徴に係る発明であって、前記階層化部は、前記階層化対話データの直下の階層に相当するいずれかの階層化対話データが最下位の階層に相当する場合に、前記直下の階層に相当する他の階層化対話データのすべてが最下位の階層に相当するよう前記階層化対話データを得ることが可能である、システムを提供する。
【0026】
第3の特徴に係る発明は、最下位の階層に相当する階層化対話データと同じ階層に相当する階層化対話データがすべて最下位の階層に相当する階層化対話データとなるため、最下位の階層に相当する階層化対話データの判別を容易とし得る。これにより、対話を終わらせる対話データをチャットシナリオ作成用データの最下位の階層に追加することが容易に行われ得る。また、対話を終わらせない対話データをチャットシナリオ作成用データの最下位の階層に相当しない階層に追加することが容易に行われ得る。
【0027】
したがって、第3の特徴に係る発明は、対話データから階層化されたチャットシナリオ作成用データを容易に生成することと、階層化されたチャットシナリオ作成用データに基づく階層化されたチャットシナリオに沿った対話を実現可能な自動応答プログラムを効率的に構築可能とすることと、を支援可能な自動応答プログラム構築システムを提供できる。
【0028】
第4の特徴に係る発明は、第2又は第3の特徴に係る発明であって、前記ラベル付与部は、前記設定済対話データの前記項目名が前記設定済対話データと異なる他の設定済対話データの前記項目名と同じである場合に重複情報を含む前記階層化ラベルを前記設定済対話データに付与可能であり、前記変換部は、前記重複情報を用いて前記チャットシナリオを得ることが可能である、システムを提供する。
【0029】
チャットシナリオにおいて対話の内容が重複した複数の流れがあると、チャットシナリオ作成用データを修正等するときに修正漏れが生じるリスクが高まり得る。
【0030】
第4の特徴に係る発明は、重複情報を含む階層化ラベルが付与されるため、変換部において対話の内容が重複した複数の流れを含まないようチャットシナリオを変換できる。これにより、対話の内容が重複した複数の流れを含むチャットシナリオの生成を防ぎ、修正漏れ等のリスクを低減できる。また、第4の特徴に係る発明は、ラベル付与部が重複情報を含む階層化ラベルを付与するため、チャットシナリオ作成用データにおいて、対話の内容が重複した複数の流れの発見を容易とし得る。
【0031】
したがって、第4の特徴に係る発明は、対話データから階層化されたチャットシナリオ作成用データを容易に生成することと、階層化されたチャットシナリオ作成用データに基づく階層化されたチャットシナリオに沿った対話を実現可能な自動応答プログラムを効率的に構築可能とすることと、を支援可能な自動応答プログラム構築システムを提供できる。
【0032】
第5の特徴に係る発明は、第2の特徴から第4の特徴のいずれかに係る発明であって、前記ラベル付与部は、前記設定済対話データの直上の階層に相当する直上階層化対話データの前記階層化ラベルと前記設定済対話データを識別可能な情報とを含む前記階層化ラベルを前記設定済対話データに付与可能であり、前記設定部は、前記直上階層化対話データの前記階層情報と前記項目名とを用いて前記階層情報を前記階層化対話データに設定可能である、システムを提供する。
【0033】
第5の特徴に係る発明は、直上の階層に相当する対話データとの関係を容易に識別可能な階層化ラベルを設定できる。これにより、対話データと当該対話データの直上の階層に相当する対話データとの関係が判別しやすくなる。したがって、新たな対話の流れをチャットシナリオ作成用データの適切な階層に追加することがよりいっそう容易に行われ得る。
【0034】
したがって、第5の特徴に係る発明は、対話データから階層化されたチャットシナリオ作成用データを容易に生成することと、階層化されたチャットシナリオ作成用データに基づく階層化されたチャットシナリオに沿った対話を実現可能な自動応答プログラムを効率的に構築可能とすることと、を支援可能な自動応答プログラム構築システムを提供できる。
【0035】
第6の特徴に係る発明は、第1の特徴から第5の特徴のいずれかに係る発明であって、前記学習データ作成部は、前記学習データに対応する前記回答を含む前記設定済対話データの上位階層にある前記設定済対話データのいずれかに前記学習データを付与可能である、システムを提供する。
【0036】
学習データは、様々な対話を含みうる。したがって、学習データに相当する対話データを判別することは、困難を伴い得る。これにより、学習データが適切な対話データに付与されず、学習データに相当する質問に対して不自然な回答を行うチャットシナリオが生成され得る。
【0037】
第6の特徴に係る発明は、学習データ作成部が学習データに対応する回答を含む設定済対話データの上位階層にある設定済対話データに学習データを付与する。これにより、対話のトピックがより広範なトピックである上位階層に学習データが付与される。したがって、学習データが適切な対話データに付与されないリスクを軽減し得る。よって、学習データに相当する質問に対して不自然な回答を行うチャットシナリオが生成されるリスクを軽減し得る。
【0038】
したがって、第6の特徴に係る発明は、対話データから階層化されたチャットシナリオ作成用データを容易に生成することと、階層化されたチャットシナリオ作成用データに基づく階層化されたチャットシナリオに沿った対話を実現可能な自動応答プログラムを効率的に構築可能とすることと、を支援可能な自動応答プログラム構築システムを提供できる。
【0039】
第7の特徴に係る発明は、第1の特徴から第6の特徴のいずれかに係る発明であって、前記グループ化部は、前記質問から1以上の単語を抽出可能な抽出部と、前記1以上の単語のうち、所定の単語リストに含まれる1以上の所定単語のいずれでもない1以上の特定単語を含む特定単語リストを生成可能な特定単語リスト生成部と、前記質問が含む前記1以上の特定単語に基づいて前記質問に対応する前記対話データをグループ分けして前記グループを生成可能なグループ分け部と、を含む、システムを提供する。
【0040】
複数の質問が同一単語を含む場合、これらの質問は、関連が深いと考えられる。また、複数の質問が同一単語を含まない場合、これらの質問は、関連が深くないと考えられる。
【0041】
第7の特徴に係る発明は、グループ分け部が質問に含まれる特定単語を用いてグループ分けする。これにより、グループ分け部は、対話データ間の関連を反映するよう対話データをグループ化できる。このとき、所定の単語リストに含まれる所定単語をグループ分けに用いないため、助詞、接続詞、助動詞等によって例示される質問の関連との相関が小さい所定単語によって不適切なグループ分けが行われるリスクを軽減し得る。
【0042】
したがって、第7の特徴に係る発明は、対話データから階層化されたチャットシナリオ作成用データを容易に生成することと、階層化されたチャットシナリオ作成用データに基づく階層化されたチャットシナリオに沿った対話を実現可能な自動応答プログラムを効率的に構築可能とすることと、を支援可能な自動応答プログラム構築システムを提供できる。
【発明の効果】
【0043】
本発明によれば、対話データから階層化されたチャットシナリオ作成用データを容易に生成することと、階層化されたチャットシナリオ作成用データに基づく階層化されたチャットシナリオに沿った対話を実現可能な自動応答プログラムを効率的に構築可能とすることと、を支援可能な自動応答プログラム構築システムを提供できる。
【図面の簡単な説明】
【0044】
図1図1は、実施形態の自動応答プログラム構築システム1のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
図2図2は、対話データテーブル121の一例である。
図3図3は、階層化対話データテーブル122の一例である。
図4図4は、チャットシナリオテーブル123の一例である。
図5図5は、所定単語リスト124の一例である。
図6図6は、実施形態の自動応答プログラム構築システム1において実行される自動応答プログラム構築処理の好ましい流れの一例を示すメインフローチャートである。
図7図7は、図6のステップS1で実行されるグループ分け処理の好ましい流れの一例を示すフローチャートである。
図8図8は、実施形態の自動応答プログラム構築システムSによって構築された自動応答プログラムによる対話の流れの一例を示す図である。
【発明を実施するための形態】
【0045】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【0046】
<自動応答プログラム構築システム1>
図1は、実施形態の自動応答プログラム構築システム1のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。自動応答プログラム構築システム1は、ネットワークNを介して端末Tと通信可能な自動応答装置Aに、階層化されたチャットシナリオに沿った自動応答を実行させることが可能な自動応答プログラムを構築する。
【0047】
自動応答プログラム構築システム1(以下、単に「システム」とも称する。)の構成は、1以上のコンピュータ(例えば、パーソナルコンピュータ、ワークステーション等の据え置き型のコンピュータ等。)を含むものであれば、特に限定されない。
【0048】
以下、自動応答プログラム構築システム1が制御部11、記憶部12、入力部13、及び出力部14を備える1つのコンピュータを含んで構成されているものとして説明するが、自動応答プログラム構築システム1が当該コンピュータに加えて、1以上の別のコンピュータ等を含んで構成されている場合も同様である。
【0049】
また、必須の態様ではないが、自動応答プログラム構築システム1は、互いにネットワークNを介して通信可能である自動応答装置A及び端末Tを含んで構成されていることが好ましい。これにより、自動応答プログラム構築システム1を利用する利用者は、構築した自動応答プログラムを自動応答装置Aで実行し、端末Tを介して自動応答プログラムが所望の対話を実現しているか確認できる。
【0050】
〔制御部11〕
制御部11は、CPU(Central Processing Unit)、RAM(Random Access Memory)、及びROM(Read Only Memory)等を備える。
【0051】
制御部11は、記憶部12、入力部13、及び/又は出力部14等と必要に応じて協働することで、自動応答プログラム構築システム1におけるソフトウェア構成の要素である、グループ化部111、階層化部112、設定部113、学習データ作成部114、変換部115、構築部116、ラベル付与部117等を実現する。必須の態様ではないが、グループ化部111は、抽出部111a、特定単語リスト生成部111b、グループ分け部111cを含むよう実現されてもよい。
【0052】
〔記憶部12〕
記憶部12は、データ及び/又はファイルが記憶される装置であって、ハードディスク、半導体メモリ、記録媒体、及びメモリカード等によるデータのストレージ部を有する。記憶部12は、ネットワークNを介してNAS(Network Attached Storage)、SAN(Storage Area Network)、クラウドストレージ、ファイルサーバ及び/又は分散ファイルシステム等の記憶装置又は記憶システムとの接続を可能にする仕組みを有してもよい。
【0053】
記憶部12には、マイクロコンピュータで実行される制御プログラム、対話データテーブル121、階層化対話データテーブル122、チャットシナリオテーブル123、所定単語リスト124等が記憶されている。
【0054】
(対話データテーブル121)
図2は、対話データテーブル121の一例である。対話データテーブル121は、対話の分類、前記対話における質問、及び前記質問に対する回答を関連付けて含む対話データを格納する。必須の態様ではないが、対話データは、対話データを識別可能な対話データIDと関連付けて格納されることが好ましい。これにより、自動応答プログラム構築システム1は、対話データIDを用いて対話データを格納及び/又は取得できる。
【0055】
分類は、特に限定されず、例えば、対話のトピックを示す文字列等でよい。質問及び回答は、文字列を含むものであれば、特に限定されない。
【0056】
対話データテーブル121のデータフォーマットは、特に限定されない。当該データフォーマットは、例えば、所定の区切り文字(例えば、改行文字等)で対話データを区切り、特定の区切り文字(例えば、タブ文字、カンマ等)で分類、質問、及び回答を区切ったテキストを格納可能なファイルのフォーマット、分類、質問、及び回答をセルに格納可能な表計算ソフトのデータシートのフォーマット等でよい。
【0057】
なかでも、対話データテーブル121のデータフォーマットは、分類、質問、及び回答をセルに格納可能な表計算ソフトのデータシートのフォーマットを含むことが好ましい。これにより、自動応答プログラム構築システム1及び/又はシステムを利用する利用者は、表計算ソフトを用いて対話データテーブル121を容易に編集できる。よって、自動応答プログラム構築システム1及び/又はシステムを利用する利用者は、対話データテーブル121を容易に生成することができる。したがって、自動応答プログラム構築システム1は、対話データから階層化されたチャットシナリオ作成用データを作成することを容易とし得る。
【0058】
図2の対話データID「C0001」と関連付けられた対話データは、以下の情報を含んでいる:
対話の分類「会社概要」、
対話における質問「会社の沿革は?」、及び、
質問に対する回答「会社の沿革ページをどうぞ(URL)」。
【0059】
対話データが上述の情報を含むことにより、自動応答プログラム構築システム1は、「会社概要」に分類される対話の流れである場合に、質問「会社の沿革は?」が入力されたことに応じて回答「会社の沿革ページをどうぞ(URL)」を出力する自動応答プログラムのチャットシナリオを生成し得る。
【0060】
(階層化対話データテーブル122)
図3は、階層化対話データテーブル122の一例である。階層化対話データテーブル122は、少なくとも回答を含む回答データを階層化した階層化対話データであって、項目名及び階層情報を設定された設定済対話データを格納する。
【0061】
階層の数は、2以上であれば、特に限定されない。階層の数が2以上であることにより、複数の階層に階層化された階層化対話データを格納できる。
【0062】
回答は、特に限定されず、対話データテーブル121に格納される回答と同様でよい。項目名は、特に限定されない。
【0063】
階層情報(以下、「イベント」とも称する。)は、対話の階層を示す情報であれば、特に限定されない。
【0064】
階層情報は、設定済対話データの直上の階層に相当する直上階層化対話データの階層情報と設定済対話データの項目名とを用いて生成された階層情報であることが好ましい。これにより、設定済対話データと当該設定済対話データの直上の階層に相当する設定済対話データとの関係が判別しやすくなる。したがって、新たな対話の流れをチャットシナリオ作成用データの適切な階層に追加することがよりいっそう容易に行われ得る。
【0065】
設定済対話データは、学習データを格納可能であることが好ましい。学習データは、例えば、自動応答プログラムの運用を通して蓄積された1以上の質問を含む学習データでよい。階層化対話データが学習データを格納可能であることにより、自動応答プログラム構築システム1は、対話に関する学習データをも用いたチャットシナリオ作成用データを生成し得る。これにより、例えば、自動応答プログラムの運用を通して蓄積された学習データを活用した対話が実現され得る。
【0066】
設定済対話データを格納する方法は、特に限定されず、例えば、設定済対話データのそれぞれを格納する位置によって階層関係を示す方法等でよい。設定済対話データのそれぞれを格納する位置によって階層関係を示す方法として、例えば、上位階層の階層化対話データからみて所定の位置関係(例えば、格納されているデータを平面的に表示した場合における右方向及び右下方向)に相当する位置に下位階層の階層化対話データを格納する方法、木構造を表現可能なデータ構造を用いる方法等が挙げられる。
【0067】
階層化対話データテーブル122のデータフォーマットは、特に限定されない。データフォーマットは、例えば、項目名、イベント、及び回答をセルに格納可能な表計算ソフトのデータシートのフォーマット等でよい。
【0068】
なかでも、階層化対話データテーブル122のデータフォーマットは、項目名、イベント、及び回答をセルに格納可能な表計算ソフトのデータシートのフォーマットを含むことが好ましい。これにより、自動応答プログラム構築システム1及び/又はシステムを利用する利用者は、表計算ソフトを用いて階層化対話データテーブル122を容易に編集できる。また、自動応答プログラム構築システム1及び/又はシステムを利用する利用者は、学習データを表計算ソフトのデータシートにおけるコメントの態様でイベント等に付与し得る。よって、自動応答プログラム構築システム1及び/又はシステムを利用する利用者は、階層化対話データテーブル122を容易に生成することができる。したがって、自動応答プログラム構築システム1は、対話データから階層化されたチャットシナリオ作成用データを作成することを容易とし得る。
【0069】
必須の態様ではないが、階層化対話データテーブル122が格納する設定済対話データは、設定済対話データの上位階層に相当する設定済対話データのすべてを識別可能な階層化ラベルを付与されていることが好ましい。
【0070】
設定済対話データの上位階層に相当する設定済対話データのすべてを識別可能な階層化ラベルは、特に限定されない。このような階層化ラベルとして、例えば、階層化ラベルを付与する設定済対話データの直上の階層に相当する直上設定済対話データの階層化ラベルの後ろに当該設定済対話データを識別するための1文字を付加したものが挙げられる。このような階層化ラベルを付与することにより、階層化ラベルの比較によって階層関係が容易に把握され得る。
【0071】
階層化ラベルは、設定済対話データが最下位の階層に相当する場合に最下位階層情報を含むよう設定されることが好ましい。これにより、自動応答プログラム構築システム1は、トピックが十分に詳細化され、階層化されたチャットシナリオ作成用データにおいて対話を終えるタイミングを把握することを支援できる。これにより、十分に詳細化されたトピックに応じた回答を行うチャットシナリオがよりいっそう容易に生成され得る。
【0072】
最下位階層情報は、特に限定されず、例えば、あらかじめ定められた最下位階層文字(例えば、半角英字「z」。)等でよい。階層化ラベルが階層化ラベルを付与する設定済対話データの直上の階層に相当する直上設定済対話データの階層化ラベルの後ろに当該設定済対話データを識別するための1文字を付加したものである場合、最下位階層文字が階層化ラベルの末尾に付与されることが好ましい。これにより、階層化ラベルから最下位階層であることが容易に把握され得る。
【0073】
階層化ラベルは、設定済対話データの項目名が設定済対話データと異なる他の設定済対話データの項目名と同じである場合に重複情報を含むよう設定されることが好ましい。重複情報は、特に限定されず、例えば、あらかじめ定められた重複情報文字(例えば、半角記号「#」。)等でよい。
【0074】
チャットシナリオにおいて対話の内容が重複した複数の流れがあると、チャットシナリオ作成用データを修正等するときに修正漏れが生じるリスクが高まり得る。
【0075】
設定済対話データの項目名が設定済対話データと異なる他の設定済対話データの項目名と同じである場合に重複情報を含むよう設定されることにより、重複情報を含む階層化ラベルが付与されるため、変換部において対話の内容が重複した複数の流れを含まないようチャットシナリオが変換され得る。これにより、自動応答プログラム構築システム1は、対話の内容が重複した複数の流れを含むチャットシナリオの生成を防ぎ、修正漏れ等のリスクを低減できる。また、設定済対話データの項目名が設定済対話データと異なる他の設定済対話データの項目名と同じである場合に重複情報を含むよう設定されることにより、ラベル付与部が重複情報を含む階層化ラベルを付与するため、チャットシナリオ作成用データにおいて、対話の内容が重複した複数の流れが容易に発見され得る。
【0076】
階層化ラベルを付与する方法は、特に限定されず、例えば、項目名に階層化ラベルを付与する方法でよい。
【0077】
項目名に階層化ラベルを付与する方法で階層化ラベルを付与する場合、項目名が指定の区切り文字(例えば、空白文字等)で区切られた階層化ラベルを含むよう、階層化ラベルを付与することが好ましい。これにより、項目名を参照することによって、階層化ラベルが判別される。
【0078】
図3に示す階層化対話データテーブル122に格納された項目名「a 会社概要」を有する第1階層化対話データは、「第1階層」の下方に格納されており、以下の情報を含む:
対話の項目名「a 会社概要」、
対話の階層を示すイベント(階層情報)「corp」、
対話に関する学習データ「会社について? 創立はいつ? どんな部署が?」、
対話に関する回答「会社のなにについてですか?」。
【0079】
また、図3に示す階層化対話データテーブル122に格納された項目名「aaz 会社沿革」を有する第2階層化対話データは、「第2階層」の下方に格納されており、また、第1階層化対話データの右方向に格納されており、以下の情報を含む:
対話の項目名「aaz 会社沿革」、
対話の階層を示すイベント(階層情報)「corp-hist」、
対話に関する学習データ(図示せず)、
対話に関する回答「会社の沿革ページをどうぞ(URL)」。
【0080】
図3に示す階層化対話データテーブル122が上述のように第1階層化対話データ及び第2階層化対話データを格納することにより、格納されているデータを平面的に表示した場合における階層構造が容易に把握され得る。
【0081】
図3に示す例において、第1階層化対話データは、その項目名に空白文字で区切られた階層化ラベル「a」を含む。また、第2階層化対話データは、その項目名に空白文字で区切られた階層化ラベル「aaz」を含む。これにより、階層化ラベル「aaz」の「aa」の部分によって第2階層化対話データが階層化ラベル「a」を有する第1階層化対話データの下位の階層に相当する階層化対話データであることがわかる。また、これにより、階層化ラベル「aaz」が含む重複情報「z」によって第2階層化対話データが最下位の階層に相当する階層化対話データであることが容易に把握され得る。
【0082】
図3に示す例において、第1階層化対話データは、自動応答プログラムの運用を通して蓄積された学習データ「会社について? 創立はいつ? どんな部署が?」を含んでいる。これにより、自動応答プログラム構築システム1は、上述の学習データをも用いたチャットシナリオ作成用データを生成し得る。このようなチャットシナリオ作成用データとして、例えば、「会社について?」という質問に対してイベント(階層情報)「corp」に応じた階層化回答「会社のなにについてですか?」を行う対話のチャットシナリオを生成可能なデータが挙げられる。
【0083】
(チャットシナリオテーブル123)
図4は、チャットシナリオテーブル123の一例である。チャットシナリオテーブル123は、質問、イベント(階層情報)、回答等を含むチャットシナリオを格納する。必須の態様ではないが、チャットシナリオは、チャットシナリオを識別可能なチャットシナリオIDと関連付けて格納されることが好ましい。これにより、自動応答プログラム構築システム1は、チャットシナリオIDを用いてチャットシナリオを格納及び/又は取得できる。
【0084】
チャットシナリオテーブル123が質問、イベント(階層情報)、回答等を含むチャットシナリオを格納することにより、自動応答プログラム構築システム1は、質問に対して階層情報に応じた階層化回答を行う対話のチャットシナリオを用いて自動応答プログラムを構築することができる。
【0085】
図4のチャットシナリオID「S0001」と関連付けられたチャットシナリオは、以下の情報を含んでいる:
対話に関する質問「会社について?」、
対話の階層を示す階層情報であるイベント「corp」、及び、
質問に対する回答「会社のなにについてですか?」。
【0086】
チャットシナリオが上述の情報を含むことにより、自動応答プログラム構築システム1は、質問「会社について?」が入力された場合に、対話の階層「corp」に応じて回答「会社のなにについてですか?」を行う自動応答プログラムを構築できる。
【0087】
(所定単語リスト124)
図5は、所定単語リスト124の一例である。所定単語リスト124は、特定単語リスト生成部111bが特定単語リストを生成する場合に用いる所定単語を格納する。所定単語は、所定単語を識別可能な所定単語IDと関連付けて格納されることが好ましい。これにより、自動応答プログラム構築システム1は、所定単語IDを用いて所定単語を格納及び/又は取得できる。
【0088】
所定単語は、所定の単語及び/又は所定の語句を含むものであれば、特に限定されない。所定単語は、助詞、接続詞、助動詞等によって例示される質問の関連との相関が小さい単語を含むことが好ましい。これにより、自動応答プログラム構築システム1は、グループ分け部111cによるグループ分けを行う場合において、助詞、接続詞、助動詞等によって例示される質問の関連との相関が小さい所定単語によって不適切なグループ分けが行われるリスクを軽減し得る。
【0089】
図5に示す所定単語リスト124は、格助詞「に」「が」「の」、係助詞「は」等の所定単語を含んでいる。これにより、これらの所定単語が特定単語リストに含まれることによって不適切なグループ分けが行われるリスクを軽減し得る。
【0090】
〔入力部13〕
入力部13は、対話データ、階層化対話データ、設定済対話データ等に関する入力が可能であれば特に限定されず、キーボード及び音声入力等によって例示される文字入力手段、並びに、マウス、トラックボール、及びタッチパネル等によって例示される位置指定手段、ネットワークN等を介して外部の装置からデータを入力する通信手段、外付けのストレージ装置等からデータを取得して入力するデータ取得手段等の1以上を備えるものでよい。
【0091】
〔出力部14〕
出力部14は、設定済対話データ及びチャットシナリオを出力可能であれば特に限定されず、例えば、ブラウン管ディスプレイ、液晶ディスプレイ、及び有機ELディスプレイ等によって例示される従来技術の表示手段、ネットワークN等を介して外部の装置にデータを出力する通信手段、外付けのストレージ装置にデータを出力して格納するデータ格納手段等の1以上を備えるものでよい。
【0092】
出力部14は、通信手段を備えることが好ましい。これにより、自動応答プログラム構築システム1は、ネットワークNで通信可能な自動応答装置Aにチャットシナリオを提供することを容易に行い得る。
【0093】
出力部14は、データ格納手段を備えることが好ましい。これにより、自動応答プログラム構築システム1は、外付けのストレージ装置を介して自動応答装置Aにチャットシナリオを提供することを容易に行い得る。
【0094】
〔通信部〕
自動応答プログラム構築システム1が複数のコンピュータを含んで構成される場合、自動応答プログラム構築システム1は、当該複数のコンピュータ間の通信を可能とする通信部(図示せず)を備えることが好ましい。これにより、複数のコンピュータを通信可能に構成し、複数のコンピュータが通信を介して協働して自動応答プログラム構築システム1を実現するようにできる。
【0095】
〔自動応答装置A〕
自動応答装置Aは、自動応答プログラムを実行可能であれば、特に限定されない。自動応答装置Aは、例えば、サーバ装置等によって例示される据え置き型のコンピュータ、クラウドサーバ等によって例示される、ネットワークN等を介して接続された複数のコンピュータ等でよい。
【0096】
〔ネットワークN〕
ネットワークNの種類は、自動応答装置Aと端末Tとを通信可能にするものであれば特に限定されず、例えば、パーソナルエリアネットワーク、ローカルエリアネットワーク、イントラネット、エクストラネット、インターネット、Wi-Fiネットワーク、携帯電話ネットワーク、あるいはこれらのネットワークを複数組み合わせたネットワーク等が挙げられる。
【0097】
〔端末T〕
端末Tは、ネットワークNを介して自動応答装置Aに質問を送信可能であり、ネットワークNを介して自動応答装置Aから回答を受信可能であれば、特に限定されない。端末Tは、例えば、スマートフォン及びタブレット端末によって例示される携帯端末、パーソナルコンピュータ等によって例示される据え置き端末等でよい。
【0098】
〔自動応答プログラム構築処理のメインフローチャート〕
図6は、実施形態の自動応答プログラム構築システム1において実行される自動応答プログラム構築処理の好ましい流れの一例を示すメインフローチャートである。以下、図6を用いて、自動応答プログラム構築システム1において実行される自動応答プログラム構築処理の好ましい態様の一例が説明される。
【0099】
以下では、自動応答プログラム構築処理の流れに含まれる各ステップが1つのコンピュータで実行されるものとして説明するが、実施形態における自動応答プログラム構築処理の流れは、これに限定されない。実施形態における自動応答プログラム構築処理の流れに含まれる各ステップは、複数のコンピュータで実行されてもよく、一部のステップが人手によって実行されてもよい。
【0100】
自動応答プログラム構築処理の流れに含まれる各ステップが複数のコンピュータで実行されることにより、自動応答プログラム構築処理を並列に実行し、処理効率を高め得る。自動応答プログラム構築処理の流れに含まれる一部のステップが人手によって実行されることにより、例外的な状況が発生した場合であっても当該ステップを効果的に実行し得る。
【0101】
[ステップS1:グループ分け処理]
制御部11は、記憶部12と協働して、グループ化部111を実行し、対話データテーブル121に格納された対話データの少なくとも一部を前記分類及び/又は前記質問を用いてグループ分けして1以上のグループを得るグループ分け処理を行う(ステップS1、グループ化ステップ)。制御部11は、処理をステップS2に移す。ステップS1で実行されるグループ分け処理は、後に図7を用いて詳細に説明される。
【0102】
[ステップS2:階層化を要する対話データがあるか判別]
制御部11は、記憶部12と協働して階層化部112を実行し、階層化を要する対話データがあるか判別する処理を行う(ステップS2)。階層化を要する対話データがあるならば、制御部11は、処理をステップS3に移す。階層化を要する対話データがないならば、制御部11は、処理をステップS6に移す。
【0103】
[ステップS3:対話データを階層化]
制御部11は、記憶部12と協働して、階層化部112を実行し、対話データテーブル121に格納された対話データを、ステップS1で得た1以上のグループ及び対話データの分類を用いて階層化し、階層化された階層化対話データを階層化対話データテーブル122に格納する処理を行う(ステップS3、階層化ステップ)。制御部11は、処理をステップS4に移す。
【0104】
ステップS3において対話データを階層化する方法は、階層化対話データの直下の階層に相当するいずれかの階層化対話データが最下位の階層に相当する場合に、直下の階層に相当する他の階層化対話データのすべてが最下位の階層に相当するよう対話データを階層化する方法を含むことが好ましい。
【0105】
これにより、最下位の階層に相当する階層化対話データと同じ階層に相当する階層化対話データがすべて最下位の階層に相当する階層化対話データとなる。したがって、最下位の階層に相当する階層化対話データが一群にまとまった状態となり、容易に判別され得る。これにより、対話を終わらせる対話データをチャットシナリオ作成用データの最下位の階層に追加することが容易に行われ得る。また、対話を終わらせない対話データをチャットシナリオ作成用データの最下位の階層に相当しない階層に追加することが容易に行われ得る。
【0106】
ステップS3において対話データを階層化する方法は、階層化対話データ(親階層化対話データ)の直下の階層に相当するいずれかの階層化対話データが最下位の階層に相当する最下位階層化対話データである場合に、最下位階層化対話データと親階層化対話データとの間に「はい」「いいえ」を確認する質問を含む階層化対話データを挿入する手順を含む方法であることが好ましい。これにより、自動応答プログラム構築システム1は、親階層化対話データを、直下の階層に最下位の階層に相当する階層化対話データを含まない階層化対話データとし得る。
【0107】
ステップS1からS2の処理において、グループ化部111が対話の分類及び質問を用いて対話データをグループ分け可能であることにより、類似の質問を有する対話データが同じグループとなるようグループ分けされ得る。そして、ステップS3の処理において階層化部112が分類及びグループを用いて対話データを階層化可能であることにより、類似の質問を同じ階層にまとめて、階層を進むにつれて対話のトピックがより詳細になるよう対話データが階層化され得る。
【0108】
[ステップS4:項目名及び階層情報を設定]
制御部11は、記憶部12と協働して、設定部113を実行し、ステップS3で格納された階層化対話データに項目名及び階層情報を設定し、項目名及び階層情報が設定された設定済対話データを階層化対話データテーブル122に格納する処理を行う(ステップS4、設定ステップ)。制御部11は、処理をステップS5に移す。
【0109】
設定部113が項目名及び階層情報を設定可能であるため、設定された項目名及び階層情報により、階層化対話データの階層化が適切であるかの判別が容易となる。これにより、より適切に階層化されたチャットシナリオ作成用データの生成が容易となる。また、設定部113が項目名及び階層情報を設定可能であるため、設定された項目名及び階層情報により、チャットシナリオに新たな対話の流れを追加することが容易となる。
【0110】
ステップS4において設定される項目名は、特に限定されない。ステップS4において項目名を設定する方法は、特に限定されず、例えば、分類、質問、及び/又は回答を用いて項目名を設定する方法でよい。
【0111】
ステップS4において設定される階層情報は、対話の階層を示す情報であれば、特に限定されない。ステップS4において階層情報を設定する方法は、特に限定されない。
【0112】
階層情報は、1バイトの情報で表現可能な文字を1以上組み合わせた情報であることが好ましい。これにより、チャットシナリオのフォーマットが2バイト以上の情報を要する文字に対応していないフォーマットである場合でも、階層情報を含むチャットシナリオを容易に生成できる。
【0113】
ステップS4において階層情報を設定する方法は、例えば、設定済対話データの項目名を用いて階層情報を生成し、設定する方法を含む方法でよい。これにより、項目名と階層情報との関係が判別しやすくなる。したがって、新たな対話の流れをチャットシナリオ作成用データの適切な階層に追加することがよりいっそう容易に行われ得る。
【0114】
階層情報が1バイトの情報で表現可能な文字を1以上組み合わせた情報であり、かつ、ステップS4において階層情報を設定する方法が設定済対話データの項目名を用いて階層情報を生成し、設定する方法を含む場合、当該方法は、項目名を1バイトの情報で表現可能な文字を1以上組み合わせた情報に変換する方法を含むことが好ましい。変換する方法として、例えば、2バイト以上の情報を要する文字を含む文字列を機械翻訳する方法、2バイト以上の情報を要する文字を含む文字列をローマ字に変換する方法等が挙げられる。これにより、自動応答プログラム構築システム1は、設定済対話データの項目名を用いて階層情報を生成する場合であっても、1バイトの情報で表現可能な文字を1以上組み合わせた階層情報を生成できる。
【0115】
ステップS4において階層情報を設定する方法が設定済対話データの項目名を用いて階層情報を生成し、生成された階層情報を設定する方法を含む場合、当該方法は、設定済対話データの直上の階層に相当する直上階層化対話データの階層情報と設定済対話データの項目名とを用いて階層情報を生成し、生成された階層情報を設定する方法を含む方法であることが好ましい。これにより、設定済対話データと当該設定済対話データの直上の階層に相当する設定済対話データとの関係が判別しやすくなる。したがって、新たな対話の流れをチャットシナリオ作成用データの適切な階層に追加することがよりいっそう容易に行われ得る。
【0116】
設定済対話データの直上の階層に相当する直上階層化対話データの階層情報と設定済対話データの項目名とを用いて階層情報を生成し、生成された階層情報を設定する方法は、例えば、階層情報と項目名とを予め定められた階層情報区切り文字で区切る方法でよい。これにより、自動応答プログラム構築システム1及び/又は自動応答プログラム構築システム1を利用する利用者は、直上の階層に相当する設定済対話データとの関係をよりいっそう判別しやすくなる。
【0117】
必須の態様ではないが、自動応答プログラム構築処理は、ステップS5のラベル付与ステップを含むことが好ましい。
【0118】
[ステップS5:階層化ラベルを設定]
制御部11は、記憶部12と協働して、ラベル付与部117を実行し、ステップS4で格納された設定済対話データの上位階層に相当する設定済対話データのすべてを識別可能な階層化ラベルをステップS4で格納された設定済対話データに付与する処理を行う(ステップS5、ラベル付与ステップ)。制御部11は、処理をステップS2に移す。
【0119】
ラベル付与部117が階層化ラベルを付与することにより、階層化ラベルを用いて対話の階層を容易に把握することを支援できる。これにより、新たな対話の流れをチャットシナリオ作成用データの適切な階層に追加することがよりいっそう容易に行われ得る。
【0120】
ラベル付与部117は、ステップS4で格納された設定済対話データが最下位の階層に相当する場合に、最下位階層情報を含む階層化ラベルを当該設定済対話データに付与可能であることが好ましい。これにより、自動応答プログラム構築システム1は、トピックが十分に詳細化され、階層化されたチャットシナリオ作成用データにおいて対話を終えるタイミングを把握することを支援できる。これにより、十分に詳細化されたトピックに応じた回答を行うチャットシナリオがよりいっそう容易に生成され得る。
【0121】
最下位階層情報は、特に限定されず、例えば、最下位の階層に相当することを示す特定の最下位階層文字(例えば、半角英字「z」。)等でよい。最下位階層情報を含む階層化ラベルを設定する方法は、特に限定されず、例えば、上述の最下位階層文字を階層化ラベルの所定の位置(例えば、末尾。)に付与する方法を含む方法でよい。最下位階層情報を含む階層化ラベルを設定する方法が最下位階層文字を階層化ラベルの所定の位置に付与する方法を含むことにより、最下位階層情報の有無を容易に判別し得る。
【0122】
ラベル付与部117は、ステップS4で格納された設定済対話データの項目名が当該設定済対話データと異なる他の設定済対話データの項目名と同じである場合に重複情報を含む階層化ラベルを当該設定済対話データに付与可能であることが好ましい。
【0123】
チャットシナリオにおいて対話の内容が重複した複数の流れがあると、チャットシナリオ作成用データを修正等するときに修正漏れが生じるリスクが高まり得る。
【0124】
ラベル付与部117が重複情報を含む階層化ラベルを設定済対話データに付与可能であることにより、変換部115において対話の内容が重複した複数の流れを含まないようチャットシナリオを変換できる。これにより、対話の内容が重複した複数の流れを含むチャットシナリオの生成を防ぎ、修正漏れ等のリスクを低減できる。また、ラベル付与部117が重複情報を含む階層化ラベルを付与するため、チャットシナリオ作成用データにおいて、対話の内容が重複した複数の流れの発見を容易とし得る。
【0125】
重複情報は、特に限定されず、例えば、重複を示す特定の重複文字(例えば、半角記号「#」。)等でよい。重複情報を含む階層化ラベルを設定する方法は、特に限定されず、例えば、上述の重複文字を階層化ラベルの所定の位置(例えば、先頭。)に付与する方法を含む方法でよい。重複情報を含む階層化ラベルを設定する方法が重複文字を階層化ラベルの所定の位置に付与する方法を含むことにより、重複情報の有無を容易に判別し得る。
【0126】
[ステップS6:学習データの付与を要する設定済対話データがあるか判別]
制御部11は、記憶部12と協働して学習データ作成部114を実行し、学習データの付与を要する設定済対話データが階層化対話データテーブル122に格納されているか判別する処理を行う(ステップS6)。学習データの付与を要する設定済対話データが格納されているならば、制御部11は、処理をステップS7に移す。学習データの付与を要する設定済対話データが格納されていないならば、制御部11は、処理をステップS8に移す。
【0127】
[ステップS7:学習データを付与]
制御部11は、記憶部12と協働して、学習データ作成部114を実行し、ステップS6で学習データの付与を要すると判別された設定済対話データに応じた学習データを作成し、作成した学習データを付与した当該設定済対話データを階層化対話データテーブル122に格納する処理を行う(ステップS7、学習データ作成ステップ)。制御部11は、処理をステップS6に移す。
【0128】
ステップS7で実行される学習データ作成ステップにより、自動応答プログラム構築システム1は、対話データだけでなく、対話に関する学習データをも用いたチャットシナリオ作成用データを生成し得る。これにより、自動応答プログラムの運用を通して蓄積された学習データを活用した対話が実現され得る。
【0129】
学習データを作成する方法は、特に限定されず、例えば、自動応答装置Aの運用中に行われた対話の対話ログを用いて学習データを作成する方法等でよい。
【0130】
必須の態様ではないが、学習データ作成部114は、学習データに対応する回答を含む設定済対話データの上位階層にある設定済対話データのいずれかに作成した学習データを付与可能であることが好ましい。
【0131】
学習データは、様々な対話(例えば、日常会話等によって例示される自由発話を含む対話。)を含みうる。自由発話と適切な回答との対応付けは、困難を伴い得る。したがって、学習データに相当する対話データを判別することは、困難を伴い得る。これにより、学習データが適切な対話データに付与されず、学習データに相当する質問に対して不自然な回答を行うチャットシナリオが生成され得る。
【0132】
学習データに対応する回答を含む設定済対話データの上位階層にある設定済対話データのいずれかに作成した学習データを付与可能であることにより、学習データ作成部114は、学習データに対応する回答を含む設定済対話データの上位階層にある設定済対話データに学習データを付与できる。これにより、対話のトピックがより広範なトピックである上位階層に学習データが付与される。したがって、学習データが適切な対話データに付与されないリスクを軽減し得る。よって、学習データに相当する質問に対して不自然な回答を行うチャットシナリオが生成されるリスクを軽減し得る。
【0133】
学習データ作成部114が上位階層にある設定済対話データのいずれかに作成した学習データを付与可能である場合、学習データ作成部114は、作成した学習データに対応し、かつ、最下位の階層に相当する設定済対話データの直上の階層に相当する設定済対話データに作成した学習データを付与可能であることが好ましい。これにより、作成した学習データと対話データとの対応を把握しやすくすることと、対話のトピックがより広範なトピックである上位階層に学習データを付与することとを両立できる。
【0134】
学習データ作成部114が、作成した学習データに対応し、かつ、最下位の階層に相当する設定済対話データの直上の階層に相当する設定済対話データに作成した学習データを付与可能である場合、学習データ作成部114は、作成した学習データに対応し、かつ、最下位の階層に相当しない設定済対話データに作成した学習データを付与可能であることが好ましい。最下位の階層に相当しない対話データは、最下位の階層に相当する対話データより広範なトピックを含みうる。したがって、学習データ作成部114が、作成した学習データに対応し、かつ、最下位の階層に相当しない設定済対話データに作成した学習データを付与可能であることにより、作成した学習データと対話データとの対応を把握しやすくすることと、対話のトピックがより広範なトピックである上位階層に学習データを付与することとを両立できる。
【0135】
[ステップS8:チャットシナリオに変換]
制御部11は、記憶部12と協働して、変換部115を実行し、階層化対話データテーブル122に格納された設定済対話データをチャットシナリオに変換し、変換したチャットシナリオをチャットシナリオテーブル123に格納する処理を行う(ステップS8、変換ステップ)。制御部11は、処理をステップS9に移す。
【0136】
ステップS8の変換ステップにおいて、階層化され、階層情報等が設定された設定済対話データをチャットシナリオ作成用データとして用い、変換部115が当該チャットシナリオ作成用データを変換するため、質問に対して階層情報に応じた階層化回答を行う対話のチャットシナリオ(階層化されたチャットシナリオ)を得ることができる。
【0137】
自動応答プログラム構築処理が重複情報を含む階層化ラベルを設定済対話データに付与可能なステップS5の処理を含む場合、変換部115は、ステップS5で付与された重複情報を用いて設定済対話データをチャットシナリオに変換することが可能であることが好ましい。
【0138】
重複情報を用いて設定済対話データをチャットシナリオに変換することが可能であることにより、変換部115は、対話の内容が重複した複数の流れを含まないようチャットシナリオを変換できる。これにより、自動応答プログラム構築システム1は、対話の内容が重複した複数の流れを含むチャットシナリオの生成を防ぎ、修正漏れ等のリスクを低減できる。
【0139】
[ステップS9:自動応答プログラムを構築]
制御部11は、記憶部12と協働して、構築部116を実行し、チャットシナリオテーブル123に格納されたチャットシナリオを用いて自動応答プログラムを構築する処理を行う(ステップS9、構築ステップ)。制御部11は、自動応答プログラム構築処理を終了し、処理をステップS1に移す。
【0140】
自動応答プログラムを構築する処理は、チャットシナリオを人手で処理して自動応答プログラムを構築する処理を含んでもよい。これにより、自動応答プログラム構築システム1は、人手によって処理されたより適切な自動応答プログラムを構築できる。
【0141】
自動応答プログラムを構築する処理は、チャットシナリオをプログラムで処理して自動応答プログラムを構築する処理を含んでもよい。これにより、自動応答プログラム構築システム1は、自動応答プログラムを構築する処理の処理効率を高め得る。
【0142】
〔グループ分け処理のフローチャート〕
図7は、図6のステップS1で実行されるグループ分け処理の好ましい流れの一例を示すフローチャートである。以下、図7を用いて、図6のステップS1で実行されるグループ分け処理の好ましい流れの一例を説明する。
【0143】
[ステップS11:グループ化を要する対話データがあるか判別]
制御部11は、記憶部12と協働してグループ化部111を実行し、グループ化を要する複数の対話データがあるか判別する処理を行う(ステップS11)。グループ化を要する対話データがあるならば、制御部11は、処理をステップS12に移す。グループ化を要する対話データがないならば、制御部11は、グループ分け処理を終了し、処理をステップS2に移す。
【0144】
[ステップS12:単語を抽出]
制御部11は、記憶部12と協働して、抽出部111aを実行し、ステップS11でグループ化を要すると判別された複数の対話データが含む質問から、当該質問を構成する1以上の単語を抽出する処理を行う(ステップS12、抽出ステップ)。制御部11は、処理をステップS13に移す。
【0145】
複数の質問が同一単語を含む場合、これらの質問は、関連が深いものと考えられる。また、複数の質問が同一単語を含まない場合、これらの質問は、複数の質問が同一単語を含む場合より関連が深くないものと考えられる。したがって、複数の質問それぞれが含む単語を抽出し、複数の質問について抽出した単語間の関連を分析することにより、複数の質問が互いに関連する度合いを推測し得る。
【0146】
ステップS12の抽出ステップは、質問を形態素解析して質問を構成する1以上の単語を抽出する処理を含むことが好ましい。これにより、抽出ステップは、質問を言語上の最小単位である形態素に分割し、質問が含む品詞及び/又は変化を割り出して質問を構成する1以上の単語を抽出できる。したがって、抽出ステップは、品詞の変化形それぞれを同一の品詞として抽出できる。よって、グループ分け部111cは、抽出した単語を用いた質問間の関連の判断をより的確に行い得る。
【0147】
[ステップS13:特定単語リストを生成]
制御部11は、記憶部12と協働して、特定単語リスト生成部111bを実行し、ステップS12で抽出した1以上の単語のうち、所定単語リスト124に含まれる所定単語のいずれでもない1以上の特定単語を含む特定単語リストを生成する処理を行う(ステップS13、特定単語リスト生成ステップ)。制御部11は、処理をステップS14に移す。
【0148】
[ステップS14:特定単語に基づいて対話データをグループ分け]
制御部11は、記憶部12と協働して、グループ分け部111cを実行し、ステップS13で生成した特定単語リストが含む特定単語に基づいてステップS11でグループ化を要すると判別された対話データをグループ分けする処理を行う(ステップS14、グループ分けステップ)。制御部11は、処理をステップS11に移す。
【0149】
グループ分け部111cが質問に含まれる特定単語を用いてグループ分けするため、グループ分け部111cは、対話データ間の関連を反映するよう対話データをグループ化できる。このとき、所定の単語リストに含まれる所定単語をグループ分けに用いないため、助詞、接続詞、助動詞等によって例示される質問の関連との相関が小さい所定単語によって不適切なグループ分けが行われるリスクを軽減し得る。
【0150】
<自動応答プログラム構築システム1の使用例>
続いて、本実施形態における自動応答プログラム構築システム1の使用例を説明する。
【0151】
〔対話データの格納〕
まず、自動応答プログラム構築システム1を利用する利用者は、自動応答プログラムが実現する対話の流れのひな形となる対話データを対話データテーブル121に格納する。
【0152】
〔対話データの階層化〕
自動応答プログラム構築システム1は、グループ化部111、階層化部112を実行して、対話データテーブル121に格納された対話データをグループ分けし、階層化して階層化対話データテーブル122に格納する。そして、自動応答プログラム構築システム1は、設定部113及びラベル付与部117をさらに実行して、階層化された階層化対話データに項目名、階層情報、及び階層化ラベルを設定し、設定した設定済対話データを階層化対話データテーブル122に格納する。これにより、図3に示すような、階層化され、各種の情報を設定された設定済対話データが得られる。
【0153】
〔チャットシナリオに変換〕
自動応答プログラム構築システム1は、変換部115を実行し、階層化対話データテーブル122に格納された設定済対話データを変換してチャットシナリオを得る。得られたチャットシナリオは、チャットシナリオテーブル123に格納される。
【0154】
〔自動応答プログラムを構築〕
自動応答プログラム構築システム1は、構築部116を実行し、チャットシナリオテーブル123に格納されたチャットシナリオを用いて自動応答プログラムを構築する。これにより、自動応答プログラム構築システム1は、構築した自動応答プログラムを自動応答装置Aで実行して、チャットシナリオに沿った対話を実現する自動応答装置Aを実現できる。
【0155】
〔自動応答プログラムを実行〕
自動応答プログラム構築システム1を利用する利用者は、自動応答装置Aを運用する運用者を介して自動応答装置Aに自動応答プログラムを提供する。運用者は、自動応答装置Aで自動応答プログラムを実行する。
【0156】
図8は、実施形態の自動応答プログラム構築システムSによって構築された自動応答プログラムによる対話の流れの一例を示す図である。図8を用いて、実施形態の自動応答プログラム構築システムSによって構築された自動応答プログラムによる対話の流れの一例を説明する。
【0157】
図8に示す例では、端末Tを利用する端末利用者が入力した第1質問U1から第5質問U5までの質問と、「会社」によって運用される自動応答装置Aで実行される自動応答プログラムが出力した第1回答B1から第5回答B5までの回答とが、時系列順に図8の上から下へ向かって端末Tに表示されている。
【0158】
まず、端末利用者は、自動応答装置Aを運用する「会社」に関する情報を得るために、端末Tを介して第1質問U1「会社について?」を入力し、ネットワークNを介して自動応答装置Aに送信する。
【0159】
自動応答装置Aは、入力された第1質問U1を受信し、階層化されたチャットシナリオに沿って第1回答B1「会社のなにについてですか?」を、ネットワークNを介して端末Tに出力する。これにより、端末利用者は、トピック「会社」に関するより詳細な質問を行うよう促される。
【0160】
より詳細な質問を行うよう促された端末利用者は、トピック「会社」に関し、より詳細なトピックである「会社の沿革」を質問する第2質問U2「会社の沿革は?」を入力し、ネットワークNを介して自動応答装置Aに送信する。
【0161】
自動応答装置Aは、入力された第2質問U2を受信し、階層化されたチャットシナリオに沿って第2回答B2「会社の沿革ページをどうぞ(URL)」を、ネットワークNを介して端末Tに出力する。これにより、端末利用者は、第2回答B2が含むURLを用いて「会社の沿革ページ」にアクセスし、所望する「会社の沿革」に関する情報を得ることができる。
【0162】
〔学習データの付与〕
自動応答プログラム構築システム1は、学習データ作成部114を実行して、階層化対話データテーブル122に格納された設定済対話データに自動応答装置Aの運用によって得られた学習データを付与する。そして、自動応答プログラム構築システム1は、変換部115、構築部116を実行し、学習データを反映した対話を実現可能な自動応答プログラムを構築する。これにより、自動応答プログラムの運用を通して蓄積された学習データを活用した対話が実現され得る。
【0163】
〔学習データが付与された自動応答プログラムを実行〕
自動応答プログラム構築システム1を利用する利用者は、自動応答装置Aを運用する運用者を介して学習データが付与された自動応答プログラムを自動応答装置Aに提供する。運用者は、学習データが付与された自動応答プログラムを自動応答装置Aで実行する。
【0164】
ふたたび図8を用いて、実施形態の自動応答プログラム構築システムSによって構築された学習データが付与された自動応答プログラムによる対話の流れの一例を説明する。
【0165】
端末利用者は、自動応答装置Aを運用する「会社」が製造する製品について情報を得るために、第3質問U3「製品について?」を入力し、ネットワークNを介して自動応答装置Aに送信する。
【0166】
自動応答装置Aは、入力された第3質問U3を受信し、階層化されたチャットシナリオに沿って第3回答B3「どの製品についてですか?」を、ネットワークNを介して端末Tに出力する。これにより、端末利用者は、トピック「製品」に関するより詳細な質問を行うよう促される。
【0167】
より詳細な質問を行うよう促された端末利用者は、トピック「製品」に関し、より詳細なトピックである「製品Aの特徴」を質問する第4質問U4「製品Aの特徴?」を入力し、ネットワークNを介して自動応答装置Aに送信する。
【0168】
ここで、第4質問U4は、自動応答プログラム構築システム1が自動応答プログラムを構築するときに用いた対話データに含まれておらず、学習データに含まれている自由発話に一致する質問である。
【0169】
自動応答プログラム構築システム1は、作成した学習データに対応し、かつ、最下位の階層に相当する設定済対話データの直上の階層に相当する設定済対話データに作成した学習データを付与している。したがって、第4質問U4「製品Aの特徴?」に相当する学習データは、直上の階層に相当する「製品A」に関する設定済対話データに付与されている。
【0170】
そのため、自動応答装置Aは、第4質問U4に対して、トピックを「製品A」まで詳細化し、トピックをさらに詳細にすることを促す第4回答B4「製品Aのなにについてですか?」を、ネットワークNを介して端末Tに出力する。これにより、端末利用者は、トピック「製品A」に関するより詳細な質問を行うよう促される。
【0171】
より詳細な質問を行うよう促された端末利用者は、トピック「製品A」に関し、より詳細なトピックである「製品Aの仕様」を質問する第5質問U5「製品Aの仕様は?」を入力し、ネットワークNを介して自動応答装置Aに送信する。
【0172】
自動応答装置Aは、入力された第5質問U5を受信し、階層化されたチャットシナリオに沿って第5回答B5「製品Aの仕様ページをどうぞ(URL)」を、ネットワークNを介して端末Tに出力する。これにより、端末利用者は、第5質問U5が含むURLを用いて「製品Aの仕様ページ」にアクセスし、所望する「製品Aの仕様」に関する情報を得ることができる。
【0173】
所望の情報を得た端末利用者は、対話を終了させるメッセージである「ありがとう、よくわかりました。」を入力領域Iから入力し、対話が終了する。
【0174】
上述の使用例により、自動応答プログラム構築システム1は、対話データだけでなく、対話に関する学習データをも用いたチャットシナリオ作成用データを生成し、当該チャットシナリオ作成用データを用いてチャットシナリオを生成し、自動応答プログラムを構築できることが理解されよう。すなわち、実施形態の自動応答プログラム構築システム1は、自動応答プログラムの運用を通して蓄積された学習データを活用した対話を実現できる。
【0175】
なお、本発明の思想の範疇において、当業者であれば各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。例えば、前述の実施の形態に対して、当業者が適宜、構成要素の追加、削除若しくは設計変更を行ったもの、又は、工程の追加、省略若しくは条件変更を行ったものも、本発明の要旨を備えている限り、本発明の範囲に含まれる。
【符号の説明】
【0176】
1 自動応答プログラム構築システム
11 制御部
111 グループ化部
111a 抽出部
111b 特定単語リスト生成部
111c グループ分け部
112 階層化部
113 設定部
114 学習データ作成部
115 変換部
116 構築部
117 ラベル付与部
12 記憶部
121 対話データテーブル
122 階層化対話データテーブル
123 チャットシナリオテーブル
124 所定単語リスト
13 入力部
14 出力部
A 自動応答装置
N ネットワーク
T 端末
B1 第1回答
B2 第2回答
B3 第3回答
B4 第4回答
B5 第5回答
U1 第1質問
U2 第2質問
U3 第3質問
U4 第4質問
U5 第5質問
I 入力領域
図1
図2
図3
図4
図5
図6
図7
図8