(57)【要約】【課題】本発明の課題は、大規模な対話コーパスを効率的に作成することを目的とする。【解決手段】上記課題は、２者の対話に係る対話情報に基づいて１発話を表わす発話データを作成する作業者の作業者ＩＤを、複数の作業者の作業者ＩＤを該対話へ参加可能な順に記憶した記憶部から、１発話ごとに取り出し、前記記憶部で管理される、複数の対話それぞれ毎に時系列に該対話に参加した作業者の作業者ＩＤの記録を参照して、取り出した前記作業者ＩＤの作業者の過去の参加状況に基づく作業者割当手順に従って、前記発話データを作成する作業者を割り当てる該対話を選択し、前記複数の作業者により前記対話を完成させた対話データを得る処理をコンピュータに実行させる対話コーパス作成プログラムにより達成される。【選択図】図２
2018146720.tif 000002
【特許請求の範囲】
【請求項１】
２者の対話に係る対話情報に基づいて１発話を表わす発話データを作成する作業者の作業者ＩＤを、複数の作業者の作業者ＩＤを該対話へ参加可能な順に記憶した記憶部から、１発話ごとに取り出し、
前記記憶部で管理される、複数の対話それぞれ毎に時系列に該対話に参加した作業者の作業者ＩＤの記録を参照して、取り出した前記作業者ＩＤの作業者の過去の参加状況に基づく作業者割当手順に従って、前記発話データを作成する作業者を割り当てる該対話を選択し、
前記複数の作業者により前記対話を完成させた対話データを得る
処理をコンピュータに実行させる対話コーパス作成プログラム。
【請求項２】
前記対話を割り当てた作業者の作業者端末に、該対話の対話情報の表示と、該対話情報で示される直前の発話の内容が不適切である場合のチェックと、前記発話データの入力領域とを有する作成画面を表示させ、
前記作業者端末から、少なくとも前記発話データと、前記不適切のチェック有無とを受信すると、受信した該発話データを、前記対話の進行に従って親子関係を持つ木構造で管理し、前記不適切のチェック有りの場合、前記受信した発話データを、親の発話データから枝分かれさせて直前の発話データと兄弟関係として前記記憶部に記録し、
直後の発話データと共に受信した前記不適切のチェックの有無に応じて、前記直前の発話データの不適切さを判定する
処理を前記コンピュータに実行させる請求項１記載の対話コーパス作成プログラム。
【請求項３】
前記木構造では、受信した前記発話データに対して、支持数を付与し、
前記直前の発話データに対して兄弟関係の別の発話データが存在する場合、受信した前記発話データと共に受信した前記不適切のチェックの有無に応じて、該直前の発話データの前記支持数を増減する
処理を前記コンピュータに実行させる請求項２記載の対話コーパス作成プログラム。
【請求項４】
前記支持数が増減した発話データと、該発話データの兄弟関係の発話データとに対して、前記支持数の合計に対する該発話データそれぞれの支持数の割合により、発話スコアを算出し前記記憶部に記憶する
処理を前記コンピュータに実行させる請求項３記載の対話コーパス作成プログラム。
【請求項５】
２者の対話に係る対話情報に基づいて１発話を表わす発話データを作成する作業者の作業者ＩＤを、複数の作業者の作業者ＩＤを該対話へ参加可能な順に記憶した記憶部から、１発話ごとに取り出し、
前記記憶部で管理される、複数の対話それぞれ毎に時系列に該対話に参加した作業者の作業者ＩＤの記録を参照して、取り出した前記作業者ＩＤの作業者の過去の参加状況に基づく作業者割当手順に従って、前記発話データを作成する作業者を割り当てる該対話を選択し、
前記複数の作業者により前記対話を完成させた対話データを得る
処理をコンピュータが行う対話コーパス作成方法。
【請求項６】
２者の対話に係る対話情報に基づいて１発話を表わす発話データを作成する作業者の作業者ＩＤを、複数の作業者の作業者ＩＤを該対話へ参加可能な順に記憶した記憶部から、１発話ごとに取り出す作業者ＩＤ取出部と、
前記記憶部で管理される、複数の対話それぞれ毎に時系列に該対話に参加した作業者の作業者ＩＤの記録を参照して、取り出した前記作業者ＩＤの作業者の過去の参加状況に基づく作業者割当手順に従って、前記発話データを作成する作業者を割り当てる該対話を選択する選択部と
前記複数の作業者により前記発話データを作成させ、作成された発話データを収集する発話作成部と
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話コーパス作成プログラム、対話コーパス作成方法、及び情報処理装置に関する。
【背景技術】
【０００２】
近年、機械が人を相手とした対話を自然な応答文で応答する対話システムが開発され製品化されている。人の入力文に対する予め蓄積した応答文の文パターンから対応する応答文の文パターンを求め、入力文から抽出した単語の特徴語と関連度の高い単語を用いて、求めた応答文のパターンとから入力文に対する応答文を生成する技術が知られている。
【０００３】
また、機械が人との対話においてより自然な文を出力するために、２者以上のユーザの対話文を受け付け、少なくとも一者の会話文を自然言語処理し、会話の繋がりデータを取得し蓄積することで対話コーパスを生成する技術等が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１５３２６１号公報
【特許文献２】特開２００８−２９９７５４号公報
【特許文献３】特開２００７−１０２１０４号公報
【特許文献４】特開２００１−１６６７８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した技術では、２者で作業した場合、片方が作業している間の待ち時間が生じるため非効率的であるといった問題がある。効率的に２者による対話を行なおうとすると、ペアとなる２者を探す作業、２者の時間合せ等の管理が必要となり管理者の負担になる。
【０００６】
したがって、１つの側面では、対話コーパスを効率的に作成することを目的とする。
【課題を解決するための手段】
【０００７】
一態様によれば、２者の対話に係る対話情報に基づいて１発話を表わす発話データを作成する作業者の作業者ＩＤを、複数の作業者の作業者ＩＤを該対話へ参加可能な順に記憶した記憶部から取り出し、前記記憶部で管理される、複数の対話それぞれ毎に時系列に該対話に参加した作業者の作業者ＩＤの記録を参照して、取り出した前記作業者ＩＤの作業者の過去の参加状況に基づく作業者割当手順に従って、前記発話データを作成する作業者を割り当てる該対話を選択する割当処理を１発話ずつコンピュータに実行させ、前記複数の作業者により前記対話を完成させた対話データを得る処理を前記コンピュータに実行させる対話コーパス作成プログラムが提供される。
【０００８】
また、上記課題を解決するための手段として、対話コーパス作成方法、及び情報処理装置とすることもできる。
【発明の効果】
【０００９】
対話コーパスを効率的に作成することができる。
【図面の簡単な説明】
【００１０】
【図１】ペアの対話による対話コーパスの作成を説明するための図である。
【図２】タスク分解をしてクラウドソーシングを用いるコーパス作成例を示す図である。
【図３】対話に対する意識の共通化と対話品質の維持の方法とを説明するための図である。
【図４】対話画面例を示す図である。
【図５】不適切チェックの有無に基づく発話木構造の例を説明するための図である。
【図６】多重度「１」の場合の発話スコアリングを説明するための図である。
【図７】多重度「３」の場合の発話スコアリングを説明するための図である。
【図８】作業者スコアリングを説明するための図である。
【図９】対話スコアリングを説明するための図である。
【図１０】作業者割当手順の概要を説明するための図である。
【図１１】選択確率が最も高い作業者ＩＤが１つのみの場合の作業者割当処理の例を示す図である。
【図１２】最も高い選択確率が複数存在する場合の作業者割当処理の第１例を示す図である。
【図１３】最も高い選択確率が複数存在する場合の作業者割当処理の第２例を示す図である。
【図１４】最も高い選択確率が複数存在する場合の作業者割当処理の第３例を示す図である。
【図１５】本実施例におけるシステム構成例を示す図である。
【図１６】本実施例のシステムにおける全体処理の概要を説明するための図である。
【図１７】サーバ装置の機能構成例を示す図である。
【図１８】作業者リストのデータ構成例を示す図である。
【図１９】対話タスクテーブルのデータ構成例を示す図である。
【図２０】発話テーブルのデータ構成例を示す図である。
【図２１】発話データＤＢのデータ構成例を示す図である。
【図２２】作業者スコアテーブルのデータ構成例を示す図である。
【図２３】スコア付き対話データのデータ構成例を示す図である。
【図２４】初期化処理を説明するためのフローチャート図である。
【図２５】作業者登録処理と作業者割当処理とを説明するためのフローチャート図である。
【図２６】図２５のステップＳ２２２における対話タスク選択処理を説明するためのフローチャート図である。
【図２７】図２６のステップＳ２３７における対話タスク生成処理を説明するためのフローチャート図である。
【図２８】発話作成処理を説明するためのフローチャート図である。
【図２９】図２８のステップＳ２５２における発話情報更新処理を説明するためのフローチャート図である。
【図３０】対話データ取出処理を説明するためのフローチャート図である。
【図３１】図３０のステップＳ２７１における作業者スコア算出処理を説明するためのフローチャート図である。
【図３２】図３０のステップＳ２７２における対話スコア算出処理を説明するためのフローチャート図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面に基づいて説明する。先ず、２者のペアにより対話コーパスを作成する場合について説明する。図１は、ペアの対話による対話コーパスの作成を説明するための図である。
【００１２】
図１では、予め対話のペアとなる被験者α及びβを用意し、そのペアに対話をしてもらい、対話の内容を記録することで対話コーパス１ａを作成する。被験者α及びβには、予め役割を説明しておく。例えば、旅行代理店の店員と、移動手段、ホテル等を予約する顧客等である。
【００１３】
図１では、被験者αには、旅行代理店の店員として会話してもらい、被験者βには、顧客として会話してもらった場合の対話例を示している。被験者αが１番目の発話「どちらに行かれますか？」で問いかけ、被験者βが２番目の発話「シカゴに行こうと思います」で返答する。
【００１４】
そして、被験者αが３番目の発話「何泊のご予定ですか？」で更に質問し、被験者βが４番目の発話「３泊くらいを考えてます」で返答する等々と、被験者αと被験者βとの間で会話が継続される。旅行代理店の店員役の被験者αが、旅行の計画に十分な情報を被験者βから取得すると、対話の終了となる。
【００１５】
このようにして、多くの被験者のペアから収集した対話コーパス１ａを用いて機械学習を行うことで、機械が人を相手とした場合に対話を適切に進行させることができる。対話コーパス１ａを用いた機械学習により、人手による対話の規則の記述を不要にきる。
【００１６】
精度よく対話を進行させるためには、大規模な対話コーパス１ａを作成することが必要である。大規模な対話コーパス１ａにより機械学習を用いた対話システムの開発を高精度に行えるようになる。
【００１７】
しかし、このようにして、対話コーパス１ａを作成するためには、一般的には、対話のペアとなる被験者α及びβを用意し、場所を提供又は通信手段を介して、定めた時間に対話を開始させ、進行する対話の内容を記録する。この手法では、被験者は他者と共同で作業にあたることになり、片方の被験者が作業している間、ペアの相手はその作業を待つ時間が発生する。
【００１８】
このような問題に対する簡単な解決策として、対話コーパス１ａに記録される対話を、定めた２者により開始から終了までを行わせるのではなく、対話を個別の複数のタスクに分割し、クラウドソーシング等を用いることにより多数の人の参加により独立に実施することが考えられる。
【００１９】
対話を個別の複数のタスクに分割するとは、１つの役割を１人の人が行うのではなく、会話のやり取り毎に役割を担う人を選定して会話を継続させることである。一例として、図１の被験者αと被験者βとの対話のうち、被験者α及びβのいずれかが発話する毎に、役割を担う人を変更する。この場合、１回の発話を行うことを１つの個別のタスクと見なす。
【００２０】
クラウドソーシングとは、目的とする主タスクを、それぞれ独立した細かい単位のタスク（以下、小タスクという）に分解し、その小タスクを不特定多数の作業者によってネットワークを介して実施することである。
【００２１】
小タスクの配信や実施は、主に、ウェブブラウザやスマートフォン等を用いて行われるため、作業者のメリットとして、作業者は任意の場所において任意のタイミングで作業を実施できる。個々の小タスクは小規模で簡単な作業であるため、専門性を必要としない場合が多い。
【００２２】
また、不特定多数の作業者に小タスクを実施してもらうことにより、大きな主タスクを低いコストで早く完了させることができる。このことから、簡単な例として、複数の発話でなる対話を主タスクとし、発話単位を小タスクとすることが考えられる。
【００２３】
図２は、タスク分解をしてクラウドソーシングを用いるコーパス作成例を示す図である。図２において、作業者Ａ、Ｂ、Ｃ、及びＤを含む複数の作業者９による対話の進行例を示している。
【００２４】
作業者Ａが１番目の発話「どちらに行かれますか？」で問いかけることで会話が開始される。この問いかけに対して、作業者Ｂが２番目の発話「シカゴに行こうと思います」で返答する。
【００２５】
作業者Ｂの返答に対して、図１の例では、１番目の発話の作業者Ａが次の質問を行うはずであるが、図２の例では、作業者Ａとは異なる作業者Ｃが、３番目の発話「何泊のご予定ですか？」で更に質問する。
【００２６】
作業者Ｃの質問に対して、回答する作業者９は作業者Ｂではなく作業者Ｄである。作業者Ｄは、４番目の発話「３泊くらいを考えてます」で返答する。このように、対話をする２者を固定せず、発話入力毎に、作業者９を選定し、多数の作業者９により一連の会話を個別に独立させて実施する。
【００２７】
本実施例を説明する前に、以下に用語を定義する。
【００２８】
発話は、一人の作業者が記述する一つの発言である。
【００２９】
対話は、複数の発話からなる一連の発話列である。
【００３０】
作業者は、発話を作成する個別の人であり、発話者という場合がある。
【００３１】
図２で説明したようなクラウドソーシングを用いるコーパス作成方法では、上述したように対話の流れを個別の小タスクに分解すると整合性のある発話例を生成できない場合がある。したがって、本実施例では、
（Ｉ）整合性のチェック
（ＩＩ）発話、作業者、及び対話それぞれのスコアリング
（ＩＩＩ）作業者の割り当ての効率化
を行う。
【００３２】
（Ｉ）整合性のチェック
先ず、文脈の提示による作業者９の意識の共通化と対話品質を維持するために、
・作業者９には開始からの文脈を提示し
・作業者９は、その文脈を読んで理解することによって、これまでの発話者（作業者９）と同じ文脈を共有することができ、それにより同一ペアによって作成された発話と同様の品質を保持する。
【００３３】
次に、文脈の整合性を担保するために、
・１発話進むごとに、作業者９がそれまでの対話の内容が適切であるか否かをチェックする。これは、文脈の理解と同時に行うことができる。つまり、文脈を理解するために全て読んだ後、内容を理解できなければ不適切であると判断する。
・独立した作業者９によって対話コーパスを作成する際の問題点として整合性のある発話列が作成できない恐れがある点が挙げられるが、このチェックにより対話の整合性を担保する。
・作業者９は、直前の対話を不適切だと判断した場合、作業者９はそこでなされるであろう発話を作成する。
【００３４】
（ＩＩ）発話、作業者、及び対話それぞれのスコアリング
先ず、発話と、作業者９の信頼度のスコアリングについて説明する。
・作業者９のレベルにはばらつきがあることが一般的であり、その結果、不適切な発話が作成される可能性がある。
・各発話に、パラメータとして与えられた多重度においてその発話が正しいと判定された割合を発話スコアとする。
・分岐後は、発話スコアが高い発話を継続させる。分岐後の発話の枝を延ばすと表現される場合がある。
・作業者９が作成したすべての発話の発話スコアの平均値をその作業者９の作業者スコアとする。
【００３５】
次に、作業者スコアを用いた対話のスコアリングについて説明する。
・各対話のスコアを算出する。
・分岐があった場合は最も指示されたパスを選択し、一本のパスを抽出する。
・そのパスに出現する作業者９の作業者スコアの相乗平均を求め、これをその対話のスコアとし、以下、対話スコアという。
【００３６】
（ＩＩＩ）作業者の割り当ての効率化
対話における発話列が長くなると文脈の理解とその内容のチェックに時間がかかる。このチェックを可能な限り省略し効率的にするために、同一の作業者９に同じタスクを優先的にアサインする。
・このために対話のタスク履歴に基づいた確率を用いてタスクを割り当てる。
ここでのタスクとは、作成予定の対話に相当し、以下の説明において、対話タスクという場合がある。作成予定の対話には、現在進行中の対話と、未だ開始されていない対話とを含む。
【００３７】
上述した（Ｉ）から（ＩＩＩ）について、例を用いて説明する。先ず、（Ｉ）整合性のチェックについて図３から図５で説明する。
【００３８】
図３は、対話に対する意識の共通化と対話品質の維持の方法とを説明するための図である。図３では、作業者Ａ、Ｂ、Ｃ、Ｄを含む複数の異なる作業者９には、旅行代理店での交通機関、宿泊先等の予約の場面を想定してもらい、一連の会話を行ってもらった場合の例を示している。
【００３９】
本実施例では、
・作業者９のペアの管理は行わず各作業者９を独立に受け付ける。
・各作業者９には、それまでの対話の文脈（生成された発話の列）を提示し、次の発話の作成を依頼する。
【００４０】
複数の作業者９は、携帯電話等の端末からネットワークを介して本実施例に係るサービスへ接続する。作業者９へは、少なくとも直前までの発話を提示する。対話を進行する場面の説明を更に提示してもよい。一方で、対話の場面は、直前までの発話から、作業者９により判断させてもよい。
【００４１】
この例では、旅行代理店における予約に関する店員と顧客の対話を、複数の作業者９に行ってもらう。各作業者９は、状況を把握した上で、直前の発話に対して最も有り得る内容を次の発話として入力する。又は、直線の発話を不適切と判断した場合は修正する発話を入力する。
【００４２】
複数の作業者９のうち、最初に会話を入力する作業者Ａは、自分は店員であると判断して最初の発話を入力する。例えば、１番目の発話として「どちらに行かれますか？」等が入力される。
【００４３】
１番目の発話に対して、１番目の発話を提示された作業者Ｂは、自分は顧客であると判断して、２番目の発話を入力する。例えば、２番目の発話として「シカゴに行こうと思います」等が入力される。
【００４４】
１番目及び２番目の発話を提示された作業者Ｃは、自分は店員であると判断して３番目の発話を入力する。例えば、３番目の発話として「何泊のご予定ですか？」等が入力される。
【００４５】
１番目から３番目の発話を提示された作業者Ｄは、自分は顧客であると判断して、４番目の発話を入力する。例えば、４番目の発話として「３泊くらいを考えてます」等が入力される。
【００４６】
このように、直前までの発話を作業者９に提供することで、発話毎に作業者９が変更されても、作業者９は、状況と自分の役割を把握することができる。更に、本実施例では、図４に示すような画面を作業者９の端末に表示させることで、直前までの対話の整合性を作業者９によりチェックさせる。
【００４７】
図４は、対話画面例を示す図である。図４に例示する対話画面Ｇ７０は、発話履歴表示域７１と、発話入力域７２と、不適切チェック領域７３と、終了チェック領域７４とを有する。対話画面Ｇ７０において、作業者Ｃは、発話履歴表示域７１に表示れた対話の最初から直前までの２つの発話を読み、対話の状況を把握する。
【００４８】
作業者Ｃは、先ず、発話履歴表示域７１に表示れた
１．どちらに行かれますか？
２．シカゴに行こうと思います
の発話から、最後（２番目）の発話が適切であるか否かを判断する。
【００４９】
作業者Ｃは、最後の発話が適切であると判断した場合、最後の発話に続く適切な発話を発話入力域７２に作成し入力する。一方、不適切であると判断した場合、作業者Ｃは、不適切チェック領域７３にチェックを入れる。不適切チェック領域７３にチェックを入れた場合、作業者Ｃに、最後の発話の代わりに、適切と考える発話を発話入力域７２に入力して修正する。
【００５０】
不適切チェック領域７３にチェックを入れた場合には、この修正は必須とすることが望ましい。修正すべき発話を作成させることで、作業者Ｃに最後の発話の適正判断を誠実に行わせることができる。本実施例では、このように発話毎に、次の作業者９に最後の発話の適正を判断させるため、最後の発話より以前の発話は、適正であると判断済みの発話であると言える。
【００５１】
この例では、作業者Ｃは、不適切チェック領域７３にチェックを入れずに、発話入力域７２に「何泊のご予定ですか？」と発話を作成している。即ち、「シカゴに行こうと思います」の発話は適正であると判断し、この発話に続く次の発話を作成した場合である。
【００５２】
終了チェック領域７４は、対話の終了であると判断した場合に、作業者Ｃは、終了チェック領域７４にチェックを入れる。対話の終了とは、対話の目的が達成されたと判断した場合である。対話が宿泊に係る交通機関、ホテル等の予約を目的とする場合、出発地、目的地、滞在地、滞在日数等の情報を取得できたと判断した場合を対話の終了とする。このような必要な情報を得られた場合の他、質問に回答できた、相手の満足を得られた等が、対話の終了となる。
【００５３】
本実施例では、上述した不適切チェック領域７３へチェックされた場合に、図５に示すように、発話の進行を分岐させる木構造（以下、発話木構造という）により複数の発話で構成される対話の進行状態を表現する。
【００５４】
図５は、不適切チェックの有無に基づく発話木構造の例を説明するための図である。図５（Ａ）では、作業者Ａによる最初（１番目）の発話「どちらに行かれますか？」に対して、次の作業者Ｂが２番目の発話「シカゴに行こうと思います」を作成し、この対話が作業者Ｃに割り当てられた際の対話画面Ｇ７０を示している。図４の対話画面Ｇ７０と同様である。
【００５５】
この例では、作業者Ｃは、作業者Ａの発話に対する作業者Ｂの発話は適切であったと判断し、不適切チェックが無い状態で、作業者Ｃにより発話「何泊のご予定ですか？」が作成される。
【００５６】
この対話の進行状態は、発話木構造８ａで表現される。発話木構造８ａでは、発話を、その発話を作成した作業者９を表わすアルファベットのノードで簡潔に示す。図６〜図９も同様である。
【００５７】
発話木構造８ａは、最初（１番目）の発話Ａから始まり、下へ２番目の発話Ｂ、更に下へ３番目の発話Ｃへと枝が伸びる。発話木構造８ａには分岐が存在しない。即ち、この時点では、未だ不適切チェックがなされていないことを示す。
【００５８】
図５（Ｂ）では、作業者Ａによる最初（１番目）の発話「どちらに行かれますか？」に対して、次の作業者Ｄが２番目の発話「どこでも」を作成した状態の対話画面Ｇ７０が示されている。
【００５９】
作業者Ｅは、直前の作業者Ｄの発話「どこでも」は不適切であると判断し、修正する発話を作成する。不適切チェック有りの状態で、発話Ｅが作成された場合の発話木構造８ｂを示している。発話木構造８ｂでは、最初（１番目）の発話Ａから始まり、下へ２番目の発話Ｄと伸びるが、発話Ｄに対する不適切チェックにより、発話Ｅは発話Ａの直下に位置付けされる。
【００６０】
以下の説明において、発話木構造８ａ、８ｂ等のように特定しない限りにおいて、総称して発話木構造８という場合がある。
【００６１】
次に、（ＩＩ）発話、作業者、及び対話それぞれのスコアリングについて図６〜図９で説明する。先ず、発話スコアリングについて説明する。本実施例では、
・発話が分岐した際に、チェックのための多重度をパラメータとして与える。
・多重度は奇数を与える。
・分岐が起きた際に、分岐が起きるか否かを多重度の数まで作業者に評価させる。多重度が１の場合は、分岐した際に分岐後の発話のみを用いることなる。多重度は３以上であることが好ましい。
・作業者９によって指示された割り合いを発話スコアとする。
【００６２】
先ず、発話スコアリングについて図６及び図７で説明する。図６は、多重度「１」の場合の発話スコアリングを説明するための図である。図６（Ａ）では、図５（Ａ）の発話木構造８ａの各発話の発話スコアを示している。発話木構造８ａでは、分岐が存在しないため、発話Ａ、Ｂ及びＣの全ての発話スコアＵＳが「１」を示す。
【００６３】
図６（Ｂ）では、発話木構造８ｃにおいて分岐の前後の発話スコアＵＳを説明する。分岐前の発話Ｄが作成された時点では、発話Ａも発話Ｄも発話スコアＵＳは「１」である。発話Ｃの作成時に発話Ａから分岐すると、即ち、発話Ｄが不適切であると判断されると、多重度が１の場合は、不適切と判断された発話Ｄの発話スコアＵＳは「０」となり、修正用の発話Ｃに発話スコアＵＳ「１」が与えられる。
【００６４】
図７は、多重度「３」の場合の発話スコアリングを説明するための図である。図７（Ａ）では、発話Ａに応答して発話Ｄが作成された状態を示す。この状態では、発話Ａの発話スコアＵＳは「１」であり、発話Ｄの発話スコアＵＳも「１」である。
【００６５】
図７（Ｂ）では、発話Ｄが不適切と判断され、修正用に発話Ｃが作成される。この時点では、本当に発話Ｄが不適切であるのかは断定できない。この状態での発話木構造８ｄでは、発話Ｄの発話スコアＵＳが「１」から「１／２」に変更され、発話Ｃには発話スコアＵＳ「１／２」が与えられる。図７（Ｂ）の発話木構造８ｄに対して、図７（Ｃ）又は図７（Ｄ）の状態に遷移することが考えられる。
【００６６】
図７（Ｃ）では、発話Ｄを不適切と判断した、別の作業者Ｅにより発話Ｅが生成された状態を示している。発話Ｅの追加により、発話Ｄが不適切でないことは理解できるが、発話Ｃと発話Ｅとではいずれが適切かはまだ判定できない。この場合、発話Ｄが削除され、発話Ｃと発話Ｅの発話スコアＵＳが「１／２」ずつになる。
【００６７】
図７（Ｄ）では、発話Ｄに対して不適切と判断されずに、発話Ｆが追加された状態を示している。したがって、発話Ｄの発話スコアＵＳは「１／２」から「２／３」へと変更され、発話Ｃの発話スコアＵＳは「１／２」から「１／３」へと変更される。
【００６８】
次に、上述したように生成され変化する発話木構造８を用いて、作業者スコアリングが行われる。作業者スコアリングでは、作業者９が作成した全ての発話の発話スコアの平均値を算出し、作業者スコアとする。
【００６９】
図８は、作業者スコアリングを説明するための図である。図８では、３つの発話木構造８ｅ、８ｆ、及び８ｇにおける各発話Ａ〜Ｇの発話スコアＵＳを用いて、作業者Ａ〜Ｇの作業者スコアＷＳを算出する場合で説明する。
【００７０】
この例では、
作業者Ａについて、
作業者スコアＷＳＡ  ＝  （１＋１＋１）／３  ＝  １  を取得し、
作業者Ｂについて、
作業者スコアＷＳＢ  ＝  （１／３＋１＋１）／３  ＝  ０．７８を取得し、
作業者Ｃについて、
作業者スコアＷＳＣ  ＝  （１＋２／３）／２  ＝  ０．８３を取得し、
作業者Ｄについて、
作業者スコアＷＳＤ  ＝  （０＋１／３）／２  ＝  ０．１７を取得し、
作業者Ｅについて、
作業者スコアＷＳＥ  ＝  （１＋１＋１）／３  ＝  １を取得し、
作業者Ｆについて、
作業者スコアＷＳＦ  ＝  （１＋１）／２  ＝  １を取得し、
作業者Ｇについて、
作業者スコアＷＳＧ  ＝  （２／３）／１  ＝  ０．６７
を取得する。
【００７１】
作業者スコアＷＳが低い程、不適切な発話を作成する作業者９であることを示す。この作業者スコアＷＳに対して閾値を用いてフィルタリングすることで、不適切な発話を作成する作業者９を除外してもよい。この場合、不適切な発話の作成を抑制することができる。
【００７２】
次に、対話スコアリングについて説明する。対話スコアリングは、最も支持されたパス上の発話を作成した作業者９の作業者スコアＷＳの相乗平均によって行われる。最も支持されたパスとは、発話の数が最も多い枝を選択することで定まる。
【００７３】
図９は、対話スコアリングを説明するための図である。図９では、図８と同様の３つの発話木構造８ｅ、８ｆ、及び８ｇで表現されるそれぞれの対話の対話スコアＤＳを算出する場合で説明する。
【００７４】
発話木構造８ｅで最も支持されたパスＰｅは、発話Ａ、Ｇ、Ｃ、Ｅ、及びＦの順の文脈である。したがって、パスＰｅを構成する発話を作成した作業者９の作業者スコアＷＳの相乗平均は、
（１×０．６７×０．８３×１×１）＾（１／５）＝  ０．８９
であり、対話スコアＤＳｅ＝０．８９を得る。
【００７５】
発話木構造８ｆで最も支持されたパスＰｆは、発話Ｅ、Ｆ、Ａ、及びＢの順の文脈である。したがって、パスＰｆを構成する発話を作成した作業者９の作業者スコアＷＳの相乗平均は、
（１×１×１×０．７８）＾（１／４）  ＝  ０．９４
であり、対話スコアＤＳｆ＝０．９４を得る。
【００７６】
発話木構造８ｇで最も支持されたパスＰｇは、発話Ｂ、Ｅ、Ｃ、及びＡの順の文脈である。したがって、パスＰｇを構成する発話を作成した作業者９の作業者スコアＷＳの相乗平均は、
（０．７８×１×０．８３×１）＾（１／４）＝  ０．９０
であり、対話スコアＤＳｇ＝０．９０を得る。
【００７７】
対話スコアＤＳが高い値、即ち、１に近い程、適切な文脈で表される対話であることを示す。この例では、対話スコアＤＳｆが最も高い値「０．９４」を示すため、パスＰｆによる文脈は適切な発話の連続を示すと考えられる。
【００７８】
次に、（ＩＩＩ）作業者の割り当ての効率化について図１０から図１４で説明する。図１０は、作業者割当手順の概要を説明するための図である。
【００７９】
図１０において、作業者リスト４１は、作業者９の作業者ＩＤを追加した順で取り出すキュー構造を持つリストであり、一例として、キュー構造はＦＩＦＯ（First-In，First-Out）方式であればよい。この例では、作業者９のＩＤを右端から追加し、左端から作業者９のＩＤが取り出される。
【００８０】
対話タスクテーブル４２は、対話毎に発話を作成した作業者９を順に示したテーブルである。各対話は、対話タスクとして対話タスクテーブル４２に登録され、以後、対話タスクテーブル４２で管理される。対話の進行状況は、対話タスクテーブル４２に記録された作業者９を特定する作業者ＩＤで示される。
【００８１】
この例では、対話に参加可能な複数の作業者９として、作業者リスト４１を参照すると、作業者ｗ４、ｗ９、ｗ２１、ｗ１０、ｗ５が既に待ち状態である。更に、先頭の作業者ｗ４を対話に割り当て、最後の作業者ｗ５に続いて、作業者ｗ７が作業者リスト４１に追加される状況を示している。
【００８２】
対話タスクテーブル４２には、対話タスクｄ１、・・・、ｄ５等が登録され、対話タスクｄ１では、作業者ｗ４が最初の発話を作成後、最初の発話に対して、作業者ｗ１１が２番目の発話を作成した状態を示している。対話タスクｄ２、ｄ３、及びｄ４等についても同様に、発話が作成された順（発話作成順）に、作業者ＩＤが示される。対話タスクｄ５は、登録済みであるが、未だ、発話が作成されていない状態を示している。
【００８３】
作業者９の対話への割り当ては、以下のような作業者割当手順に従って行う。
・手順（１）作業者リスト４１（図１０）の先頭（左）から作業者ＩＤを取り出す。
・手順（２）対話タスクテーブル４２に登録されているそれぞれの対話タスクに対して選択確率を求める。
選択確率  ＝  作業者ＩＤの出現回数／発話個数
上式にて、発話個数には、取り出した作業者ＩＤが最後となる対話タスクはカウントしない。
・手順（３）選択確率が最大の対話タスクを選択する。
最大の対話タスクが複数ある場合、発話個数が最も少ない対話タスクを選択する。最も少ない対話タスクが複数存在する場合、ランダムに１つの対話タスクを選択する。
【００８４】
図１０に示すデータ例を用いて、上述した作業者割当手順に従った作業者割当処理について図１１から図１４で説明する。図１１は、選択確率が最も高い作業者ＩＤが１つのみの場合の作業者割当処理の例を示す図である。
【００８５】
図１１における作業者割当処理では、手順（１）により、作業者リスト４１から作業者ＩＤ「ｗ４」が取り出され、手順（２）により、対話タスクテーブル４２が参照されて、取り出した作業者ＩＤ「ｗ４」の選択確率を算出する。
【００８６】
この例の場合、対話タスクｄ１では、作成済みの２つの発話のうち１つが作業者ＩＤ「ｗ４」によるものであるため、選択確率「１／２」を得る。対話タスクｄ２では、作成済みの４つの発話のうち作業者ＩＤ「ｗ４」による発話は存在しないため、選択確率「０」を得る。
【００８７】
対話タスクｄ３では、作業者ＩＤ「ｗ４」が最後に発話を作成しているため、選択確率の算出は行われない。選択確率の算出は抑止される。
【００８８】
対話タスクｄ４では、作成済みの２つの発話のうち作業者ＩＤ「ｗ４」による発話は存在しないため、選択確率「０」を得る。対話タスクｄ５では、作成済みの発話は未だ存在しないため、選択確率「０」を得る。
【００８９】
次に、手順（３）により、選択確率が最も高い対話タスクｄ１を選択し、発話作成順の最後に「ｗ４」を追加する。対話タスクｄ１において、作業者ＩＤ「ｗ１１」の次に「ｗ４」が追加される。作業者リスト４１より、作業者ＩＤ「ｗ４」の次は作業者ＩＤ「ｗ９」である。作業者ＩＤ「ｗ９」に対する作業者割当処理は図１２で説明する。
【００９０】
図１２は、最も高い選択確率が複数存在する場合の作業者割当処理の第１例を示す図である。図１２において、手順（１）により、作業者リスト４１から作業者ＩＤ「ｗ９」が取り出され、手順（２）により、対話タスクテーブル４２が参照されて、取り出した作業者ＩＤ「ｗ９」の選択確率を算出する。
【００９１】
この例の場合、対話タスクｄ１〜ｄ５において、作業者ＩＤ「ｗ９」による発話は存在しないため、全ての対話タスクｄ１〜ｄ５に対して選択確率「０」を得る。この場合、最大の対話タスクが複数ある場合に相当し、手順（３）により、発話個数の最も少ない対話タスクを選択する。
【００９２】
対話タスクｄ１の発話個数は「３」であり、対話タスクｄ２の発話個数は「４」であり、対話タスクｄ３の発話個数は「１」であり、対話タスクｄ４の発話個数は「２」であり、対話タスクｄ５の発話個数は「０」である。
【００９３】
従って、作業者ＩＤ「ｗ９」に対して、対話タスクｄ５が選択される。発話個数が最も少ない対話タスクｄ５に作業者ＩＤ「ｗ９」が割り当てられる。この例では、対話タスクｄ５対して、最初の発話として「ｗ９」が記録される。そして、作業者リスト４１より、作業者ＩＤ「ｗ９」の次は作業者ＩＤ「ｗ２１」である。作業者ＩＤ「ｗ２１」に対する作業者割当処理は図１３で説明する。
【００９４】
図１３は、最も高い選択確率が複数存在する場合の作業者割当処理の第２例を示す図である。図１３において、手順（１）により、作業者リスト４１から作業者ＩＤ「ｗ２１」が取り出され、手順（２）により、対話タスクテーブル４２が参照されて、取り出した作業者ＩＤ「ｗ２１」の選択確率を算出する。
【００９５】
この例の場合、対話タスクｄ１〜ｄ５において、作業者ＩＤ「ｗ２１」による発話は存在しないため、全ての対話タスクｄ１〜ｄ５に対して選択確率「０」を得る。この場合、最大の対話タスクが複数ある場合に相当し、手順（３）により、発話個数の最も少ない対話タスクを選択する。
【００９６】
対話タスクｄ１の発話個数は「３」であり、対話タスクｄ２の発話個数は「４」であり、対話タスクｄ３の発話個数は「１」であり、対話タスクｄ４の発話個数は「２」であり、対話タスクｄ５の発話個数は「１」である。従って、発話個数の最も少ない対話タスクが２つ存在する。
【００９７】
この場合、手順（３）により、発話個数の最も少ない複数の対話タスクからランダムにいずれか１つを選択する。ランダム選択の方法は、特に限定しない。既存の関数などを用いればよい。
【００９８】
作業者ＩＤ「ｗ２１」に対して、対話タスク「ｄ３」と「ｄ５」のうち対話タスク「ｄ３」が選択されたものとする。対話タスクｄ３において、既に割り当てた作業者ＩＤ「ｗ４」の次に作業者ＩＤ「ｗ２１」を追加する。
【００９９】
作業者リスト４１より、作業者ＩＤ「ｗ２１」の次は作業者ＩＤ「ｗ１０」である。作業者ＩＤ「ｗ１０」は、対話タスクテーブル４２に存在しない。作業者ＩＤ「ｗ９」と同様の状況を示す。従って、最も発話個数の少ない対話タスクｄ５に追加される。そして、作業者リスト４１より、作業者ＩＤ「ｗ１０」の次は作業者ＩＤ「ｗ５」である。作業者ＩＤ「ｗ５」に対する作業者割当処理は図１４で説明する。
【０１００】
図１４は、最も高い選択確率が複数存在する場合の作業者割当処理の第３例を示す図である。図１４において、手順（１）により、作業者リスト４１から作業者ＩＤ「ｗ５」が取り出され、手順（２）により、対話タスクテーブル４２が参照されて、取り出した作業者ＩＤ「ｗ５」の選択確率を算出する。
【０１０１】
この例の場合、対話タスクｄ１では、作成済みの３つの発話のうち作業者ＩＤ「ｗ５」による発話は存在しないため、選択確率「０」を得る。対話タスクｄ２では、作成済みの４つの発話のうち２つが作業者ＩＤ「ｗ５」によるものであるため、選択確率「１／２」（＝２／４）を得る。
【０１０２】
対話タスクｄ３では、対話タスクｄ１と同様に、作業者ＩＤ「ｗ５」による発話は存在しないため、選択確率「０」を得る。対話タスクｄ４では、作成済みの２つの発話のうち１つが作業者ＩＤ「ｗ５」によるものであるため、選択確率「１／２」を得る。対話タスクｄ５も、対話タスクｄ１と同様に、作業者ＩＤ「ｗ５」による発話は存在しないため、選択確率「０」を得る。
【０１０３】
この例の場合、対話タスクｄ１〜ｄ５において、作業者ＩＤ「ｗ５」に関して、選択確率が最も高い対話タスクは「ｄ２」と「ｄ４」であり複数存在する。従って、手順（３）により、発話個数の最も少ない対話タスクを選択する。
【０１０４】
発話個数は、対話タスクｄ２とｄ４に対してカウントすればよい。対話タスクｄ２の発話個数は「４」であり、対話タスクｄ４の発話個数は「２」である。従って、発話個数の最も少ない対話タスクｄ４が選択される。
【０１０５】
上述したような作業者割当処理を作業者リスト４１から作業者ＩＤを順に取り出すごとに繰り返す。一方、作業者リスト４１へは、作業者割当処理とは独立して随時作業者ＩＤを追加する処理を行う。
【０１０６】
本実施例に係る種々の処理は、図１５に示すようなシステム構成において行われる。図１５は、本実施例におけるシステム構成例を示す図である。図１５に示すシステム１０００は、サーバ装置１００と、携帯端末、ＰＣ（Personal  Computer）等を含む複数の作業者端末３と、１以上の利用者端末６とを有し、サーバ装置１００と複数の作業者端末３及び１以上の利用者端末とはネットワーク２を介して接続される。
【０１０７】
サーバ装置１００は、本実施例に係る対話コーパス作成処理を実行する装置であり、不特定多数の作業者９に、複数の対話のそれぞれの目的に応じた発話を作成させることで、より利用価値の高い対話事例を蓄積して対話コーパスを作成する。
【０１０８】
複数の作業者端末３は、作業者９により利用される端末であり、各作業者９は、作業者端末３をサーバ装置１００にネットワーク２を介して接続することで、ネットワーク２を介して行われる対話に参加するこができる。
【０１０９】
１以上の利用者端末６は、サーバ装置１００が累積した、対話に係る一連の会話データ（対話コーパス）を利用する利用者７により利用される端末であり、利用者７は、利用者端末６をサーバ装置１００にネットワーク２を介して接続し、サーバ装置１００から会話データを取得する。
【０１１０】
サーバ装置１００は、コンピュータによって制御される情報処理装置であって、ＣＰＵ（Central  Processing  Unit）１１と、主記憶装置１２と、補助記憶装置１３と、入力装置１４と、表示装置１５と、通信Ｉ／Ｆ（インターフェース）１７と、ドライブ装置１８とを有し、バスＢ１に接続される。
【０１１１】
ＣＰＵ１１は、主記憶装置１２に格納されたプログラムに従ってサーバ装置１００を制御するプロセッサに相当する。主記憶装置１２には、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）等が用いられ、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を記憶又は一時保存する。
【０１１２】
補助記憶装置１３には、ＨＤＤ（Hard  Disk  Drive）等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１３に格納されているプログラムの一部が主記憶装置１２にロードされ、ＣＰＵ１１に実行されることによって、各種処理が実現される。
【０１１３】
入力装置１４は、マウス、キーボード等を有し、管理者がサーバ装置１００による処理に必要な各種情報を入力するために用いられる。表示装置１５は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。入力装置１４と表示装置１５とは、一体化したタッチパネル等によるユーザインタフェースであってもよい。通信Ｉ／Ｆ１７は、有線又は無線などのネットワークを通じて通信を行う。通信Ｉ／Ｆ１７による通信は無線又は有線に限定されるものではない
サーバ装置１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact  Disc  Read-Only  Memory）等の記憶媒体１９によってサーバ装置１００に提供される。
【０１１４】
ドライブ装置１８は、ドライブ装置１８にセットされた記憶媒体１９（例えば、ＣＤ−ＲＯＭ等）とサーバ装置１００とのインターフェースを行う。
【０１１５】
また、記憶媒体１９に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体１９に格納されたプログラムは、ドライブ装置１８を介してサーバ装置１００にインストールされる。インストールされたプログラムは、サーバ装置１００により実行可能となる。
【０１１６】
尚、プログラムを格納する記憶媒体１９はＣＤ−ＲＯＭに限定されず、コンピュータが読み取り可能な、データとしての構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【０１１７】
複数の作業者端末３は、コンピュータによって制御されるタブレット型、携帯電話等の情報処理端末であって、ＣＰＵ１１ａと、主記憶装置１２ａと、ユーザＩ／Ｆ（インターフェース）１６ａと、通信Ｉ／Ｆ１７ａと、ドライブ装置１８ａとを有し、バスＢ１に接続される。
【０１１８】
ＣＰＵ１１ａは、主記憶装置１２ａに格納されたプログラムに従って作業者端末３を制御するプロセッサに相当する。主記憶装置１２ａには、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）等が用いられ、ＣＰＵ１１ａにて実行されるプログラム、ＣＰＵ１１ａでの処理に必要なデータ、ＣＰＵ１１ａでの処理にて得られたデータ等を記憶又は一時保存する。主記憶装置１２ａに格納されているプログラムが、ＣＰＵ１１ａに実行されることによって、各種処理が実現される。
【０１１９】
ユーザＩ／Ｆ１６ａは、ＣＰＵ１１ａの制御のもとに必要な各種情報を表示し、また、ユーザによる操作入力を可能とするタッチパネル等である。通信Ｉ／Ｆ１７ａによる通信は無線又は有線に限定されるものではない。
【０１２０】
作業者端末３によって行われる処理を実現するプログラムは、ネットワーク２を介して外部装置からダウンロードされる。或いは、予め作業者端末３の主記憶装置１２ａ又は記憶媒体１９ａに記憶されていても良い。主記憶装置１２ａ及び／又は記憶媒体１９ａが記憶部１３０ａに相当する。
【０１２１】
ドライブ装置１８ａは、ドライブ装置１８ａにセットされた記憶媒体１９ａ（例えば、ＳＤ（Secure  Digital）メモリカード等）と作業者端末３とのインターフェースを行う。尚、記憶媒体１９ａは、コンピュータが読み取り可能な、データとしての構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい。
【０１２２】
利用者端末６のハードウェア構成は、作業者端末３と同様であるためその詳細な説明を省略する。また、作業者端末３及び利用者端末６は、デスクトップ型、ノートブック型、ラップトップ型等の情報処理端末であっても良く、そのハードウェア構成は、サーバ装置１００のハードウェア構成と同様であるので、その説明を省略する。
【０１２３】
図１６は、本実施例のシステムにおける全体処理の概要を説明するための図である。図１６では、本実施例のシステムにおける全体処理の概要を処理シーケンスを用いて説明する。
【０１２４】
作業者９が作業者端末３から対話参加要求３ａをサーバ装置１００へ送信する（ステップＳ１）。対話参加要求３ａには作業者ＩＤが含まれている。作業者ＩＤは、対話参加要求３ａを行う前にサーバ装置１００から取得しておいても良いし、初めての対話参加要求３ａに応じてサーバ装置１００が作業者ＩＤを付与し、作業者端末３に通知してもよい。以後は、サーバ装置１００から与えられた作業者ＩＤを指定して、対話参加要求３ａをサーバ装置１００へと送信する。
【０１２５】
サーバ装置１００では、対話参加要求３ａで指定される作業者ＩＤを用いて、作業者ＩＤを割り当てる対話を特定する作業者割当処理を行って（ステップＳ２）、対話参加要求３ａの要求元である作業者端末３に対話タスク提示を行って、対話タスクを作業者端末３に表示させる（ステップＳ４）。対話タスク提示３ｂには、対話前提情報、発話履歴情報等が含まれる。対話前提情報は、対話がなされる場面（前提）の説明を含み、作業者９に自身の役割を理解させるための情報である。発話履歴情報は、対話画面Ｇ７０に表示される既になされた対話の内容に相当する。
【０１２６】
作業者端末３では、対話画面Ｇ７０がユーザＩ／Ｆ１６ａに表示され、作業者９により発話が作成されると（ステップＳ５）、発話作成情報３ｃがサーバ装置１００へ送信される（ステップＳ６）。発話作成情報３ｃには、不適切チェックの有無、終了有無、作業者９が対話画面Ｇ７０の発話入力域７２に入力した発話を表わす発話データ等を含む。
【０１２７】
サーバ装置１００は、発話作成情報３ｃの受信に応じて、発話作成処理を行う（ステップＳ７）。発話作成処理において、サーバ装置１００は、発話データを記憶部１３０に蓄積し、作業者９に割り当てた対話タスクに対応付けて発話データを特定する発話ＩＤを追加し、対話タスクにおける発話スコアを更新する（ステップＳ７）。このようなステップＳ１〜Ｓ７が適宜繰り返される。
【０１２８】
一方、利用者７が利用者端末６から対話データ取得要求６ａを行うと（ステップＳ８）、サーバ装置１００は、対話データ取出処理を行う（ステップＳ９）。対話データ取出処理において、サーバ装置１００は、全ての対話を対象にして、発話スコアに基づいて作業者９に対する作業者スコアを算出する。また、サーバ装置１００は、対話毎に対話に関連付けられた発話毎の発話スコアに基づいて対話スコアを算出する。
【０１２９】
そして、所定条件に基づくスコア付き対話データ６ｂを提供する（ステップＳ１０）。所定条件は、例えば、利用者７が所望する対話スコアの閾値等であり、対話データ取得要求６ａで指定されてもよいし、対話データ取出処理にて予め設定されたデフォルトの閾値であってもよい。
【０１３０】
図１７は、サーバ装置の機能構成例を示す図である。図１７において、サーバ装置１００は、主に、初期化部５０と、作業者登録部５１と、作業者割当部５２と、発話作成部５５と、対話データ取出部５７と、ユーザＩ／Ｆ６０とを有する。初期化部５０と、作業者登録部５１と、作業者割当部５２と、発話作成部５５と、対話データ取出部５７と、ユーザＩ／Ｆ６０とは、対応するプログラムをＣＰＵ１１ａが実行することで行われる処理に相当する。
【０１３１】
記憶部１３０には、作業者リスト４１、対話タスクテーブル４２、発話テーブル４３、発話データＤＢ４４、作業者スコアテーブル４５、スコア付き対話データ６ｂ等が記憶される。
【０１３２】
初期化部５０は、本実施例に係るシステムの運用開始時、対話コーパスの作成をリセット等する際に作業者リスト４１、対話タスクテーブル４２等を初期化する。
【０１３３】
作業者登録部５１は、ユーザＩ／Ｆ６０を介して対話参加要求３ａの受信に応じて、対話参加要求３ａで指定される作業者ＩＤを作業者リスト４１に登録する処理部である。
【０１３４】
作業者割当部５２は、ユーザＩ／Ｆ６０を介して対話参加要求３ａの受信に応じて、１発話ごとに作業者９を特定し、特定した作業者９に発話を作成してもらう対話タスクを選択し、対話タスク提示３ｂを作業者端末９に行う処理部である。１発話ごとに作業者９を特定する処理は、作業者割当部５２により行われる処理の一部であり、作業者ＩＤ取出部に相当する。作業者割当部５２は、更に、対話タスク生成部５４を含む対話タスク選択部５３を有する。
【０１３５】
対話タスク選択部５３は、作業者割当部５２から呼び出される処理部であり、選択部に相当する。対話タスク選択部５３は、上述した作業者割当手順に従って、作業者９に割り当てる対話タスクを選択する。対話タスク選択部５３は、対話タスク生成部５４を呼び出して、対話タスクを生成させ、生成した対話タスクをユーザＩ／Ｆ６０を介して作業者端末３に送信して表示させる。
【０１３６】
発話作成部５５は、ユーザＩ／Ｆ６０を介して作業者端末３から発話作成情報３ｃを受信すると、対話タスクテーブル４２を更新する。発話作成情報３ｃから取得される発話データは、新たに付与された発話ＩＤと共に発話データＤＢ４４に蓄積される。発話データＤＢ４４は、対話コーパス１ａに相当する。
【０１３７】
発話作成部５５は、更に、発話情報更新部５６を有し、発話情報更新部５６を呼び出すことにより、発話データを追加し、対話タスクの発話スコアを再計算させ更新させる。
【０１３８】
発話情報更新部５６は、発話作成情報３ｃに基づき、発話テーブル４３で管理される発話木構造を更新し、発話スコアを更新する。
【０１３９】
対話データ取出部５７は、ユーザＩ／Ｆ６０を介して利用者端末６から対話データ取得要求６ａを受信すると、発話テーブル４３を参照して、作業者スコアと、対話スコアとを算出し、スコア付き対話データ６ｂを出力する。対話データ６ｂの一部又は全部を利用者端末６に提供してもよい。利用者７がサーバ装置１００の管理者である場合、入力装置１１４から対話データ取得要求６ａを行ってもよい。
【０１４０】
対話データ取出部５７は、更に、作業者スコア算出部５８と、発話スコア算出部５９とを有する。対話データ取出部５７は、作業者スコア算出部５８を呼び出して、発話テーブル４３を用いて作業者９それぞれの作業者スコアを算出させる。作業者スコア算出部５８によって作業者スコアテーブル４５が記憶部１３０に出力され記憶される。
【０１４１】
対話データ取出部５７は、発話スコア算出部５９を呼び出して、作業者スコアテーブル４５を用いて対話タスクごとの対話スコアを算出する。対話データ取出部５７によってスコア付き対話データ６ｂが記憶部１３０に出力され記憶される。
【０１４２】
ユーザＩ／Ｆ６０は、サーバ装置１００と作業者端末３の作業者９とのインタフェース、及びサーバ装置１００と利用者端末６の利用者７とインタフェースを、通信Ｉ／Ｆ１１７を介して行う。
【０１４３】
次に、記憶部１３０に記憶される種々のデータ構成について図１８から図２３について説明する。
【０１４４】
図１８は、作業者リストのデータ構成例を示す図である。図１８に示す作業者リスト４１は、図１０で説明したように、作業者９の作業者ＩＤを追加した順で取り出すキュー構造を持つリストである。
【０１４５】
この例では、作業者リスト４１の左から順に追加順に、ｗ４、ｗ９、ｗ２１、ｗ１０、ｗ５、ｗ７、ｗ８、そしてｗ４０が示されている。作業者リスト４１の長さは、作業者ＩＤの追加及び取り出しにより伸縮し、作業者リスト４１は拡張可能な記憶領域である。
【０１４６】
図１９は、対話タスクテーブルのデータ構成例を示す図である。図１９において、対話タスクテーブル４２は、対話タスク毎に、発話を作成した順で作業者ＩＤを記録したテーブルであり、対話ＩＤ、作業者ＩＤのリスト等の項目を有する。
【０１４７】
対話ＩＤは、対話タスクを特定する識別情報である。全ての対話タスクはタスクテーブル４２に登録され管理される。作業者ＩＤのリストは、発話作成毎に、作業者ＩＤを作成順に記録した一覧である。
【０１４８】
この例では、対話ＩＤ「ｄ１」に対して、作業者ＩＤ「ｗ４」及び「Ｗ１１」が記録されている。対話ＩＤ「ｄ２」に対して、作業者ＩＤ「ｗ５」、「ｗ７」、「ｗ５」、及び「Ｗ８」が記録されている。
【０１４９】
図２０は、発話テーブルのデータ構成例を示す図である。図２０において、発話テーブル４３は、対話タスクに対して作成された発話を発話木構造８で記録し管理するテーブルである。発話テーブル４３は、対話ＩＤ、発話ＩＤ、親発話、作業者ＩＤ、発話スコア（ＵＳ）、支持数等の項目を有する。
【０１５０】
対話ＩＤは、対話を特定する識別情報を示し、対話タスクテーブル４２に登録された識別情報である。発話ＩＤは、作成された発話を表わす発話データと関連付けられて発話データＤＢ４４で管理されている識別情報である。
【０１５１】
親発話は、発話木構造８において、親の関係にある発話ＩＤを示す。作業者ＩＤは、発話を作成した作業者９を特定する識別情報を示す。発話スコア（ＵＳ）は、支持数に基づいて算出された値を示し、発話の追加毎に更新される。支持数は、発話の追加毎に加算又は減算された値を示し、発話スコアの算出時に参照される。
【０１５２】
このデータ例では、対話ＩＤ「ｄ２」に関して、発話ＩＤ「ｕ２１」〜「ｕ２７」が記録されている。発話ＩＤ「ｕ２１」のレコードでは、自身が親発話に相当するため、親発話ＩＤは存在せず、発話作成者は作業者ＩＤ「ｗ１」の作業者９であり、発話スコアは「１」であり、支持数「１」を示している。
【０１５３】
発話ＩＤ「ｕ２２」のレコードでは、親発話ＩＤは「ｕ２１」であり、発話作成者は作業者ＩＤ「ｗ４」の作業者９であり、発話スコアは「０」であり、支持数「０」を示している。発話ＩＤ「ｕ２３」のレコードでは、親発話ＩＤは「ｕ２１」であり、発話作成者は作業者ＩＤ「ｗ７」の作業者９であり、発話スコアは「２／３」であり、支持数「２」を示している。発話ＩＤ「ｕ２４」のレコードでは、親発話ＩＤは「ｕ２１」であり、発話作成者は作業者ＩＤ「ｗ２」の作業者９であり、発話スコアは「１／３」であり、支持数「１／３」を示している。
【０１５４】
発話ＩＤ「ｕ２５」のレコードでは、親発話ＩＤは「ｕ２３」であり、発話作成者は作業者ＩＤ「ｗ３」の作業者９であり、発話スコアは「１」であり、支持数「１」を示している。発話ＩＤ「ｕ２６」のレコードでは、親発話ＩＤは「ｕ２５」であり、発話作成者は作業者ＩＤ「ｗ５」の作業者９であり、発話スコアは「１」であり、支持数「１」を示している。発話ＩＤ「ｕ２７」のレコードでは、親発話ＩＤは「ｕ２６」であり、発話作成者は作業者ＩＤ「ｗ６」の作業者９であり、発話スコアは「１」であり、支持数「１」を示している。
【０１５５】
このようなデータにより、発話木構造８ｋを表わすことができる。発話木構造８ｋは、対話ｄ２を構成する発話作成の系図を表わしている。ノードは発話を示し、発話ＩＤがノード内に示されている。また、枝に作業者ＩＤを示し、ノード近傍に発話スコアを示している。
【０１５６】
図２１は、発話データＤＢのデータ構成例を示す図である。図２１において、発話データＤＢ４４は、作業者端末３から受信した発話データを発話ＩＤに対応付けて記憶し管理するデータベースであり、発話ＩＤ、発話データ等の項目を有する。
【０１５７】
発話ＩＤは、作業者端末３から受信した発話データ毎に一意に付与される識別情報であり、発話データＤＢ４４で全ての発話データが発話ＩＤにより管理される。発話ＩＤにより、発話データＤＢ４４と発話テーブル４３とが関連付けされる。
【０１５８】
発話データは、作業者端末３から受信した発話作成情報３ｃから取得した、作業者９が作成した発話を表わすデータである。一例として、発話データは、テキスト、音声データ、対話状況を表現した画像や動画等である。
【０１５９】
このデータ例では、発話ＩＤ「ｕ１１」の発話データは「どちらへおでかけですか」であり、発話ＩＤ「ｕ１２」の発話データは「シカゴに行きます」であり、発話ＩＤ「ｕ１３」の発話データは「楽しんできてください」等が記録されている。他の発話ＩＤについても同様に、作業者９が作成した内容そのものが示される。
【０１６０】
図２２は、作業者スコアテーブルのデータ構成例を示す図である。図２２において、作業者スコアテーブル４５は、作業者９毎の作業者スコアを記録し管理するテーブルであり、作業者ＩＤ、作業者スコア等の項目を有する。
【０１６１】
作業者ＩＤは、作業者リスト４１に１度以上追加されたことのある作業者ＩＤを示す。作業者ＩＤによって、発話テーブル４３と作業者スコアテーブル４５とが関連付けされる。
作業者スコアは、発話テーブル４３の作業者ＩＤに対応付けられている発話スコアを用いて算出されたスコアを示し、作業者９の発話作成に対する誠実な貢献度（作成した発話の内容の信頼度）を示す。
【０１６２】
図２３は、スコア付き対話データのデータ構成例を示す図である。図２３において、スコア付き対話データ６ｂは、対話タスクを評価した結果を示すテーブルであり、対話ＩＤ、対話スコア、発話１、発話２、発話３等の項目を有する。
【０１６３】
対話ＩＤは、対話タスクを特定する識別情報であり、対話タスクテーブル４２に存在する対話ＩＤのいずれかを示す。対話スコアは、発話テーブル４３の発話スコアに基づいて、最も支持されたパスを特定し、特定したパス上で示される発話スコアを用いて算出された値を示し、対話タスクの完成度を示す。対話スコアが「１」の場合に最も完成度が高く、「０」に近付くほど完成度が低いことを示す。発話１、発話２、発話３等は、最も支持されたパス上でなされた発話データを示す。
【０１６４】
このデータ例では、対話ＩＤ「ｄ１」について、対話スコアは「１」を示し、最も支持されたパス上でなわれた発話は、発話１「どちらへおでかけですか」、発話２「シカゴに行きます」、発話３「楽しんできてください」等であったことが示されている。
【０１６５】
対話ＩＤ「ｄ３」について、対話スコアは「０．７５」を示し、最も支持されたパス上でなわれた発話は、発話１「どこへ行きますか」、発話２「見送りです」、発話３「[終了]」が示されている。作業者９がこの対話は直前の発話で完結したと判断し、対話画面Ｇ７０の終了チェック領域７４をチェックした場合に、発話３のように[終了]が示される。
【０１６６】
次に、各処理部５０〜５８における処理について説明する。以下の図において、点線はデータの流れを示し、実線は処理の流れを示す。先ず、初期化部５０による初期化処理について説明する。
【０１６７】
図２４は、初期化処理を説明するためのフローチャート図である。図２４において、初期化部５０は、対話数を取得する（ステップＳ２０１）。対話数の取得は、記憶部１３０に予め設定された対話数を読み込むことでもよいし、入力画面を表示装置１１５に表示して、サーバ装置１００の管理者等により初期設定として入力させてもよい。初期化部５０は、作業者リスト４１を空にし（ステップＳ２０２）、対話数に基づいて、対話タスクテーブル４２を初期化する（ステップＳ２０３）。
【０１６８】
対話タスクテーブル４２の初期化の一例として、対話数「５」が指定された場合、対話タスクを識別する対話ＩＤを５個生成し、対話タスクテーブル４２に登録する。対話ＩＤ「ｄ１」、「ｄ２」、「ｄ３」、「ｄ４」、及び「ｄ５」が生成された場合、対話ＩＤ毎にレコードが対話タスクテーブル４２に生成される。
【０１６９】
次に、作業者登録部５１による作業者登録処理と、作業者割当部５２による作業者割当処理とについて説明する。図２５は、作業者登録処理と作業者割当処理とを説明するためのフローチャート図である。
【０１７０】
図２５において、作業者登録部５１は、対話参加要求３ａをユーザＩ／Ｆ６０を介して受信すると、対話参加要求３ａから作業者ＩＤを取得して、作業者リスト４１へ追加する（ステップＳ２１１）。作業者登録部５１は、対話参加要求３ａの受信毎に、同様の処理を行う。
【０１７１】
一方、作業者割当部５２は、所定間隔で、作業者リスト４１から順に作業者ＩＤを１つ取り出して（ステップＳ２２１）、対話タスク選択部５３を呼び出して作業者ＩＤ及び対話タスクテーブル４２を通知して、対話タスク選択部５３により対話タスク選択処理を行う（ステップＳ２２２）。作業者ＩＤに対して割り当てる対話タスクが対話ＩＤにより特定される。作業者割当部５２によるステップＳ２２１は作業者ＩＤ取出部に相当し、対話タスク選択部５３によるステップＳ２２２は選択部に相当する。
【０１７２】
タスク選択処理により対話タスクが特定されると、作業者割当部５２は、作業者リスト４１は空か否かを判定する（ステップＳ２２４）。作業者リスト４１が空でない場合（ステップＳ２２４のＮＯ）、作業者割当部５２は、ステップＳ２２１へと戻り、上記同様の処理を繰り返す。一方、作業者リスト４１が空の場合（ステップＳ２２４のＹＥＳ）、作業者割当部５２は、この作業者割当処理を終了する。
【０１７３】
図２６は、図２５のステップＳ２２２における対話タスク選択処理を説明するためのフローチャート図である。図２６において、対話タスク選択部５３は、作業者割当部５２から作業者ＩＤ及び対話タスクテーブル４２を受け取ると、対話タスクテーブル４２の全ての対話ＩＤに対して選択確率を算出する（ステップＳ２３１）。
【０１７４】
上述した作業者割当手順に従って、対話ＩＤごとに選択確率が求められる。対話タスクが、通知された作業者ＩＤで終わっている場合には、
選択確率  ＝  ０
とする。それ以外では、
選択確率  ＝  作業者ＩＤの出現回数／発話個数
により算出する。
【０１７５】
対話タスク選択部５３は、選択確率の最大値を持つ対話ＩＤを対話タスクテーブル４２から選択し（ステップＳ２３２）、選択した対話ＩＤの数は１つか否かを判断する（ステップＳ２３３）。選択した対話ＩＤの数は１つの場合（ステップＳ２３３のＹＥＳ）、対話タスク選択部５３は、ステップＳ２３７へと進む。
【０１７６】
一方、選択した対話ＩＤの数が複数の場合（ステップＳ２３３のＮＯ）、対話タスク選択部５３は、発話個数が最小の対話ＩＤを選択し（ステップＳ２３４）、選択した対話ＩＤの数は１つか否かを判断する（ステップＳ２３５）。選択した対話ＩＤの数は１つの場合（ステップＳ２３５のＹＥＳ）、対話タスク選択部５３は、ステップＳ２３７へと進む。
【０１７７】
一方、選択した対話ＩＤの数が複数の場合（ステップＳ２３５のＮＯ）、対話タスク選択部５３は、選択した複数の対話ＩＤからランダムに１つを選択し（ステップＳ２３６）、対話タスク生成部５４を呼び出して、対話ＩＤ及び発話テーブル４３を通知し、対話タスク生成部５４により対話タスク生成処理を行う（ステップＳ２３７）。対話ＩＤに対応する対話タスクが生成される。
【０１７８】
対話タスク選択部５３は、対話タスクを取得すると、作業者割当部５２への戻り値として設定し、この対話タスク選択処理を終了する。
【０１７９】
図２７は、図２６のステップＳ２３７における対話タスク生成処理を説明するためのフローチャート図である。図２７では、対話ＩＤで特定された対話タスクが発話の作成毎に、＜ケース１＞→＜ケース２＞→＜ケース３＞→＜ケース４＞の順に遷移した場合に対応付けて説明する。対話タスク生成部５４から指定される対話ＩＤの発話木構造８は、＜ケース１＞、＜ケース２＞、＜ケース３＞、又は＜ケース４＞のいずれかに相当する。
【０１８０】
対話タスク生成部５４は、対話タスク生成部５４から受け付けた発話テーブル４３と対話ＩＤとを用いて、発話テーブル４３における指定された対話ＩＤに対応付けられる発話ＩＤを発話木構造８に従ってたどり、末端の発話ＩＤのうち、発話スコアが０でない発話ＩＤを取得する（ステップＳ２４１）。
【０１８１】
対話タスク生成部５４は、取得した発話ＩＤの数が１であったか２であったかを判断する（ステップＳ２４２）。
【０１８２】
取得した発話ＩＤは１つであった場合、対話タスク生成部５４は、発話テーブル４３から取得した発話ＩＤを用いて発話データＤＢ４４を参照し発話履歴情報を取得して、対話タスクを作成する（ステップＳ２４３）。
【０１８３】
この場合は＜ケース１＞に相当する。親の発話ＩＤ「Ａ」に対して子の発話ＩＤは「Ｄ」のみである。従って、ステップＳ２４３では、発話データＤＢ４４から発話ＩＤ「Ａ」で特定される発話データと、発話ＩＤ「Ｄ」で特定される発話データとにより、＜ケース１＞の発話木構造８に従って時系列に並べることで発話履歴情報を取得する。この発話履歴情報を含む対話タスクが作成される。
【０１８４】
その後、対話タスク生成部５４は、作成した対話タスクを戻り値として設定し、この対話タスク生成処理を終了する。
【０１８５】
ステップＳ２４２において取得した発話ＩＤは２つであると判断した場合、対話タスク生成部５４は、発話テーブル４３から発話ＩＤのそれぞれの支持数を取得し、取得した支持数の合計値が２を示すか３を示すかを判断する（ステップＳ２４４）。
【０１８６】
ステップＳ２４４において指示数の合計値が２を示すと判断した場合、対話タスク生成部５４は、最後に追加された発話ＩＤを除く発話ＩＤを用いて発話データＤＢ４４を参照し発話履歴情報を取得して、対話タスクを作成する（ステップＳ２４５）。
【０１８７】
この場合は＜ケース２＞又は＜ケース３＞に相当する。＜ケース２＞の場合、最後に追加された発話ＩＤは「Ｃ」であるため、この発話ＩＤ「Ｃ」が除かれる。従って、発話データＤＢ４４から発話ＩＤ「Ａ」で特定される発話データと、発話ＩＤ「Ｄ」で特定される発話データとにより、＜ケース２＞の発話木構造８に従って時系列に並べることで発話履歴情報を取得する。この発話履歴情報を含む対話タスクが作成される。
【０１８８】
＜ケース３＞の場合、最後に追加された発話ＩＤは「Ｅ」であるため、この発話ＩＤ「Ｅ」が除かれる。更に、発話ＩＤ「Ｄ」の発話は不適切であると判断されているため考慮せず、発話データＤＢ４４から発話ＩＤ「Ａ」で特定される発話データと、発話ＩＤ「Ｃ」で特定される発話データとにより、＜ケース３＞の発話木構造８に従って時系列に並べることで発話履歴情報を取得する。この発話履歴情報を含む対話タスクが作成される。
【０１８９】
その後、対話タスク生成部５４は、作成した対話タスクを戻り値として設定し、この対話タスク生成処理を終了する。
【０１９０】
ステップＳ２４４において取得した指示数の合計値が３を示すと判断した場合、対話タスク生成部５４は、発話テーブル４４を参照して、発話スコアの最も高い発話を選択して、対話タスクを作成する（ステップＳ２４６）。
【０１９１】
この場合は＜ケース４＞に相当する。＜ケース４＞の場合、発話スコアの最も高い発話ＩＤは「Ｆ」である。発話ＩＤ「Ｆ」を有するパスに従って、発話データＤＢ４４から発話ＩＤ「Ａ」で特定される発話データと、発話ＩＤ「Ｄ」で特定される発話データと、発話ＩＤ「Ｆ」で特定される発話データとにより、＜ケース４＞の発話木構造８に従って時系列に並べることで発話履歴情報を取得する。この発話履歴情報を含む対話タスクが作成される。
【０１９２】
その後、対話タスク生成部５４は、作成した対話タスクを戻り値として設定し、この対話タスク生成処理を終了する。
【０１９３】
次に、発話作成部５５による発話作成処理を説明する。図２８は、発話作成処理を説明するためのフローチャート図である。図２８において、発話作成部５５は、ユーザＩ／Ｆ６０を介して発話作成情報３ｃを受信すると、発話作成情報３ｃ内の発話データに発話ＩＤを付与して、発話データＤＢ４４に記録し、発話ＩＤを対話タスクテーブル４２へ追加する（ステップＳ２５１）。
【０１９４】
そして、発話作成部５５は、発話作成情報３ｃから不適切チェック有無を取得して、取得した不適切チェック有無と、発話ＩＤと、発話テーブル４３とを発話情報更新部５６に通知して、発話情報更新処理を行う（ステップＳ２５２）。発話情報更新処理により発話テーブル４３が更新され、発話作成部５５は、この発話作成処理を終了する。
【０１９５】
次に、発話情報更新部５６による発話情報更新処理について説明する。図２９は、図２８のステップＳ２５２における発話情報更新処理を説明するためのフローチャート図である。
【０１９６】
図２９において、発話情報更新部５６は、発話ＩＤを新しく追加するのか否かを判断する（ステップＳ２６１）。発話木構造８ｐの最後の発話ＩＤ「Ｄ」を親発話ＩＤとする発話ＩＤが他になければ、新たに追加する発話であると判断する。
【０１９７】
一例として、図２８では、割り当てた対話が発話木構造８ｐで表現される場合は、新たな発話ＩＤの追加であると判断する。一方、割り当てた対話が発話木構造８ｑで表現される場合は、新たな発話ＩＤは新たな追加ではないと判断する。
【０１９８】
ステップＳ２６１において新しく追加すると判断した場合、発話情報更新部５６は、更に、最後の発話が不適切であるか否かを判断する（ステップＳ２６２）。不適切チェック無しの場合、発話情報更新部５６は、最後の発話は不適切でないと判定し、発話テーブル４３に新たな発話ＩＤを追加登録し、支持数に１を設定する（ステップＳ２６３）。
【０１９９】
最後の発話ＩＤ「Ｄ」を親発話ＩＤとした、支持数「１」の新たな発話ＩＤのレコードが発話テーブル４３に追加される。発話木構造８ｐは発話木構造８ｐ−１に遷移する。そして、発話情報更新部５６は、ステップＳ２６８へと進む。
【０２００】
一方、ステップＳ２６２において、不適切チェック有りの場合、発話情報更新部５６は、最後の発話は不適切であると判定し、発話テーブル４３に新たな発話ＩＤを追加登録し、最後の発話ＩＤと同じ親発話ＩＤを設定し、支持数を１に設定する（ステップＳ２６４）。
【０２０１】
最後の発話ＩＤと同じ親発話ＩＤが設定され、支持数「１」の新たな発話ＩＤのレコードが発話テーブル４３に追加される。発話木構造８ｐは発話木構造８ｐ−２に遷移する。そして、発話情報更新部５６は、ステップＳ２６８へと進む。
【０２０２】
ステップＳ２６１において新しく追加しないと判断した場合、発話情報更新部５６は、更に、最後の発話が不適切であるか否かを判断する（ステップＳ２６５）。不適切チェック無しの場合、発話情報更新部５６は、最後の発話は不適切でないと判定し、発話テーブル４３において、親発話ＩＤに対して支持数を１増やし、新たな発話ＩＤを追加登録し、その支持数を１に設定する（ステップＳ２６６）。
【０２０３】
親発話ＩＤのレコードの支持数が１加算され、支持数「１」の新たな発話ＩＤのレコードが発話テーブル４３に追加される。発話木構造８ｑ発話木構造８ｑ−１に遷移する。そして、発話情報更新部５６は、ステップＳ２６８へと進む。
【０２０４】
一方、ステップＳ２６５において、不適切チェック有りの場合、発話情報更新部５６は、最後の発話は不適切であると判定する。そして、発話情報更新部５６は、発話テーブルにおいて、最後の発話ＩＤに対して支持数を０に設定し、新たな発話ＩＤを追加登録し、最後の発話ＩＤと同じ親発話ＩＤを設定し、支持数を１に設定する（ステップＳ２６７）。
【０２０５】
最後の発話ＩＤのレコードの支持数が０に設定さら、最後の発話ＩＤと同じ親発話ＩＤを持ち、支持数「１」の新たな発話ＩＤのレコードが発話テーブル４３に追加される。発話木構造８ｑ発話木構造８ｑ−２に遷移する。そして、発話情報更新部５６は、ステップＳ２６８へと進む。
【０２０６】
ステップＳ２６８では、発話情報更新部５６は、支持数が変化したノードと、その兄弟ノードそれぞれに対して、発話スコアを算出し、それぞれのレコードに設定する。発話スコアは、
支持数  ÷  兄弟ノードの合計支持数
により得られる。
【０２０７】
発話木構造８ｐ−１では、新たな発話ＩＤ「Ｎ」の兄弟ノードは存在しないため、発話スコアは「１」となる。
【０２０８】
また、発話木構造８ｐ−２では、新たな発話ＩＤ「Ｎ」の兄弟ノードは発話ＩＤ「Ｄ」である。従って、発話ＩＤ「Ｎ」の発話スコアに「１／２」が設定され、発話ＩＤ「Ｄ」の発話スコアに「１／２」が設定される。
【０２０９】
一方、発話木構造８ｑ−１では、支持数の変化した発話ＩＤ「Ｄ」には発話ＩＤ「Ｃ」の兄弟ノードが存在するため、発話ＩＤ「Ｄ」の発話スコアに「２／３」が設定され、発話ＩＤ「Ｃ」の発話スコアに「１／３」が設定される。発話ＩＤ「Ｎ」に兄弟は存在しないため、発話スコアは「１」となる。
【０２１０】
また、発話木構造８ｑ−２では、支持数の変化した発話ＩＤ「Ｄ」には、発話ＩＤ「Ｃ」と、新たに追加した発話ＩＤ「Ｎ」とが兄弟ノードとして存在している。発話ＩＤ「Ｄ」の発話スコアは「０」であり、削除された状態を示す。兄弟ノードの、発話ＩＤ「Ｃ」の発話スコアに「１／２」が設定され、発話ＩＤ「Ｎ」の発話スコアに「１／２」が設定される。
【０２１１】
次に、対話データ取出部５７による対話データ取出処理を説明する。図３０は、対話データ取出処理を説明するためのフローチャート図である。図３０において、対話データ取出部５７は、ユーザＩ／Ｆ６０から対話データ取得要求６ａの通知を受けると、作業者スコア算出部５８を呼び出して、発話テーブル４３を通知し、作業者スコア算出処理を行う（ステップＳ２７１）。対話データ取出部５７は、作業者スコア算出部５８から、戻り値として、作業者９毎に発話作成の内容に対する信頼度を示した作業者スコアテーブル４５を取得する。
【０２１２】
そして、対話データ取出部５７は、対話スコア算出部５９を呼び出して、作業者スコア算出部５８から得た作業者スコアテーブル４５を通知し、対話スコア算出処理を行う（ステップＳ２７２）。対話データ取出部５７は、対話スコア算出部５９から、戻り値として、対話毎に文脈の適切さを示したスコア付き対話データ６ｂを取得する。
【０２１３】
次に、作業者スコア算出部５８による作業者スコア算出処理について説明する。図３１は、図３０のステップＳ２７１における作業者スコア算出処理を説明するためのフローチャート図である。
【０２１４】
図３１において、作業者スコア算出部５８は、発話テーブル４３を参照して、作業者ＩＤ毎に、発話数と発話スコアの合計とを求める（ステップＳ２８１）。
【０２１５】
そして、作業者スコア算出部５８は、作業者ＩＤ毎に、求めた発話数と発話スコアの合計とから平均値を算出し、作業者ＩＤと算出した平均値とを対応付けた作業者スコアテーブル４５を作成する（ステップＳ２８２）。作業者スコア算出部５８は、作成した作業者スコアテーブル４５を戻り値に設定し、この作業者スコア算出処理を終了する。
【０２１６】
次に、対話スコア算出部５９による対話スコア算出処理について説明する。図３２は、図３０のステップＳ２７２における対話スコア算出処理を説明するためのフローチャート図である。
【０２１７】
図３２において、対話スコア算出部５９は、発話テーブル４３を参照して、対話ＩＤ毎に、発話木構造８の親子関係に従い、発話スコアに基づいて発話ＩＤを選択することで、最も支持されたパスを特定する（ステップＳ２９１）。２以上の発話ＩＤに対して同一の親発話ＩＤが対応付けられている場合、対話スコア算出部５９は、発話スコアが最大値の発話ＩＤを選択する。
【０２１８】
対話スコア算出部５９は、発話テーブル４３を参照して、対話ＩＤ毎に、特定したパス上の発話ＩＤに対応付けられた作業者ＩＤを取得する（ステップＳ２９２）。更に、対話スコア算出部５９は、作業者スコアテーブル４５を参照して、対話ＩＤ毎に、特定したパス上の発話ＩＤに対応付けられた作業者ＩＤを取得する（ステップＳ２９３）。
【０２１９】
また、対話スコア算出部５９は、パス毎に、作業者スコアの合計値と、対話ＩＤの総数とを用いて相乗平均を算出する（ステップＳ２９４）。
【０２２０】
そして、対話スコア算出部５９は、各対話ＩＤに対して、最も支持されたパスの発話ＩＤの順に、発話データＤＢ４４から発話データを取得して、対話ＩＤと、対話スコアと、発話データとを対応付けたスコア付き対話データ６ｂを作成する（ステップＳ２９５）。対話スコア算出部５９は、作成したスコア付き対話データ６ｂを戻り値に設定して、この対話スコア算出処理を終了する。
【０２２１】
上述より、本実施例では、作業者９のペアを作る必要がないため、ペアを作って時間を調整する等の作業コストを削減することができる。ペアを作る場合には、ペアの管理コストの負担や高い作業単価のために、一定の費用を用いて作成できる対話コーパスのサイズが小さくなる。そのため、小規模な対話コーパスしか作ることが出来なかった。
【０２２２】
一方、本実施例では、個別の作業者９による対話の発話作業が可能となるため、作業者９は、作業者端末３を用いて、任意の場所や時間に作業を行える。そのため不特定多数の作業者９が作業にあたることができ、大規模な対話コーパスの作成を可能とする。また、不特定多数の個別の作業者９に作業を発注する方法であるクラウドソーシングを利用できるようになる。
【０２２３】
更に、不適切な発話を作成する作業者９を作業者スコアに基づいて特定することが可能であり、作業者スコアにより作業者９をフィルタリングすることにより不適切な発話の作成を抑制できる。また、発話の適切さを示すスコアを算出可能であるため、質の良い対話を特定でき、対話の内容（対話の流れの発話データのセット）を提供可能である。
【０２２４】
また、選択確率を用いた作業者９の対話への割り当てにより、作業者９の負荷を下げることができ、これにより作業単価を低く抑えることができる。
【０２２５】
クラウドソーシングでは、作業可能な作業者９の数は時系列上で一定ではないが、その数の如何によらず適切な作業の割り当てを行うことができる。
【０２２６】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【０２２７】
以上の本実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
２者の対話に係る対話情報に基づいて１発話を表わす発話データを作成する作業者の作業者ＩＤを、複数の作業者の作業者ＩＤを該対話へ参加可能な順に記憶した記憶部から、１発話ごとに取り出し、
前記記憶部で管理される、複数の対話それぞれ毎に時系列に該対話に参加した作業者の作業者ＩＤの記録を参照して、取り出した前記作業者ＩＤの作業者の過去の参加状況に基づく作業者割当手順に従って、前記発話データを作成する作業者を割り当てる該対話を選択し、
前記複数の作業者により前記対話を完成させた対話データを得る
処理をコンピュータに実行させる対話コーパス作成プログラム。
（付記２）
前記対話を割り当てた作業者の作業者端末に、該対話の対話情報の表示と、該対話情報で示される直前の発話の内容が不適切である場合のチェックと、前記発話データの入力領域とを有する作成画面を表示させ、
前記作業者端末から、少なくとも前記発話データと、前記不適切のチェック有無とを受信すると、受信した該発話データを、前記対話の進行に従って親子関係を持つ木構造で管理し、前記不適切のチェック有りの場合、前記受信した発話データを、親の発話データから枝分かれさせて直前の発話データと兄弟関係として前記記憶部に記録し、
直後の発話データと共に受信した前記不適切のチェックの有無に応じて、前記直前の発話データの不適切さを判定する
処理を前記コンピュータに実行させる付記１記載の対話コーパス作成プログラム。
（付記３）
前記木構造では、受信した前記発話データに対して、支持数を付与し、
前記直前の発話データに対して兄弟関係の別の発話データが存在する場合、受信した前記発話データと共に受信した前記不適切のチェックの有無に応じて、該直前の発話データの前記支持数を増減する
処理を前記コンピュータに実行させる付記２記載の対話コーパス作成プログラム。
（付記４）
前記支持数が増減した発話データと、該発話データの兄弟関係の発話データとに対して、前記支持数の合計に対する該発話データそれぞれの支持数の割合により、発話スコアを算出し前記記憶部に記憶する
処理を前記コンピュータに実行させる付記３記載の対話コーパス作成プログラム。
（付記５）
前記記憶部を参照して、作業者ＩＤ毎に、作成した前記発話データの個数と、前記発話スコアの合計値とを取得し、
前記作業者ＩＤ毎に、前記発話スコアの平均値を算出して、該作業者ＩＤに算出した該平均値を対応付けて前記記憶部に記憶する
処理を前記コンピュータに実行させる付記４記載の対話コーパス作成プログラム。
（付記６）
前記記憶部を参照して、対話毎の発話データの木構造の親子関係と、前記発話スコアとに基づいて、該対話において最も支持された一連の発話データのつながりによるパスを特定し、
前記パス毎に、前記発話データを作成した作業者の作業者ＩＤに対応付けられた前記平均値を前記記憶部から取得して合計し、合計した値とパスの総数とを用いて相乗平均を算出し、対話を特定する対話ＩＤと算出した相乗平均とを対応付けて前記記憶部に記憶する
処理を前記コンピュータに実行させる付記５記載の対話コーパス作成プログラム。
（付記７）
前記パス上の親子関係に従って発話データを順に並べ、前記相乗平均と共に前記対話ＩＤに対応付けたスコア付き対話データを作成する
処理を前記コンピュータに実行させる付記６記載の対話コーパス作成プログラム。
（付記８）
前記コンピュータに、
前記複数の対話それぞれにおいて、該対話に参加した作業者の作業者ＩＤの記録に、取り出された前記作業者ＩＤが存在する割合を算出させ、
最も高い割合の対話の最後に取り出された前記作業者ＩＤを追加し、追加した該作業者ＩＤで特定される作業者を該最も高い割合の対話に割り当てさせる
ことを特徴とする付記１乃至７のいずれか一項記載の対話コーパス作成プログラム。
（付記９）
前記コンピュータに、
前記最も高い割合の対話が複数存在する場合、該複数の対話から、取り出された前記作業者ＩＤの出現回数が最も多い対話を選択する
ことを特徴とする付記８記載の対話コーパス作成プログラム。
（付記１０）
前記コンピュータに、
前記最も高い割合の対話が複数存在し、かつ、取り出された前記作業者ＩＤの出現回数が同数の場合、該複数の対話から、ランダムに対話を１つを選択する。
ことを特徴とする付記８記載の対話コーパス作成プログラム。
（付記１１）
２者の対話に係る対話情報に基づいて１発話を表わす発話データを作成する作業者の作業者ＩＤを、複数の作業者の作業者ＩＤを該対話へ参加可能な順に記憶した記憶部から、１発話ごとに取り出し、
前記記憶部で管理される、複数の対話それぞれ毎に時系列に該対話に参加した作業者の作業者ＩＤの記録を参照して、取り出した前記作業者ＩＤの作業者の過去の参加状況に基づく作業者割当手順に従って、前記発話データを作成する作業者を割り当てる該対話を選択し、
前記複数の作業者により前記対話を完成させた対話データを得る
処理をコンピュータが行う対話コーパス作成方法。
（付記１２）
２者の対話に係る対話情報に基づいて１発話を表わす発話データを作成する作業者の作業者ＩＤを、複数の作業者の作業者ＩＤを該対話へ参加可能な順に記憶した記憶部から、１発話ごとに取り出す作業者ＩＤ取出部と、
前記記憶部で管理される、複数の対話それぞれ毎に時系列に該対話に参加した作業者の作業者ＩＤの記録を参照して、取り出した前記作業者ＩＤの作業者の過去の参加状況に基づく作業者割当手順に従って、前記発話データを作成する作業者を割り当てる該対話を選択する選択部と
前記複数の作業者により前記発話データを作成させ、作成された発話データを収集する発話作成部と
を有する情報処理装置。
【符号の説明】
【０２２８】
３          作業者端末
３ａ        対話参加要求
３ｂ        対話タスク提示
６          利用者端末
６ａ        対話データ取得要求
６ｂ        スコア付き対話データ
７          利用者
９          作業者
４１        作業者リスト
４２        対話タスクテーブル
４３        発話テーブル
４４        発話データＤＢ
４５        作業者スコアテーブル
５０        初期化部
５１        作業者登録部
５２        作業者割当部
５３        対話タスク選択部
５４        対話タスク生成部
５５        発話作成部
５６        発話情報更新部
５７        対話データ取出部
５８        作業者スコア算出部
５９        対話スコア算出部
６０        ユーザＩ／Ｆ
１００      サーバ装置
【図１】
2018146720.tif 000003
【図２】
2018146720.tif 000004
【図３】
2018146720.tif 000005
【図４】
2018146720.tif 000006
【図５】
2018146720.tif 000007
【図６】
2018146720.tif 000008
【図７】
2018146720.tif 000009
【図８】
2018146720.tif 000010
【図９】
2018146720.tif 000011
【図１０】
2018146720.tif 000012
【図１１】
2018146720.tif 000013
【図１２】
2018146720.tif 000014
【図１３】
2018146720.tif 000015
【図１４】
2018146720.tif 000016
【図１５】
2018146720.tif 000017
【図１６】
2018146720.tif 000018
【図１７】
2018146720.tif 000019
【図１８】
2018146720.tif 000020
【図１９】
2018146720.tif 000021
【図２０】
2018146720.tif 000022
【図２１】
2018146720.tif 000023
【図２２】
2018146720.tif 000024
【図２３】
2018146720.tif 000025
【図２４】
2018146720.tif 000026
【図２５】
2018146720.tif 000027
【図２６】
2018146720.tif 000028
【図２７】
2018146720.tif 000029
【図２８】
2018146720.tif 000030
【図２９】
2018146720.tif 000031
【図３０】
2018146720.tif 000032
【図３１】
2018146720.tif 000033
【図３２】
2018146720.tif 000034