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

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

▶ 株式会社日立製作所の特許一覧

特開2022-185970質問応答システム、質問応答プログラム及び質問応答方法
<>
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図1
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図2
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図3
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図4
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図5
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図6
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図7
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図8
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図9
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図10
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図11
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図12
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図13
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図14
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図15
  • 特開-質問応答システム、質問応答プログラム及び質問応答方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022185970
(43)【公開日】2022-12-15
(54)【発明の名称】質問応答システム、質問応答プログラム及び質問応答方法
(51)【国際特許分類】
   G06F 16/90 20190101AFI20221208BHJP
   G06F 40/279 20200101ALI20221208BHJP
   G06F 40/56 20200101ALI20221208BHJP
【FI】
G06F16/90 100
G06F40/279
G06F40/56
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021093934
(22)【出願日】2021-06-03
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】松澤 敬一
(72)【発明者】
【氏名】早坂 光雄
【テーマコード(参考)】
5B091
5B175
【Fターム(参考)】
5B091AA15
5B091AB17
5B091CA02
5B091CA06
5B091CA21
5B175DA01
5B175EA01
(57)【要約】
【課題】質問応答システムにおいて、質問者に危険な操作を案内しないようにする。
【解決手段】質問応答対データに対して危険操作が存在するかを判定する危険操作判定部と、危険操作が存在すると判定された場合にドキュメントに含まれる危険操作の記述を有する応答文を危険操作の分類に応じた差し替え後応答文に差し替えて差し替え済み質問応答対データを作成する応答文差し替え部とを有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
ドキュメントに含まれる記述から質問パターンと前記質問パターンに対応する応答パターンとを特定し、特定した前記質問パターンと応答パターンとを変換して質問文と応答文を含む質問応答対データを作成する質問応答対生成処理部と、前記質問応答対データを前記質問文と差し替え後応答文を含む差し替え済み質問応答対データに差し替える質問応答対差し替え処理部とを有する質問応答システムであって、
前記質問応答対差し替え処理部は、
前記質問応答対データに対して、危険操作が存在するかを判定する危険操作判定部と、
前記危険操作が存在すると判定された場合、前記ドキュメントに含まれる前記危険操作の記述を有する前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替えて、前記差し替え済み質問応答対データを作成する応答文差し替え部と、
を有することを特徴とする質問応答システム。
【請求項2】
前記危険操作判定部は、
前記質問応答対データに含まれる前記応答文が前記危険操作の記述を有する応答を含むかを判定し、
前記応答文差し替え部は、
前記応答文が前記危険操作の記述を有する応答を含むと判定された場合、前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替ることを特徴とする請求項1に記載の質問応答システム。
【請求項3】
前記応答文差し替え部は、
前記応答文が前記危険操作の記述を有する応答を含むと判定された場合、前記危険操作の分類に応じて、前記応答文に所定の警告文を付与することを特徴とする請求項2に記載の質問応答システム。
【請求項4】
前記応答文差し替え部は、
前記応答文が前記危険操作の記述を有する応答を含むと判定された場合、前記危険操作の分類に応じて、前記応答文の文章を前記応答文とは異なる他の文章に入れ替えることを特徴とする請求項2に記載の質問応答システム。
【請求項5】
前記応答文差し替え部は、
前記危険操作の分類、前記危険操作の分類に属する表現及び前記応答文の差し替え方法を含む危険操作データベースを予め作成しておき、
前記応答文が前記危険操作の記述を有する応答を含むと判定された場合、前記危険操作データベースを参照して、前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替えることを特徴とする請求項2に記載の質問応答システム。
【請求項6】
前記危険操作判定部は、
前記危険操作データベースを参照し、前記応答文に前記危険操作の分類に属する表現が存在した場合に、前記危険操作の記述を有する応答を含むと判定することを特徴とする請求項5に記載の質問応答システム。
【請求項7】
前記応答文差し替え部は、
操作内容と操作対象から前記危険操作の分類を求めることにより、前記危険操作データベースを作成することを特徴とする請求項5に記載の質問応答システム。
【請求項8】
前記質問応答対生成処理部は、
前記ドキュメントの想定利用者を更に含む前記質問応答対データを作成し、
前記危険操作判定部は、
前記質問応答対データに対して前記危険操作が存在するかを判定する際に、前記想定利用者とユーザーとの関係に基づいて前記危険操作が存在するか又は前記応答文が前記ドキュメントに含まれる前記危険操作の記述を有するかを判定し、
前記応答文差し替え部は、
前記想定利用者と前記ユーザーとの関係に基づいて前記危険操作が存在すると判定された場合、前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替え、
前記応答文が前記ドキュメントに含まれる前記危険操作の記述を有すると判定された場合、前記ドキュメントに含まれる前記危険操作の記述を有する前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替ることを特徴とする請求項1に記載の質問応答システム。
【請求項9】
前記危険操作判定部は、
前記想定利用者と前記ユーザーとが一致しない場合に、前記危険操作が存在すると判定することを特徴とする請求項8に記載の質問応答システム。
【請求項10】
前記危険操作判定部は、
前記質問応答対データに対して前記危険操作が存在するかを判定する際に、ユーザーの所有する機器の機器情報に基づいて前記危険操作が存在するか又は前記応答文が前記ドキュメントに含まれる前記危険操作の記述を有するかを判定し、
前記応答文差し替え部は、
前記機器情報に基づいて前記危険操作が存在すると判定された場合、前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替え、
前記応答文が前記ドキュメントに含まれる前記危険操作の記述を有すると判定された場合、前記ドキュメントに含まれる前記危険操作の記述を有する前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替ることを特徴とする請求項1に記載の質問応答システム。
【請求項11】
前記機器情報は、前記機器に対応する状態に関する情報を含み、
前記危険操作判定部は、
前記状態が正常か異常かに応じて、前記危険操作が存在かを判定することを特徴とする請求項10に記載の質問応答システム。
【請求項12】
前記応答文差し替え部は、
ユーザーからのフィードバック情報に基づいて、前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替えることを特徴とする請求項1に記載の質問応答システム。
【請求項13】
ドキュメントに含まれる記述から質問パターンと前記質問パターンに対応する応答パターンとを特定し、特定した前記質問パターンと応答パターンとを変換して質問文と応答文を含む質問応答対データを作成する質問応答対生成プログラムと、前記質問応答対データを前記質問文と差し替え後応答文を含む差し替え済み質問応答対データに差し替える質問応答対差し替えプログラムとを計算機により実行する質問応答プログラムであって、
前記質問応答対差し替えプログラムは、
前記質問応答対データに対して、危険操作が存在するかを判定する危険操作判定プログラムと、
前記危険操作が存在すると判定された場合、前記ドキュメントに含まれる前記危険操作の記述を有する前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替えて、前記差し替え済み質問応答対データを作成する応答文差し替えプログラムと、
を有することを特徴とする質問応答プログラム。
【請求項14】
ドキュメントに含まれる記述から質問パターンと前記質問パターンに対応する応答パターンとを特定し、特定した前記質問パターンと応答パターンとを変換して質問文と応答文を含む質問応答対データを作成する質問応答対生成ステップと、前記質問応答対データを前記質問文と差し替え後応答文を含む差し替え済み質問応答対データに差し替える質問応答対差し替えステップとを有する質問応答方法であって、
前記質問応答対差し替えステップは、
前記質問応答対データに対して、危険操作が存在するかを判定する危険操作判定ステップと、
前記危険操作が存在すると判定された場合、前記ドキュメントに含まれる前記危険操作の記述を有する前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替えて、前記差し替え済み質問応答対データを作成する応答文差し替えステップと、
を有することを特徴とする質問応答方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、質問応答システム、質問応答プログラム及び質問応答方法に関する。
【背景技術】
【0002】
人工知能技術や自然言語処理技術の発展により、チャットボット等を介した質問応答システムの利用が拡大している。従来は、雑談や簡単な受け答え程度の用途が多く見られたが、近年は企業における製品顧客サポートでの利用が広がっている。
【0003】
製品顧客サポートにおける質問応答システムの主な利用目的として、顧客の問い合わせに的確かつ迅速にこたえることで、顧客の問題を早期に解決することが挙げられる。顧客の問題を早期に解決できることは、サポート側の対応コスト低下につながるため、顧客と製品提供元企業双方のメリットとなる。
【0004】
顧客の問い合わせに的確かつ迅速に答えるには、質問応答システムができるだけ多くの質問に答えられる必要がある。質問応答システムの多くは、事前に想定質問とそれに対する応答文を準備しておき、問い合わせ内容と近い想定質問に対する応答文を答える。そのため、想定質問・応答文の対を多く準備することが、顧客の問い合わせに的確かつ迅速に答えるために重要である。
【0005】
しかしながら、この想定質問・応答文の準備は、一般に大きな工数を要する。そのため人手で大量に想定質問・応答文を作成することは困難である。そこで、既存の資料から、想定質問・応答文を機械的に生成する手法が提案されている。
【0006】
例えば、特許文献1は、ウェブサイトやマニュアル中にある既存のFAQ(Frequently Asked Question)を抽出し、質問応答システム向けに変換することで、想定質問・応答文を機械的に生成する。
【0007】
また、特許文献2は、マニュアルにおける文章や文書の書式から、特定のパターンに従う記述を想定質問・応答文に変換することで、想定質問・応答文を機械的に生成する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】US8560567B2
【特許文献2】WO2020100553A1
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1、2の手法は、想定質問・応答文を多数生成することができる。一方、これらの手法は機械的に応答文を生成するために、顧客にとって不利益を伴う危険な操作を案内する可能性がある。
【0010】
例えば、元となる資料が、危険な操作の記述を含む、例えば製品の機能を停止するような操作を含む場合、上記手法はそれがそのまま問い合わせへの応答として案内されてしまう。顧客の問い合わせ方によっては、質問応答システムの応答が、想定質問に対する応答としては正しいにしても、顧客の問題に対しては誤った応答を返すことがある。
【0011】
この場合、顧客は質問応答システムの応答を信用し、顧客の問題に対し誤った操作をしてしまう可能性がある。これは、顧客の問い合わせに的確かつ迅速に答えるという質問応答システムの導入目的に反することである。
【0012】
本発明の目的は、質問応答システムにおいて、質問者に危険な操作を案内しないようにすることにある。
【課題を解決するための手段】
【0013】
本発明の一態様の質問応答システムは、ドキュメントに含まれる記述から質問パターンと前記質問パターンに対応する応答パターンとを特定し、特定した前記質問パターンと応答パターンとを変換して質問文と応答文を含む質問応答対データを作成する質問応答対生成処理部と、前記質問応答対データを前記質問文と差し替え後応答文を含む差し替え済み質問応答対データに差し替える質問応答対差し替え処理部とを有する質問応答システムであって、前記質問応答対差し替え処理部は、前記質問応答対データに対して、危険操作が存在するかを判定する危険操作判定部と、前記危険操作が存在すると判定された場合、前記ドキュメントに含まれる前記危険操作の記述を有する前記応答文を前記危険操作の分類に応じた前記差し替え後応答文に差し替えて、前記差し替え済み質問応答対データを作成する応答文差し替え部とを有することを特徴とする。
【発明の効果】
【0014】
本発明の一態様によれば、質問応答システムにおいて、質問者に危険な操作を案内しないようにすることができる。
【図面の簡単な説明】
【0015】
図1】実施例1における質問応答システムの全体図である。
図2】実施例1における質問応答用計算機の構成図である。
図3】実施例1における質問応答対データの例を示す図である。
図4】実施例1におけるドキュメントの例を示す図である。
図5】実施例1におけるドキュメントから変換した階層構造の例を示す図である。
図6】実施例1における質問応答対の生成パターンの例を示す図である。
図7】実施例1における質問応答対の生成処理フロー図である。
図8】実施例1におけるドキュメントから生成された質問応答対データの例を示す図である。
図9】実施例1における質問応答対の応答文差し替え処理フロー図である。
図10】実施例1における危険操作データベースの例を示す図である。
図11】実施例1における応答文差し替え後の質問応答対データの例を示す図である。
図12】実施例2における危険操作判定テーブルの例を示す図である。
図13】実施例4における機器情報の例を示す図である。
図14】実施例3における危険操作データベースの例を示す図である。
図15】実施例3における応答文差し替えフロー図である。
図16】実施例4における応答文差し替え処理フロー図である。
【発明を実施するための形態】
【実施例0016】
図1に本実施例1が対象とする質問応答システムの全体図100を示す。
質問応答システムでは、顧客140が、顧客の所有する機器150に問題が発生した場合等、機器の開発元に問い合わせをしたい場合、顧客140は質問応答用計算機110が提供するGUI190と質問・応答のやり取りを行う。
【0017】
質問応答用計算機110は、差し替え済み質問応答データ118を用いて、顧客140の質問に応答する。この差し替え済み質問応答データ118は、以下のように作成する。まず、既存のドキュメント120から、質問応答対生成処理部111にて想定質問・応答対を抽出・整形することで質問応答データ112を作成する。質問応答データ112は、質問応答対差し替え処理部113において応答文の差し替えがなされる。まず危険操作判定部114は、質問応答対が危険な操作に該当する応答を含むか、顧客情報116や機器情報117を用いて判定する。該当すると判定された場合、続く応答文差し替え部115において応答文を安全な文章に差し替える。このようにして差し替え済み質問応答対データ118を作成する。
【0018】
顧客140と機器150は、常時それらの状態を質問応答システム110に通知してもよい。その場合、顧客情報116や機器情報117が更新されることで、危険な操作の判定結果が変化する。
【0019】
以降、質問応答システムを構成する個々の要素や、処理フローについて詳細に述べる。
【0020】
図2は、質問応答用計算機200の構成図を示す。
質問応答用計算機200は、CPU210、メモリ220、ネットワークインタフェース240、ディスプレイ250を持つ。CPU210は、メモリ220に格納された各種プログラムに従い、質問応答用計算機200の動作を決定する。メモリ220には、質問応答対生成プログラム221、質問応答対差し替えプログラム222、危険操作判定プログラム223、文章差し替えプログラム224、質問応答プログラム226、ドキュメント230、質問応答対データ231、差し替え済み質問応答対データ232、顧客情報233、機器情報234を持つ。
【0021】
質問応答対生成プログラム221は、ドキュメント230を参照し、質問応答対データ231を作成する。質問応答対生成プログラム221を構成する機能として、構造解析部240、テキスト解析部250、応答データ生成部260を有する。構造解析部240はレイアウト分析部241、章階層分析部242、表形式分析部243、図形式分析部244等を含む。構造解析部240はこれらに限らず、文書の構造を分析するプログラムを内包することができる。
【0022】
テキスト解析部250は、形態素解析部251、係り受け解析部252、照応解析部253、正規表現部254等を持つ。テキスト解析部250はそれ以外にも、各種自然言語の解析に必要な処理部を持つことができる。例えば、英語であればStemming、中国語であれば単語の分解などの処理が挙げられる。加えて、テキスト解析部250はこれらに限らず、テキストの情報を分析する他のプログラムを内容することができる。応答データ生成部260は、パターンデータベース261、同義語・言い換え展開部262を持つ。
【0023】
質問応答対差し替えプログラム222は、質問応答対データ231を参照し、危険操作判定プログラム223及び文章差し替えプログラム224の処理を経て、差し替え済み質問応答対データ232を作成する。質問応答プログラム226は、差し替え済み質問応答対データ232を用いて、顧客140との質問応答のやりとりを行うプログラムである。
【0024】
ドキュメント230は、質問応答対データ231の生成に用いるデータである。ドキュメント230は、文章・図面・データを掲載した文書・書類・媒体が該当する。例えば、製品マニュアル、カタログ、FAQ集、ウェブサイト、ユーザーフォーラム、過去の問い合わせのデータベース、製品情報のデータベースなどが該当する。質問応答対データ231・差し替え済み質問応答対データ232は、質問応答システムで使用される想定質問とその質問への応答文を列挙したデータである。差し替え済み質問応答対データ232は、質問応答対差し替えプログラム222によって、データの内容を一部変更されている点を除けば、質問応答対データ231と同等である。顧客情報233は、問い合わせを行う顧客140の情報である。機器情報234は、顧客140が保持する機器150の情報である。顧客情報233・機器情報234は、本実施例において必須ではない。
【0025】
ネットワークインタフェース240は、他の計算機と通信を行う場合に用いる。通信には、TCP/IP(Transmission Control Protocol/Internet Protocol)や、TCP/IP上に構築されたHTTP(HyperText Transfer,SSH(Secure Shell)などのプロトコルを用いることができる。ディスプレイ250は、顧客140との質問応答のやり取りを行う画面を表示するデバイスである。質問応答のやりとりが可能な他のデバイスが存在する場合、ディスプレイ250はそのデバイスで代替しても良い。
【0026】
例えば、音声による質問応答のやりとりを行う場合には、マイクとスピーカーで代替できる。また、質問応答用計算機200自体はディスプレイ250を持たず、HTML(HyperText Markup Language)のように、画面表示の内容を指示する情報をネットワークインタフェース240経由で送信し、それを受信した顧客が持つ計算機上のディスプレイで質問応答のやりとりを行う構成でも良い。
【0027】
質問応答用計算機200が持つプログラム221・222・223・224・225及びデータ230・231・232・233は、単一の計算機ですべてを持たず、複数の計算機で分けて持っても良い。例えば質問応答対生成プログラム221と、質問応答対差し替えプログラム223と、質問応答プログラム225はそれぞれ別の計算機で動作してもよい。この場合、質問応答対生成プログラム221を持つ計算機が生成した質問応答対データ231は、ネットワークインタフェース240経由で質問応答対差し替えプログラム223を持つ計算機中のメモリ220に送信され、同様に質問応答対差し替えプログラム223を持つ計算機が受信した質問応答対データ231から生成した差し替え済み質問応答対データ232は、ネットワークインタフェース240経由で質問応答プログラム225を持つ計算機中のメモリ220に送信され、質問応答プログラム225を持つ計算機は受信した差し替え済み質問応答対データ232を用いて質問応答のやり取りを行う構成をとることができる。
【0028】
図3では、質問応答プログラム225が質問応答に利用する質問応答対データ300の構成例を示す。
図3の例では、ディスクを備え、データを格納するストレージ装置を想定した質問応答対を示している。そのため、格納されたデータや、備えたディスクに関する質問文や応答文が並ぶ。質問応答対データ300は、質問文310と応答文320の対応関係を列挙し、一行ごとに該当するエントリを格納したテーブルである。例えば図に示す質問応答対データ300では、質問文・応答文の対がエントリ331・332・333の3件登録されている。
【0029】
質問応答プログラム225は、顧客から入力された質問文を受け取ると、質問応答対データ300のエントリ331・332・333のうち、顧客の入力した質問文と近いものを探す。もし近い質問文を持つエントリが存在した場合、そのエントリの応答文320を質問応答プログラム225の応答として出力する。
【0030】
質問文の近さの判断は、言語処理で用いられる種々の自然言語処理技術が利用できる。例えば、両文における同じ単語の登場頻度、BLEU(BiLingual Evaluation Understudy)値、Word Embeddingを用いたベクトルの距離などの算出方法が適用できる。
【0031】
図4は、ドキュメント400の構成例を示す。
ドキュメント400は、階層を持つ文書であり、特許・論文・マニュアル・レポート等が該当する。
【0032】
ドキュメント400は、テキスト・図・表などのデータが、何らかの階層やレイアウトに従って配置されることで、構造を持つ。この構造はテキストの位置・内容・大きさ・装飾や、それらが罫線によって区切られることで定義される。図の例では、ドキュメント400はタイトル410をタイトルとする1つの章を表しており、その章には節タイトル420・430・440で示される3つの節があると考えることができる。
【0033】
節タイトル420に対応する節では、節本文421の後に、箇条書き422が並んでいる。同様に、節タイトル430に対応する節では、節本文431の後に、箇条書き432が並んでいる。節タイトル440に対応する節では、節本文441の後に、表キャプション442及び表443が並んでいる。すなわち、このドキュメント400は章の後に節が来て、節の後に節本文が来るという階層構造を示している。
【0034】
図5は、ドキュメント400の構造を解析し、木構造の形で表現した構造情報500の例を示す。 構造情報500は根ノード505を根とするノード群が成す木構造で表現される。本構造情報500において、文書中で包含関係にある関係は、親子関係として表現される。例えば、根ノード505は、章に対応するノード510を子に持ち、章に対応するノード510は節に対応するノード520・530・540を持つ。節に対応するノード520・530・540は節の内容に関連して、節本文に対応するノード521・531・541や、箇条書きに対応するノード522・532、表に対応するノード542などを子に持つ。箇条書きに対応するノード522・532は、それぞれ箇条書きを構成する各項目に対応するノード523・524およびノード533・534を持つ。
【0035】
表に対応するノード542は表を構成する各行に対応するノード543・546・549を持ち、行に対応するノード543・546・549は行を構成する各セルに対応するノード544・545・547・548・550・551を持つ。表は構造情報上で異なる表現方法を取っても良い。例えば表を構成する列に対応するノードを表に対応するノードの子ノードとし、列に対応するノードが列を構成する各セルに対応するノードを子ノードに持つようにしても良い。また、列・行の順を問わず、表を構成する全セルを表に対応するノードとして列挙し、表の子ノードとしても良い。
【0036】
各ノードはノードに対応する文書の部分に対し、階層名(章や節、表など)に留まらずその部分に含まれるテキストや、構造に基づく情報(文書におけるページ数や章・節・表の番号、テキストの位置やフォント情報)を同様に保持することができる。
【0037】
本実施例1では、構造情報500に示す木構造において、事前に定義されたパターンに合致する記述、すなわち木構造の部分木を抽出し、応答文を生成する。この木構造の部分木のパターンは、パターンデータベース261に格納される。
【0038】
図6に、パターン例600を示す。パターン例600は3つのパターン610・611・612からなる。パターン610・611・612は、構造情報の木構造の一部に相当する抽出パターン620と、そのパターンに合致した記述を抽出した場合に生成される質問・応答対の元となる応答データテンプレート630からなる。
【0039】
抽出パターン記述621は、抽出パターン620の一例を示す。本パターンでは木構造にある、親子関係にあるノードの階層名とテキストを対にして記載することで抽出したい構造を示す。この例では、階層名622「節」と階層名624「節本文」が親子関係にある場合を示す。また、各階層名に対応してスロット623「<語句>」とスロット625「<意味>」が記載されている。これは、抽出した構造において、対応するノードのテキストがこれらのスロットに代入されることを示す。
【0040】
抽出パターン記述641は、抽出パターン620の別の一例を示す。抽出パターン記述641は複数の階層名642・643・645を用いて、表形式の構造と合致するパターンを示している。
【0041】
抽出パターン記述661は、抽出パターン620の別の一例を示す。抽出パターン記述661は複数の階層名を定めておらず、スロット662・663を持つ文章パターン664が記述されている。これは、この抽出パターン記述661は、階層構造で階層名を問わず、どのノードにも合致することを意味する。一方、文章パターン664と合致する文章を持つノードであることを要求する。
【0042】
抽出パターン620の記述方法として、図6に示した方法以外に、木構造同士で柔軟に対応関係を取る技術を取り入れることもできる。例えば論文Taxonomy of XML schema languages using formal language theory. ACM Trans. Internet Technol. 5, 4 (November 2005), 660-704.ではXML(Extensible Markup Language)で記述された木構造の文書に対し、パターンに合致する部分木を柔軟に抽出する方法を提案している。
【0043】
応答データテンプレート630は質問文と応答文の対として記述される。これらの質問文・応答文は文中に抽出パターン620中に現れるスロットを含めることができる。この場合、抽出された部分木において、抽出パターン620中のスロットに対応付けられるテキストがあった場合、そのテキストが応答文中のスロットに代入されて応答文が生成される。
【0044】
図6には記載されていないが、応答データテンプレート630においてスロットの出力方法を加工する記述を加えても良い。例えば日本語であれば適切な活用系への変更や、英語であれば動詞の時制や名詞の単数・複数形を適切に変更するなどの加工が考えられる。
【0045】
なお、図5図6において文書構造を木構造で表現しているが、部分構造を表現可能であれば別の表現形式であっても同様である。例えば文書における表は、木構造ではなく多次元配列などの形で表現しても良い。
【0046】
図7は質問応答用計算機200中の質問応答対生成プログラム221がドキュメント120から質問応答対データ112を生成する、質問応答対データ生成フロー700を示す。
【0047】
ステップ710では、構造解析部240及び内部のレイアウト分析部241、章階層分析部242、表形式分析部243、図形式分析部244等がドキュメント1200を分析して、階層情報500のような木構造の表現に変換する。この変換には、既存の技術が利用できる。例えばレイアウト分析部241に相当する、段落に関する情報を保持しない形式の文書ファイルを段落ごとに分ける手法として、互いに近傍に位置する文を同一段落と見なす手法がある。
【0048】
ステップ720は、ステップ710で変換したドキュメント120の木構造表現に対し、各ノードの保持するテキスト情報を解析する。これはテキスト解析部380に含まれる形態素解析部251、係り受け解析部252、照応解析部253などがそれぞれの処理を行う。
【0049】
ステップ730は、パターンデータベース261に格納された各パターンについて、ドキュメント400の木構造表現から抽出パターン620に合致する部分木を抽出する。ノード間の関係が一致するようなノード群の抽出には、前述の論文に記載された手法などを用いることができる。さらに、抽出した部分木の各ノードにおけるテキストと、抽出パターン620中のテキストやスロットを照合し、対応が取れるか判定する。対応が取れない場合、その部分木は抽出できないと見なす。この照合処理には、正規表現などが利用できる。
【0050】
ステップ740では実施対象の抽出パターン620に対応づくドキュメント400の木構造表現の部分木について、応答データテンプレート630中のスロットを埋め、応答データを出力する。その際、1つの部分木から応答データテンプレート630に従い1つの応答データを出力するだけでなく、複数のデータを出力しても良い。例えば同義語・言い換え展開部262によって、応答データの単語を類義語に置き換えたり、語順を変更したりするなどした応答データを合わせて出力することができる。また、応答データ中に「表2」「30ページ」のようにドキュメント400中の項目を参照する表記がある場合、参照先の内容を応答文に追加したうえで、「下記の表」「下記の記述」のように参照先を追加した応答文となるように変更してもよい。
【0051】
図8は、ドキュメント400及びそれに対応する階層構造500から、パターン例600を用いて応答データ生成フロー700を実施し、生成される応答データ800の例を示す。
【0052】
応答データのエントリ831・832・833は、節に対応するノード520・530・540及びその子ノードがパターン621と対応づいた結果生成された例である。いずれも、節に対応するノード520・530・540の内容が質問文に組み込まれ、子ノードの内容が応答文に組み込まれている。エントリ833の応答文は表を含む。これはノード541に含まれる記述「表2」の参照先がノード542であり、ドキュメント400中の表433であることから、ステップ740で行う参照先の内容の追加処理の結果である。
【0053】
応答データのエントリ834・835は、表中のデータ行に対応するノード546・549及びその子ノードがパターン641と対応づいた結果生成された例である。応答データのエントリ836は、節本文に該当するノード521の1文目が、パターン661と対応づいた結果生成された例である。
【0054】
想定利用者810は、質問応答データの生成元となったドキュメント400の想定利用者を示す。この情報は、ドキュメント400の属性(例えば、保守員向けマニュアルなら、製品ベンダ保守員を想定利用者とする)や、ドキュメント400内の記述(ユーザー管理者向けの章に記載された内容なら、ユーザー管理者を想定利用者とする)を元に設定する。
【0055】
図8に示すように、ドキュメント400に対し質問応答対データ生成フロー700を適用することで、応答データ800を生成することができる。ここで、応答データ80はドキュメント400から機械的に生成するため、一見危険な操作を案内する応答文が含まれうる。例えばエントリ832は、「ボリュームを削除する」という操作を促している。これは、ボリュームに重要なデータが含まれている場合、そのデータを利用できなくする操作なので、一般に危険な操作と考えられる。
【0056】
図9は、応答データ800から、そのような危険な操作の応答を差し替える、応答文差し替え処理フロー900を示す。応答文差し替え処理フロー900は、質問応答対差し替えプログラム222によって実施される。応答文差し替え処理フロー900は、顧客140が質問をする前に事前に実行しても良いし、顧客140が質問してきた契機で実行してもよい。いずれを取るかは、それぞれ得失がある。事前に実行する場合、差し替え処理後の応答対データを、顧客140に見せる前に人が確認可能であるため、応答文の品質や内容の確認をする猶予が得られる。一方、顧客140が質問してきた契機で実行する場合、顧客140に応じて差し替え方を変えることができる。ただし、いずれにしても、質問応答プログラム226は応答文差し替え処理フロー900の結果を顧客への応答に用いるため、顧客への応答までに応答文差し替え処理フロー900を完了する必要がある。
【0057】
応答文差し替え処理フロー900のステップ910では、まず危険な操作を列挙した危険操作データベース225の作成を行う。
【0058】
図10に、危険操作データベース例1000を示す。
危険操作データベース例1000は、分類1010、表現1020、差し替え方法1030で構成されたエントリ1051・1052・1053の列として表現される。分類1010は、危険な操作の分類を示す。表現1020は、分類1010に属する表現を列挙したものである。表現1020は、自然言語で記述されていても良いし、コマンドや操作ボタンの名称など、操作を指示する他の表現を含むことができる。
【0059】
差し替え方法1030は、質問応答対データ112に分類1010に分類される表現1020が含まれていたとき、質問応答対データ112の応答文をどう差し替えるかを記載している。例えばエントリ1051は、質問応答対データ112が「データを削除する」という表現を含む場合、データロストを引き起こす応答文であるため、文章をサポート部門への連絡文に差し替えることを意味する。エントリ1053のように、この応答を行わない(すなわち、代わりに他の質問の応答データを返すようにする)ことを指示してもよい。危険操作データベース225は、人手で個別のエントリを作成しても良いし、過去に生じた問題・障害一覧に該当する操作を抽出して作成してもよい。
【0060】
応答文差し替え処理フロー900のステップ920では、質問応答対データ800の各エントリに対し、危険操作を含むか判定する。具体的には、エントリ中に危険操作データベース225を参照して表現1020に該当する記述があった場合、そのエントリが分類1010に該当する危険操作を含むと判定する。ステップ930では、ステップ920の判定結果に応じて、危険操作データベース225に従って応答文の差し替えを行う。もし単一のエントリが複数の危険操作分類に該当する場合、両分類に該当する差し替えを行っても良いし、危険操作の分類を順位付けして、最も高い順位の操作に関する差し替えを行うだけでもよい。
【0061】
図11に、差し替え済み質問応答対データ例1100を示す。
差し替え済み質問応答対データ例1100は、質問応答対データ例800を危険操作データベース例1000に基づき差し替えを行った結果を示す。差し替え済み質問応答対データ例1100は、質問文410を持つ点は質問応答対データ例800と同じである。しかし、応答文420が差し替え後応答文1120になっている点と、危険操作1100が追加されている点が異なる。
【0062】
エントリ1131・1132・1133・1134・1135・1136は、それぞれエントリ831・832・833・834・835・836に対し応答文差し替え処理フロー900を適用した結果である。エントリ831は、応答文420に「ファイルを読み込み専用にする」という記述を含み、この記述は危険操作データベース例1000において、「データ操作」に分類される表現である。そのため、エントリ1131は、危険操作1100として「データ操作」が格納され、応答文1120には、エントリ1052の差し替え方法1030の指示に基づき、「下記操作はデータに変更を加えます。注意して行ってください。」が付与されている。
【0063】
同様に、エントリ832は、応答文420に「ボリュームを削除する」という記述を含み、この記述は危険操作データベース例1000において、「データロスト」に分類される表現である。そのため、エントリ1132は、危険操作1100として「データロスト」が格納され、応答文1120には、エントリ1051の差し替え方法1030の指示に基づき、「サポート部門まで連絡してください。」という文章に差し替えられている。エントリ833・834・835・836は、危険操作データベース例1000の表現1020に該当する記述がないため、エントリ1133・1134・1135・1136において危険操作1110の項は該当なしであり、応答文820と差し替え後応答文1120は変化がない。
【0064】
応答文差し替え処理フロー900により、質問応答対データ112から差し替え済み質問応答対データ118が生成される。以後、質問応答プログラム226は差し替え済み質問応答対データ118を使い、顧客140との質問応答を行うことができる。これにより、質問応答プログラム226は「ボリューム削除」のような危険な操作を促す応答を回避することができる。また、質問応答プログラム226は差し替え済み質問応答対データ118のうち危険操作1100の内容を、応答の選択に用いても良い。例えば、危険操作1100にデータロストを含むエントリ1132は、そもそも応答の対象として選ばないという判断をしても良い。
【0065】
本実施例1により、既存のドキュメントを用いて、質問応答システムが用いる質問応答対データを生成することができる。また、応答文に危険な操作を促す表現がある場合、応答文を差し替えたり警告文を追記したりすることで、質問者である顧客にそのような操作を促す応答を防ぐことができる。両効果により、質問応答システムがより多くの質問に答えられるようになり、かつ危険な操作を応答しない安心な質問応答システムが実現可能となる。
【実施例0066】
ドキュメント120が大量に存在する場合、ドキュメント中で使われる表現も多岐にわたる。その場合、危険操作データベース225を網羅的に作成する手間は、ドキュメントの分量に応じて増大する。本実施例2では、危険操作データベース225の作成を支援する方法について説明する。
【0067】
危険な操作は、多くの例では操作の対象と、操作の内容の組み合わせで表すことができる。そこで、操作の対象と内容それぞれ分けて考えることで、多様な操作に対し危険かどうかの判断を容易にできる。
【0068】
図12は、危険操作判定テーブル1200の例を示す。
危険操作判定テーブル1200は、操作を表す表現について、操作内容1210と操作対象1220から危険操作の分類1010を求める2軸の表である。危険操作判定テーブル1200では、操作内容の分類として、行エントリ1211・1212・1213・1214・1215を定めている。操作内容の分類1230は、各エントリの属する分類を示す。例1231は、各分類に属する表現の例を挙げている。一般に、操作の内容を示す動詞や名詞が該当する。
【0069】
例えば、行エントリ1211は、「消す」「削除」「除く」という表現がまとめて「削除」という分類にくくられることを示す。同様に、操作対象の分類として、列エントリ1221・1222・1223を定めている。操作対象の分類1240は、各列エントリの属する分類を示す。例1241は、各分類に属する表現の例を挙げている。一般に、操作の対象を示す名詞が該当する。例えば、エントリ1221は、「ボリューム」「ディスク」「ファイル」という表現がまとめて「データ」という分類にくくられることを示す。
【0070】
ある操作内容と操作対象を含む表現があったとき、危険操作判定テーブル1200を用いて、操作内容から該当する行エントリを求め、操作対象から該当する列エントリを求めると、両エントリの交差するセル1250を参照することで、その行の危険操作分類1010を定めることができる。エントリ1051の例を挙げると、「ボリュームを削除」という表現は、「削除」が行エントリ1211に該当し、「ボリューム」が列エントリ1221に該当するので、交差するセル1251を参照することで、この表現が「データロスト」に分類されることがわかる。
【0071】
本実施例2によると、大量の表現を含むドキュメントに対し危険操作データベース225を作成する場合、操作内容と操作対象を個別に分類し、その分類の組み合わせに応じた危険操作の分類表を予め作成しておくことで、大量の危険操作の分類が容易となる。
【実施例0072】
前述の実施例では、応答文差し替え処理フロー900において、質問応答対データ800の文章によって、質問応答対が危険操作を含むか判定していた。
【0073】
危険操作を含むか判定する他の手法として、質問応答対の生成元ドキュメント112の想定利用者と、顧客140が一致するかどうかを用いることができる。例えば、ある製品のドキュメントの想定利用者には、エンドユーザー・管理者ユーザー・製品ベンダ保守員などが考えられる。一般に、エンドユーザーより管理者ユーザー、管理者ユーザーより製品ベンダ保守員の方が、行える操作の権限も大きいと考えられる。例えば、ストレージ装置の場合、エンドユーザーは電源を切る権限を持たないが管理者ユーザーは権限を持ち、エンドユーザーと管理者ユーザーは動作ログ情報を参照できないが、製品ベンダ保守員は動作ログ情報を参照できる、などの違いが考えられる。その場合、製品ベンダ保守員を想定利用者としたドキュメントに書かれている内容は、エンドユーザー・管理者ユーザーは実行できるべきではない。すなわち、製品ベンダ保守員ではない顧客に対して、製品ベンダ保守員を想定利用者としたドキュメント、およびそのドキュメントから生成した質問応答対を無条件で応答すべきでない。
【0074】
そこで、ドキュメントの想定利用者の情報を用いた危険操作の判定を行う。この判定を行うにあたり、質問応答対データ生成フロー700が作成する質問応答対データ800に、質問応答対のエントリ毎に、生成元のドキュメント120の想定利用者をエントリ毎に想定利用者840として併記しておく。
【0075】
図14は、本実施例3における危険操作データベース例1400を示す。
危険操作データベース例1400は、分類1010、条件1420、差し替え方法1030で構成されたエントリ1451・1452の列として表現される。分類1010と差し替え方法1030は、実施例1における危険操作データベース例1000と同一である。条件1420は、ドキュメントの想定利用者1421と、ユーザー属性1422からなる。これらは、質問応答対の想定利用者と、質問応答システムのユーザーである顧客140の属性が、各エントリに合致する場合、その質問応答対は、分類1010に分類され、差し替え方法1030に沿った差し替えが行われることを示す。
【0076】
図15は、本実施例3における応答文差し替えフロー1500を示す。
応答文差し替えフロー1500は、顧客140が質問をする前に事前に実行しても良いし、顧客140が質問してきた契機で実行してもよい。応答文差し替えフロー1500のステップ1510では、質問応答対データ例800の各エントリに対し、想定利用者840と、顧客140の属性を併せて危険操作データベース例1400と照合することで、危険操作の有無を判定する。危険操作データベース例1400において、条件1420が合致したエントリが見つかった場合、質問応答対データ例800の当該エントリは、分類1010に示す危険操作を含むと判定される。ステップ1520では、ステップ1510で質問応答対データ例800のエントリが危険操作を含むと判定された場合、ステップ930に進む。危険操作を含まないと判定された場合、ステップ910に進む。ステップ910・920・930は、実施例1における応答文差し替えフロー900と同等の処理を行う。
【0077】
本実施例3によると、ドキュメントの想定利用者の情報を用いて、質問応答対の危険操作判定及び応答文差し替えを行うため、顧客140が行うべきでない操作を促す応答を、確実に差し替えることができる。
【実施例0078】
前述の実施例においては、危険操作の判定はドキュメントの記載内容や、対象利用者によって定められていた。
【0079】
他の危険操作の判定方法として、質問者が所有機器に対する質問を行う状況において、質問者の所有する機器の情報に基づく方法がある。
【0080】
図13は、機器情報1300の例を示す。
機器情報1300は、項目として所有者1310、機器ID1311、部品・指標1312、状態1313を持つ。また、機器情報1300は複数のエントリ1320~1329を持つ。各エントリは、ある1つの機器の1つの部品・指標に対する状態を記述する。所有者1310はその機器を所有する顧客を示す。機器ID1311は機器を特定する固有の文字列を示す。部品・指標1312と状態1313は、機器を構成する部品または機器に関する指標と、その状態を示す。部品は、形を持つものでも良いし、ソフトウェア部品など形のないものでも良い。指標の場合は、性能値や稼働時間等の値として評価できる項目を記載する。状態は、正常・異常の2値をとっても良いし、エントリ1323・1327のように定量値で表現しても良い。
【0081】
図16は、本実施例4における応答文差し替え処理フロー1600を示す。
応答文差し替え処理フロー1600では、応答文差し替え処理フロー900におけるステップ920の後に、ステップ1610を行う。ステップ1610では、質問応答対データ例800のエントリに対し、もしステップ920で危険操作と判定済みであった場合、ステップ930に進む。危険操作と判定されない場合、ステップ1620に進む。ステップ1620では、機器情報1300を用いて、質問応答データ800のエントリの危険操作判定を行う。
【0082】
それまでの質問などから、質問応答をしている顧客のユーザー属性が特定できているとする。また、質問対象の機器が特定できていてもよい。その場合、危険操作判定プログラム223は、ユーザー属性と(特定できているのであれば)質問対象の機器を、機器情報1300の所有者1310及び機器ID1311を照らし合わせることで、所有者及び機器が質問対象と一致するエントリを抽出する。例えば質問者が「Alice」で機器が「ABC123」の場合、抽出されるエントリは1320・1321・1322・1323となる。
【0083】
この時、応答文に対し2つの手順が考えられる。1つ目は、まず機器「ABC123」に関連しない、他の機器を対象とした質問応答データ800のエントリは、危険な操作を含むと判定する。そうすることで、「ABC123」ではない機器に関する操作を無加工で応答することを防ぐ。
【0084】
もう一つは、正常中の部品・指標に関する操作を無加工で応答することを防ぐ。質問応答データ800のうち、応答文420に部品・指標1312に影響を及ぼす操作を含んでいるとき、その部品・指標1312に対応する状態1313が正常、または正常とみなせる定量値を含んでいる場合、正常である部品・指標に操作を加えることになるので、危険な応答と判定することができる。または、操作の結果が予測可能であり、状態1313が異常になることが予測できる場合も、危険な応答と判定することができる(例えば、電源を切る操作は、電源を異常な状態にすることが予測可能である)。ステップ1620による危険操作判定後は、ステップ930に進み、文章の差し替えを行う。
【0085】
本実施例4によると、質問応答システムは、質問者からの問い合わせに対し、正常動作している機器及び部品・指標に対し操作を促す応答を抑止することができる。これにより、質問者が正常動作している機器及び部品・指標に対し異常を引き起こす操作を行うことを防ぐことができる。
【実施例0086】
前述の実施例は、いずれも質問応答システムが応答を返すまでの時点で危険操作を判定する手法を示していた。
【0087】
本実施例5では、質問応答データを一度質問応答システムで利用し、その後質問者140からのフィードバックに応じて、危険操作判定及び文章差し替えを行う方法を示す。
【0088】
本実施例5では、質問応答プログラム226は文書差し替えを行う前の質問応答対データ112、もしくは差し替え済み質問応答対データ118を用いて、質問者140からの問い合わせに対して応答する。
【0089】
応答を受けた質問者140が、その応答が危険な操作を含んでいると判断し、その判断結果を質問応答システムに連絡した場合、その差し替え済み質問応答対データ118において、該当する質問応答のエントリの危険操作1110を連絡に応じて更新し、差し替え後応答文1120についてステップ930同様の文書差し替えを行う。
【0090】
質問者140からの連絡を受け危険操作1110を更新する方法は複数考えられる。一つは、直接サポート130と連絡を取り、応答文が危険な操作を含むと伝える方法である。その場合、サポート担当者130の操作に応じて、危険操作1110が更新される。また別の方法では、質問応答システムにおいて、テキストや選択式で質問者140に応答に関する感想を聞き、その結果に応じて危険操作1110を更新する。また別の方法では、機器情報234を用いる方法が考えられる。質問応答の結果、質問者140の操作によって、機器情報234が更新され、特定部位に異常が発生したことを質問応答システム側で認識したとする。その場合、応答文に危険操作が含まれていたと判断できる。
【0091】
本実施例5によると、質問応答システムは、質問応答における質問者やその所有機器からのフィードバックによって、危険操作を含む応答文の特定及び文章差し替えを行うことができる。これにより、以後の質問応答において、質問者に危険操作を含む応答を防ぐことができる。
【0092】
上記実施例の質問応答システムは、各想定質問・応答文対について、危険な操作を案内する想定質問・応答文対であるかを判定する。もし危険な操作を案内すると判定された場合、質問応答システムは、応答文をそのまま用いるのではなく、安全な文章に差し替えた上で応答する。
【0093】
上記実施例によれば、質問応答システムが、質問者に危険な操作を案内しないようにする。その結果、質問者が応答に従って誤った操作をしないようにする。
【符号の説明】
【0094】
100 質問応答システム
110 質問応答用計算機
111 質問応答対生成処理部
112 質問応答対データ
113 質問応答対差し替え処理部
114 危険操作判定部
115 応答文差し替え部
116 顧客情報
117 機器情報
118 差し替え済み質問応答対データ
119 GUI
120 ドキュメント
130 サポート担当者
140 顧客
150 機器
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16