(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-17
(45)【発行日】2024-04-25
(54)【発明の名称】情報提供システム、及び、情報提供方法
(51)【国際特許分類】
G06F 16/90 20190101AFI20240418BHJP
G06F 16/9038 20190101ALI20240418BHJP
【FI】
G06F16/90 100
G06F16/9038
(21)【出願番号】P 2019077895
(22)【出願日】2019-04-16
【審査請求日】2021-12-17
【審判番号】
【審判請求日】2023-06-22
(73)【特許権者】
【識別番号】598098526
【氏名又は名称】株式会社ユニバーサルエンターテインメント
(74)【代理人】
【識別番号】110001841
【氏名又は名称】弁理士法人ATEN
(72)【発明者】
【氏名】逸見 拓生
(72)【発明者】
【氏名】佐藤 淳一
【合議体】
【審判長】林 毅
【審判官】脇岡 剛
【審判官】吉田 美彦
(56)【参考文献】
【文献】特開2016-099968号公報(JP,A)
【文献】特開2008-243024号公報(JP,A)
【文献】渡辺直人 他、”QAコミュニティにおける質問者の期待に基づく質問分類に関する一検討”、DEIM Forum 2011 B5-1、[令和5年11月10日検索],2011年、インターネット<URL:https://db-event.jpn.org/deim2011/proceedings/pdf/b5-1.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
応答内容がそれぞれ対応付けられた複数の質問文字列を予め記憶する知識データ記憶部と、
ユーザによって操作されるユーザ端末から入力された入力文字列を受信する受信部と、
前記入力文字列と、前記複数の質問文字列それぞれとを形態素解析する形態素解析部と、
前記複数の質問文字列のそれぞれに対して、予め形態素解析した形態素解析結果を対応付けて記憶しておく質問データ記憶部と、
前記複数の質問文字列それぞれの予め形態素解析した前記形態素解析結果と、前記入力文字列の形態素解析結果とに基づき、前記入力文字列に対する前記複数の質問文字列それぞれについて関連性の度合を示すスコアを
同じ品詞同士を比較して算出するスコア出力部と、
前記複数の質問文字列のうち、前記スコアが所定の閾値以上となった質問文字列を選出し、選出した前記質問文字列を前記ユーザ端末に提示させる応答提示部と、
を有し、
前記スコア出力部は、
前記複数の質問文字列それぞれの形態素解析結果と、前記入力文字列の形態素解析結果とに基づき、前記入力文字列と、
取得した質問文字列
とに合致する素性を
選択し、予め学習データからそれぞれ作成された複数種類の素性を示すモデル
のうち、上記選択された素性に対応するモデル毎に素性の関連性を示す値
を算出してこれらの合計値から前記複数の質問文字列毎の前記スコアを算出することを特徴とする情報提供システム。
【請求項2】
前記ユーザ端末は、
前記ユーザの操作による前記入力文字列の更新を監視し、
前記入力文字列が更新される毎に更新された入力文字列を前記受信部へ送信し、
前記応答提示部から前記質問文字列を受信する毎に当該質問文字列を選択可能に提示し、
前記スコア出力部は、前記受信部が前記ユーザ端末から前記更新された入力文字列を受信する毎に、当該更新された入力文字列に対する前記複数の質問文字列それぞれについて関連性の度合を示す前記スコアを算出し、前記応答提示部に前記スコアが前記所定の条件に一致する質問文字列を提示させることを特徴とする請求項1に記載の情報提供システム。
【請求項3】
前記複数種類の素性は、前記入力文字列と、前記質問文字列と、の対応する形態素が同義であることの素性を含むことを特徴とする請求項1に記載の情報提供システム。
【請求項4】
知識データ記憶部と、受信部と、形態素解析部と、質問データ記憶部と、スコア出力部と、応答提示部と、を有する情報提供システムによる情報提供方法であって、
前記知識データ記憶部が、応答内容がそれぞれ対応付けられた複数の質問文字列を予め記憶すること、
前記受信部が、ユーザによって操作されるユーザ端末から入力された入力文字列を受信すること、
前記形態素解析部が、前記入力文字列と、前記複数の質問文字列それぞれとを形態素解析すること、
前記質問データ記憶部が、前記複数の質問文字列のそれぞれに対して、予め形態素解析した形態素解析結果を対応付けて記憶しておくこと、
前記スコア出力部が、前記複数の質問文字列それぞれの予め形態素解析した前記形態素解析結果と、前記入力文字列の形態素解析結果とに基づき、前記入力文字列に対する前記複数の質問文字列それぞれについて関連性の度合を示すスコアを
同じ品詞同士を比較して算出すること、および、
前記応答提示部が、前記複数の質問文字列のうち、前記スコアが所定の閾値以上となった質問文字列を選出し、選出した前記質問文字列を前記ユーザ端末に提示させること、
を有し、
前記スコア出力部は、
前記複数の質問文字列それぞれの形態素解析結果と、前記入力文字列の形態素解析結果とに基づき、前記入力文字列と、
取得した質問文字列
とに合致する素性
選択し、予め学習データからそれぞれ作成された複数種類の素性を示すモデル
のうち、上記選択された素性に対応するモデル毎に素性の関連性を示す値
を算出してこれらの合計値から前記複数の質問文字列毎の前記スコアを算出することを特徴とする情報提供方法。
【発明の詳細な説明】
【技術分野】
【0001】
情報提供システム、及び、情報提供方法に関する。
【背景技術】
【0002】
近年、ユーザからの質問に対して最適な解を検索し応答するシステムに関する研究が盛んに行われている。さらに、このようなシステムの開発に関連して、ユーザから入力された質問の構文や意味を解析したり、質問に対する解を検索したりするための、自然言語処理技術や人工知能技術についての研究も進められている。
【0003】
例えば、質問に応答して、最適なものとして評価された回答候補を出力する質問応答システムが提案されている(特許文献1参照)。この質問応答システムでは、質問に対する回答候補を検索し、質問と回答候補の組合せのそれぞれについて、各回答候補が当該質問に対する正しい回答である度合いを示すスコアを、学習機能を用いて算出し、算出されたスコアに基づいて、質問に対する正しい回答である可能性が最も高い回答候補を出力するように構成される。
【0004】
また、ユーザからの要求を自然言語で記述した入力文を解析し、当該入力文の要求内容が、事前に定義されている要求内容に該当するかどうかを判別し、これによって、入力文の要求内容を識別・出力する要求内容識別システムが開示されている(特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2013-171550号公報
【文献】特許第5099367号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記従来のシステムにおいて、ユーザが入力する内容が、用意された回答候補を限定できる程度に回答を示唆する内容を具備する必要があったり、事前に定義されている要求内容に沿っている必要がある可能性があったため、ユーザによっては、所望する応答内容を得ることが難しい場合があった。
【0007】
そこで、本発明は、ユーザが所望する知識データの情報取得を容易にすることができる情報提供システム、及び、情報提供方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の情報提供システムは、
応答内容がそれぞれ対応付けられた複数の質問文字列を予め記憶する質問データ記憶部と、
ユーザによって操作されるユーザ端末から入力された入力文字列を受信する受信部と、
前記入力文字列と、前記複数の質問文字列それぞれとを形態素解析する形態素解析部と、
前記複数の質問文字列それぞれの形態素解析結果と、前記入力文字列の形態素解析結果とに基づき、前記入力文字列に対する前記複数の質問文字列それぞれについて関連性の度合を示すスコアを算出するスコア出力部と、
前記複数の質問文字列のうち、前記スコアが所定の条件に一致する質問文字列を前記ユーザ端末に提示させる応答提示部と、
を有していることを特徴とする。
【0009】
上記構成によれば、ユーザが入力した入力文字列が形態素解析され、予め記憶する複数の質問文字列が形態素解析され、質問文字列の入力文字列に対するスコアが複数の質問文字列毎に算出され、所定の条件に一致する質問文字列がユーザ端末で表示される。これにより、ユーザがシステム的な要求を意識せずに感覚的に入力したとしても、ユーザが所望する応答内容を得ることができる可能性を向上させることができる。その結果、ユーザが所望する知識データの情報取得を容易にすることができる。
【0010】
本発明の情報提供システムにおいて、前記スコア出力部は、複数種類の素性ごとに、前記入力文字列と、前記複数の質問文字列のそれぞれとを比較し、各素性の関連性を示す値の合計値から前記スコアを算出してもよい。
【0011】
上記構成によれば、入力文字列と、複数の質問文字列それぞれとの関連性に影響を与える度合いを素性ごとに算出して合計値からスコアを算出するため、提示する質問文字列がユーザが入力した内容である可能性をより向上させることができる。
【0012】
本発明の情報提供システムは、
前記ユーザの操作による前記入力文字列の更新を監視し、
前記入力文字列が更新される毎に更新された入力文字列を前記受信部へ送信し、
前記送信部から前記質問文字列を受信する毎に当該質問文字列を選択可能に提示するものであってもよい。
【0013】
上記構成によれば、ユーザがユーザ端末において所望する質問文字列を得るために入力文字列を更新していく際、入力途中であっても入力文字列が形態素解析され、候補となる質問文字列が選択可能に提示される。入力文字列は形態素ごとに意味比較されるため、入力文字列が途中であっても適切な質問文字列を提示できる可能性を向上させることができる。
【0014】
本発明の情報提供方法は、
応答内容がそれぞれ対応付けられた複数の質問文字列を予め記憶すること、
ユーザによって操作されるユーザ端末から入力された入力文字列を受信すること、
前記入力文字列と、前記複数の質問文字列それぞれとを形態素解析すること、
前記複数の質問文字列それぞれの形態素解析結果と、前記入力文字列の形態素解析結果とに基づき、前記入力文字列に対する前記複数の質問文字列それぞれについて関連性の度合を示すスコアを算出すること、および、
前記複数の質問文字列のうち、前記合計スコアが所定の条件に一致する質問文字列を前記ユーザ端末に提示させること、
を有していることを特徴とする。
【0015】
上記構成によれば、ユーザが入力した入力文字列が形態素解析され、予め記憶する複数の質問文字列が形態素解析され、質問文字列の入力文字列に対するスコアが複数の質問文字列毎に算出され、所定の条件に一致する質問文字列がユーザ端末で表示される。これにより、ユーザがシステム的な要求を意識せずに感覚的に入力したとしても、ユーザが所望する応答内容を得ることができる可能性を向上させることができる。その結果、ユーザが所望する知識データの情報取得を容易にすることができる。
【図面の簡単な説明】
【0016】
【
図2】情報提供システムにおける入力応答のやりとりの形態を示す図である。
【
図9】入力応答画面制御処理のフローチャートである。
【
図10】サジェストワード応答処理のフローチャートである。
【発明を実施するための形態】
【0017】
以下に、本発明の一実施形態に係る情報提供システム1について、図面を参照して説明する。
【0018】
図1は、入力に対して応答を行うことで知識データを提供する情報提供システム1を含むシステムの概要を示す図である。
【0019】
ユーザ10は、ユーザ端末100において実行されるWEBブラウザにより表示されている所定のWEBページの入力エリア113に、(例えば、キーボードやタッチパネルを用いて)文字列を入力する。ユーザ10によって操作されるユーザ端末100から入力された入力文字列は、一般的には文章(入力文)の形態であり、例えば、そのWEBページに係るWEBサイトを提供している会社の製品に関する質問等を含み、自然言語によって表現される。以降、ユーザ10により入力は便宜上、単に「入力文字列」と表現するが、文章の形態でなくてもよく、単語や文章の一部などを包含する、様々な入力文を意味する。
【0020】
入力文字列は、ユーザ端末100のWEBブラウザによりネットワーク700を介して情報提供システム1に提供される。ここで、ネットワーク700は、例えば、インターネットを含むネットワークである。
【0021】
情報提供システム1は、ユーザ端末100から入力文字列を受信すると、この入力文字列に対応する応答となる質問文字列(一般的には、応答文)を決定し、それを、ネットワーク700を介してユーザ端末100に送信する。このように、ユーザ10が、入力文字列をWEBページの入力エリアに入力すると、これに対応した応答(質問文字列)がWEBページにサジェストワードとしてサジェストエリア118に選択可能に表示される。例えば、ユーザ10が、入力文字列として商品に関する質問をWEBページの入力エリアに入力すると、情報提供システム1は、予め記憶する複数の質問文字列のうち、入力文字列に意味が近いと判定した質問文字列をユーザ端末100へ応答する。質問文字列を受け付けたユーザ端末100は、当該質問文字列をWEBページの応答表示エリア等に表示する。
【0022】
図示しないが、提示された質問文字列の何れかがユーザ10によって指定された場合、ユーザ端末100は、指定された質問文字列、または、当該質問文字列を識別する情報を情報提供システム1へ送信する。そして、情報提供システム1は、指定された質問文字列、または、当該質問文字列を識別する情報を受け付けると、ユーザ端末100へ、予め記憶する当該質問文字列に対応付けられた知識データ(回答)を応答する。なお、情報提供システム1は、質問文字列に付加して、当該質問文字列に対応付けられた知識データを予め応答してもよい。
【0023】
本実施形態では、ユーザ端末100のWEBブラウザに対してユーザ10が操作することにより、入力文字列の入力や、質問文字列の提示が行われるものであるがこれに限定されない。例えば、他のアプリケーション等であってもよい。
【0024】
図1に示すように、情報提供システム1は、少なくともサジェストサーバ400を含むように構成される。本実施形態において、情報提供システム1は、情報提供サーバ200とサジェストサーバ400とを含むように構成されるがこれに限定されない。
【0025】
情報提供サーバ200は、知識データを含む入力応答管理DB300を備える。情報提供サーバ200は、ユーザ端末100において提示された質問文字列のうちユーザ10が指定した質問文字列に対応する応答として適した知識データを、この入力応答管理DB300を用いて決定し、ユーザ端末100に送信する。本実施形態では、情報提供システム1は、質問文字列に対応する回答文字列を応答データをユーザ端末100に対して送信し、応答表示エリア(ユーザ端末100で実行されるWEBブラウザにより表示されるWEBページの応答表示エリア)に当該応答の文字列を表示させる。即ち、入力応答管理DB300には、質問文字列に対する回答文字列が知識データとして記憶される。
【0026】
なお、これに限定されず、応答として適した情報が掲載されるWEBページのURLをリダイレクトするものであってもよい。この場合、WEBページは、情報提供サーバ200に記憶されるであってもよいし、外部サーバに記憶されるものであってもよい。即ち、この場合、入力応答管理DB300には、質問文字列に対する回答が掲載されるWEBページのURLが記憶される。また、図示しないが、情報提供サーバ200は、ユーザ10が入力した入力文字列で入力応答管理DB300を検索し、回答候補となる知識データを提供するような従来の質問応答システムの機能を備えているものとする。即ち、換言すれば、サジェストサーバ400で構成される情報提供システム1を従来の質問応答システムに簡易に付加できる追加モジュールとして運用することが可能である。本発明に係る情報提供サーバ200の機能、及び入力応答管理DB300の内容については、後で詳細に説明する。
【0027】
また、サジェストサーバ400は、質問データ記憶部としてのサジェストDB500を備える。ユーザ端末100は、ユーザ10が文字を入力し入力文字列が更新される毎に、サジェストサーバ400へ更新された入力文字列を送信する。サジェストサーバ400は、ユーザ端末100から入力文字列を受信する毎に、このサジェストDB500を参照して、当該入力文字列と意味が近いと判定した質問文字列をユーザ端末100へ送信する。具体的には、ユーザ端末100からの入力文字列を形態素解析し、予め記憶する複数の質問文字列の形態素解析結果とに基づき、入力文字列に対する前記複数の質問文字列それぞれについて関連性の度合を示すスコアを算出し、当該スコアが所定の条件に一致する質問文字列をユーザ端末100へ送信する。
【0028】
ユーザ端末100は、サジェストサーバ400からの質問文字列を受信すると、入力エリア(ユーザ端末100で実行されるWEBブラウザにより表示されるWEBページの入力エリア)の下側にサジェストワードとして質問文字列の候補を表示する。サジェストサーバ400の機能、及びサジェストDB500の内容については、後で詳細に説明する。
【0029】
なお、本実施形態では、ユーザ端末100においてユーザ10が入力を行って入力エリア上において入力文字列が更新される毎に、サジェストサーバ400へ更新された入力文字列がサジェストサーバ400へ送信される構成であるがこれに限定されない。例えば、ユーザ10に入力文字列を確定する入力を行わせるものであり、入力文字列が確定した段階で入力文字列がサジェストサーバ400へ送信される構成であってもよい。
【0030】
なお、本実施形態の情報提供サーバ200およびサジェストサーバ400は、ユーザ端末100やシステム管理端末600において実行されるWEBブラウザとhttp等のプロトコルによってデータ送受信を行い、当該WEBブラウザに所定のWEBページを表示させるように動作するWEBサーバの機能も有している。
【0031】
また、情報提供サーバ200およびサジェストサーバ400は、それぞれ1つのコンピュータであることに限定されない。例えば、およびサジェストサーバ400は、複数のコンピュータによって同様の機能を分散して実行するよう構成してもよいし、1つのコンピュータで構成してもよい。また、入力応答管理DB300およびサジェストDB500についても、記憶しているデータを様々な単位で分割し、複数のサイトやコンピュータに分散させた構成であってもよい。本実施形態では、サジェストDB500に記憶される複数の質問文字列が、入力応答管理DB300において応答内容とそれぞれ対応付けられているがこれに限定されない。即ち、1つのデータベースにおいて、応答内容がそれぞれ対応付けられた複数の質問文字列が予め記憶されるように構成されていてもよい。
【0032】
このように、本実施形態の情報提供システム1において、サジェストサーバ400は、応答内容がそれぞれ対応付けられた複数の質問文字列を予め記憶し、ユーザ10によって操作されるユーザ端末100から入力された入力文字列を受信し、入力文字列と、複数の質問文字列それぞれとを形態素解析し、複数の質問文字列それぞれの形態素解析結果と、入力文字列の形態素解析結果とに基づき、入力文字列に対する複数の質問文字列それぞれについて関連性の度合を示すスコアを算出し、複数の質問文字列のうち、スコアが所定の条件に一致する質問文字列をユーザ端末100に提示させる。
【0033】
上記構成によれば、ユーザが入力した入力文字列が形態素解析され、予め記憶する複数の質問文字列が形態素解析され、質問文字列の入力文字列に対するスコアが複数の質問文字列毎に算出され、所定の条件に一致する質問文字列がユーザ端末100で表示される。これにより、ユーザがシステム的な要求を意識せずに感覚的に入力したとしても、ユーザが所望する応答内容を得ることができる可能性を向上させることができる。その結果、ユーザが所望する知識データの情報取得を容易にすることができる。
【0034】
また、本実施形態の情報提供システム1において、サジェストサーバ400は、複数種類の素性ごとに、入力文字列と、複数の質問文字列のそれぞれとを比較し、各素性の関連性を示す値の合計値から前記スコアを算出する。
【0035】
上記構成によれば、入力文字列と、複数の質問文字列それぞれとの関連性に影響を与える度合いを素性ごとに算出して合計値からスコアを算出するため、提示する質問文字列がユーザが入力した内容である可能性をより向上させることができる。
【0036】
図2は、本実施形態に係る情報提供システム1により実現される、ユーザ10との間の入力応答のやりとりの形態を例示した図である。
【0037】
図2に示された入力応答画面110は、ユーザ端末100で実行されるWEBブラウザに表示されたWEBページ(または、WEBページの一部)である。入力応答画面110は、独立した1つのウインドウページとして表示されてもよいし、WEBページの一部分として表示されてもよい。
【0038】
入力応答画面110は、キャラクタ画像表示エリア111、応答表示エリア112、入力エリア113、送信ボタン114、サジェストエリア118、及び、インフォメーション表示エリア116を含んでいる。
【0039】
キャラクタ画像表示エリア111は、キャラクタ画像を表示する部分であり、入力内容や応答内容等に応じて、キャラクタを変更することができる。例えば、応答内容に応じて、同じキャラクタでも表情を変えて表示するように制御することができる。応答表示エリア112には、情報提供システム1により出力される応答内容が表示される。
【0040】
入力エリア113は、ユーザ10が質問等の文字列を入力する部分である。入力エリア113内に入力される入力文字列は、WEBページに関連付けられるスクリプト等により監視されており、入力エリア113内の入力文字列が更新される毎にサジェストサーバ400へ当該入力文字列が送信される。即ち、本実施形態の情報提供システム1は、サーバから受信したスクリプトを実行するユーザ端末100を含む。
【0041】
上述したように、サジェストサーバ400からは質問文字列が送信され、ユーザ端末100によってサジェストエリア118に送信された質問文字列が表示される。サジェストエリア118は、初期状態では非表示であり、サジェストサーバ400から質問文字列が送信された場合にのみ表示される。尚、ユーザ10による入力が継続され、更新された入力文字列に対応する質問文字列が無くなってしまった場合には、サジェストエリア118は再度非表示に戻る。ユーザ10が、サジェストエリア118から質問文字列を選択した場合、当該質問文字列がユーザ10が入力した入力文字列に置き換わって入力エリア113内に表示される。
【0042】
このように、情報提供システム1において、ユーザ端末100(スクリプト)は、ユーザ10の操作による入力文字列の更新を監視し、入力文字列が更新される毎に更新された入力文字列をサジェストサーバ400へ送信する。そして、サジェストサーバ400は、ユーザ端末100から前記質問文字列を受信する毎に当該質問文字列を選択可能に提示する。
【0043】
上記構成によれば、ユーザ10がユーザ端末100において所望する質問文字列を得るために入力文字列を更新していく際、入力途中であっても入力文字列が形態素解析され、候補となる質問文字列が選択可能に提示される。入力文字列は形態素ごとに意味比較されるため、入力文字列が途中であっても適切な質問文字列を提示できる可能性を向上させることができる。
【0044】
送信ボタン114は、マウスで押下する等のユーザ10の操作により入力エリア113内に入力された入力文字列を情報提供サーバ200へ送信するために設けられる。入力文字列は、httpといったプロトコルにより、ネットワーク700を介して情報提供システム1に送信される。
【0045】
インフォメーション表示エリア116は、情報提供システム1により出力される応答内容に付加された追加情報を表示するエリアである。
【0046】
図2に示すように、ユーザ10は、最初に、この入力応答画面110のWEBページにアクセスする。そうすると、情報提供システム1の情報提供サーバ200は、初期表示として、入力応答画面110の応答表示エリア112に、「いらっしゃいませ。」等の文字列を表示し、良くある質問として、インフォメーション表示エリア116に、「商品の特徴は?」や「商品の料金は?」といった文字列をリンク表示するようHTMLデータをユーザ端末100に送信する。
【0047】
ここで、「商品の特徴は?」や「商品の料金は?」は、情報提供システム1の情報提供サーバ200によって提供されたものである。これらの文字列は、過去に多くの入力があって、その入力に対する応答が成功した(ヒットした)ものである。ユーザ10が、インフォメーション表示エリア116に表示された文字列をマウス等によって選択すると、選択された文字列が自動的に入力として情報提供システム1に送信され、その文字列の応答が、応答表示エリア112に表示されることになる。
【0048】
インフォメーション表示エリア116にユーザ10が所望する質問が無い場合等には、ユーザ10は、入力エリア113に、自身の所望する知識データを得るための質問を入力することになる。ユーザ10は、入力エリア113に、入力文字列を入力するか、入力文字列を入力した際にサジェストエリア118に表示された質問文字列を選択した後に、送信ボタン114を押下する。
【0049】
そうすると、情報提供システム1の情報提供サーバ200は、ユーザ端末100が送信した内容に合致する知識データが存在する場合には、当該知識データをユーザ端末100に送信する。そして、ユーザ端末100は、当該知識データを応答表示エリア112に表示する。
【0050】
ここで、
図2を参照して、ユーザ10が入力エリア113へ入力する内容によってサジェストエリア118に表示される内容が更新される状態について説明する。
図2の下部に示すように、ユーザ10が入力エリア113に入力文字列として「バナナ」という文字列を入力したとする。この入力文字列は、サジェストサーバ400に送信され、形態素解析等が行われ、サジェストサーバ400がこの入力文字列に意味が近しいと判定した質問文字列が選択されてユーザ端末100に送信される。質問文字列を受信したユーザ端末100は、サジェストエリア118を表示し、サジェストエリア118内に当該質問文字列を表示する。
図2の例では、「バナナの値段は?」、「バナナの生産地は?」、「美味しいバナナの食べ方は?」、および、「美味しいバナナの見分け方」の4つが候補となる質問文字列としてサジェストエリア118内に表示されている。
【0051】
そして、ユーザ10は入力エリア113への入力を継続し、入力エリア113の入力文字列として「バナナどうやって」という文字列に更新したとする。この入力文字列は、サジェストサーバ400に再度送信され、形態素解析等が行われ、サジェストサーバ400がこの入力文字列に意味が近しいと判定した質問文字列が選択されてユーザ端末100に送信される。質問文字列を受信したユーザ端末100は、サジェストエリア118を表示し、サジェストエリア118内に当該質問文字列を表示する。
図2の例では、「美味しいバナナの食べ方は?」、および、「美味しいバナナの見分け方」の2つが候補となる質問文字列としてサジェストエリア118内に表示されている。
【0052】
このように、ユーザ10は、感覚的な入力だけで、確実に知識データが存在する質問文字列が提示されるため、ユーザが所望する知識データの情報取得を容易にすることができる。
【0053】
次に、
図3ないし
図5を参照して、ユーザ端末100、及び情報提供システム1の各装置の構成について説明する。
図3は、ユーザ端末100の機能ブロック図である。
【0054】
図3に示すユーザ端末100は、入力制御部101、WEBブラウザ102、及びネットワークI/F(インタフェース)部103を備える。
【0055】
入力制御部101は、ユーザ端末100に接続されたマウス、キーボード、タッチパネル等の入力装置をユーザ10が操作した場合に、当該操作による信号を入力情報として受信する。WEBブラウザ102は、指定されたWEBページを表示し、入力制御部101により受信された入力情報を、WEBページの入力エリアに送信する。また、ユーザ10の操作(入力文字列の入力・更新、送信ボタンの押下等)に応じて、httpリクエストを、ネットワークI/F部103を介してWEBサーバ(情報提供サーバ200、サジェストサーバ400等)に送信する。また、WEBブラウザ102は、WEBページに関連付けられたスクリプトを実行し、入力エリア113内の入力文字列を逐次サジェストサーバ400へ送信する。
【0056】
さらに、ネットワークI/F部103を介して、情報提供システム1の情報提供サーバ200等から、応答データを含んだHTMLデータ等を受信すると、それらのデータに基づいてWEBページを表示する(WEBブラウザの表示を更新する)。
【0057】
ネットワークI/F部103は、ネットワーク700に接続し、情報提供システム1の情報提供サーバ200等との間のデータ送受信を制御する。
【0058】
図4は、情報提供システム1の情報提供サーバ200の機能ブロック図である。
【0059】
図5に示す情報提供サーバ200は、入力応答制御部210、知識データ管理部220、設定制御部230、ログ管理部240、WEBアクセス制御部250、及びネットワークI/F(インタフェース)部260を備える。
【0060】
入力応答制御部210はさらに、入力受信部211、応答内容決定部212、及び応答データ生成部213を含み、知識データ管理部220はさらに、知識設定制御部221、知識メンテナンス制御部222、及びテスト制御部223を含む。
【0061】
また、情報提供サーバ200は、入力応答管理DB300を備える。入力応答管理DB300は、知識データ310、テスト用データ320、ログデータ330、設定データ340、辞書データ350、HTMLデータ360、及びイメージデータ370を含む。
【0062】
入力応答制御部210の入力受信部211は、ユーザ10によってユーザ端末100に入力された文字列をネットワーク700、及びネットワークI/F部260を介して、例えば、httpといったプロトコルにより受信する。
【0063】
入力応答制御部210の応答内容決定部212は、入力受信部211で受信した文字列に基づいて、入力応答管理DB300の知識データ310、辞書データ350等を参照し、対応する応答内容を決定する。
【0064】
入力応答制御部210の応答データ生成部213は、応答内容決定部212により決定された応答内容を、ユーザ端末100のWEBブラウザで表示されたWEBページに表示するよう応答データを生成し、WEBアクセス制御部250、ネットワークI/F部260、及びネットワーク700を介してユーザ端末100に送信する。
【0065】
知識データ管理部220の知識設定制御部221は、システム管理者の操作に応じて、知識データの設定を行う。知識データは、基本的には、ユーザによって入力される蓋然性の高い文字列(入力文)と、これに対応する応答の文字列をセットで指定したデータである。設定された知識データは、入力応答管理DB300の知識データ310に格納される。
【0066】
知識データ管理部220の知識メンテナンス制御部222は、システム管理者の操作に応じて、知識データのメンテナンスを行う。当該メンテナンスでは、入力応答管理DB300のログデータ330を用いて、効果的かつ容易に知識データの修正や追加が行われる。
【0067】
知識データ管理部220のテスト制御部223は、システム管理者が知識データのメンテナンスを行った後に、メンテナンス後の知識データによって、入力に対して適切な応答が出力されるか否かを、ユーザ端末100での動作をシミュレーションすることによりテストする。当該テストにおける知識データは、入力応答管理DB300のテスト用データ320に格納され、その状態でテストが行われる。知識データに問題がなければ、コンパイルが行われて知識データ310が再作成され、公開される。
【0068】
設定制御部230は、システム管理者の操作に応じて、
図2に示した入力応答画面110の設定や、特定時における応答内容の設定を行う。
【0069】
ログ管理部240は、ユーザ10のユーザ端末100への入力に対して情報提供サーバ200がどのように応答したかをログとして記録するとともに、システム管理者の操作に応じて、ログを解析して所定のレポートをシステム管理者の操作するシステム管理端末に表示する。ログは、入力応答管理DB300のログデータ330に記憶される。
【0070】
WEBアクセス制御部250は、ユーザ10の操作に応じてユーザ端末100のWEBブラウザからhttpリクエストが送信されてきた場合に、これを受信・解析して、これに対応するデータを用意し、httpレスポンスとしてユーザ端末100のWEBブラウザに返信する。httpレスポンスとして返信されるデータには、入力応答制御部210の応答データ生成部213で生成された応答データが含まれるほか、入力応答管理DB300のHTMLデータ360、イメージデータ370のデータが含まれる。HTMLデータ360は、WEBページを表示するためのHTMLデータであり、イメージデータ370は、WEBページで表示される画像データや動画データである。
【0071】
ネットワークI/F(インタフェース)部260は、ネットワーク700に接続し、ユーザ端末100等との間のデータ送受信を制御する。
【0072】
図5は、情報提供システム1のサジェストサーバ400の機能ブロック図である。
【0073】
図5に示すサジェストサーバ400は、入力応答制御部410、解析部420、WEBアクセス制御部430、及びネットワークI/F(インタフェース)部440を備える。
【0074】
入力応答制御部410はさらに、入力受信部411、応答内容決定部412、及び応答データ生成部413を含み、解析部420はさらに、形態素解析部421、および、スコア出力4222を含む。
【0075】
また、情報提供サーバ400は、サジェストDB500を備える。サジェストDB500は、質問文字列データ510、および、素性データ520を含む。
【0076】
入力応答制御部410の入力受信部411は、ユーザ10によってユーザ端末100に入力された入力文字列をネットワーク700、及びネットワークI/F部440を介して、例えば、httpといったプロトコルにより受信する。
【0077】
入力応答制御部410の応答内容決定部412は、解析部420が出力した質問文字列の候補のスコアに基づいて、所定の条件に合致する質問文字列を選択し、対応する応答内容として決定する。
【0078】
入力応答制御部410の応答データ生成部413は、応答内容決定部412により決定された応答内容を、ユーザ端末100のWEBブラウザで表示されたWEBページに表示するよう応答データを生成し、WEBアクセス制御部430、ネットワークI/F部440、及びネットワーク700を介してユーザ端末100に送信する。即ち、入力応答制御部410は、複数の質問文字列のうち、スコアが所定の条件に一致する質問文字列をユーザ端末100に提示させる応答提示部として機能する。
【0079】
解析部420の形態素解析部421は、ユーザ100から送信された入力文字列の形態素解析を行う。なお、形態素解析部421は、予め記憶される複数の質問文字列の形態素解析を行ってもよい。スコア出力部422は、複数の質問文字列それぞれの形態素解析結果と、入力文字列の形態素解析結果とに基づき、入力文字列に対する複数の質問文字列それぞれについて関連性の度合を示すスコアを算出する。
【0080】
WEBアクセス制御部430は、ユーザ10の操作に応じてユーザ端末100のWEBブラウザからhttpリクエストが送信されてきた場合に、これを受信・解析して、これに対応するデータを用意し、httpレスポンスとしてユーザ端末100のWEBブラウザに返信する。httpレスポンスとして返信されるデータには、入力応答制御部410の応答データ生成部413で生成された応答データが含まれる。ネットワークI/F(インタフェース)部440は、ネットワーク700に接続し、ユーザ端末100等との間のデータ送受信を制御する。
【0081】
サジェストDB500の質問文字列データ510は、情報提供サーバ200の入力応答管理DB300に記憶される複数の質問文字列が格納される。本実施形態では、質問文字列データ510には、当該複数の質問文字列は、予め形態素解析が行われたものが格納されているがこれに限定されない。例えば、スコア出力部422が、入力文字列と比較する毎に、形態素解析部421が質問文字列を形態素解析してもよい。
【0082】
サジェストDB500の素性データ520には、スコア出力部422が、入力文字列と、質問文字列とを比較する際に用いられるものであり、複数種類の素性に関する機械学習データが格納されている。素性データ520は、予め学習データから機械学習によって作成されたモデルデータである。スコア出力部422は、素性データ520毎に、各素性の関連性を示す素性値を出力し、この素性値の合計を、入力文字列と、1つの質問文字列とに対するスコアとして出力する。本実施形態では、各素性データは、素性名によって識別される。なお、機械学習の学習形式については既知のものを採用できるが、例えば、二項分類や、教師あり学習等が採用される。また、機械学習のアルゴリズムや最適化アルゴリズムについては既知のものを採用できるが、例えば、サポートベクターマシンや、Coordinate descent等が採用される。
【0083】
なお、図示しないが、ユーザ端末100、情報提供サーバ200、サジェストサーバ400は、所謂コンピュータであり、ハードウェア構成としては、CPU、RAM・ROM等の上記の各種データやプログラム等を記憶するコンピュータが読み取り可能な非一過性の記録媒体、入力装置、表示装置等を有している。後述するフローチャート等のプログラムはこのような記録媒体に記録されており、主にCPUによって実行される。換言すれば、当該プログラムは、CPUと記憶媒体とを備える情報提供システム1に、各種プログラムが有する処理を実行させる。このように、情報提供システム1の処理や動作をプログラムや情報提供方法として置き換えることができる。
【0084】
図6を参照して、サジェストサーバ400が実行するスコア出力の一例について説明する。
図6に示すように、入力文字列として「バナナどうやって」という文字列が入力され、質問文字列として「美味しいバナナを見分けるには」という文字列と比較された場合について説明する。
【0085】
先ず、入力文字列および質問文字列が形態素解析される。本実施形態では、質問文字列は予め形態素解析されたものがサジェストDB500の質問文字列データ510に記憶される。
図6に示す例の場合、比較する素性(素性スコアを出力する素性)として、「普通名詞がTOPIC一致」、「普通名詞がINPUT一致」、「動詞がTOPIC不一致」、「形容詞がTOPIC不一致」、および、「モダリティ(HOW)が一致」が選択され、それぞれ素性値(素性スコア)が出力されている。
【0086】
「普通名詞がTOPIC一致」は、入力文字列において、質問文字列と普通名詞が一致していることを示す素性である。「普通名詞がTOPIC一致」に該当する場合、素性スコアとして「0.379603」が出力される。「普通名詞がINPUT一致」は、質問文字列において、入力文字列と普通名詞が一致していることを示す素性である。「普通名詞がINPUT一致」に該当する場合、素性スコアとして「0.100026」が出力される。「動詞がTOPIC不一致」は、入力文字列において、質問文字列と動詞が一致していない(存在しない)ことを示す素性である。「動詞がTOPIC不一致」に該当する場合、素性スコアとして「-0.3522222」が出力される。「形容詞がTOPIC不一致」は、入力文字列において、質問文字列と動詞が一致していない(存在しない)ことを示す素性である。「形容詞がTOPIC不一致」に該当する場合、素性スコアとして「-0.452869」が出力される。このように、入力文字列と、質問文字列との同じ品詞同士が比較され、素性スコアが出力される。
【0087】
また、「モダリティ(HOW)が一致」は、入力文字列と、質問文字列とに、何かの方法を聞くような言表態度が示されていることを示す素性である。「モダリティ(HOW)が一致」に該当する場合、素性スコアとして「0.215267」が出力される。このように、入力文字列と、質問文字列とにおける法制等の文法カテゴリが比較され、素性スコアが出力されてもよい。
【0088】
また、図示しないが、以下のような素性が例示される。例えば、品詞同士を比較する表記情報の一致不一致を示す情報であれば、普通名詞が一致していないことを示す「普通名詞不一致」素性が挙げられる。また、主語、述語、起点、着点といった構文の一致不一致を示す情報であれば、「起点が逆」素性、「着点が逆」素性、等が挙げられる。具体的に、質問文字列が「東京から京都へ」であって入力文字列が「京都から東京へ」であれば、普通名詞は一致しているが、「起点が逆」素性、および、「着点が逆」素性に該当することになる。
【0089】
また、時制・相・法・態といった文法カテゴリの情報の一致不一致であれば、「意思と命令」素性が挙げられる。具体的に、質問文字列が「走りたい」であって入力文字列が「走れ」であれば、動詞は一致しているが、「意思と命令」素性に該当することになる。即ち、モダリティが一致しないことにより、マイナスの加点となる。
【0090】
図示しないが、さらに異なる入力文字列および質問文字列について説明する。例えば、入力文字列が「川でBBQをしたい」であり、質問文字列が「明日、川でバーベキューをしたい」である場合について説明する。
【0091】
この場合、入力文字列と質問文字列とで普通名詞(「川」)が一致しており、「普通名詞がTOPIC一致」、「普通名詞がINPUT一致」の素性に該当する。また、入力文字列と質問文字列とで普通名詞(「BBQ、バーバキュー」)がN辞書を参照して同義であり、「普通名詞がTOPICN辞書同義」「普通名詞がINPUTN辞書同義」の素性に該当する。また、入力文字列と質問文字列とで文末(「をしたい」)が一致しており、「非自立語複合語がSTOPWORDでTOPIC複合語一致」、「非自立語複合語がSTOPWORDでINPUT複合語一致」の素性に該当する。即ち、入力文字列と質問文字列とにおける、「したい」の「し」は、非自立可能動詞であり、終止形(STOPWORD)の助動詞「たい」と複合されて用いられている。また、入力文字列と質問文字列とで目的語(「BBQ、バーバキュー」)がN辞書を参照して同義であり、「目的語がTOPICN辞書同義」、「目的語がINPUTN辞書同義」の素性に該当する。また、入力文字列と質問文字列とで場所(「川」)が一致しており、「場所がTOPIC一致」、「場所がINPUT一致」の素性に該当する。また、「いつ」を示す連用修飾語(「明日、」)が質問文字列にのみ入っており、「連用修飾語がTOPICのみに存在し形態素は不一致」の素性に該当する。また、入力文字列と質問文字列とは、意思を示す語(「したい」)が含まれており、「モダリティ(意思)が一致」に該当する。
【0092】
このように、サジェストサーバ400は、予め学習データから機械学習により素性を示すモデルを作成し、当該モデルにより質問文字列毎に各素性の素性値を算出する。そして、質問文字列毎のスコアを算出し、当該スコアが所定の条件(所定の閾値以上)である質問文字列をユーザ端末100に送信する。本実施例では、上述のようなスコアを用いることにより、入力文字列と、質問文字列との意味の近さ等の意味比較を可能にしている。
【0093】
次に、
図7を参照して、情報提供サーバ200の入力応答管理DB300に記憶される知識データテーブルについて説明する。
図7に示すように、知識データテーブルは、識別情報欄と、質問文字列欄と、応答文字列欄とを有している。識別情報欄には、後に説明する質問データテーブル(
図8参照)との対応付けのために、質問文字列を識別するための情報が格納される。質問文字列欄には、入力文字列に対する質問の候補となり、サジェストエリア118に表示され得る質問文字列が格納される。応答文字列欄には、質問文字列に対応した知識データである文字列が格納される。
【0094】
次に、
図8を参照して、サジェストサーバ400のサジェストDB500に記憶される質問データテーブルについて説明する。
図8に示すように、質問データテーブルは、識別情報欄と、質問文字列欄と、形態素欄とを有している。識別情報欄には、上述した知識データテーブル(
図7参照)との対応付けされる、質問文字列を識別するための情報が格納される。質問文字列欄には、入力文字列に対する質問の候補となり、サジェストエリア118に表示され得る質問文字列が格納される。形態素欄には、質問文字列を形態素解析した解析結果が格納される。
【0095】
図9は、ユーザ端末100のWEBブラウザ102により実施される入力応答画面制御処理を示すフローチャートである。入力応答画面制御処理は、入力応答画面(
図2参照)が要求されて表示された後に実行される。
【0096】
先ず、WEBブラウザ102は、ユーザ10によって、入力エリア113の入力文字列が更新されたか否かを判定する(S20)。入力文字列が更新された場合(S20:YES)、WEBブラウザ102は、サジェスト要求処理を実行する(S21)。具体的に、WEBブラウザ102は、サジェストサーバ400に対して、ステップS20で判定した入力文字列を送信する。そして、ステップS21の後にWEBブラウザ102は、サジェストサーバ400から質問文字列を受信したか否かを判定する(S22)。サジェストサーバ400から質問文字列を受信しない場合(S22:NO)、WEBブラウザ102は、再度ステップS22の処理を実行する。一方、サジェストサーバ400から質問文字列を受信した場合、WEBブラウザ102は、受信した質問文字列を、サジェストエリア118にサジェストワードとして表示する(S23)。
【0097】
ステップS23の後、WEBブラウザ102は、ステップS23で表示したサジェストワードの何れかが選択されたか否かを判定する(S24)。サジェストワードの何れかが選択された場合(S24:YES)、WEBブラウザ102は、選択されたサジェストワードを、入力エリア113の入力文字列に適用する(S25)。
【0098】
ステップS25の後、ステップS20において入力文字列が更新されない場合(S20:NO)、または、ステップS24においてサジェストワードが選択されない場合(S24:NO)、WEBブラウザ102は、送信ボタン114が押下されたか否かを判定する(S26)。送信ボタン114が押下されない場合(S26:NO)、WEBブラウザ102は、処理をステップS20へ移行する。
【0099】
一方、送信ボタン114が押下された場合、WEBブラウザ102は、回答要求処理を実行する(S27)。具体的に、WEBブラウザ102は、入力エリア113に入力されている入力文字列を情報提供サーバ200へ送信する。そして、ステップS27の後にWEBブラウザ102は、情報提供サーバ200から回答を受信したか否かを判定する(S28)。情報提供サーバ200から回答を受信しない場合(S28:NO)、WEBブラウザ102は、再度ステップS26の処理を実行する。一方、情報提供サーバ200から回答を受信した場合(S28:YES)、WEBブラウザ102は、受信した回答を、応答表示エリア112に回答を表示する(S29)。
【0100】
図10は、サジェストサーバ400の入力応答制御部410により実施されるサジェストワード応答処理を示すフローチャートである。サジェストワード応答処理は、WEBブラウザ102によりサジェスト要求処理(
図9参照)が実行され、入力文字列がユーザ端末100からサジェストサーバ400に送信された場合に実行される。
【0101】
先ず、入力応答制御部410は、ユーザ端末100から入力文字列を受信すると、解析部420に入力文字列の形態素解析処理を実施させる(S31)。そして、形態素解析結果をスコア出力部422に、質問データベース(
図8参照)から質問文字列を取得させる(S32)。そして、入力応答制御部410は、スコア出力部422に、入力文字列と、取得した質問文字列とに合致する素性を選択し、各素性スコアを出力する(S33)。そして、入力応答制御部410は、スコア出力部422に、各素性スコアを合計し、比較した質問文字列のスコアを算出させる(S34)。
【0102】
そして、入力応答制御部410は、スコア出力部422が、質問データベース(
図8参照)に記憶される全ての質問文字列のスコアを算出したか否かを判定する(S35)。全ての質問文字列のスコアを算出されていない場合(S35:NO)、入力応答制御部410は、スコア出力部422に、ステップS32を実行させる。全ての質問文字列のスコアを算出されている場合(S35:YES)、入力応答制御部410は、スコアを算出した質問文字列から所定の閾値以上の質問文字列を選出する(S36)。そして、入力応答制御部410は、選出した質問文字列を、入力文字列を送信したユーザ端末100へレスポンスする(S37)。
【0103】
なお、図示しないが、情報提供サーバ200は、WEBブラウザ102が実行する回答要求処理(
図9参照)によって、入力文字列を受け付けた場合、当該入力文字列に基づいて、適切な回答を検索し、WEBブラウザ102に当該回答をレスポンスする従来の処理を実行する。ここで情報提供サーバ200へ送信される入力文字列が、サジェストワードにより選択されたものである場合、入力文字列が知識データ310に記憶される質問文字列と完全に一致するため、情報提供システム1はユーザ10に対して適切な回答を提示することができる。
【0104】
上述した詳細な説明では、本発明をより容易に理解できるように、特徴的部分を中心に説明した。本発明は、上述した詳細な説明に記載する実施形態に限定されず、その他の実施形態にも適用することができ、その適用範囲は多様である。また、本明細書において用いた用語及び語法は、本発明を的確に説明するために用いたものであり、本発明の解釈を制限するために用いたものではない。また、当業者であれば、本明細書に記載された発明の概念から、本発明の概念に含まれる他の構成、システム、方法等を推考することは容易であると思われる。従って、請求の範囲の記載は、本発明の技術的思想の範囲を逸脱しない範囲で均等な構成を含むものであるとみなされなければならない。また、要約書の目的は、特許庁及び一般的公共機関や、特許、法律用語又は専門用語に精通していない本技術分野に属する技術者等が本出願の技術的な内容及びその本質を簡易な調査で速やかに判定し得るようにするものである。従って、要約書は、請求の範囲の記載により評価されるべき発明の範囲を限定することを意図したものではない。また、本発明の目的及び本発明の特有の効果を十分に理解するために、すでに開示されている文献等を充分に参酌して解釈されることが望まれる。
【0105】
上述した詳細な説明は、コンピュータで実行される処理を含むものである。以上での説明及び表現は、当業者が最も効率的に理解することを目的として記載している。本明細書では、1の結果を導き出すために用いられる各処理は、自己矛盾がない処理として理解されるべきである。また、各処理では、電気的又は磁気的な信号の送受信、記録等が行われる。各処理における処理では、このような信号を、ビット、値、シンボル、文字、用語、数字等で表現しているが、これらは単に説明上便利であるために用いたものであることに留意する必要がある。また、各処理における処理は、人間の行動と共通する表現で記載される場合があるが、本明細書で説明する処理は、原則的に各種の装置により実行されるものである。また、各処理を行うために要求されるその他の構成は、以上の説明から自明になるものである。
【符号の説明】
【0106】
1 情報提供システム
10 ユーザ
100 ユーザ端末
200 情報提供サーバ
300 入力応答管理DB
400 サジェストサーバ
500 サジェストDB
700 ネットワーク