(57)【要約】【課題】  本発明は，対話フロー生成システムを提供することを目的とする。【解決手段】  対話情報の入力を受け付ける対話情報入力受付処理部と，受け付けた対話情報に基づいてフロー表を生成する表生成処理部と，を有しており，表生成処理部は，対話情報に基づく第１の対話情報における基準単位対話に対するクラスタリング処理を実行し，クラスタリングをした第１の対話情報における基準単位対話に対応する，対話情報に基づく第２の対話情報における基準単位対話についてクラスタリング処理を実行してフロー表を生成する，対話フロー生成システムである。【選択図】  図１
2020135087.tif 000002
【特許請求の範囲】
【請求項１】
対話情報に基づく対話フロー生成システムであって，
前記対話フロー生成システムは，
対話情報の入力を受け付ける対話情報入力受付処理部と，
前記受け付けた対話情報に基づいてフロー表を生成する表生成処理部と，を有しており，
前記表生成処理部は，
前記対話情報に基づく第１の対話情報における基準単位対話に対するクラスタリング処理を実行し，
前記クラスタリングをした前記第１の対話情報における基準単位対話に対応する，前記対話情報に基づく前記第２の対話情報における基準単位対話についてクラスタリング処理を実行して前記フロー表を生成する，
ことを特徴とする対話フロー生成システム。
【請求項２】
対話情報に基づく対話フロー生成システムであって，
前記対話フロー生成システムは，
対話情報の入力を受け付ける対話情報入力受付処理部と，
前記受け付けた対話情報に基づいてフロー表を生成する表生成処理部と，を有しており，
前記表生成処理部は，
前記入力を受け付けた対話情報における基準単位対話と，すでに生成したフロー表における基準単位対話との類似性を判定することで，逐次，フロー表を生成する，
ことを特徴とする対話フロー生成システム。
【請求項３】
前記表生成処理部は，
前記入力を受け付けた対話情報における基準単位対話と，すでに生成したフロー表における基準単位対話との類似性を判定することで，逐次，フロー表を生成し，
前記入力を受け付けた対話情報の数が所定条件を充足した場合には，前記入力を受け付けた対話情報における第１の対話情報の基準単位対話に対するクラスタリング処理を実行し，前記クラスタリングをした前記第１の対話情報における基準単位対話に対応する，前記入力を受け付けた対話情報における第２の対話情報の基準単位対話についてクラスタリング処理を実行して前記フロー表を生成する，
ことを特徴とする請求項１または請求項２に記載の対話フロー生成システム。
【請求項４】
前記表生成処理部は，
前記類似性は，基準単位対話に基づく基準単位ベクトルと所定の閾値とを比較することで判定し，
前記クラスタリングによるフロー表を生成した場合，前記クラスタリングによるフロー表と，逐次生成したフロー表との相違箇所を判定して，前記相違箇所が最小となる場合の閾値を特定することで，前記閾値を更新する，
ことを特徴とする請求項３に記載の対話フロー生成システム。
【請求項５】
前記表生成処理部は，
前記クラスタリング処理として階層クラスタリングを実行する，
ことを特徴とする請求項１，請求項３または請求項４に記載の対話フロー生成システム。
【請求項６】
前記表生成処理部は，
前記クラスタリング処理において，あらかじめ定めた複数のクラスタ数について，それぞれ階層クラスタリングを実行し，
それぞれのクラスタ数による階層クラスタリングの実行結果について，埋まり具合および／またはばらつき具合について判定することで，もっとも評価の高いクラスタ数を用いる，
ことを特徴とする請求項５に記載の対話フロー生成システム。
【請求項７】
前記対話フロー生成システムは，
前記表生成処理部で生成したフロー表に基づいてフロー図を生成するフロー図生成処理部，
を有することを特徴とする請求項１から請求項６のいずれかに記載の対話フロー生成システム。
【請求項８】
コンピュータを，
対話情報の入力を受け付ける対話情報入力受付処理部，
前記受け付けた対話情報に基づいてフロー表を生成する表生成処理部，として機能させる対話フロー生成プログラムであって，
前記表生成処理部は，
前記対話情報に基づく第１の対話情報における基準単位対話に対するクラスタリング処理を実行し，
前記クラスタリングをした前記第１の対話情報における基準単位対話に対応する，前記対話情報に基づく前記第２の対話情報における基準単位対話についてクラスタリング処理を実行して前記フロー表を生成する，
ことを特徴とする対話フロー生成プログラム。
【請求項９】
コンピュータを，
対話情報の入力を受け付ける対話情報入力受付処理部，
前記受け付けた対話情報に基づいてフロー表を生成する表生成処理部，として機能させる対話フロー生成プログラムであって，
前記表生成処理部は，
前記入力を受け付けた対話情報における基準単位対話と，すでに生成したフロー表における基準単位対話との類似性を判定することで，逐次，フロー表を生成する，
ことを特徴とする対話フロー生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，対話フロー生成システムに関する。
【背景技術】
【０００２】
コールセンタ業務などをコンピュータによる自動応答などで代替しようとすることが検討されている。また一部では，チャットボットなどを用いて，人間が質問を行い，それに対して，コンピュータが自動的に返信をするといった試みもされている。このように，近年では，人間とコンピュータとが対話をすることの試みがなされている。
【０００３】
人間とコンピュータとが自然言語を用いて対話をする場合，コンピュータに対話の流れ（対話フロー）を与えておく必要がある。
【０００４】
また，人間とコンピュータが対話を行う場合に限らず，コールセンタなどで人間同士が対話をする場合であっても，対話フローを与えておくことは重要である。たとえばコールセンタのオペレータがまだ不慣れな場合には，オペレータに対してどのような対話を行えばよいのかの対話フローを伝達しておく，あるいはマニュアル化しておくことで，不慣れさを補うことができる。
【０００５】
対話の流れを示す対話フローは，それまでに蓄積された複数の対話の内容（対話情報）から似通った対話情報をまとめ，まとめた対話情報から具体的な対話情報を順に取り出して構築することとなる。
【０００６】
対話フローを自動的に構築する従来技術として，たとえば下記特許文献１，特許文献２に示すシステムがある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１８−１８１２５０号公報
【特許文献２】特開２０１８−１９５２９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
対話情報から対話フローを精度よく構築する場合，蓄積された対話情報を一つずつ確認し，類似した対話の流れを捉え，それを集合にまとめて流れに沿って対話を並べ替えるという作業を行うことが求められる。そのため，蓄積されている対話情報の件数が多くなると，人手で対話フローを構築することは極めて困難となる。
【０００９】
特許文献１，特許文献２に示すような技術も存在するが，その精度が高いとはいえない。
【課題を解決するための手段】
【００１０】
本発明者らは上記課題に鑑み，蓄積されている対話情報から対話フローを精度よく生成することができる対話フロー生成システムを発明した。
【００１１】
第１の発明は，対話情報に基づく対話フロー生成システムであって，前記対話フロー生成システムは，対話情報の入力を受け付ける対話情報入力受付処理部と，前記受け付けた対話情報に基づいてフロー表を生成する表生成処理部と，を有しており，前記表生成処理部は，前記対話情報に基づく第１の対話情報における基準単位対話に対するクラスタリング処理を実行し，前記クラスタリングをした前記第１の対話情報における基準単位対話に対応する，前記対話情報に基づく前記第２の対話情報における基準単位対話についてクラスタリング処理を実行して前記フロー表を生成する，対話フロー生成システムである。
【００１２】
本発明を用いることで，対話情報から対話フローを生成するためのフロー表を精度よく生成することができる。
【００１３】
第２の発明は，対話情報に基づく対話フロー生成システムであって，前記対話フロー生成システムは，対話情報の入力を受け付ける対話情報入力受付処理部と，前記受け付けた対話情報に基づいてフロー表を生成する表生成処理部と，を有しており，前記表生成処理部は，前記入力を受け付けた対話情報における基準単位対話と，すでに生成したフロー表における基準単位対話との類似性を判定することで，逐次，フロー表を生成する，対話フロー生成システムである。
【００１４】
本発明を用いることでも，第１の発明と同様の技術的効果を得ることができる。また，第１の発明ではクラスタリング処理を行うため，ある程度の数量の対話情報が必要となるが，本発明では，逐次，フロー表を生成することから，少しずつ対話情報が増加する場合であっても，フロー表を生成することができる。
【００１５】
上述の発明において，前記表生成処理部は，前記入力を受け付けた対話情報における基準単位対話と，すでに生成したフロー表における基準単位対話との類似性を判定することで，逐次，フロー表を生成し，前記入力を受け付けた対話情報の数が所定条件を充足した場合には，前記入力を受け付けた対話情報における第１の対話情報の基準単位対話に対するクラスタリング処理を実行し，前記クラスタリングをした前記第１の対話情報における基準単位対話に対応する，前記入力を受け付けた対話情報における第２の対話情報の基準単位対話についてクラスタリング処理を実行して前記フロー表を生成する，対話フロー生成システムのように構成することができる。
【００１６】
対話情報の数が所定条件を充足するまでは，逐次，フロー表を生成する逐次学習処理によって実行し，所定条件を充足した場合にはクラスタリング処理を実行する二段階の処理とすることで，迅速な処理と精度の良さとを両立することができる。
【００１７】
上述の発明において，前記表生成処理部は，前記類似性は，基準単位対話に基づく基準単位ベクトルと所定の閾値とを比較することで判定し，前記クラスタリングによるフロー表を生成した場合，前記クラスタリングによるフロー表と，逐次生成したフロー表との相違箇所を判定して，前記相違箇所が最小となる場合の閾値を特定することで，前記閾値を更新する，対話フロー生成システムのように構成することができる。
【００１８】
類似性の判定は基準単位ベクトルと閾値とを比較して行うが，閾値の設定を適切に行うことは難しい。そこで本発明のような処理を実行することで，閾値を適切に設定することができる。
【００１９】
上述の発明において，前記表生成処理部は，前記クラスタリング処理として階層クラスタリングを実行する，対話フロー生成システムのように構成することができる。
【００２０】
クラスタリング手法には，k-means法，x-means法，階層クラスタリングなどの方法がある。上述の各発明ではどのクラスタリング手法を用いることもできる。しかし，k-means法やx-means法では初期値依存性があることから，クラスタリング処理を実行するごとに異なるフロー表が生成されてしまい，安定的な精度を得ることができない。また，関連しない基準単位対話が同じクラスタに混在する，または反対に，関連する基準単位対話が異なるクラスタに分かれてしまう場合がある。そこで，とくに階層クラスタリングを用いることで，精度を向上させることができる。
【００２１】
上述の発明において，前記表生成処理部は，前記クラスタリング処理において，あらかじめ定めた複数のクラスタ数について，それぞれ階層クラスタリングを実行し，それぞれのクラスタ数による階層クラスタリングの実行結果について，埋まり具合および／またはばらつき具合について判定することで，もっとも評価の高いクラスタ数を用いる，対話フロー生成システムのように構成することができる。
【００２２】
クラスタリング処理として階層クラスタリングを用いた場合，クラスタ数をあらかじめ設定するk-means法やクラスタ数が自動的に設定されるx-means法と異なり，クラスタ数が一意に定まらないため，クラスタ数を定めなければならない。そこで，本発明の処理を実行することで適切なクラスタ数を定めることができ，結果，階層クラスタリングを適用することが可能となる。
【００２３】
上述の発明において，前記対話フロー生成システムは，前記表生成処理部で生成したフロー表に基づいてフロー図を生成するフロー図生成処理部，を有する対話フロー生成システムのように構成することができる。
【００２４】
第１の発明は，本発明のプログラムをコンピュータに読み込ませて実行することで，実現できる。すなわち，コンピュータを，対話情報の入力を受け付ける対話情報入力受付処理部，前記受け付けた対話情報に基づいてフロー表を生成する表生成処理部，として機能させる対話フロー生成プログラムであって，前記表生成処理部は，前記対話情報に基づく第１の対話情報における基準単位対話に対するクラスタリング処理を実行し，前記クラスタリングをした前記第１の対話情報における基準単位対話に対応する，前記対話情報に基づく前記第２の対話情報における基準単位対話についてクラスタリング処理を実行して前記フロー表を生成する，対話フロー生成プログラムである。
【００２５】
第２の発明は，本発明のプログラムをコンピュータに読み込ませて実行することで，実現できる。すなわち，コンピュータを，対話情報の入力を受け付ける対話情報入力受付処理部，前記受け付けた対話情報に基づいてフロー表を生成する表生成処理部，として機能させる対話フロー生成プログラムであって，前記表生成処理部は，前記入力を受け付けた対話情報における基準単位対話と，すでに生成したフロー表における基準単位対話との類似性を判定することで，逐次，フロー表を生成する，対話フロー生成プログラムである。
【発明の効果】
【００２６】
本発明の対話フロー生成システムによって，蓄積されている対話情報から対話フローを精度よく生成することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の対話フロー生成システムの全体の構成の一例を模式的に示す図である。
【図２】本発明の対話フロー生成システムで用いるコンピュータのハードウェア構成の一例を模式的に示す図である。
【図３】本発明の対話フロー生成システムの全体の処理プロセスの一例を示すフローチャートの一例を示す図である。
【図４】本発明の対話フロー生成システムにおける表生成処理の処理プロセスの一例を示すフローチャートの一例を示す図である。
【図５】対話情報の集合の一例を示す図である。
【図６】オペレータ側の分離対話情報の集合の一例を示す図である。
【図７】ユーザ側の分離対話情報の集合の一例を示す図である。
【図８】基準単位ベクトルの算出処理の一例を模式的に示す図である。
【図９】ソート処理の前のフロー表の一例を示す図である。
【図１０】ソート処理の前のフロー表の一例を示す図である。
【図１１】ソート処理の前のフロー表の一例を示す図である。
【図１２】ソート処理の前のフロー表の一例を示す図である。
【図１３】ソート処理後のフロー表の一例を示す図である。
【図１４】ソート処理後のフロー表の一例を示す図である。
【図１５】ソート処理後のフロー表の一例を示す図である。
【図１６】ソート処理後のフロー表の一例を示す図である。
【図１７】図１３乃至図１６の表の項目からさらに対話情報を減らした表の一例を示す図である。
【図１８】フロー表に基づいてフロー図を生成する処理を模式的に示す図である。
【図１９】フロー表の一例を示す図である。
【図２０】フロー図生成処理部が生成したフロー図の一例を示す図である。
【図２１】逐次処理を模式的に示す図である。
【図２２】階層クラスタリングの各手法における評価結果の一例を示す図である。
【図２３】x-means法と階層クラスタリングによる評価結果の一例を示す図である。
【図２４】x-means法と階層クラスタリングによる評価結果の一例を示す図である。
【発明を実施するための形態】
【００２８】
本発明の対話フロー生成システム１の全体のシステム構成の一例を図１に，対話フロー生成システム１で用いるコンピュータのハードウェア構成の一例を図２に示す。
【００２９】
対話フロー生成システム１は，コンピュータによって実現される。コンピュータは，プログラムの演算処理を実行するＣＰＵなどの演算装置７０と，情報を記憶するＲＡＭやハードディスクなどの記憶装置７１と，ディスプレイなどの表示装置７２と，情報の入力を行う入力装置７３と，演算装置７０の処理結果や記憶装置７１に記憶する情報を通信する通信装置７４とを有している。なお，コンピュータがタッチパネルディスプレイを備えている場合には表示装置７２と入力装置７３とが一体的に構成されていてもよい。タッチパネルディスプレイは，たとえばタブレット型コンピュータやスマートフォンなどの可搬型通信端末などで利用されることが多いが，それに限定するものではない。
【００３０】
タッチパネルディスプレイは，そのディスプレイ上で，直接，所定の入力デバイス（タッチパネル用のペンなど）や指などによって入力を行える点で，表示装置７２と入力装置７３の機能が一体化した装置である。
【００３１】
対話フロー生成システム１は一台のコンピュータによって実現されていてもよいが，その一部または全部の機能が複数のコンピュータによって実現されていてもよい。この場合のコンピュータとして，たとえばクラウドサーバであってもよい。
【００３２】
本発明の対話フロー生成システム１における各手段は，その機能が論理的に区別されているのみであって，物理上あるいは事実上は同一の領域を為していてもよい。
【００３３】
対話フロー生成システム１は，事前処理部１０と対話情報入力受付処理部１１と表生成処理部１２とフロー図生成処理部１３とを有する。
【００３４】
なお，本発明の対話フロー生成システム１では，対話者同士での対話をテキスト化した情報（以下，「対話情報」という）を処理対象としている。対話情報には一または複数の対話がテキスト化されて記録されている。この対話には，音声による対話をテキスト化した情報のほか，チャット，メール，電子掲示板（ウェブサイト上に設けた電子的な掲示板）でのやりとりをテキスト化した情報，ＳＮＳなどによるやりとりをテキスト化した情報など，各種のテキスト化した情報が含まれる。また対話とは，一般的に質問とその回答とからなるが，それに限定するものではない。質疑応答，問題とその解答，カウンセリングでのやりとりなども対話に含まれる。ある文に対する別の文，たとえばある記事に対して回答や批評等をする記事なども対話構造を有していることから，本発明における対話に含まれる。また，対話構造を有していない複数の文の集合について，人手や教師あり機械学習などで対話構造を有する複数の文の集合に変換した情報も対話に含まれる。また二者間による対話，たとえばコールセンタのオペレータからの質問とユーザからの回答が典型例となるが，それに限定するものではなく，任意の人数，任意の者同士の対話であってもよい。このように，対話には各種のものが含まれ，対話フロー生成システム１で入力する対話情報としてはさまざまな情報が含まれる。また入力する対話情報の作成方法にも限定はない。
【００３５】
事前処理部１０は，対話フロー生成システム１において処理対象とする対話情報に基づいて，対話の流れを生成する処理を実行するにあたっての事前処理を実行する。事前処理としては，基準とする学習用の文書等情報を読み込ませ，そこに記述される単語を所定次元，たとえば３００次元でベクトル化する処理を実行する。文書等情報とは，ウェブページや電子化された文書などの，各種の文章が記述された情報をいう。学習用の文書等情報としては，たとえばＷｉｋｉｐｅｄｉａの日本語の全ウェブページが一例としてあげられるが，それに限定されるものではなく，たとえば電子化された辞書のウェブページなどであってもよいし，所定のドキュメントサーバ（文書サーバ）に保存された各種の文書等情報であってもよい。文が記述された情報であればその制限はなく，たとえば対話情報であってもよい。また，単語をベクトル化するには，たとえばfasttextと呼ばれるアプリケーションソフトウェアを用いることができるが，それに限定するものではなく，ほかのアプリケーションソフトウェアを用いることもできる。fasttextを用いる場合，fasttextに文書等情報を入力させることで，単語をベクトル化することができる。
【００３６】
対話情報入力受付処理部１１は，対話フロー生成システム１において処理対象とする対話情報の入力を受け付ける。たとえば複数の対話情報に基づいて対話フローを生成する場合，それぞれの対話情報を記録したテキストファイルなどの指定を受け付け，その指定を受け付けた対話情報を読み込むことで，対話情報の入力を受け付ける。ここで，対話情報入力受付処理部１１は，１つの対話情報について１つのテキストファイルとしていてもよいし，対話情報ごとに識別可能なように日時や番号などを付しておき，１つのファイルで複数の対話情報（対話情報の集合）が記録されていてもよい。図５に，対話情報入力受付処理部１１で入力を受け付ける対話情報の集合の一例を示す。図５の対話情報は，コールセンタのオペレータとユーザとの間の対話情報であって，複数の対話情報の集合をＸＭＬ形式で表現したファイルの一部である。図５の対話情報では日時情報と番号でそれぞれの対話情報を識別しており，また「−」をオペレータ（質問側），「＋」をユーザ（回答側）として対話が区別されている。なお，図５では３つの対話情報が含まれている場合を示していたが，実際にはより多くの対話情報が含まれていることが好ましい。
【００３７】
また対話情報入力受付処理部１１は，入力を受け付けた対話情報を，その発話者ごと，対話の内容ごとなど所定の基準で分離する。ここで所定の基準にはさまざまなものがあるが，後述するフロー図生成処理部１３で生成するフロー図におけるノード側（接点側）とエッジ側（枝側）とに分離される基準であればいかなる基準であってもよい。また対話情報の分離は，実際に異なるファイルとして生成してもよいし，仮想的に分離した対話情報となるように，分離したように取り扱われるような処理を実行する場合も含まれる。
【００３８】
分離された対話情報（第１の対話情報，第２の対話情報）を分離対話情報とする。対話情報の分離は，たとえば発話者の識別情報に基づいて交互に割り当ててもよいし，対話情報における文について自然言語解析処理を実行して，判定をしてもよい。また，対話情報を分離する場合には，それぞれの対話が対応づけられるように，対応する識別情報を付して分離する。たとえばオペレータ側の対話を識別する情報「Ｑ」に，ユーザ側の対話を識別する情報「Ａ」を付し，さらにそれぞれが対応する対話であることを示す同一の識別情報，たとえば「１」を付する。オペレータ側の対話識別情報「Ｑ１」に，ユーザ側の対話識別情報「Ａ１」が対応する。また，対話情報自体を識別可能なように，それぞれの一連の対話の集合には，対話情報を識別可能な情報，たとえば日時情報や番号などが付される。図６にオペレータ側の分離対話情報の集合の一例を，図７にユーザ側の分離対話情報の集合の一例を示す。図６および図７では，それぞれ同じ数字が付されているＱとＡが対応している。１つの分離対話情報に一つまたは複数の対話が含まれている。また，対話には一または複数の文，段落における文が含まれており，この文のまとまりを基準単位の対話（基準単位対話）とする。
【００３９】
なお，対話情報入力受付処理部１１は，分離された対話情報（第１の対話情報，第２の対話情報）の入力を受け付けてもよい。その場合，上述の対話情報の分離処理は不要となる。
【００４０】
表生成処理部１２は，対話情報入力受付処理部１１で入力を受け付けた対話情報に基づいて，基準単位対話の対応関係（対話の流れを示す情報）を示す表を生成する。この関係性は，たとえば表（フロー表）で表されるが，実際に表を生成するほか，表を生成した場合と同様の機能を実現するものであれば，いかなるものであってもよい。なお，以下には，表を実際に生成する場合の具体的な処理を説明する。
【００４１】
表生成処理部１２は，フロー図を生成した場合のノードとなる側の分離対話情報，たとえば図５乃至図７の例ではオペレータ側の分離対話情報について，基準単位対話ごとのベクトル（基準単位ベクトル）を算出する。そして算出した基準単位ベクトルを用いて，ノード側の基準単位対話に対するクラスタリングをする。基準単位ベクトルとしては，複数の文を基準単位対話ごとにベクトル化してもよいし，文単位ごとにベクトル化してもよいし，文節ごとにベクトル化をしてもよい。
【００４２】
表生成処理部１２は，基準単位ベクトルを算出する際には，基準単位対話に含まれる文において形態素解析を行い，文に出現する単語を品詞ごとに分解する。そして，分解した単語のうち，品詞が名詞（ただし数，接尾，非自立は除く。また，固有名詞は除いてもよいし，除かなくてもよい）である単語を特定し，特定した単語の単語ベクトルの平均を算出することで基準単位ベクトルを算出する。なお単語ベクトルを算出するために特定する単語としては，品詞が名詞である単語に限られるものではなく，あらかじめ一または複数の品詞を設定し，その品詞の単語を特定すればよい。たとえば品詞として名詞のほか，動詞や形容詞などを設定することもできる。なお，以下の説明では，特段の断りがない限り，品詞が名詞である単語を特定する場合を示す。
【００４３】
形態素解析には公知のアプリケーションソフトウェアを用いることができ，たとえば茶筌（ChaSen）があるが，それに限定されず，MeCabなどのアプリケーションソフトウェアを用いてもよいし，ほかのアプリケーションソフトウェアを用いてもよい。
【００４４】
たとえば基準単位対話が「鳥取県の県庁所在地は鳥取市」という１文であった場合，たとえば茶筅（ChaSen）のようなアプリケーションソフトウェアを用いて，その文に対して形態素解析を行い，「鳥取」，「県」，「の」，「県庁」，「所在地」，「は」，「鳥取」，「市」のように分解をし，それぞれの単語の品詞を特定する。そして，たとえばfasttextのようなアプリケーションソフトウェアに処理対象となる対話情報の一部または全部を入力することで，品詞が名詞の単語についての所定次元の単語ベクトルを生成する。ここでは，「鳥取」，「県」，「県庁」，「所在地」，「鳥取」，「市」についてそれぞれ単語ベクトルを生成する。そして，基準単位対話に含まれる文の各単語ベクトルの平均を基準単位ベクトルとして算出する。図８に，基準単位対話に含まれる文が１文である場合の基準単位ベクトルを算出する処理を模式的に示す。平均としては単純平均が望ましいが，それに限定するものではない。また，基準単位対話に含まれる文における単語ベクトルに対して平均以外の演算をしてもよいし，上述のように，名詞以外の品詞も単語ベクトルの生成対象としてもよい。すなわち，表生成処理部１２が基準単位ベクトルを算出するには，基準単位対話に含まれる文を構成する一部または全部の単語の単語ベクトルに対して所定の演算を行うことでよい。
【００４５】
基準単位ベクトルの算出に用いる演算としては，上述のように基準単位対話に含まれる文における各単語ベクトルの平均のほか，基準単位対話に含まれる文における各単語ベクトルの総和，基準単位対話に含まれる文における各単語ベクトルについて，tf-idf法で重み付けをした平均，Bi-gramモデルなどを用いることができ，またほかの演算を用いることもできる。
【００４６】
表生成処理部１２が基準単位ベクトルを算出すると，算出した各基準単位ベクトルに基づいて，各基準単位対話を所定のクラスタリング手法でクラスタリングする。クラスタリング処理としては，たとえばx-means法，k-means法，階層クラスタリングなどさまざまなクラスタリング手法を用いることができる。x-means法とは，k-means法においてクラスタ数を自動推定するように拡張したクラスタリング手法である。なおクラスタごとにそれを識別する識別情報（クラスタ識別情報）を付与する。クラスタ識別情報はどのように付してもよい。
【００４７】
また，表生成処理部１２は，フロー図を生成した場合のノードとなる側の分離対話情報をクラスタリングした結果に基づいて，ノードとなる側の基準単位対話の流れ，たとえば表（第１の表）を生成する。表の場合には，表の列方向をクラスタ，行方向を時系列として，クラスタリングした基準単位対話を代入する。
【００４８】
フロー図を生成した場合のエッジとなる側の分離対話情報，たとえばユーザ側の分離対話情報に基づいて，第１の表に対応させた表（第２の表）を生成する。すなわち，第１の表における基準単位対話に対応づけるように，ユーザ側の分離対話情報における基準単位対話を，第２の表に代入する。
【００４９】
そして第２の表において，各列に含まれる基準単位対話について，基準単位ベクトルを，ノード側の基準単位対話と同様に算出し，算出した各基準単位ベクトルに基づいて，エッジ側の各基準単位対話を所定のクラスタリング手法でクラスタリングする。そして，対応するクラスタ識別情報を付与する。たとえば「Ｑ１」のクラスタ識別情報が「１」であり，「Ｑ１」に対応する基準単位対話が「Ａ１」とすると，「Ａ１＆１」のように付する。これによって，フロー図を生成した場合のエッジとなる側の分離対話情報における基準単位対話ごとにクラスタリングされた表（第２の表）が生成できる。またノード側の基準単位対話およびクラスタと，エッジ側の基準単位対話とが対応づけられる。
【００５０】
そして，第１の表と，第２の表の対応する列を抽出し，交互に基準単位対話を対応づけて並べることで表（フロー表）を生成する。またフロー図を適切に生成しやすくするため，フロー表において基準単位対話のソートを行うとよい。たとえば，フロー表の行方向について，列に含まれる基準単位対話の出現箇所の平均が小さい順にソートをする。すなわち，時系列順にソートをする。
【００５１】
また，一つのエッジの基準単位対話から異なるノードの基準単位対話が対応づけられている場合（前方の列における対応する基準単位対話がそれぞれ同一，かつ次の列が相違するノードの基準単位対話の列があった場合），フロー表を修正する処理を設けてもよい。
【００５２】
この修正処理としては，たとえば，一つのエッジの基準単位対話から異なるノードの基準単位対話が対応づけられている場合，所定の通知を行うことで，人手による修正を行わせる。たとえば，その基準単位対話などについて色を付す，フォントを変更するなどの表示の変更のほか，操作担当者に対して所定のメッセージを通知するなどがある。
【００５３】
また修正処理のほかの例としては，一つのエッジの基準単位対話から異なるノードの基準単位対話が対応づけられている場合，異なるノードの基準単位対話について，その数がもっとも多い基準単位対話を採用し，それ以外の基準単位対話は処理対象から除外する方法がある。
【００５４】
さらに修正処理のほかの例としては，一つのエッジの基準単位対話から異なるノードの基準単位対話が対応づけられている場合，先に出現をしていた基準単位対話を採用し，それ以外の基準単位対話は処理対象から除外する方法がある。
【００５５】
フロー表において，一つのクラスタでは代表する一つの基準単位対話のみとするように基準単位対話の統合処理を行ってもよい。すなわち，同一のクラスタに同じような基準単位対話が複数含まれるので，その中から一つの基準単位対話を特定し，特定した基準単位対話を，当該クラスタを代表する基準単位対話とし，そのクラスタに含まれる基準単位対話の識別情報（特定した基準単位対話の識別情報と統合された基準単位対話の識別情報），クラスタ識別情報とを付することが好ましい。同一のクラスタに含まれる基準単位対話のなかから一つの基準単位対話を特定するには，さまざまな処理があるが，たとえばもっとも古いまたは直近の日時情報に対応づけられた基準単位対話を特定するなどの方法がある。
【００５６】
なお，同一のクラスタにおける基準単位対話の統合処理は，フロー表を生成する途中，フロー表を生成した後，後述するフロー図生成処理部１３においてフロー図を生成する場合のいずれの段階で，その処理を実行してもよい。
【００５７】
さらに，フロー表において，あるノード以降の基準単位対話が，ほかのノード以降の基準単位対話と同一である場合，それらを一つに統合するようにしてもよい。特定のノード以降の基準単位対話がほかのノードの基準単位対話と同一であるか否かは，特定のノード以降の基準単位対話の基準単位ベクトルの平均値を算出し，またほかのノード以降の基準単位対話の基準単位ベクトルの平均値を算出し，それらが一致または所定の範囲に含まれている場合には同一と判定することができる。
【００５８】
表生成処理部１２がフロー表を生成する際に，表（第１の表，第２の表）の一つのマス（セル）に複数のノード側の基準単位対話，エッジ側の基準単位対話が含まれることがある。そこで以下のような処理を実行するように構成してもよい。
【００５９】
まず第１の表を生成する際に，一つのマスに複数のノード側の基準単位対話が含まれる場合を説明する。第１の方法としては，ほかの行も含めてその列のノード側の基準単位対話の基準単位ベクトルの平均値を算出し，この平均値にもっとも近い基準単位ベクトルを有するノード側の基準単位対話を，当該マスに入れるノード側の基準単位対話として特定する。第２の方法としては，最初のノード側の基準単位対話を当該マスにおけるノード側の基準単位対話として特定してそのマスに入れ，それ以降の，本来，当該マスに入るノード側の基準単位対話は除外する。第１の方法，第２の方法によって，一つのマスに一つのノード側の基準単位対話とすることができる。また第３の方法としては，上述の第１の方法，第２の方法とは異なり，一つのマスに複数のノード側の基準単位対話を入れることとしてもよい。第１の方法乃至第３の方法についてはいずれの方法を用いてもよく，また，これらと同一でなくとも類似の方法を用いてもよい。
【００６０】
また，第１の表の生成において上述の第１の方法，第２の方法を用いた場合，一つのマスには一つのノード側の基準単位対話が入るため，第２の表を生成するにあたり，マスに入るエッジ側の基準単位対話は一つとなる。一方，第１の表の生成において上述の第３の方法を用いた場合，一つのマスには複数のノード側の基準単位対話が入るため，それに対応するエッジ側の基準単位対話は複数となる。この場合のクラスタリング方法としては，以下のような方法がある。
【００６１】
方法Ａとしては，第２の表の一つのマスに複数のエッジ側の基準単位対話がある場合，それぞれの基準単位対話をすべて併合して一つの基準単位対話とする。これによって，以後の処理を同様に実行することができる。この際には，どのエッジ側の基準単位対話を併合したかを特定可能なように，併合した基準単位対話の識別情報も併合することが好ましい。たとえば，「Ａ１１」と「Ａ１２」とを併合した場合，「「Ａ３＆１」「Ａ７５」」といったように，以後の処理において対応関係が特定可能なように識別情報を併合することがよい。
【００６２】
方法Ｂとしては，第２の表の一つのマスに複数のエッジ側の基準単位対話がある場合，それらをそれぞれ別のものとしてクラスタリングをする方法がある。すなわち，一つのマスに複数の種類のエッジ側の基準単位対話に対するクラスタリング結果を付与する。そして，それが同じクラスであれば，以後の処理を同様に実行する。一方，異なるクラスとなった場合には，最初に出力されたクラスに属するエッジ側の基準単位対話を，そのマスに入れるエッジ側の基準単位対話としてもよいし，また操作担当者に対して所定のエラーメッセージを表示して，人手で表の修正を行わせるように構成してもよい。方法Ａおよび方法Ｂについてはいずれの方法を用いてもよく，また，これらと同一でなくとも類似の方法を用いてもよい。
【００６３】
表生成処理部１２が以上のような処理を実行することで，関係性を示す情報，たとえばフロー表を生成することができる。ソート処理の前のフロー表の一例を図９乃至図１２に示す。図９乃至図１２は，本来は一つの表であるが，サイズの関係上，４つに分割をしている。図９乃至図１２では，２０の対話情報に対して，表生成処理部１２がフロー表の生成処理を行った場合を示している。またソート処理後のフロー表の一例を図１３乃至図１６に示す。図１３乃至図１６も，本来は一つの表であるが，サイズの関係上，４つに分割をしている。
【００６４】
表生成処理部１２が生成したフロー表について，後述するフロー生成処理におけるフロー図の生成が精度よくできるように，操作担当者などが手動で整理をしてもよい。また，本発明において，わかりやすさのため，図１３乃至図１６の表の項目からさらに対話情報を減らしたものを図１７の表に示す。ここでは説明のわかりやすさのために，図１７の表を用いたが，実際には図１３乃至図１６の表を後述の処理に用いてもよい。
【００６５】
上述では，第１の表，第２の表，フロー表とそれぞれ表を区別した場合を説明したが，実際には１つの表，あるいは２つの表で同様の処理を実行してもよい。
【００６６】
フロー図生成処理部１３は，表生成処理部１２が生成した対話の流れを示す情報，たとえばフロー表に基づいて，対話のフローを示すフロー図を生成する。フロー表に基づいてフロー図を生成するのにはさまざまな方法があるが，たとえば図１８に示すような処理を実行することができる。なお，以下の説明では，図１９のフロー表で示すように，わかりやすさのため，基準単位対話を実際の文章ではなく，Ｑｎ，Ａｎｋと表記することとする。Ｑｎはノード側となる基準単位対話であり，Ａｎｋはエッジ側となる基準単位対話である。ｎは互いに対応しており，ｋはＱｎに対する複数の分岐する対話（たとえば回答）である。
【００６７】
まず，Ａ１ｊに対応するＱ１を取り出し，Ｑ１をフロー図におけるノードとして設定する（図１８（ａ））。そして取り出したＱ１からＡ１ｊへのエッジを描画する。この場合，図１９のフロー表からｊ＝１，２であるので，ノードＱ１からＡ１１，Ａ１２へのエッジを描画することとなる。そしてエッジ付近にＡ１ｊを付して表示する（図１８（ｂ））。
【００６８】
つぎに，Ａ１１がある行だけを処理対象とし，Ａ１１より右側で一番左の列のＡｉｊを取り出す。図１９では，Ａ２１，Ａ２２を処理対象として取り出す。そして，Ｑｉ（図１９ではＱ２）をフロー図におけるノードとして設定し，ノードＱｉからＡｉｊへのエッジを描画する（ｊはノードＱｉに対応するＡｉｊの個数）。図１９の場合には，Ａ２１，Ａ２２へのエッジを描画する。そしてエッジ付近にＡｉｊ，図１９の場合にはＡ２１，Ａ２２を付して表示する（図１８（ｃ））。
【００６９】
同様に，Ａ１２がある行だけを処理対象とし，Ａ１２より右側で一番左の列のＡｉｊを取り出す。図１９では，Ａ３１，Ａ３２を処理対象として取り出す。そしてＱｉ（図１９ではＱ３）をフロー図におけるノードとして設定し，ノードＱｉからＡｉｊへのエッジを描画する（ｊはノードＱｉに対応するＡｉｊの個数）。図１９の場合には，Ａ３１，Ａ３２へのエッジを描画する。そしてエッジ付近にＡｉｊ，図１９の場合にはＡ３１，Ａ３２を付して表示する（図１８（ｄ））。
【００７０】
このように，あるノードに対応するエッジを特定し，ノードとエッジ間を描画する処理を反復することで，フロー図を生成することができる。なお，フロー表からフロー図を生成する処理はこれに限定せず，さまざまな公知の方法を用いることができる。
【００７１】
たとえば図１７のフロー表に基づいて，フロー図生成処理部１３が生成したフロー図の一例を図２０に示す。なお，図２０は，本来は一つの図であるが，大きさの関係上，２つに分割をしている。
【００７２】
以上のように，本発明の対話フロー生成システム１で対話情報に基づいて対話フローを生成することができるので，自動応答を行う際の対話フローや，不慣れなオペレータが対応をする際の支援ができる。
【実施例１】
【００７３】
つぎに本発明の対話フロー生成システム１の処理プロセスの一例を図３および図４のフローチャートを用いて説明する。また本実施例においては，対話としてコールセンタのオペレータとユーザとの間のチャットによる対話の場合を示す。またコールセンタのオペレータがフロー図におけるノード側，ユーザがフロー図におけるエッジ側である場合を示す。
【００７４】
まず対話フロー生成システム１の操作担当者は，所定の事前処理を事前処理部１０において実行する（Ｓ１００）。たとえば，Ｗｉｋｉｐｅｄｉａの日本語の全ページを読み込ませて事前処理を実行する。すなわち，事前処理部１０は，Ｗｉｋｉｐｅｄｉａの日本語の全ページを読み込み，そこに記述される単語を，たとえば３００次元でベクトル化する処理を実行する。
【００７５】
このように事前処理が実行されると，対話フローを生成するための処理を実行する。まず，処理対象とする対話情報のファイル，たとえば図５に示す対話情報の集合のファイルの入力を行い，入力された対話情報を対話情報入力受付処理部１１で受け付ける（Ｓ１１０）。そして，対話情報入力受付処理部１１は，受け付けた対話情報について，それぞれ発話者ごと，対話の内容ごとなど，所定の基準で分離する（Ｓ１２０）。図５の場合，発話者ごとにオペレータ側に「−」，ユーザ側に「＋」の記号が付されているので，それに基づいて発話者を特定し，オペレータ，ユーザのそれぞれに対話情報を分離する（図６，図７）。またこの際に，対話同士を対応づけて，オペレータ側の対話に「Ｑ」と数字を，ユーザ側の対話に「Ａ」と数字をそれぞれ付す。数字は，それぞれが対応する対話であることを示している。さらに，対話情報自体を識別可能なように，対話を開始した日時情報，番号などをあわせて付している。
【００７６】
このように対話情報入力受付処理部１１で分離した分離対話情報に基づいて，表生成処理部１２がフロー表の生成処理を実行する（Ｓ１２０）。
【００７７】
具体的には，まずノード側となるオペレータの分離対話情報において，基準単位対話ごとに，基準単位対話ベクトルを算出する（Ｓ２００）。具体的には，その基準単位対話に含まれる文において形態素解析を行い，出現する単語を品詞ごとに分解し，各単語のうち，品詞が名詞である単語の単語ベクトルを算出する。そして基準単位対話ごとに，その基準単位対話における各単語の単語ベクトルの平均を算出することで，基準単位対話ベクトルを算出する。
【００７８】
そして表生成処理部１２は，算出した各基準単位ベクトルに基づいて，各基準単位対話を所定のクラスタリング手法でクラスタリングする（Ｓ２１０）。そして，クラスタリングした結果に基づいて，列方向をクラスタ，行方向を時系列として，クラスタリングした基準単位対話を，ノード側の表（第１の表）に代入する。
【００７９】
つぎに表生成処理部１２は，ノード側の表に対応するように，エッジ側の基準単位対話を代入した表（第２の表）を生成する（Ｓ２２０）。
【００８０】
そして，第２の表において，各列に含まれる基準単位対話について，基準単位ベクトルを上述と同様に算出し（Ｓ２３０），算出した各基準単位ベクトルに基づいて，各基準単位対話を所定のクラスタリング手法でクラスタリングをする（Ｓ２４０）。この際に，対応するクラスタ識別情報を付与する。たとえば「Ｑ１」のクラスタ識別情報「１」であり，「Ｑ１」に対応する基準単位対話が「Ａ１」とすると，「Ａ１＆１」のように付する。このような処理を実行することで，エッジ側となるユーザ側の分離対話情報における基準単位対話ごとにクラスタリングされた表（第２の表）が生成できる。
【００８１】
そして表生成処理部１２は，第１の表と，第２の表の対応する列を抽出し，交互に基準単位対話を対応づけて並べることで表（フロー表）を生成する（図９乃至図１２）。そして，フロー表の行方向は，列に含まれる基準単位対話の出現箇所の平均が小さい順にソートをする（Ｓ２５０）。すなわち，時系列順にソートをする。
【００８２】
以上のように表生成処理部１２がフロー表を生成すると（図１３乃至図１６），フロー図生成処理部１３は，生成したフロー表に基づいて，対話のフローを示すフロー図（図２０）を生成する（Ｓ１３０）。
【００８３】
以上のような処理を実行することで，対話情報に基づいて，対話フローを生成し，それを図示化したフロー図を生成することができる。
【実施例２】
【００８４】
つぎに本発明の対話フロー生成システム１における異なる実施例を説明する。実施例１では，対話情報をまとめて対話情報入力受付処理部１１に入力し，対話情報に対してクラスタリング処理を実行することで，対話の流れを示す表の生成処理を実行していたが，本実施例では，新しい対話情報を逐次，対話情報入力受付処理部１１に入力させ，それに基づいてフロー表を生成し，対話フローの処理を実行する場合を説明する。
【００８５】
この場合，新しい対話情報を対話情報入力受付処理部１１で受け付け，それを分離対話情報とした後，逐次，フロー表に代入をしていく。そして，新たに対話情報入力受付処理部１１で入力を受け付けた場合，新たに入力した基準単位対話に類似する基準単位対話が，すでにフロー表にあるかを判定し，類似する基準単位対話があると判定した場合には，すでに代入している対話情報と統合をする。類似していないと判定した基準単位対話については，フロー表の対応する箇所に代入をする。この処理を繰り返すことでフロー表を生成する。
【００８６】
対話情報が類似するか否かは，さまざまな方法で判定をすることができるが，たとえば，すでにフロー表に代入している基準単位対話における基準単位ベクトルを上述と同様に算出し，新たに読み込ませた対話情報に基づく分離対話情報の基準単位対話の基準単位ベクトルを上述と同様に算出し，それらの類似度が所定の閾値よりも高い場合には類似する基準単位対話であると判定をする。一方，類似度が所定の閾値よりも低い場合には類似しない基準単位対話であると判定をする。
【００８７】
逐次処理を模式的に図２１に示す。なお図２１では，オペレータからの対話がＱ，ユーザからの対話がＡで示されている。そしてＱｎとＡｎｊは対応しており，ｊはＱｎに対する異なる対話を意味する。図２１（ａ）は１回目の対話情報である。この場合，フロー表にはまだ何も代入されていないので，図２１（ａ）のようにそのまま代入をする。
【００８８】
つぎに２回目の対話情報を対話情報入力受付処理部１１で入力を受け付けた場合，受け付けた各基準単位対話Ｑ１，Ａ１１，Ｑ２，Ａ２２についてそれぞれ実施例１と同様に基準単位ベクトルを算出する。またフロー表に代入されているＱ１，Ａ１１，Ｑ２，Ａ２１，Ｑ３，Ａ３１もそれぞれ実施例１と同様に基準単位ベクトルを算出する。
【００８９】
そうすると，基準単位対話Ｑ１とＡ１１，Ｑ２が類似であると判定できるので，これらは一つに統合する。そして，Ｑ２に対する基準単位対話であるＡ２２についてはＡ２１とは類似していないので，Ｑ２に対応づけて，そのままフロー表に代入をする。この状態が図２１（ｂ）である。
【００９０】
そして，３回目の対話情報を対話情報入力受付処理部１１で入力を受け付けた場合，受け付けた各基準単位対話Ｑ１，Ａ１２，Ｑ４，Ａ４２，Ｑ３，Ａ３１についてそれぞれ実施例１と同様に基準単位ベクトルを算出する。そして，算出した基準単位対話の基準単位ベクトルと，フロー表の基準単位対話の基準単位ベクトルとを比較し，Ｑ１，Ｑ３，Ａ３１は類似であると判定できるので，これらは一つに統合する。そして，Ｑ１に対する基準単位対話であるＡ１２はＡ１１と類似していないので，Ｑ１に対応づけて，そのままフロー表に代入する。また，Ｑ４，Ａ４２については新しい基準単位対話であるので，そのままフロー表に代入する。この際に，Ｑ４は基準単位対話Ｑ３の前にある基準単位対話であるので，Ａ２１とＱ３との間に位置するように代入をする。この状態が図２１（ｃ）である。
【００９１】
新たな対話情報を対話情報入力受付処理部１１で入力を受け付けるたびに，このような表生成処理を表生成処理部１２が実行することで，クラスタリングを用いなくても同種のフロー表を生成することができる。
【００９２】
そしてこのように生成したフロー表を用いて，フロー図生成処理部１３が実施例１と同様の処理を実行することでフロー表を生成することができる。
【００９３】
なお，本実施例２のさらなる変形例として，基準単位対話の類似性を判定するための閾値の設定を以下のように行うこともできる。
【００９４】
すなわち上述では，複数の基準単位対話の類似性を判定するために設定する閾値として任意の値を設定していた。そこで，この閾値の最適化を行うようにしてもよい。
【００９５】
所定のタイミングにおいて，対話フロー生成システム１の操作担当者が，対話情報入力受付処理部１１で入力を受け付けた対話情報に基づいて，フロー表を生成する。この場合，すべての対話情報に基づいて操作担当者がフロー表を生成してもよいし，一部は上述のように自動的に生成した上で，残りの一部を操作担当者がフロー表を生成してもよい。そして，操作担当者が生成したフロー表を正解のフロー表とする。
【００９６】
一方，上述と並行して，閾値について，段階的に複数の値で設定して，上述と同様の処理を実行する。たとえば閾値を５段階で設定し，それぞれの閾値で上述と同様の処理を５回（設定した閾値の数と同回数），実行する。そして，それぞれの場合において，正解のフロー表との相違箇所を判定し，相違箇所が最小となる場合の閾値を特定する。そして特定した閾値を，上述の最適化した閾値として用い，自動的にフロー表を生成する処理を実行する。
【００９７】
これによって，次回以降に，対話情報を対話情報入力受付処理部１１で受け付けた場合に，その処理精度が改善される。
【００９８】
また，本実施例２のさらなる変形例として，実施例２の逐次学習処理と実施例１のクラスタリング処理とを併用してもよい。
【００９９】
このような併用処理の第１の方法としては，本実施例２の逐次学習処理を実行して対話フロー生成システム１における処理を実行し，フロー表を表生成処理部１２で生成する。そして，一定程度，たとえば数百程度の対話情報について入力を受け付けると表生成処理部１２は，実施例１のクラスタリングを用いた処理を実行し，フロー表を生成する。生成したフロー表に対して，新たな対話情報を対話情報入力受付処理部１１で受け付けた場合，本実施例２の逐次学習処理を実行することでフロー表を生成する。そして再度，一定程度，たとえば数百程度の対話情報について入力を受け付けた段階で，再度，表生成処理部１２は，実施例１のクラスタリングを用いた処理を実行し，フロー表を生成する。
【０１００】
このように，逐次学習処理とクラスタリング処理との併用を反復することで，対話情報の数が所定の条件を充足するまでは逐次学習処理で迅速にフロー表を生成し，対話情報が多くなった段階でクラスタリング処理をして精度を高めたフロー表に修正する，といったことを実現することができる。
【０１０１】
また，併用処理の第２の方法としては，上述の第１の方法と同様に，逐次学習処理を実行して対話フロー生成システム１における処理を実行し，フロー表を表生成処理部１２で生成する。そして，一定程度，たとえば数百程度の対話情報について入力を受け付けると表生成処理部１２は，実施例１のクラスタリングを用いた処理を実行し，フロー表を生成する。ここで，実施例１におけるクラスタリングを用いて生成したフロー表を正解のフロー表とする。そして，逐次学習処理で用いる閾値について，段階的に複数の値で設定して，それまでに読み込んだ対話情報に基づいて，上述と同様の逐次学習処理を実行する。たとえば閾値を５段階で設定し，それぞれの閾値で上述と同様の処理を５回（設定した閾値の数と同回数），実行する。そして，それぞれの場合において，正解のフロー表との相違箇所を判定し，相違箇所が最小となる場合の閾値を特定する。特定した閾値を，最適化した閾値として，次回以降の逐次学習処理で用いる閾値として設定する。
【０１０２】
そして，クラスタリングを用いて生成したフロー表に対して，新たな対話情報を対話情報入力受付処理部１１で受け付けた場合，本実施例２の逐次学習処理を実行することでフロー表を生成する。この際に，上述で設定した閾値（最適化した閾値）を用いて基準単位対話の類似性の判定を行う。
【０１０３】
再度，一定程度，たとえば数百程度の対話情報について入力を受け付けた段階で，再度，表生成処理部１２は，上述と同様に，実施例１のクラスタリングを用いた処理を実行し，フロー表（正解のフロー表）を生成する。また，逐次学習処理で用いる閾値について，段階的に複数の値で設定して，それまでに読み込んだ対話情報に基づいて，上述と同様の逐次学習処理を実行して，正解のフロー表との相違箇所を判定し，相違箇所が最小となる場合の閾値を特定する。そして特定した閾値を，最適化した閾値として，次回以降の逐次学習処理で用いる閾値として設定する。
【０１０４】
このように逐次学習処理とクラスタリング処理とを併用するとともに，逐次学習処理で用いる閾値の最適化を図ることによって，第１の方法の効果に加えて，逐次学習処理の精度を向上させることもできる。
【実施例３】
【０１０５】
実施例１，実施例２ではクラスタリングとしてさまざまな手法を用いることができる。クラスタリング手法の代表的な例としては，k-means法，x-means法，階層クラスタリングなどがある。クラスタリング手法としてk-means法，x-means法を用いた場合，操作担当者がクラスタ数を設定する，または自動的にクラスタ数を設定することができる。しかしクラスタリングの初期値として乱数を用いるので，毎回，クラスタリングの結果が相違する課題がある。すなわち，同一の対話情報を対話情報入力受付処理部１１で受け付けて表生成処理部１２で，k-means法またはx-means法によるクラスタリング処理を実行した場合，生成されるフロー表が毎回，異なる表となる課題がある。その場合，実施例２のように，逐次学習処理と併用しようとする場合には統一性がとれないこととなってしまう。また，関連しない基準単位対話が同じクラスタに混在する，または反対に，関連する基準単位対話が異なるクラスタに分かれてしまう場合がある。
【０１０６】
そこで表生成処理部１２はクラスタリング手法として階層クラスタリングを用いる場合を本実施例では説明する。階層クラスタリングとは，距離が最小のクラスタ同士を逐次的に統合するクラスタリング手法である。
【０１０７】
階層クラスタリングはk-means法やx-means法のように初期値依存性がないため，同一の対話情報を対話情報有力受付処理部で受け付けて表生成処理部１２でクラスタリング処理を実行した場合，生成されるフロー表は常に同じものとなる。その一方，階層クラスタリングの場合，クラスタ数が一意に定まらないため，クラスタ数を決定しなければならない。
【０１０８】
そこで本実施例では階層クラスタリングを用いるにあたってクラスタ数を決定する処理を説明する。なお，本実施例の場合においても，事前処理部１０における事前処理，対話情報入力受付処理部１１における対話情報の入力受付，対話情報の分離処理は，実施例１，実施例２と同様に実行する。また表生成処理部１２において，基準単位対話ごとに基準単位ベクトルを算出することも，実施例１，実施例２と同様である。また，階層クラスタリングには，最短距離法，最長距離法，群平均法，ウォード法などがあるが，それらのいずれを用いることができる。なお，階層クラスタリングのどの手法を用いることがより好ましい化については後述する。
【０１０９】
表生成処理部１２において，基準単位対話ごとに基準単位ベクトルを算出すると，表生成処理部１２は，階層クラスタリングの処理を実行する。この際の階層クラスタリングにおけるクラスタ数としては，あらかじめ定めた複数のクラスタ数１〜ｎ（ｎは任意に定めた値）について，それぞれクラスタリングを実行し，実施例１，実施例２と同様に第１の表を生成する。すなわち，クラスタ数を１とした場合の階層クラスタリングの結果に基づく第１の表，クラスタ数を２とした場合の階層クラスタリングの結果に基づく第１の表，クラスタ数を３とした場合の階層クラスタリングの結果に基づく第１の表，など順に，クラスタ数をｎとした場合の階層クラスタリングの結果に基づく第１の表を生成する。
【０１１０】
そして各クラスタ数（列数）における第１の表について，第１の表の欄が多く埋まっている（表の埋まり具合），第１の表の列内の基準単位対話同士の分散が小さい（データ（基準単位対話）のばらつき具合），の２つの観点から評価をする。具体的には，表生成処理部１２は，数１によって算出する評価値Ｓｃｏｒｅを用いて評価する。
（数１）
2020135087.tif 000003
ここで，数１における各変数は，数２によって算出される。
（数２）
2020135087.tif 000004
数２におけるｋはクラスタ数，Ｃｉはｉ番目のクラスタ，ｘはクラスタ内のデータ，ｃｉはｉ番目のクラスタのセントロイド（重心）を示す。dist(x,y）はｘ，ｙのコサイン距離を求める関数である。またｃの集合をＣ，ｄの集合をＤとする。ｍａｘＸは集合Ｘの最大値，ｍｉｎＸは集合Ｘの最小値である。
【０１１１】
数２におけるｃは表の埋まり具合を意味しており，数２におけるｄを用いた１／ｄは，クラスタ内にクラスタ関連の情報が多いか（クラスタにおける基準単位対話のばらつき具合）を意味している。一般に，クラスタ数が増えると各クラスタにはそのクラスタ関連の情報が増えることから，１／ｄは増加する。またクラスタ数を増やすと列が増えることから表に空欄が生じやすくなるので，埋まり具合を示すｃが減少する。すなわち，クラスタ数が増加するとｃは減少し，１／ｄが増加する。逆に，クラスタ数が減少すると，ｃは増加し，１／ｄは減少する関係となる。このように，ｃと１／ｄとは負の相関関係がある。そこで，２つの観点における基準を演算して組み合わせることで，最適なクラスタ数を定めることができる。なお，上述の２つの観点における基準を組み合わせることが好ましいが，いずれか一方の観点における基準に基づいて最適なクラスタ数を定めてもよい。
【０１１２】
そして表生成処理部１２は，数１によって算出する評価値Ｓｃｏｒｅがもっともよいクラスタ数の表を第１の表として採用する。
【０１１３】
なお，第２の表の生成の際には，第１の表の生成と同様の処理を実行してクラスタ数を算出することが好ましいが，第１の表の生成の際に用いたクラスタ数と同一のクラスタ数としてもよい。また，評価値Ｓｃｏｒｅについては，上述の２つの観点に基づく算出方法であれば，数１，数２以外のほかの算出方法であってもよい。
【０１１４】
本実施例３における階層クラスタリングには最短距離法，最長距離法，群平均法，ウォード法の４つの手法が知られている。そこで本発明者らは，４つの手法のいずれが好ましいかの評価を行った。
【０１１５】
この評価においては，階層クラスタリングによる表生成処理に対する入力する文書情報として新聞記事２０点，クラスタ数をいずれも１０として生成した表のうち，上位５列について，数３によって算出した情報分類の精度を比較したところ，図２２の評価結果が得られた。図２２（ａ）は最短距離法の評価結果であり，図２２（ｂ）は最長距離法での評価結果であり，図２２（ｃ）は群平均法の評価結果であり，図２２（ｄ）はウォード法での評価結果である。
（数３）
2020135087.tif 000005
【０１１６】
図２２に示すように，ウォード法または最長距離法による評価結果が高いことから，階層クラスタリングにおいては，これら２つのいずれかの方法を用いることが好ましい。なお図２２の評価値を得るための入力する文書情報として新聞記事を用いており，対話情報ではないが，階層クラスタリングにおける各手法の評価であるので影響はない。
【０１１７】
また，本発明者らは，階層クラスタリングの有効性を判定するため，x-means法との比較も行った。なお階層クラスタリングとしては，上述でもっともよい評価が得られたウォード法を用い，入力する文書情報として，新製品の記事２０点と新聞記事２０点を用いた。
【０１１８】
そして，この評価においては，表全体の評価を行うため，あらかじめ人手で生成した正解の表と，実験の表（x-means法により生成した表，階層クラスタリングにより生成した表）がどれだけ類似しているかを自動的に比較した。具体的には，正解の表の各列において，その列に含まれるデータをもっともも多く含む実験の表の列を抽出する。そして，数４に基づいて適合率，再現率，Ｆ値を算出する。これをすべての正解の表の列に対して行う。このような処理の実行後，各列の適合率，再現率，Ｆ値それぞれの平均を算出し，これを実験の表の評価結果とする。なお，x-means法を用いた場合では，上述の初期値依存性によって生成される表がその都度異なるため，表を９９回生成し，Ｆ値の平均が最大値の場合，中央値の場合，最小値の場合の評価結果を示す。
（数４）
2020135087.tif 000006
【０１１９】
この評価結果を図２３および図２４に示す。図２３は新製品の記事に基づく評価結果であり，図２３（ａ）はＦ値（平均）が最大値の場合の評価結果，図２３（ｂ）はＦ値（平均）が中央値の場合の評価結果，図２３（ｃ）はＦ値（平均）が最小値の場合の評価結果，図２３（ｄ）は階層クラスタリングによる評価結果である。また，図２４は新聞記事に基づく評価結果であり，図２４（ａ）はＦ値（平均）が最大値の場合の評価結果，図２４（ｂ）はＦ値（平均）が中央値の場合の評価結果，図２４（ｃ）はＦ値（平均）が最小値の場合の評価結果，図２４（ｄ）は階層クラスタリングによる評価結果である。
【０１２０】
図２３および図２４の評価結果からも明らかなように，x-means法による最大値の場合であっても階層クラスタリングと同じか，階層クラスタリングのほうが評価結果は高い。そしてx-means法ではつねに最大値を得られるわけではないことも鑑みれば，階層クラスタリングによることが好ましいことが分かる。
【０１２１】
このように，k-means法やx-means法では，想定する分布にデータ（基準単位対話）がどれだけ適合しているかを基準としてデータのみに基づいてクラスタリングを行うが，本実施例３のように，表の埋まり具合とデータ（基準単位対話）のばらつき具合との２つの観点に基づいた階層クラスタリングを行うことで，より精度の高いフロー表を生成することができる。
【実施例４】
【０１２２】
フロー表を生成する際に，あるノードから分岐する下位（右側の列）の基準単位対話が同一または類似の場合，それらを一つに統合する処理を実行してもよい。これによって，フロー図におけるノードおよびエッジを減らすことができ，簡潔なフロー図を生成することができる。
【０１２３】
あるノードから分岐する下位の基準単位対話が同一または類似であるか否かの判定は，たとえば以下のように行う。たとえば，ノードから分岐する下位のすべての基準単位対話に基づく基準単位ベクトルの平均値を算出する。また，比較対象とするノードから分岐する下位のすべての基準単位対話に基づく基準単位ベクトルの平均値を算出する。そしてこれらの基準単位ベクトルの平均値同士を比較し，それらが同一または一定の範囲にある場合には，ノードから分岐する下位の基準単位対話が同一または類似であるとして，処理対象としたノードから分岐する下位のすべての基準単位対話と，比較対象としたノードから分岐する下位のすべての基準単位対話を，一つに統合する。
【０１２４】
これによって，ノードおよびエッジを減らすことができ，簡潔なフロー図を生成することができる。
【産業上の利用可能性】
【０１２５】
本発明の対話フロー生成システム１によって，蓄積されている対話情報から対話フローを精度よく生成することができる。
【符号の説明】
【０１２６】
１：対話フロー生成システム
１０：事前処理部
１１：対話情報入力受付処理部
１２：表生成処理部
１３：フロー図生成処理部
７０：演算装置
７１：記憶装置
７２：表示装置
７３：入力装置
７４：通信装置
【図１】
2020135087.tif 000007
【図２】
2020135087.tif 000008
【図３】
2020135087.tif 000009
【図４】
2020135087.tif 000010
【図５】
2020135087.tif 000011
【図６】
2020135087.tif 000012
【図７】
2020135087.tif 000013
【図８】
2020135087.tif 000014
【図９】
2020135087.tif 000015
【図１０】
2020135087.tif 000016
【図１１】
2020135087.tif 000017
【図１２】
2020135087.tif 000018
【図１３】
2020135087.tif 000019
【図１４】
2020135087.tif 000020
【図１５】
2020135087.tif 000021
【図１６】
2020135087.tif 000022
【図１７】
2020135087.tif 000023
【図１８】
2020135087.tif 000024
【図１９】
2020135087.tif 000025
【図２０】
2020135087.tif 000026
【図２１】
2020135087.tif 000027
【図２２】
2020135087.tif 000028
【図２３】
2020135087.tif 000029
【図２４】
2020135087.tif 000030