情報検索装置及びコンピュータプログラム
【課題】インターネット上のサービスに関する知識も、検索語に関する知識も乏しい利用者が、簡単に情報を入手できる情報検索装置を提供する。
【解決手段】情報検索装置30は、ある単語列の共起データベース52と、自然言語のテキストから単語列を抽出する対象文フィルタ56と、これら単語列の各々について、共起データベース52を参照して、当該単語列を起点とする共起チェーンを抽出する共起データ検索部58及び関連共起データ検索部60と、サービス名と、そのURLとを記憶するサービス名/URL対照DB62と、関連共起データ検索部60により抽出された単語列を含むサービス名と関連付けられたURLをサービス名/URL対照DB62から読出し、共起チェーンに基づいて当該URLで提供されるサービスを利用するためのクエリを作成するクエリ作成部68とを含む。
【解決手段】情報検索装置30は、ある単語列の共起データベース52と、自然言語のテキストから単語列を抽出する対象文フィルタ56と、これら単語列の各々について、共起データベース52を参照して、当該単語列を起点とする共起チェーンを抽出する共起データ検索部58及び関連共起データ検索部60と、サービス名と、そのURLとを記憶するサービス名/URL対照DB62と、関連共起データ検索部60により抽出された単語列を含むサービス名と関連付けられたURLをサービス名/URL対照DB62から読出し、共起チェーンに基づいて当該URLで提供されるサービスを利用するためのクエリを作成するクエリ作成部68とを含む。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、自然言語文の発話から利用者の必要とする情報を検索するための情報検索装置に関し、特に、情報検索の技術を特に持たない利用者でも的確な情報を容易に検索できる情報検索装置に関する。
【背景技術】
【0002】
いわゆるインターネットには、多くの情報があふれている。しかもその量は日々増え続けている。しかし、いかに有用な情報がインターネット上に存在していても、その情報を的確に見出すことができなければ何の意味もない。そうしたネットワーク利用者の要求に応じる形で登場したのがいわゆる検索サイトである。
【0003】
検索サイトには大きく分けて2種類がある。第1は、検索サイトの管理者が手作業または自動的にURL(Uniform Resource Locator)を収集し、各URLをその内容にしたがって分類したサイトである。利用者は、自分が利用するサイトを検索サイトの分類にしたがって探していくことになる。こうしたサイトでは、分類範囲を限定し、その中で所望の単語または単語列を検索する仕組みが用意されていることが多い。第2は、予め単語または単語列に応じたサイトのインデックスを作成しておき、単語または単語列を指定した検索要求を受けると、インデックスを使用して検索し返すものである。この場合、検索結果にスコアをつけ、スコアの高いサイトから順番に利用者に提示することが一般的である。したがってこの場合には、スコアの付け方が問題となる。スコアの付け方により、検索目的に応じた的確なウェブサイトが提示される可能性が高くなる。
【0004】
第1の種類の検索サイトでは、自分が探そうとする情報について、少なくともその分類を知っておく必要がある。しかもその分類方式は、検索サイトで利用されたものと一致していなければならない。なおかつ、こうした検索サイトでは、あまり多くのウェブサイトを登録するのは難しいという問題がある。数が増えると、同じ分類したに非常に多数のウェブサイトがリストされることになり、所望のウェブサイトまでたどり着くことが極めて困難となってしまう。こうした検索サイトで、単語または単語列によりウェブサイトを検索する場合でも、的確な単語の組合せが分からなければ所望の情報が得られない確率が高い。
【0005】
第2の種類の検索サイトでは、単語または単語列を検索語として入力するだけで結果が表示されるため、第1の種類の検索サイトに比べると操作が簡単である。しかしこの種の検索サイトでも、自分の所望の情報を的確に得るためには、どの様な単語または単語列であれば、的確な結果が得られるかという知識が重要になる。さもなければ、自分が必要とするものと異なるウェブサイトばかりが表示されることになる。
【0006】
ところで最近では、特定の分野に特化した検索サイトも増えている。例えば旅行先のホテルを検索するサイト、特定の地域に存在する飲食店を検索するサイト、出発地と到着地、及び出発時刻または到着時刻を指定して鉄道の時刻表を検索するサイト等、多くのサイトがある。こうしたサイトでも、基本はキーワード入力である。地図を用いて目的地等を入力する場合もあるが、その場合でも結局は地名が分からなければならない。
【0007】
こうした検索を容易にするための技術が、例えば特許文献1に開示されている。特許文献1に開示された検索システムでは、予め複数のウェブサイトについて、単語との関連付けをしておく。利用者から単語または単語列を指定した検索要求があると、この検索システムは、まずその単語または単語列と関連の深いウェブサイトを定め、そのウェブサイトで検索した結果を利用者に提示する。ウェブサイトと単語との関連付けは、例えばある単語について各ウェブサイトへのリンクがクリックされた回数を用いて行なったり、各単語について予め各サイトに含まれている回数を計数しておき、その結果によりウェブサイトをランク付けしておいたりすることが提案されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2008−186452号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
上記特許文献1に開示の検索システムによれば、入力された単語と最も関連の深いと思われるウェブサイトが決定され、そのウェブサイトにおいてその単語を用いた検索が行なわれる。したがって、入力された単語と関連の深い情報が得られる可能性が高くなるという効果が得られる。
【0010】
しかしこの特許文献1に開示された検索システムでも、利用者は、自分の探したい情報と関連の深い単語をあらかじめ知っておかなければならないという問題がある。単語さえ分かればその単語に関連のあるウェブサイトを検索システムで特定できるが、検索にふさわしい単語が分からなければ、この検索システムでも的確なウェブサイトを見つけることはできないという問題がある。
【0011】
こうした問題を避けるために、典型的には、最初に自分が利用したいサービスに関する単語を使用してサービスそのものをどこかの検索サイトで検索し、検索されたサービスサイトでさらに自分の必要な情報を検索する、という2段の作業が必要となる。しかもこの作業が1度で済むとは限らない。したがって、インターネット上に存在するサービスに関する知識、及びそれらサービスの利用法に関する知識が乏しい利用者は、仮に自分の要求に合致したサービスがあったとしてもそれを利用することができず、必要な情報を適時に入手することが難しいという問題がある。
【0012】
それゆえに本発明の目的は、インターネット上のサービスに関する知識も、検索語に関する知識も乏しい利用者が、簡単に自分が必要とする情報を入手できるような情報検索装置を提供することである。
【課題を解決するための手段】
【0013】
本発明の第1の局面に係る情報検索装置は、ある単語列と他の単語列とを含む単語列対と、当該単語列対の共起頻度とを多数記憶する共起データベースと、自然言語のテキストが入力されたことに応答して、入力されるテキストから1または複数の単語列を抽出するための単語列抽出手段と、単語列抽出手段から出力される1または複数の単語列の各々について、共起データベースを参照して、当該単語列を起点とする共起チェーン内の単語列であって、所定の条件を満たす単語列を抽出するための共起データ抽出手段と、ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのクエリのテンプレートとを互いに関連付けて複数個記憶するためのサービス名データベースと、共起データ抽出手段により抽出された単語列を含むサービス名と関連付けられたクエリのテンプレートをサービス名データベースから読出し、当該単語列の属する共起チェーンに基づいて当該サービスを利用するためのクエリを作成するためのクエリ作成手段とを含む。
【0014】
好ましくは、共起データ抽出手段は、単語列抽出手段から出力される1または複数の単語列の各々について、共起データベースを参照して、当該単語列を含む第1の単語列対を検索するための第1の検索手段と、第1の検索手段により検索された1または複数個の第1の単語列対において、単語列抽出手段から出力された単語列と対になっている単語列を抽出し、当該抽出された単語列を含む第2の単語列対を共起データベースから検索するための第2の検索手段と、第2の検索手段により検索された第2の単語列対において、第2の検索手段による検索で用いられた単語列と対を成す、予め定められる形式の単語列を特定し、当該単語列内の名詞または名詞句をクエリ作成手段に単語列として与えるための表現特定手段とを含む。
【0015】
より好ましくは、表現特定手段は、第2の検索手段により検索された第2の単語列対において、第2の検索手段による検索で用いられた単語列と対を成す単語列に含まれる、所定の単語列を伴う名詞または名詞句であって、かつサービス名データベースに含まれるサービス名と一致するものを特定し、当該名詞または名詞句をクエリ作成手段に表現として与えるための手段を含む。
【0016】
さらに好ましくは、クエリのテンプレートの各々は、検索のための情報が入力される入力フィールドを持つ。サービス名データベースは、ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのクエリのテンプレートと、当該テンプレートに対応する自然言語の文であって、テンプレートの入力フィールドにマッピングされる、変数フィールドを含むマッピング文とを互いに関連付けて複数個記憶するためのマッピング文コーパスデータベースを含む。クエリ作成手段は、共起データ抽出手段により抽出された単語列を含むサービス名をキーにしてマッピング文及びクエリテンプレートをマッピング文コーパスデータベースから読出すための読出手段と、共起チェーンに含まれる単語列と、テンプレート読出手段により読出されたマッピング文との比較により、共起チェーンに含まれる単語のうち、マッピング文に含まれる変数フィールドに対応する単語列を特定し、さらに当該変数フィールドがマッピングされた入力フィールドに当該単語列を代入することにより、読出手段により読出されたサービス名によるサービスを利用するためのクエリを作成するための手段とを含む。
【0017】
共起データベースに含まれる表現内の単語には、それぞれ単語クラスを表す単語クラス情報が付されている。共起データ抽出手段は、各単語の単語クラスを特定するための単語クラス辞書と、単語列抽出手段から出力される1または複数の単語列の各々について、共起データベース及び単語クラス辞書を参照して、当該単語列を起点とする共起チェーン内の表現であって、単語列に含まれる単語の単語クラスと共通する単語クラスの単語を含む表現を抽出するための手段とを含む。
【0018】
本発明の第2の局面に係るコンピュータプログラムは、コンピュータを、ある単語列と他の単語列とを含む単語列対と、当該単語列対の共起頻度とを多数記憶する共起データベースと、自然言語のテキストが入力されたことに応答して、入力されるテキストから1または複数の単語列を抽出するための単語列抽出手段と、単語列抽出手段から出力される1または複数の単語列の各々について、共起データベースを参照して、当該単語列を起点とする共起チェーン内の表現であって、所定の条件を満たす表現を抽出するための共起データ抽出手段と、ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのURLとを互いに関連付けて複数個記憶するためのサービス名データベースと、共起データ抽出手段により抽出された表現を含むサービス名と関連付けられたURLをサービス名データベースから読出し、当該表現の属する共起チェーンに基づいて当該URLで提供されるサービスを利用するためのクエリを作成するためのクエリ作成手段として機能させる。
【図面の簡単な説明】
【0019】
【図1】本発明の1実施の形態に係る情報検索装置のブロック図である。
【図2】図1に示す情報検索装置が保持する、共起データベース(以下「データベース」を単に「DB」と呼ぶ。)の内容を模式的に示す図である。
【図3】図1に示す情報検索装置が保持する、サービス/URL対照DBの内容を模式的に示す図である。
【図4】図1に示す情報検索装置が保持する、クエリのための注釈付きテンプレートの内容を模式的に示す図である。
【図5】図1に示す情報検索装置において、入力された自然言語文からなる対象文に基づき、共起DBから共起データを抽出する処理を実現するプログラムの制御構造を示すフローチャートである。
【図6】図1に示す情報検索装置において、図5に制御構造を示すプログラムにより抽出された共起データに基づき、さらに共起DBを検索して共起チェーンを作成する処理を実現するプログラムの制御構造を示すフローチャートである。
【図7】図1に示す情報検索装置において、共起チェーンから得られたサービス名をキーに、サービス/URL対照DBを検索し、URLを抽出する処理を実現するプログラムの制御構造を示すフローチャートである。
【図8】図1に示す情報検索装置において、共起チェーンから得られた単語または単語列を用いた検索を行なうため、図1に示すマッピングコーパスと共起チェーン内の表現とを用いてクエリを作成する処理を実現するためのプログラムの制御構造を示すフローチャートである。
【図9】図8に示す処理により作成されたクエリを用いてブラウザを起動する処理を実現するプログラムの制御構造を示すフローチャートである。
【図10】携帯電話と図1に示す情報検索装置とを連携させた検索システムの構成を示すブロック図である。
【図11】図10に示すコンピュータのハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0020】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【0021】
[構成]
図1を参照して、本発明の1実施の形態に係る情報検索装置システム20は、インターネット上のWebサイトから多数の文を収集することにより構築されたWebコーパス32と、装置の設置されている位置の位置情報を出力するGPS(Global Positioning System)装置38と、Webコーパス32及びGPS装置38に接続され、利用者により入力される自然言語文のテキストから、その利用者が必要としている情報を的確に検索し、ブラウザ40にその検索結果を表示させる処理を行なう情報検索装置30とを含む。情報検索装置30に入力される自然言語文は、本実施の形態では、利用者の音声による発話34を、音声認識装置36が認識し自然言語の文字列として出力したテキストデータである。
【0022】
なお、本実施の形態では、Webコーパス32としてインターネット上のWebサイトから収集した文からなるものを用いている。しかし、当業者であれば、このコーパスがインターネット上から収集した文からなるものに限定されないことは容易に理解できるであろう。
【0023】
情報検索装置30は、音声認識装置36から出力されるテキスト列を受け、このテキストを形態素解析及び構文解析し、テキストに含まれる言語表現として、単語または単語列(以下単に「単語列」と呼ぶ。)を出力するための対象文フィルタ56と、予め準備された、多数の単語をそれらの意味にしたがって分類したシソーラス54とを含む。本実施の形態では、シソーラス54は、例えば単語をリーフとするツリー状の構造を持つ。ツリーの各ノードは、そのノードより下位のリーフの単語が共通に属する、より抽象的な単語クラスを表す。ある単語と別の単語との間の意味的距離は、例えば上記ツリー上で一方の単語から他方の単語まで到達するために必要なエッジ数またはノード数により表すことができる。本実施の形態において、対象文フィルタ56が出力する単語列は、構文解析により得られた構文解析情報、典型的には構造解析木、を伴うものである。このように構文解析情報を含む単語列を本明細書では「単語列パターン」と呼ぶ
【0024】
情報検索装置30はさらに、Webコーパス32に含まれる各文について、シソーラス54を参照して、各文に含まれる各単語に単語クラスを示すタグを付与する作業と、各文に含まれる単語列の対の共起頻度をその構文情報を考慮して算出して出力するための共起データ作成装置50と、共起データ作成装置50により出力される単語列の対を、その共起頻度とともに記憶する共起DB52とを含む。この実施の形態では、第1の単語列及び第2の単語列が共起するとは、Webコーパス32内のある1文内に両者が存在することを言う。この実施の形態では、文と文とは句点(「。」)により区分される。共起頻度の算出においては、単語列が出現する構造まで考慮する。すなわち、ある単語列とある単語列とが、ある単語列パターンの中で出現するときの共起頻度と、別の単語列パターンの中で出現するときの共起頻度とは別々に計算される。なお、単純に1次元的に配列された単語列も、1次元的配列という単純な構造を持つものとして処理してもよい。その場合、構文解析を行なう必要はない。
【0025】
情報検索装置30はさらに、対象文フィルタ56から与えられる単語列の各々について、シソーラス54を参照した単語クラスのタグ付け及び構文解析をしながら、共起DB52内でその単語列とあるしきい値以上の頻度で共起する単語列を検索する処理を行なう共起データ検索部58と、共起データ検索部58により検索された共起データの中で、検索の元になった単語列(これらを以下「第1の単語列」と呼ぶ。)とは異なる(共起DB52内において、第1の単語列と対をなしている)単語列(これらを以下、「第2の単語列」と呼ぶ。)と連鎖的に共起する単語列(これらをまとめて以下「第3の単語列」と呼ぶ。)であって、特定の形式に合致するものを検索するための関連共起データ検索部60とを含む。
【0026】
関連共起データ検索部60による検索で使用される特定の形式とは、主として「○○で××を検索」、「○○で××をチェック」、「○○で××をサーチ」、「○○で××を探す」等、助詞の「で」を伴う語句と、それらの構文解析木とである。すなわち関連共起データ検索部60により、単語列パターンが抽出される。この例で「××」が、共起データ検索部58により共起DB52から検索された共起データから抽出された単語列に相当する。本実施の形態では、構文解析木を使用することにより、構文解析木の一部のノードを省略した単語列パターンも生成し、比較対象とする。この結果、例えば「○○で××を検索」という単語列だけでなく、「○○で簡単に××を検索」という単語列からも「○○で××を検索」という単語列が共起データとして検索できる。
【0027】
本実施の形態では、共起データ検索部58及び関連共起データ検索部60による共起データの検索のように、1つの単語列パターンを起点として、連鎖的に共起データを検索することにより得られる一連の単語列パターンの集合を「共起チェーン」と呼ぶ。共起データを互いに連関させるという操作自体も「共起チェーン」と呼ぶ。共起データ検索部58及び関連共起データ検索部60は、この共起データの検索の際、入力された単語列パターンと完全に一致する共起データだけでなく、単語クラスに基づいて、入力された単語と意味的に近い単語列を含む共起データも検索する。
【0028】
情報検索装置30はさらに、予め作成された、インターネット上の種々のサービスのサービス名と、それらサービスを利用するためのURLとを対にして複数個記憶するサービス名/URL対照DB62と、対象文フィルタ56から出力されたある単語列パターンに対して共起データ検索部58及び関連共起データ検索部60により得られた共起チェーン内の単語列パターンから、入力された自然言語文に対する的確な情報を与えると思われるサービスのサービス名を、サービス名/URL対照DB62に存在するサービス名から推定し、対応するURLとともに出力するためのサービス名推定部64と、各サービスを利用するクエリを作成するために予め準備されている、単語列内の変数とクエリ内の入力フィールドとのマッピングを記述した注釈付きのマッピング文及びクエリテンプレートを含むマッピング文対からなるマッピングコーパスをサービス名と関連付けて記憶するためのマッピングコーパス記憶部66とを含む。
【0029】
情報検索装置30はさらに、サービス名推定部64から出力されたサービス名及びURLに基づき、マッピングコーパス記憶部66から読み出されたクエリテンプレート内の注釈と、シソーラス54と、共起チェーン内の単語列パターンに付された単語クラスに関する情報と、文の構造の類似度と、単語列パターン内の変数に相当する単語の文脈情報とを用い、クエリテンプレート内で検索のための単語列を入力すべき位置として指定されている入力フィールドに、共起チェーンに含まれるいずれかの単語列を挿入することにより、クエリ文を生成して出力するためのクエリ作成部68とを含む。クエリテンプレートの中には、後述するようにGPSの出力を入力するように指定された注釈を含むものがある。そうした場合、クエリ作成部68は、GPS装置38の出力、またはGPS装置38の出力から得られる地名若しくは駅名等を当該注釈部分に挿入する。
【0030】
情報検索装置30はさらに、ブラウザを起動し、クエリ作成部68から出力されたURLに対してクエリ作成部68から出力されたクエリを発行させるためのブラウザ起動処理部70を含む。
【0031】
図2を参照して、共起DB52に記憶される共起データの各々は、第1の単語列と、第2の単語列と、これら第1及び第2の単語列が一定の構文構造を有する1つの文内で共起する頻度(共起頻度)とを含む。すなわち、共起頻度の計算において、第1の単語列と第2の単語列とが表面的には同じ順序で出現する文であっても、その構文構造が異なる場合、これらは別々の共起データとして扱われる。第1及び第2の単語列のうち、主要な単語には、その単語が属する単語クラスを示すタグが付されている。これら共起データは、Webコーパス32から得られるものである。Webコーパス32には、例えばいわゆるブログに記載されたテキストが多数含まれているであろう。したがって例えば、「飲食店Jでラーメンを食べた」、「レストランKでラーメンを食べた」、「レストランXで食事をした」、「電車で東京に行く」等という表現が多数存在しているであろう。これらはいずれも、具体的な店名、地名、交通機関名等をあげ、それらに関して具体的に何をしたかを記述している。ここでは、便宜上これらを「具体的記述」と呼ぶ。さらに、ブログの中には、それらの具体的な店名、知名、交通機関名等をどの検索サイトで検索したかに関する記載も多数存在するものと思われる。例えば「サイトSでラーメン屋を検索」、「サイトMで電車をチェック」、「サイトLでラーメン屋をサーチ」等という表現である。これらは、具体的な名称を検索した手段に関する記述である。ここでは、便宜上これらの記述を「検索手段に関する記述」と呼ぶ。
【0032】
図2に示す共起データから、例えばある具体的な行動と、その行動が行なわれた具体的な店名、地名、交通機関名等とが対となっている例(具体的記述)と、具体的な店名、地名、交通機関名等と、それらを検索した手段を特定する記載とが対となっている例(検索手段に関する記述)との間には、具体的な店名、地名、交通機関名等を仲介とする関係があることが分かる。すなわち、ある具体的な行動を示す表現と共起する具体的な店名、地名、交通機関名等を特定すると、共起データの連鎖から、その店名、地名、交通機関名等と共起する検索手段に関する記述を抽出できる。この連鎖は、特定の段階までに制限することもできるし、例えば互いに異なる共起データが得られなくなるまで続けることもできる。その結果、具体的な行動を示す単語列パターンが与えられると、その単語列パターンに相当するものを検索するための検索手段に関する記述を抽出できる。
【0033】
本実施形態では、この共起チェーンを利用することにより、利用者から与えられる検索のための自然言語文から、利用者が求める情報を得るための検索サービスのようなサービスを提供するサイトを特定する。
【0034】
図3を参照して、サービス名/URL対照DB62は、検索等のサービスを提供するサイトの名称(サービス名)と、そのサービスを利用するためのURLとからなるサービス情報が複数個記憶されている。これらの情報は、手作業で登録してもよいが、インターネット上で自動的に収集してもよい。または、サービス提供事業者にこの内容を登録させるようにしてもよい。本実施の形態は、サービス名/URL対照DB62が既に準備されていることを前提とする。なお、ここに示すURL情報は、サービスにアクセスするためのURLとともに、そのサービスを利用するためのクエリのテンプレートもかねる。したがって、このURL情報には、発話からサービスに対するクエリを作成するために必要な情報の入力位置、たとえば検索サービスにおける検索語を挿入するフィールドの位置に関する情報などが含まれている。この情報は、マッピングコーパスにもコピーされ記憶される。したがってその詳細はマッピングコーパスの説明において行なう。
【0035】
図4を参照して、マッピングコーパス記憶部66は、複数のマッピング対を含む。各マッピング対は、サービスを利用するための、入力データを特定する情報(入力フィールド)を持つクエリのテンプレートと、共起データ内の特定位置(変数フィールド)に存在する単語を、クエリのテンプレート内の入力フィールドにマッピングするためのマッピング文とを含む。
【0036】
各テンプレートは、サービスを利用する際のURLの記述であって、クエリのための変数が挿入されるべき1または複数の入力フィールドを含む。各入力フィールドには、フィールド名が与えられている。これら入力フィールドに、共起データ中で、マッピング文中の変数フィールドにより特定される単語を挿入することにより、クエリが作成される。
【0037】
マッピング文は、共起データに含まれるどの単語をテンプレートのどの位置にマッピングするかを定めるためのものである。
【0038】
例えば図4に示すマッピング文のうち、1番目のものは以下のような意味を持つ。このマッピング文は、「電車時刻表サービスの名称1」という名称を持つサービスを利用するためのクエリを作成するためのものである。このマッピング文には、クエリのテンプレートに挿入されるべき変数位置(変数フィールド)を示すタグが2箇所ある。1番目のタグは、「入力1」という名称の変数を示す。タグには「駅名」という属性が付されているので、ここに入るべき単語も「駅名」という属性を満たす必要がある。マッピング文のこの変数フィールドには、「京都」という単語が挿入されている。2番目の変数の名称は「入力2」であり、ここに入るべき単語は「駅名」という属性を満たす必要がある。ただし、この入力2の属性として「GPS」が付されているので、この入力2については、GPSの出力を利用して特定することができる。例えばGPSの出力を利用すると、GPSの出力によって特定される位置に最も近い駅名が、クエリのテンプレートのうち、「入力2」という名称の変数フィールドに挿入される。なお、図4に示す例では、変数フィールド位置には既に京都、名古屋等の地名が入力されている。これは、Webコーパス32から抽出された文をそのまま使用しているためである。「京都」「名古屋」等の地名は、単語が挿入される位置を示しているが、後述するようにどのマッピング対を使用するかを決定する際のスコア計算において、挿入すべき単語と、マッピング文に挿入されている単語との間の意味的な関連(単語クラス)を示すものとして、スコアの計算に関連する。このスコア計算では、単語クラスだけではなく、文の類似度及び単語の文脈情報(「に」、「へ」、「から」のような助詞など、単語の前後の語)も使用される。
【0039】
図5を参照して、情報検索装置30において、入力された自然言語文に基づき、共起DB52から共起データを抽出する処理(共起データ検索部58の機能)を実現するプログラムは、以下のような制御構造を持つ。すなわち、このプログラムは、対象文フィルタ56から与えられる単語列パターンの各々に対し、以下のステップ102の処理を実行するステップ100と、ステップ100で検索された全ての単語列パターンのうち、処理対象となるフレーズとの共起頻度が上位の所定個数のみを出力するステップ104とを含む。
【0040】
ステップ102は、処理対象のフレーズに含まれる単語に対し、シソーラス54を用いて単語クラスを示す意味タグを付与するステップ110と、ステップ110の処理がされたフレーズをキーとして、共起DB52を検索し、当該フレーズと共起する単語列パターンを検索するステップ112とを含む。
【0041】
図6を参照して、図5に制御構造を示すプログラムにより抽出された共起データに基づき、さらに共起DBを検索して共起チェーンを作成する処理を実現するプログラムは、以下のような制御構造を持つ。すなわち、このプログラムは、図5のプログラムで抽出された共起データの単語列パターンの全てに対して、以下のステップ132を実行するステップ130を含む。
【0042】
ステップ132は、処理対象となる単語列パターンをキーとし、「○○で<キーとなる単語列>を検索」、「××で<キーとなる単語列>をチェック」、「△△で<キーとなる単語列>をサーチ」等の形の共起データを構文解析情報まで含めて共起DB52内で検索して出力するステップ140と、ステップ140で検索された共起データの共起頻度に、キーとなる単語列が検索されたときの共起頻度を乗じることにより、ステップ140で検索された全ての共起データの共起頻度を計算するステップ142と、ステップ142で計算された共起頻度の降順に、ステップ140で検索された共起データをソートするステップ144と、ステップ144でソートされた共起データのうち上位所定個数の中に、新規な共起データがあるか否かを判定し、その結果により制御の流れを分岐させるステップ145とを含む。ステップ145の判定が否定であればこnプログラムは実行を終了し、親プログラムに制御を戻す。
【0043】
以下に説明するように、図6に制御構造を示すプログラムは再帰的に実行され、処理を終了するとその処理の中で検索された共起データの集合(またはそれらの記憶されたロケーションへのポインタ)を戻り値として返す。ステップ145の判定は、そのように再帰的に検索された共起データの集合と、ステップ140で検索されステップ142及び144の処理で共起頻度によりソートされたものの内の上位の所定個数とを比較することにより行なわれる。
【0044】
このプログラムはさらに、ステップ145の判定が肯定のときに実行され、ステップ144でソートされた共起データのうちの上位の所定個数のうち、新規なもののみを選択して戻り値の集合に格納するステップ146と、ステップ146で新たに格納された共起データを引数として自己(図6に制御構造を示すプログラム)を先的に呼び出し、その戻り値を戻り値に追加するステップ148とを含む。こうして一連の再帰的な処理により得られた一群の共起データが、最初に処理対象として選択された単語列パターンの共起チェーンをなす。
【0045】
図7を参照して、サービス/URL対照DBを検索し、URLを抽出する処理を実現するプログラムは以下の制御構造を持つ。すなわち、このプログラムは、図6に示す処理で抽出された共起データ(以下これを「関連共起データ」と呼ぶ。)の各々対し、以下のステップ162の処理を実行するステップ160を含む。
【0046】
ステップ162は、関連共起データ内の単語列パターンに含まれる単語列をキーにして、サービス名/URL対照DB62を検索し、当該単語列と一致するサービス名を抽出するステップ170と、ステップ170での検索の結果、条件を満たすようなサービス名がサービス名/URL対照DB62に存在するか否かを判定するステップ172と、ステップ172の判定が肯定のときに、サービス名/URL対照DB62で検索されたサービス名に対応するURLを、この共起チェーンとともに出力するステップ174とを含む。ステップ172の判定が否定の場合、処理対象となっている単語列パターンに対しては何も処理をしない。
【0047】
図8を参照して、マッピングコーパス記憶部66に記憶されたマッピングコーパスと、図7に示すプログラムにより抽出された共起チェーン内の単語列パターンとを用いてクエリを作成するプログラムは、以下のような制御構造を持つ。すなわちこのプログラムは、共起チェーンに含まれる各共起データについて、以下のステップ192を実行することにより1または複数のクエリ文を生成するステップ190と、ステップ190の処理の完了後、ステップ190で得られたクエリの中で最も高い確率(スコア)が割当てられたクエリを選択して出力し、処理を終了するステップ194とを含む。
【0048】
ステップ192は、マッピングコーパス記憶部66に含まれるマッピング文対の各々に対して、以下のステップ202を実行するステップ200を含む。
【0049】
ステップ202は、マッピング文対のサービス名が、処理対象の共起チェーンに付されたサービス名と一致するか否かを判定するステップ208を含む。ステップ208の判定が否定のときには、制御は次のマッピング文の処理に進む。判定が肯定のときには以下に述べる処理を実行する。
【0050】
すなわち、ステップ202はさらに、処理対象のマッピング対内のマッピング文の変数フィールドと、共起データに含まれる単語または単語列とで、属性(単語クラス)がマッチするものが存在するか否かを判定するステップ210と、ステップ210の判定が肯定のときに、マッピング対内のクエリテンプレートの入力フィールドのうち、そのような変数フィールドがマッピングされたもののすべてに、属性がマッチする単語または単語列を挿入するステップ212と、共起データ内でマッチした単語または単語列と、対応する変数フィールドに挿入されていた単語または単語列との間の意味的距離、それぞれの単語または単語列の文脈情報、及びそれら単語または単語列の単語クラスとにしたがってスコアを算出し、スコアに基づいて確率を調整するステップ214と、マッピング文に「GPS」タグが付された入力フィールドがあるか否かを判定するステップ216と、ステップ216の判定が肯定のときに、その入力フィールドにGPS装置38の出力と変数フィールドの属性とを用いて決定した単語を挿入して、得られたクエリを出力するステップ218とを含む。ステップ210の判定では、例えば入力フィールドの属性である単語クラスと、共起データ中の単語の単語クラスとの意味的距離が所定のしきい値以下であれば、両者がマッチするものと判定する。ステップ214では、マッチ時の単語の間の意味的距離が大きければスコアが相対的に小さく、意味的距離が小さければスコアが相対的に大きくなるように、文脈の一致が大きければスコアが相対的に大きく、文脈の一致が小さければスコアが相対的に小さくなるように、クエリにスコアを付与し、そのスコアの値にしたがって確率を調整する。
【0051】
ステップ202はさらに、ステップ210の判定が否定のときに、クエリに割当てられる確率を、予め定められた最小の確率に設定するステップ220と、最小の確率が割当てられたNULLのクエリを出力するステップ222とを含む。
【0052】
なお、ステップ216の判定が否定の時には、ステップ218の処理をすることなく、作成済みのクエリがクエリとして出力される。
【0053】
図9を参照して、図8に示す処理により生成されたクエリを用いてブラウザを起動する処理を実現するプログラムは、以下のような制御構造を持つ。すなわち、このプログラムは、与えられたクエリがヌルか否かを判定するステップ260と、ステップ260の判定が否定のとき(すなわちクエリがヌルでないとき)に、クエリに付されているサイトURLに、クエリを送信する指示とともにブラウザを起動して処理を終了するステップ264と、ステップ260の判定が肯定のときに、クエリに付されているサイトURLにアクセスする指示と共にブラウザを起動し処理を終了するステップ262とを含む。ステップ264の処理が実行されると、ブラウザは起動とともに、指定されたURLに指定されたクエリを発行する。その結果、ブラウザには、そのクエリに対する結果が表示される。一方、ステップ262の処理が実行された場合、ブラウザは単に指定されたURLのサイトを開くだけである。利用者が手操作で検索キーワードを入力することになる。
【0054】
[動作]
以上、構成について詳細に説明した情報検索装置システム20は以下のように動作する。なお、この処理に先立ち、Webコーパス32にはWebから収集した大量の機械可読な文章が蓄積されているものとする。
【0055】
図1を参照して、最初に、共起データ作成装置50が、Webコーパス32を処理して共起DB52を生成する。このとき共起データ作成装置50は、Webコーパス32中の各文を形態素解析して各単語に品詞等の属性情報を付与するとともに、シソーラス54を参照して各単語の単語クラスの情報も属性情報として付与する。
【0056】
発話者が何か情報を入手しようとする場合を考える。例えば何かを食べたいときには、利用者は「☆☆が食べたい」等という発話を発すればよい。図1を参照して、発話者が何か発話すると、音声認識装置36がその発話を音声認識し、テキスト(文字列)として対象文フィルタ56に与える。対象文フィルタ56は、入力されたテキストに対し、形態素解析及び構文解析を行ない、処理の対象となる単語列パターンを1または複数個、共起データ検索部58に与える。共起データ検索部58は、与えられた単語列パターンの各々についてシソーラス54を参照して単語クラスを示すタグを付与する(図5、ステップ110)。共起データ検索部58はさらに、共起DB52を参照して、与えられた単語列パターンと共起する単語列パターンであって、共起頻度がしきい値以上のものを検索する(ステップ112)。この際、対象文フィルタ56は、入力された単語列パターンと完全に一致するものを含む共起データだけではなく、入力された単語列パターンの単語クラスに基づき、意味的な距離がしきい値以下のものを含む共起データも検索する。ただしこの場合、共起頻度はその分だけ低く調整される。検索された共起データには、このようにして調整された共起頻度が確率として付与される。対象文フィルタ56は、検索された共起データのうち、共起頻度(確率)が上位の所定個数のみを関連共起データ検索部60に出力する(ステップ104)。
【0057】
関連共起データ検索部60は、対象文フィルタ56により検索された共起データのうち、対象文フィルタ56から出力された単語列パターンとは異なる単語列パターンを抽出し、その単語列を含み、かつ特定の形態の共起データを共起DB52内で再帰的に検索する(図6、ステップ140からステップ148)。特定の形態とは、主に、「○○で××を検索」、「○○で××をチェック」、「○○で××をサーチ」、「○○で××を探す」等、助詞の「で」を伴う語句である。なおこの例で「××」が、共起データ検索部58により共起DB52から検索された共起データから抽出された単語列パターン内の単語に相当する。以上のような処理により対象文フィルタ56から出力された単語列パターンの共起チェーンが作成される。この場合にも各単語列パターンには、確率が付与される。この場合の確率は、共起データ検索部58から出力される単語列パターンに付与されていた確率と、関連共起データ検索部60により検索された共起データに付与されていた共起頻度との積である(ステップ142)。
【0058】
関連共起データ検索部60はさらに、このようにして検索された共起データの中で、確率が上位の所定個数のみを、確率を付してサービス名推定部64に与える(ステップ144及びステップ146)。
【0059】
サービス名推定部64は、関連共起データ検索部60により検索された共起データの中の「○○で」に相当する部分の単語列と合致するサービス名がサービス名/URL対照DB62に存在するか否かを判定する(図7、ステップ170)。そうしたサービス名が存在すると(ステップ172の判定が肯定)、サービス名推定部64は、そのサービス名と、そのサービス名に対応するURLとを、共起チェーンを構成する単語列パターンとともにクエリ作成部68に与える(ステップ174)。
【0060】
クエリ作成部68は、マッピングコーパス記憶部66を参照して、サービス名推定部64から出力されたサービス名と、マッピングコーパス記憶部66から読み出したマッピング文対とを比較し(図8、ステップ208)、サービス名が一致するものがあれば(ステップ208の判定が肯定)、そのマッピング文対のうち、マッピング文の変数フィールドに指定された属性と共起チェーン内の単語列パターン内の単語列の属性とを比較する(ステップ210)。一致するものがあれば(ステップ210の判定が肯定)、その単語列をそのテンプレートの、その変数フィールドがマッピングされた入力フィールドに代入する(ステップ212)。クエリ作成部68は、このようにして作成されたクエリの確率を、マッチした単語とマッピング文のその変数の位置に挿入されていた単語との単語クラスの距離、単語の類似度、およびそれら単語の周囲の文脈情報により計算されるスコアで調整する(ステップ214)。クエリ作成部68はさらに、変数フィールドに、「GPS」という属性が指定されたものがあるか否か判定し(ステップ216)、あれば、GPS装置38の出力とその変数フィールドに付された属性とを用いて定めた値(例えばGPSで得られた位置に最も近い駅名など)をその入力フィールドに代入し出力する(ステップ218)。
【0061】
マッピング文の変数フィールドの中に、処理対象の共起データに含まれる単語列パターンとマッチするものがなければ(図8、ステップ210でNO)、クエリの確率を予め定めた最小値に設定し(ステップ220)、その確率が割当てられたNULLのクエリを出力する(ステップ222)。
【0062】
クエリ作成部68は、このようにして共起チェーン内の全共起データと全マッピング文対とについて、可能であればクエリを作成し蓄積する。クエリ作成部68は最後に、蓄積されたテンプレートのうちで最も確率の高いものをクエリとして選択し、そのURLとともにブラウザ起動処理部70に与える(ステップ194)。
【0063】
ブラウザ起動処理部70は、クエリ作成部68から与えられたクエリを、指定されたURLに送信する指示とともにブラウザ40に送信し、ブラウザ40を起動する。ブラウザ40は、起動するとともにそのクエリがNULLか否かを判定する(図9、ステップ260)。クエリがNULLでなければ(ステップ260の判定が否定)ならブラウザ起動処理部70は、与えられたクエリを指定されたURLに送信し、その結果を表示する。したがってブラウザ40には、発話34に含まれる単語列に基づき、Webコーパス32から得られた共起データを使用することにより推定されたサービス提供サイトから得られた情報が表示される。クエリがNULLであれば(ステップ260の判定が肯定)、ブラウザ起動処理部70は。与えられたクエリに付されていたURLにアクセスし、そのページを開く。利用者はそのページに検索のためのキーワードを入力する。
【0064】
以上のように本実施の形態によれば、利用者は、単に自分が知りたい情報について発話34を発するだけでよく、そうした情報を提供するサービスサイト名を知る必要もないし、そのURLを知る必要もない。その結果、本実施の形態に係る情報検索装置システム20によれば、インターネット上のサービスに関する知識も、検索語に関する知識も乏しい利用者が、簡単に自分が必要とする情報を入手できる。
【0065】
なお上記した実施の形態では、サービス名を推定するための共起データを検索する際、助詞「で」を含むものを検索する。しかし本発明はそのような実施の形態には限定されない。助詞「で」だけでなく、「を使って」、「において」等、他の表現を加えることもできる。また、上記例では「○○で××を検索」のような語順のものを挙げたが、これに限らず「××を○○で検索」という語順のものの検索対象となる。これらの他にも、インターネット上のサービス名を含む表現は、インターネット上には他にも多数ある物と考えられる。それらが見出されるたびに関連共起データ検索部60での検索において、検索対象に加えればよい。
【0066】
上記した実施の形態は、図1に示すように単独の装置上に構築することを前提としている。しかし、図1を当業者が見れば容易に分かるように、このシステムはいくつかの部分に分割することができる。例えば図1において、発話34の入力を受ける部分とそれ以外の部分とは別にすることができる。さらに、音声認識装置36と対象文フィルタ56との間でも装置を分割することができる。
【0067】
図10にそのような例を示す。図10に示すシステムは、音声信号をデジタル化して所定のURLに送信する機能を持つ携帯電話300と、携帯電話300から送信された音声信号に対し、図1に示す音声認識装置36以下の処理を実行し、その結果、ブラウザ起動処理部70から得られる出力をブラウザ起動命令として携帯電話300に返信する情報検索サーバコンピュータ330とを含む。情報検索サーバコンピュータ330からのブラウザ起動命令を受信した携帯電話300がブラウザを起動し、指定されたURLに指定されたクエリを送信することで、そのURLにより指定されたサーバサイトからの情報が携帯電話300のブラウザ画面に表示される。ただし、図1のクエリ作成部68において、携帯電話300に設けられているGPS装置の出力を使用してクエリを作成する必要がある。そのため、情報検索サーバコンピュータ330に仮にGPS装置が設けられていても、その出力をクエリに挿入することはできない。この問題は種々の方法で回避できる。
【0068】
第1の方法は、携帯電話300から情報検索サーバコンピュータ330に音声信号を送信するときに、携帯電話300に備えられたGPS装置の出力も情報検索サーバコンピュータ330に送信する、というものである。この場合、クエリ作成部68は、クエリテンプレートに「GPS」というタグが付された入力フィールドがある場合、携帯電話300から送信された位置情報をその入力フィールドに代入する。
【0069】
第2の方法は、クエリ作成部68ではクエリテンプレートに「GPS」というタグが付されている入力フィールドがあるときには、その部分をそのまま残しておく、という方法である。この場合、ブラウザ起動処理部70からブラウザ起動命令を受けた携帯電話300が、クエリ中の「GPS」というタグが付された入力フィールドに、自分の持つGPS装置の出力を挿入してから、指定されたURLにそのクエリを送信すればよい。
【0070】
このほかにも種々の方法が可能であるが、上記した2つが代表的な方法である。
【0071】
なお、図1に示す例では、情報検索装置30は共起データ作成装置50を含んでいる。しかし、情報検索装置30が動作するためには、共起DB52が存在していればよく、共起データ作成装置50は必ずしも必要ではない。共起DB52は、例えばネットワーク上の別のサーバで作成され、情報検索装置30がその共起DB52を受信して記憶装置に保存するようにしてもよい。
【0072】
図10に示す例では、携帯電話300は音声信号をデジタル化して情報検索サーバコンピュータ330に送信している。これは、携帯電話300の利用できるハードウェアリソースに限りがあるためである。携帯電話300がより高機能な端末であれば、例えば発話34を音声認識する音声認識装置36を携帯電話300内のソフトウェアにより実現し、認識結果のテキストを情報検索サーバコンピュータ330に送信するようにしてもよい。
【0073】
[コンピュータによる実現]
図10に示す情報検索サーバコンピュータ330は、図1に示す情報検索装置システム20のうち、音声認識装置36を除いた構成を持つ。ハードウェア的には、情報検索サーバコンピュータ330は、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現できる。プログラムの主要な部分の制御構造については図5〜図9に示し、データの例は図2〜図4に示した。
【0074】
図10を参照して、この情報検索サーバコンピュータ330は、FD(フレキシブルディスク)ドライブ352およびCD−ROM(コンパクトディスク読出専用メモリ)ドライブ350を有するコンピュータ340と、キーボード346と、マウス348と、モニタ342とを含む。
【0075】
図9を参照して、コンピュータ340は、FDドライブ352およびCD−ROMドライブ350に加えて、CPU(中央処理装置)356と、CPU356、FDドライブ352およびCD−ROMドライブ350に接続されたバス366と、ブートアッププログラム等を記憶する読出専用メモリ(ROM)358と、バス366に接続され、プログラム命令、システムプログラム、および作業データ等を記憶するランダムアクセスメモリ(RAM)360とを含む。情報検索サーバコンピュータ330はさらに、インターネットへの接続を提供するネットワークインターフェイス(I/F)344を含む。図示しないが、コンピュータ340はネットワークI/F344を介して携帯電話ネットワークと接続されており、携帯電話300とデータ通信を行なうことができる。
【0076】
情報検索サーバコンピュータ330に情報検索装置30としての動作を行なわせるためのコンピュータプログラムは、CD−ROMドライブ350またはFDドライブ352に挿入されるCD−ROM362またはFD364に記憶され、さらにハードディスク354に転送される。または、プログラムは図示しないネットワークを通じてコンピュータ340に送信されハードディスク354に記憶されてもよい。プログラムは実行の際にRAM360にロードされる。CD−ROM362から、FD364から、またはネットワークを介して、直接にRAM360にプログラムをロードしてもよい。
【0077】
このプログラムは、コンピュータ340にこの実施の形態の情報検索装置30として動作を行なわせる複数の命令を含む。この動作を行なわせるのに必要な基本的機能のいくつかはコンピュータ340上で動作するオペレーティングシステム(OS)もしくはサードパーティのプログラム、またはコンピュータ340にインストールされる各種ツールキットのモジュールにより提供される。従って、このプログラムはこの実施の形態のシステムおよび方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能または「ツール」を呼出すことにより、上記した情報検索装置システム20としての動作を実行する命令のみを含んでいればよい。
【0078】
なお、図1に示すWebコーパス32、シソーラス54、共起DB52、サービス名/URL対照DB62、及びマッピングコーパス記憶部66等は、いずれも図9に示すハードディスク354またはRAM360により実現される。特に、例えばWebコーパス32、共起DB52、シソーラス54、サービス名/URL対照DB62及びマッピングコーパス記憶部66等は通常はハードディスク354に記憶されており、プログラムの実行時、必要に応じてRAM360にロードされる。
【0079】
情報検索サーバコンピュータ330は一般的なコンピュータにより実現される。コンピュータ一般の動作は周知であるので、ここではその詳細は繰返さない。
【0080】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【0081】
20 情報検索装置システム
30 情報検索装置
32 Webコーパス
34 発話
36 音声認識装置
38 GPS装置
40 ブラウザ
50 共起データ作成装置
52 共起DB
54 シソーラス
56 対象文フィルタ
58 共起データ検索部
60 関連共起データ検索部
62 サービス名/URL対照DB
64 サービス名推定部
66 マッピングコーパス記憶部
68 クエリ作成部
70 ブラウザ起動処理部
【技術分野】
【0001】
この発明は、自然言語文の発話から利用者の必要とする情報を検索するための情報検索装置に関し、特に、情報検索の技術を特に持たない利用者でも的確な情報を容易に検索できる情報検索装置に関する。
【背景技術】
【0002】
いわゆるインターネットには、多くの情報があふれている。しかもその量は日々増え続けている。しかし、いかに有用な情報がインターネット上に存在していても、その情報を的確に見出すことができなければ何の意味もない。そうしたネットワーク利用者の要求に応じる形で登場したのがいわゆる検索サイトである。
【0003】
検索サイトには大きく分けて2種類がある。第1は、検索サイトの管理者が手作業または自動的にURL(Uniform Resource Locator)を収集し、各URLをその内容にしたがって分類したサイトである。利用者は、自分が利用するサイトを検索サイトの分類にしたがって探していくことになる。こうしたサイトでは、分類範囲を限定し、その中で所望の単語または単語列を検索する仕組みが用意されていることが多い。第2は、予め単語または単語列に応じたサイトのインデックスを作成しておき、単語または単語列を指定した検索要求を受けると、インデックスを使用して検索し返すものである。この場合、検索結果にスコアをつけ、スコアの高いサイトから順番に利用者に提示することが一般的である。したがってこの場合には、スコアの付け方が問題となる。スコアの付け方により、検索目的に応じた的確なウェブサイトが提示される可能性が高くなる。
【0004】
第1の種類の検索サイトでは、自分が探そうとする情報について、少なくともその分類を知っておく必要がある。しかもその分類方式は、検索サイトで利用されたものと一致していなければならない。なおかつ、こうした検索サイトでは、あまり多くのウェブサイトを登録するのは難しいという問題がある。数が増えると、同じ分類したに非常に多数のウェブサイトがリストされることになり、所望のウェブサイトまでたどり着くことが極めて困難となってしまう。こうした検索サイトで、単語または単語列によりウェブサイトを検索する場合でも、的確な単語の組合せが分からなければ所望の情報が得られない確率が高い。
【0005】
第2の種類の検索サイトでは、単語または単語列を検索語として入力するだけで結果が表示されるため、第1の種類の検索サイトに比べると操作が簡単である。しかしこの種の検索サイトでも、自分の所望の情報を的確に得るためには、どの様な単語または単語列であれば、的確な結果が得られるかという知識が重要になる。さもなければ、自分が必要とするものと異なるウェブサイトばかりが表示されることになる。
【0006】
ところで最近では、特定の分野に特化した検索サイトも増えている。例えば旅行先のホテルを検索するサイト、特定の地域に存在する飲食店を検索するサイト、出発地と到着地、及び出発時刻または到着時刻を指定して鉄道の時刻表を検索するサイト等、多くのサイトがある。こうしたサイトでも、基本はキーワード入力である。地図を用いて目的地等を入力する場合もあるが、その場合でも結局は地名が分からなければならない。
【0007】
こうした検索を容易にするための技術が、例えば特許文献1に開示されている。特許文献1に開示された検索システムでは、予め複数のウェブサイトについて、単語との関連付けをしておく。利用者から単語または単語列を指定した検索要求があると、この検索システムは、まずその単語または単語列と関連の深いウェブサイトを定め、そのウェブサイトで検索した結果を利用者に提示する。ウェブサイトと単語との関連付けは、例えばある単語について各ウェブサイトへのリンクがクリックされた回数を用いて行なったり、各単語について予め各サイトに含まれている回数を計数しておき、その結果によりウェブサイトをランク付けしておいたりすることが提案されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2008−186452号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
上記特許文献1に開示の検索システムによれば、入力された単語と最も関連の深いと思われるウェブサイトが決定され、そのウェブサイトにおいてその単語を用いた検索が行なわれる。したがって、入力された単語と関連の深い情報が得られる可能性が高くなるという効果が得られる。
【0010】
しかしこの特許文献1に開示された検索システムでも、利用者は、自分の探したい情報と関連の深い単語をあらかじめ知っておかなければならないという問題がある。単語さえ分かればその単語に関連のあるウェブサイトを検索システムで特定できるが、検索にふさわしい単語が分からなければ、この検索システムでも的確なウェブサイトを見つけることはできないという問題がある。
【0011】
こうした問題を避けるために、典型的には、最初に自分が利用したいサービスに関する単語を使用してサービスそのものをどこかの検索サイトで検索し、検索されたサービスサイトでさらに自分の必要な情報を検索する、という2段の作業が必要となる。しかもこの作業が1度で済むとは限らない。したがって、インターネット上に存在するサービスに関する知識、及びそれらサービスの利用法に関する知識が乏しい利用者は、仮に自分の要求に合致したサービスがあったとしてもそれを利用することができず、必要な情報を適時に入手することが難しいという問題がある。
【0012】
それゆえに本発明の目的は、インターネット上のサービスに関する知識も、検索語に関する知識も乏しい利用者が、簡単に自分が必要とする情報を入手できるような情報検索装置を提供することである。
【課題を解決するための手段】
【0013】
本発明の第1の局面に係る情報検索装置は、ある単語列と他の単語列とを含む単語列対と、当該単語列対の共起頻度とを多数記憶する共起データベースと、自然言語のテキストが入力されたことに応答して、入力されるテキストから1または複数の単語列を抽出するための単語列抽出手段と、単語列抽出手段から出力される1または複数の単語列の各々について、共起データベースを参照して、当該単語列を起点とする共起チェーン内の単語列であって、所定の条件を満たす単語列を抽出するための共起データ抽出手段と、ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのクエリのテンプレートとを互いに関連付けて複数個記憶するためのサービス名データベースと、共起データ抽出手段により抽出された単語列を含むサービス名と関連付けられたクエリのテンプレートをサービス名データベースから読出し、当該単語列の属する共起チェーンに基づいて当該サービスを利用するためのクエリを作成するためのクエリ作成手段とを含む。
【0014】
好ましくは、共起データ抽出手段は、単語列抽出手段から出力される1または複数の単語列の各々について、共起データベースを参照して、当該単語列を含む第1の単語列対を検索するための第1の検索手段と、第1の検索手段により検索された1または複数個の第1の単語列対において、単語列抽出手段から出力された単語列と対になっている単語列を抽出し、当該抽出された単語列を含む第2の単語列対を共起データベースから検索するための第2の検索手段と、第2の検索手段により検索された第2の単語列対において、第2の検索手段による検索で用いられた単語列と対を成す、予め定められる形式の単語列を特定し、当該単語列内の名詞または名詞句をクエリ作成手段に単語列として与えるための表現特定手段とを含む。
【0015】
より好ましくは、表現特定手段は、第2の検索手段により検索された第2の単語列対において、第2の検索手段による検索で用いられた単語列と対を成す単語列に含まれる、所定の単語列を伴う名詞または名詞句であって、かつサービス名データベースに含まれるサービス名と一致するものを特定し、当該名詞または名詞句をクエリ作成手段に表現として与えるための手段を含む。
【0016】
さらに好ましくは、クエリのテンプレートの各々は、検索のための情報が入力される入力フィールドを持つ。サービス名データベースは、ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのクエリのテンプレートと、当該テンプレートに対応する自然言語の文であって、テンプレートの入力フィールドにマッピングされる、変数フィールドを含むマッピング文とを互いに関連付けて複数個記憶するためのマッピング文コーパスデータベースを含む。クエリ作成手段は、共起データ抽出手段により抽出された単語列を含むサービス名をキーにしてマッピング文及びクエリテンプレートをマッピング文コーパスデータベースから読出すための読出手段と、共起チェーンに含まれる単語列と、テンプレート読出手段により読出されたマッピング文との比較により、共起チェーンに含まれる単語のうち、マッピング文に含まれる変数フィールドに対応する単語列を特定し、さらに当該変数フィールドがマッピングされた入力フィールドに当該単語列を代入することにより、読出手段により読出されたサービス名によるサービスを利用するためのクエリを作成するための手段とを含む。
【0017】
共起データベースに含まれる表現内の単語には、それぞれ単語クラスを表す単語クラス情報が付されている。共起データ抽出手段は、各単語の単語クラスを特定するための単語クラス辞書と、単語列抽出手段から出力される1または複数の単語列の各々について、共起データベース及び単語クラス辞書を参照して、当該単語列を起点とする共起チェーン内の表現であって、単語列に含まれる単語の単語クラスと共通する単語クラスの単語を含む表現を抽出するための手段とを含む。
【0018】
本発明の第2の局面に係るコンピュータプログラムは、コンピュータを、ある単語列と他の単語列とを含む単語列対と、当該単語列対の共起頻度とを多数記憶する共起データベースと、自然言語のテキストが入力されたことに応答して、入力されるテキストから1または複数の単語列を抽出するための単語列抽出手段と、単語列抽出手段から出力される1または複数の単語列の各々について、共起データベースを参照して、当該単語列を起点とする共起チェーン内の表現であって、所定の条件を満たす表現を抽出するための共起データ抽出手段と、ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのURLとを互いに関連付けて複数個記憶するためのサービス名データベースと、共起データ抽出手段により抽出された表現を含むサービス名と関連付けられたURLをサービス名データベースから読出し、当該表現の属する共起チェーンに基づいて当該URLで提供されるサービスを利用するためのクエリを作成するためのクエリ作成手段として機能させる。
【図面の簡単な説明】
【0019】
【図1】本発明の1実施の形態に係る情報検索装置のブロック図である。
【図2】図1に示す情報検索装置が保持する、共起データベース(以下「データベース」を単に「DB」と呼ぶ。)の内容を模式的に示す図である。
【図3】図1に示す情報検索装置が保持する、サービス/URL対照DBの内容を模式的に示す図である。
【図4】図1に示す情報検索装置が保持する、クエリのための注釈付きテンプレートの内容を模式的に示す図である。
【図5】図1に示す情報検索装置において、入力された自然言語文からなる対象文に基づき、共起DBから共起データを抽出する処理を実現するプログラムの制御構造を示すフローチャートである。
【図6】図1に示す情報検索装置において、図5に制御構造を示すプログラムにより抽出された共起データに基づき、さらに共起DBを検索して共起チェーンを作成する処理を実現するプログラムの制御構造を示すフローチャートである。
【図7】図1に示す情報検索装置において、共起チェーンから得られたサービス名をキーに、サービス/URL対照DBを検索し、URLを抽出する処理を実現するプログラムの制御構造を示すフローチャートである。
【図8】図1に示す情報検索装置において、共起チェーンから得られた単語または単語列を用いた検索を行なうため、図1に示すマッピングコーパスと共起チェーン内の表現とを用いてクエリを作成する処理を実現するためのプログラムの制御構造を示すフローチャートである。
【図9】図8に示す処理により作成されたクエリを用いてブラウザを起動する処理を実現するプログラムの制御構造を示すフローチャートである。
【図10】携帯電話と図1に示す情報検索装置とを連携させた検索システムの構成を示すブロック図である。
【図11】図10に示すコンピュータのハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0020】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【0021】
[構成]
図1を参照して、本発明の1実施の形態に係る情報検索装置システム20は、インターネット上のWebサイトから多数の文を収集することにより構築されたWebコーパス32と、装置の設置されている位置の位置情報を出力するGPS(Global Positioning System)装置38と、Webコーパス32及びGPS装置38に接続され、利用者により入力される自然言語文のテキストから、その利用者が必要としている情報を的確に検索し、ブラウザ40にその検索結果を表示させる処理を行なう情報検索装置30とを含む。情報検索装置30に入力される自然言語文は、本実施の形態では、利用者の音声による発話34を、音声認識装置36が認識し自然言語の文字列として出力したテキストデータである。
【0022】
なお、本実施の形態では、Webコーパス32としてインターネット上のWebサイトから収集した文からなるものを用いている。しかし、当業者であれば、このコーパスがインターネット上から収集した文からなるものに限定されないことは容易に理解できるであろう。
【0023】
情報検索装置30は、音声認識装置36から出力されるテキスト列を受け、このテキストを形態素解析及び構文解析し、テキストに含まれる言語表現として、単語または単語列(以下単に「単語列」と呼ぶ。)を出力するための対象文フィルタ56と、予め準備された、多数の単語をそれらの意味にしたがって分類したシソーラス54とを含む。本実施の形態では、シソーラス54は、例えば単語をリーフとするツリー状の構造を持つ。ツリーの各ノードは、そのノードより下位のリーフの単語が共通に属する、より抽象的な単語クラスを表す。ある単語と別の単語との間の意味的距離は、例えば上記ツリー上で一方の単語から他方の単語まで到達するために必要なエッジ数またはノード数により表すことができる。本実施の形態において、対象文フィルタ56が出力する単語列は、構文解析により得られた構文解析情報、典型的には構造解析木、を伴うものである。このように構文解析情報を含む単語列を本明細書では「単語列パターン」と呼ぶ
【0024】
情報検索装置30はさらに、Webコーパス32に含まれる各文について、シソーラス54を参照して、各文に含まれる各単語に単語クラスを示すタグを付与する作業と、各文に含まれる単語列の対の共起頻度をその構文情報を考慮して算出して出力するための共起データ作成装置50と、共起データ作成装置50により出力される単語列の対を、その共起頻度とともに記憶する共起DB52とを含む。この実施の形態では、第1の単語列及び第2の単語列が共起するとは、Webコーパス32内のある1文内に両者が存在することを言う。この実施の形態では、文と文とは句点(「。」)により区分される。共起頻度の算出においては、単語列が出現する構造まで考慮する。すなわち、ある単語列とある単語列とが、ある単語列パターンの中で出現するときの共起頻度と、別の単語列パターンの中で出現するときの共起頻度とは別々に計算される。なお、単純に1次元的に配列された単語列も、1次元的配列という単純な構造を持つものとして処理してもよい。その場合、構文解析を行なう必要はない。
【0025】
情報検索装置30はさらに、対象文フィルタ56から与えられる単語列の各々について、シソーラス54を参照した単語クラスのタグ付け及び構文解析をしながら、共起DB52内でその単語列とあるしきい値以上の頻度で共起する単語列を検索する処理を行なう共起データ検索部58と、共起データ検索部58により検索された共起データの中で、検索の元になった単語列(これらを以下「第1の単語列」と呼ぶ。)とは異なる(共起DB52内において、第1の単語列と対をなしている)単語列(これらを以下、「第2の単語列」と呼ぶ。)と連鎖的に共起する単語列(これらをまとめて以下「第3の単語列」と呼ぶ。)であって、特定の形式に合致するものを検索するための関連共起データ検索部60とを含む。
【0026】
関連共起データ検索部60による検索で使用される特定の形式とは、主として「○○で××を検索」、「○○で××をチェック」、「○○で××をサーチ」、「○○で××を探す」等、助詞の「で」を伴う語句と、それらの構文解析木とである。すなわち関連共起データ検索部60により、単語列パターンが抽出される。この例で「××」が、共起データ検索部58により共起DB52から検索された共起データから抽出された単語列に相当する。本実施の形態では、構文解析木を使用することにより、構文解析木の一部のノードを省略した単語列パターンも生成し、比較対象とする。この結果、例えば「○○で××を検索」という単語列だけでなく、「○○で簡単に××を検索」という単語列からも「○○で××を検索」という単語列が共起データとして検索できる。
【0027】
本実施の形態では、共起データ検索部58及び関連共起データ検索部60による共起データの検索のように、1つの単語列パターンを起点として、連鎖的に共起データを検索することにより得られる一連の単語列パターンの集合を「共起チェーン」と呼ぶ。共起データを互いに連関させるという操作自体も「共起チェーン」と呼ぶ。共起データ検索部58及び関連共起データ検索部60は、この共起データの検索の際、入力された単語列パターンと完全に一致する共起データだけでなく、単語クラスに基づいて、入力された単語と意味的に近い単語列を含む共起データも検索する。
【0028】
情報検索装置30はさらに、予め作成された、インターネット上の種々のサービスのサービス名と、それらサービスを利用するためのURLとを対にして複数個記憶するサービス名/URL対照DB62と、対象文フィルタ56から出力されたある単語列パターンに対して共起データ検索部58及び関連共起データ検索部60により得られた共起チェーン内の単語列パターンから、入力された自然言語文に対する的確な情報を与えると思われるサービスのサービス名を、サービス名/URL対照DB62に存在するサービス名から推定し、対応するURLとともに出力するためのサービス名推定部64と、各サービスを利用するクエリを作成するために予め準備されている、単語列内の変数とクエリ内の入力フィールドとのマッピングを記述した注釈付きのマッピング文及びクエリテンプレートを含むマッピング文対からなるマッピングコーパスをサービス名と関連付けて記憶するためのマッピングコーパス記憶部66とを含む。
【0029】
情報検索装置30はさらに、サービス名推定部64から出力されたサービス名及びURLに基づき、マッピングコーパス記憶部66から読み出されたクエリテンプレート内の注釈と、シソーラス54と、共起チェーン内の単語列パターンに付された単語クラスに関する情報と、文の構造の類似度と、単語列パターン内の変数に相当する単語の文脈情報とを用い、クエリテンプレート内で検索のための単語列を入力すべき位置として指定されている入力フィールドに、共起チェーンに含まれるいずれかの単語列を挿入することにより、クエリ文を生成して出力するためのクエリ作成部68とを含む。クエリテンプレートの中には、後述するようにGPSの出力を入力するように指定された注釈を含むものがある。そうした場合、クエリ作成部68は、GPS装置38の出力、またはGPS装置38の出力から得られる地名若しくは駅名等を当該注釈部分に挿入する。
【0030】
情報検索装置30はさらに、ブラウザを起動し、クエリ作成部68から出力されたURLに対してクエリ作成部68から出力されたクエリを発行させるためのブラウザ起動処理部70を含む。
【0031】
図2を参照して、共起DB52に記憶される共起データの各々は、第1の単語列と、第2の単語列と、これら第1及び第2の単語列が一定の構文構造を有する1つの文内で共起する頻度(共起頻度)とを含む。すなわち、共起頻度の計算において、第1の単語列と第2の単語列とが表面的には同じ順序で出現する文であっても、その構文構造が異なる場合、これらは別々の共起データとして扱われる。第1及び第2の単語列のうち、主要な単語には、その単語が属する単語クラスを示すタグが付されている。これら共起データは、Webコーパス32から得られるものである。Webコーパス32には、例えばいわゆるブログに記載されたテキストが多数含まれているであろう。したがって例えば、「飲食店Jでラーメンを食べた」、「レストランKでラーメンを食べた」、「レストランXで食事をした」、「電車で東京に行く」等という表現が多数存在しているであろう。これらはいずれも、具体的な店名、地名、交通機関名等をあげ、それらに関して具体的に何をしたかを記述している。ここでは、便宜上これらを「具体的記述」と呼ぶ。さらに、ブログの中には、それらの具体的な店名、知名、交通機関名等をどの検索サイトで検索したかに関する記載も多数存在するものと思われる。例えば「サイトSでラーメン屋を検索」、「サイトMで電車をチェック」、「サイトLでラーメン屋をサーチ」等という表現である。これらは、具体的な名称を検索した手段に関する記述である。ここでは、便宜上これらの記述を「検索手段に関する記述」と呼ぶ。
【0032】
図2に示す共起データから、例えばある具体的な行動と、その行動が行なわれた具体的な店名、地名、交通機関名等とが対となっている例(具体的記述)と、具体的な店名、地名、交通機関名等と、それらを検索した手段を特定する記載とが対となっている例(検索手段に関する記述)との間には、具体的な店名、地名、交通機関名等を仲介とする関係があることが分かる。すなわち、ある具体的な行動を示す表現と共起する具体的な店名、地名、交通機関名等を特定すると、共起データの連鎖から、その店名、地名、交通機関名等と共起する検索手段に関する記述を抽出できる。この連鎖は、特定の段階までに制限することもできるし、例えば互いに異なる共起データが得られなくなるまで続けることもできる。その結果、具体的な行動を示す単語列パターンが与えられると、その単語列パターンに相当するものを検索するための検索手段に関する記述を抽出できる。
【0033】
本実施形態では、この共起チェーンを利用することにより、利用者から与えられる検索のための自然言語文から、利用者が求める情報を得るための検索サービスのようなサービスを提供するサイトを特定する。
【0034】
図3を参照して、サービス名/URL対照DB62は、検索等のサービスを提供するサイトの名称(サービス名)と、そのサービスを利用するためのURLとからなるサービス情報が複数個記憶されている。これらの情報は、手作業で登録してもよいが、インターネット上で自動的に収集してもよい。または、サービス提供事業者にこの内容を登録させるようにしてもよい。本実施の形態は、サービス名/URL対照DB62が既に準備されていることを前提とする。なお、ここに示すURL情報は、サービスにアクセスするためのURLとともに、そのサービスを利用するためのクエリのテンプレートもかねる。したがって、このURL情報には、発話からサービスに対するクエリを作成するために必要な情報の入力位置、たとえば検索サービスにおける検索語を挿入するフィールドの位置に関する情報などが含まれている。この情報は、マッピングコーパスにもコピーされ記憶される。したがってその詳細はマッピングコーパスの説明において行なう。
【0035】
図4を参照して、マッピングコーパス記憶部66は、複数のマッピング対を含む。各マッピング対は、サービスを利用するための、入力データを特定する情報(入力フィールド)を持つクエリのテンプレートと、共起データ内の特定位置(変数フィールド)に存在する単語を、クエリのテンプレート内の入力フィールドにマッピングするためのマッピング文とを含む。
【0036】
各テンプレートは、サービスを利用する際のURLの記述であって、クエリのための変数が挿入されるべき1または複数の入力フィールドを含む。各入力フィールドには、フィールド名が与えられている。これら入力フィールドに、共起データ中で、マッピング文中の変数フィールドにより特定される単語を挿入することにより、クエリが作成される。
【0037】
マッピング文は、共起データに含まれるどの単語をテンプレートのどの位置にマッピングするかを定めるためのものである。
【0038】
例えば図4に示すマッピング文のうち、1番目のものは以下のような意味を持つ。このマッピング文は、「電車時刻表サービスの名称1」という名称を持つサービスを利用するためのクエリを作成するためのものである。このマッピング文には、クエリのテンプレートに挿入されるべき変数位置(変数フィールド)を示すタグが2箇所ある。1番目のタグは、「入力1」という名称の変数を示す。タグには「駅名」という属性が付されているので、ここに入るべき単語も「駅名」という属性を満たす必要がある。マッピング文のこの変数フィールドには、「京都」という単語が挿入されている。2番目の変数の名称は「入力2」であり、ここに入るべき単語は「駅名」という属性を満たす必要がある。ただし、この入力2の属性として「GPS」が付されているので、この入力2については、GPSの出力を利用して特定することができる。例えばGPSの出力を利用すると、GPSの出力によって特定される位置に最も近い駅名が、クエリのテンプレートのうち、「入力2」という名称の変数フィールドに挿入される。なお、図4に示す例では、変数フィールド位置には既に京都、名古屋等の地名が入力されている。これは、Webコーパス32から抽出された文をそのまま使用しているためである。「京都」「名古屋」等の地名は、単語が挿入される位置を示しているが、後述するようにどのマッピング対を使用するかを決定する際のスコア計算において、挿入すべき単語と、マッピング文に挿入されている単語との間の意味的な関連(単語クラス)を示すものとして、スコアの計算に関連する。このスコア計算では、単語クラスだけではなく、文の類似度及び単語の文脈情報(「に」、「へ」、「から」のような助詞など、単語の前後の語)も使用される。
【0039】
図5を参照して、情報検索装置30において、入力された自然言語文に基づき、共起DB52から共起データを抽出する処理(共起データ検索部58の機能)を実現するプログラムは、以下のような制御構造を持つ。すなわち、このプログラムは、対象文フィルタ56から与えられる単語列パターンの各々に対し、以下のステップ102の処理を実行するステップ100と、ステップ100で検索された全ての単語列パターンのうち、処理対象となるフレーズとの共起頻度が上位の所定個数のみを出力するステップ104とを含む。
【0040】
ステップ102は、処理対象のフレーズに含まれる単語に対し、シソーラス54を用いて単語クラスを示す意味タグを付与するステップ110と、ステップ110の処理がされたフレーズをキーとして、共起DB52を検索し、当該フレーズと共起する単語列パターンを検索するステップ112とを含む。
【0041】
図6を参照して、図5に制御構造を示すプログラムにより抽出された共起データに基づき、さらに共起DBを検索して共起チェーンを作成する処理を実現するプログラムは、以下のような制御構造を持つ。すなわち、このプログラムは、図5のプログラムで抽出された共起データの単語列パターンの全てに対して、以下のステップ132を実行するステップ130を含む。
【0042】
ステップ132は、処理対象となる単語列パターンをキーとし、「○○で<キーとなる単語列>を検索」、「××で<キーとなる単語列>をチェック」、「△△で<キーとなる単語列>をサーチ」等の形の共起データを構文解析情報まで含めて共起DB52内で検索して出力するステップ140と、ステップ140で検索された共起データの共起頻度に、キーとなる単語列が検索されたときの共起頻度を乗じることにより、ステップ140で検索された全ての共起データの共起頻度を計算するステップ142と、ステップ142で計算された共起頻度の降順に、ステップ140で検索された共起データをソートするステップ144と、ステップ144でソートされた共起データのうち上位所定個数の中に、新規な共起データがあるか否かを判定し、その結果により制御の流れを分岐させるステップ145とを含む。ステップ145の判定が否定であればこnプログラムは実行を終了し、親プログラムに制御を戻す。
【0043】
以下に説明するように、図6に制御構造を示すプログラムは再帰的に実行され、処理を終了するとその処理の中で検索された共起データの集合(またはそれらの記憶されたロケーションへのポインタ)を戻り値として返す。ステップ145の判定は、そのように再帰的に検索された共起データの集合と、ステップ140で検索されステップ142及び144の処理で共起頻度によりソートされたものの内の上位の所定個数とを比較することにより行なわれる。
【0044】
このプログラムはさらに、ステップ145の判定が肯定のときに実行され、ステップ144でソートされた共起データのうちの上位の所定個数のうち、新規なもののみを選択して戻り値の集合に格納するステップ146と、ステップ146で新たに格納された共起データを引数として自己(図6に制御構造を示すプログラム)を先的に呼び出し、その戻り値を戻り値に追加するステップ148とを含む。こうして一連の再帰的な処理により得られた一群の共起データが、最初に処理対象として選択された単語列パターンの共起チェーンをなす。
【0045】
図7を参照して、サービス/URL対照DBを検索し、URLを抽出する処理を実現するプログラムは以下の制御構造を持つ。すなわち、このプログラムは、図6に示す処理で抽出された共起データ(以下これを「関連共起データ」と呼ぶ。)の各々対し、以下のステップ162の処理を実行するステップ160を含む。
【0046】
ステップ162は、関連共起データ内の単語列パターンに含まれる単語列をキーにして、サービス名/URL対照DB62を検索し、当該単語列と一致するサービス名を抽出するステップ170と、ステップ170での検索の結果、条件を満たすようなサービス名がサービス名/URL対照DB62に存在するか否かを判定するステップ172と、ステップ172の判定が肯定のときに、サービス名/URL対照DB62で検索されたサービス名に対応するURLを、この共起チェーンとともに出力するステップ174とを含む。ステップ172の判定が否定の場合、処理対象となっている単語列パターンに対しては何も処理をしない。
【0047】
図8を参照して、マッピングコーパス記憶部66に記憶されたマッピングコーパスと、図7に示すプログラムにより抽出された共起チェーン内の単語列パターンとを用いてクエリを作成するプログラムは、以下のような制御構造を持つ。すなわちこのプログラムは、共起チェーンに含まれる各共起データについて、以下のステップ192を実行することにより1または複数のクエリ文を生成するステップ190と、ステップ190の処理の完了後、ステップ190で得られたクエリの中で最も高い確率(スコア)が割当てられたクエリを選択して出力し、処理を終了するステップ194とを含む。
【0048】
ステップ192は、マッピングコーパス記憶部66に含まれるマッピング文対の各々に対して、以下のステップ202を実行するステップ200を含む。
【0049】
ステップ202は、マッピング文対のサービス名が、処理対象の共起チェーンに付されたサービス名と一致するか否かを判定するステップ208を含む。ステップ208の判定が否定のときには、制御は次のマッピング文の処理に進む。判定が肯定のときには以下に述べる処理を実行する。
【0050】
すなわち、ステップ202はさらに、処理対象のマッピング対内のマッピング文の変数フィールドと、共起データに含まれる単語または単語列とで、属性(単語クラス)がマッチするものが存在するか否かを判定するステップ210と、ステップ210の判定が肯定のときに、マッピング対内のクエリテンプレートの入力フィールドのうち、そのような変数フィールドがマッピングされたもののすべてに、属性がマッチする単語または単語列を挿入するステップ212と、共起データ内でマッチした単語または単語列と、対応する変数フィールドに挿入されていた単語または単語列との間の意味的距離、それぞれの単語または単語列の文脈情報、及びそれら単語または単語列の単語クラスとにしたがってスコアを算出し、スコアに基づいて確率を調整するステップ214と、マッピング文に「GPS」タグが付された入力フィールドがあるか否かを判定するステップ216と、ステップ216の判定が肯定のときに、その入力フィールドにGPS装置38の出力と変数フィールドの属性とを用いて決定した単語を挿入して、得られたクエリを出力するステップ218とを含む。ステップ210の判定では、例えば入力フィールドの属性である単語クラスと、共起データ中の単語の単語クラスとの意味的距離が所定のしきい値以下であれば、両者がマッチするものと判定する。ステップ214では、マッチ時の単語の間の意味的距離が大きければスコアが相対的に小さく、意味的距離が小さければスコアが相対的に大きくなるように、文脈の一致が大きければスコアが相対的に大きく、文脈の一致が小さければスコアが相対的に小さくなるように、クエリにスコアを付与し、そのスコアの値にしたがって確率を調整する。
【0051】
ステップ202はさらに、ステップ210の判定が否定のときに、クエリに割当てられる確率を、予め定められた最小の確率に設定するステップ220と、最小の確率が割当てられたNULLのクエリを出力するステップ222とを含む。
【0052】
なお、ステップ216の判定が否定の時には、ステップ218の処理をすることなく、作成済みのクエリがクエリとして出力される。
【0053】
図9を参照して、図8に示す処理により生成されたクエリを用いてブラウザを起動する処理を実現するプログラムは、以下のような制御構造を持つ。すなわち、このプログラムは、与えられたクエリがヌルか否かを判定するステップ260と、ステップ260の判定が否定のとき(すなわちクエリがヌルでないとき)に、クエリに付されているサイトURLに、クエリを送信する指示とともにブラウザを起動して処理を終了するステップ264と、ステップ260の判定が肯定のときに、クエリに付されているサイトURLにアクセスする指示と共にブラウザを起動し処理を終了するステップ262とを含む。ステップ264の処理が実行されると、ブラウザは起動とともに、指定されたURLに指定されたクエリを発行する。その結果、ブラウザには、そのクエリに対する結果が表示される。一方、ステップ262の処理が実行された場合、ブラウザは単に指定されたURLのサイトを開くだけである。利用者が手操作で検索キーワードを入力することになる。
【0054】
[動作]
以上、構成について詳細に説明した情報検索装置システム20は以下のように動作する。なお、この処理に先立ち、Webコーパス32にはWebから収集した大量の機械可読な文章が蓄積されているものとする。
【0055】
図1を参照して、最初に、共起データ作成装置50が、Webコーパス32を処理して共起DB52を生成する。このとき共起データ作成装置50は、Webコーパス32中の各文を形態素解析して各単語に品詞等の属性情報を付与するとともに、シソーラス54を参照して各単語の単語クラスの情報も属性情報として付与する。
【0056】
発話者が何か情報を入手しようとする場合を考える。例えば何かを食べたいときには、利用者は「☆☆が食べたい」等という発話を発すればよい。図1を参照して、発話者が何か発話すると、音声認識装置36がその発話を音声認識し、テキスト(文字列)として対象文フィルタ56に与える。対象文フィルタ56は、入力されたテキストに対し、形態素解析及び構文解析を行ない、処理の対象となる単語列パターンを1または複数個、共起データ検索部58に与える。共起データ検索部58は、与えられた単語列パターンの各々についてシソーラス54を参照して単語クラスを示すタグを付与する(図5、ステップ110)。共起データ検索部58はさらに、共起DB52を参照して、与えられた単語列パターンと共起する単語列パターンであって、共起頻度がしきい値以上のものを検索する(ステップ112)。この際、対象文フィルタ56は、入力された単語列パターンと完全に一致するものを含む共起データだけではなく、入力された単語列パターンの単語クラスに基づき、意味的な距離がしきい値以下のものを含む共起データも検索する。ただしこの場合、共起頻度はその分だけ低く調整される。検索された共起データには、このようにして調整された共起頻度が確率として付与される。対象文フィルタ56は、検索された共起データのうち、共起頻度(確率)が上位の所定個数のみを関連共起データ検索部60に出力する(ステップ104)。
【0057】
関連共起データ検索部60は、対象文フィルタ56により検索された共起データのうち、対象文フィルタ56から出力された単語列パターンとは異なる単語列パターンを抽出し、その単語列を含み、かつ特定の形態の共起データを共起DB52内で再帰的に検索する(図6、ステップ140からステップ148)。特定の形態とは、主に、「○○で××を検索」、「○○で××をチェック」、「○○で××をサーチ」、「○○で××を探す」等、助詞の「で」を伴う語句である。なおこの例で「××」が、共起データ検索部58により共起DB52から検索された共起データから抽出された単語列パターン内の単語に相当する。以上のような処理により対象文フィルタ56から出力された単語列パターンの共起チェーンが作成される。この場合にも各単語列パターンには、確率が付与される。この場合の確率は、共起データ検索部58から出力される単語列パターンに付与されていた確率と、関連共起データ検索部60により検索された共起データに付与されていた共起頻度との積である(ステップ142)。
【0058】
関連共起データ検索部60はさらに、このようにして検索された共起データの中で、確率が上位の所定個数のみを、確率を付してサービス名推定部64に与える(ステップ144及びステップ146)。
【0059】
サービス名推定部64は、関連共起データ検索部60により検索された共起データの中の「○○で」に相当する部分の単語列と合致するサービス名がサービス名/URL対照DB62に存在するか否かを判定する(図7、ステップ170)。そうしたサービス名が存在すると(ステップ172の判定が肯定)、サービス名推定部64は、そのサービス名と、そのサービス名に対応するURLとを、共起チェーンを構成する単語列パターンとともにクエリ作成部68に与える(ステップ174)。
【0060】
クエリ作成部68は、マッピングコーパス記憶部66を参照して、サービス名推定部64から出力されたサービス名と、マッピングコーパス記憶部66から読み出したマッピング文対とを比較し(図8、ステップ208)、サービス名が一致するものがあれば(ステップ208の判定が肯定)、そのマッピング文対のうち、マッピング文の変数フィールドに指定された属性と共起チェーン内の単語列パターン内の単語列の属性とを比較する(ステップ210)。一致するものがあれば(ステップ210の判定が肯定)、その単語列をそのテンプレートの、その変数フィールドがマッピングされた入力フィールドに代入する(ステップ212)。クエリ作成部68は、このようにして作成されたクエリの確率を、マッチした単語とマッピング文のその変数の位置に挿入されていた単語との単語クラスの距離、単語の類似度、およびそれら単語の周囲の文脈情報により計算されるスコアで調整する(ステップ214)。クエリ作成部68はさらに、変数フィールドに、「GPS」という属性が指定されたものがあるか否か判定し(ステップ216)、あれば、GPS装置38の出力とその変数フィールドに付された属性とを用いて定めた値(例えばGPSで得られた位置に最も近い駅名など)をその入力フィールドに代入し出力する(ステップ218)。
【0061】
マッピング文の変数フィールドの中に、処理対象の共起データに含まれる単語列パターンとマッチするものがなければ(図8、ステップ210でNO)、クエリの確率を予め定めた最小値に設定し(ステップ220)、その確率が割当てられたNULLのクエリを出力する(ステップ222)。
【0062】
クエリ作成部68は、このようにして共起チェーン内の全共起データと全マッピング文対とについて、可能であればクエリを作成し蓄積する。クエリ作成部68は最後に、蓄積されたテンプレートのうちで最も確率の高いものをクエリとして選択し、そのURLとともにブラウザ起動処理部70に与える(ステップ194)。
【0063】
ブラウザ起動処理部70は、クエリ作成部68から与えられたクエリを、指定されたURLに送信する指示とともにブラウザ40に送信し、ブラウザ40を起動する。ブラウザ40は、起動するとともにそのクエリがNULLか否かを判定する(図9、ステップ260)。クエリがNULLでなければ(ステップ260の判定が否定)ならブラウザ起動処理部70は、与えられたクエリを指定されたURLに送信し、その結果を表示する。したがってブラウザ40には、発話34に含まれる単語列に基づき、Webコーパス32から得られた共起データを使用することにより推定されたサービス提供サイトから得られた情報が表示される。クエリがNULLであれば(ステップ260の判定が肯定)、ブラウザ起動処理部70は。与えられたクエリに付されていたURLにアクセスし、そのページを開く。利用者はそのページに検索のためのキーワードを入力する。
【0064】
以上のように本実施の形態によれば、利用者は、単に自分が知りたい情報について発話34を発するだけでよく、そうした情報を提供するサービスサイト名を知る必要もないし、そのURLを知る必要もない。その結果、本実施の形態に係る情報検索装置システム20によれば、インターネット上のサービスに関する知識も、検索語に関する知識も乏しい利用者が、簡単に自分が必要とする情報を入手できる。
【0065】
なお上記した実施の形態では、サービス名を推定するための共起データを検索する際、助詞「で」を含むものを検索する。しかし本発明はそのような実施の形態には限定されない。助詞「で」だけでなく、「を使って」、「において」等、他の表現を加えることもできる。また、上記例では「○○で××を検索」のような語順のものを挙げたが、これに限らず「××を○○で検索」という語順のものの検索対象となる。これらの他にも、インターネット上のサービス名を含む表現は、インターネット上には他にも多数ある物と考えられる。それらが見出されるたびに関連共起データ検索部60での検索において、検索対象に加えればよい。
【0066】
上記した実施の形態は、図1に示すように単独の装置上に構築することを前提としている。しかし、図1を当業者が見れば容易に分かるように、このシステムはいくつかの部分に分割することができる。例えば図1において、発話34の入力を受ける部分とそれ以外の部分とは別にすることができる。さらに、音声認識装置36と対象文フィルタ56との間でも装置を分割することができる。
【0067】
図10にそのような例を示す。図10に示すシステムは、音声信号をデジタル化して所定のURLに送信する機能を持つ携帯電話300と、携帯電話300から送信された音声信号に対し、図1に示す音声認識装置36以下の処理を実行し、その結果、ブラウザ起動処理部70から得られる出力をブラウザ起動命令として携帯電話300に返信する情報検索サーバコンピュータ330とを含む。情報検索サーバコンピュータ330からのブラウザ起動命令を受信した携帯電話300がブラウザを起動し、指定されたURLに指定されたクエリを送信することで、そのURLにより指定されたサーバサイトからの情報が携帯電話300のブラウザ画面に表示される。ただし、図1のクエリ作成部68において、携帯電話300に設けられているGPS装置の出力を使用してクエリを作成する必要がある。そのため、情報検索サーバコンピュータ330に仮にGPS装置が設けられていても、その出力をクエリに挿入することはできない。この問題は種々の方法で回避できる。
【0068】
第1の方法は、携帯電話300から情報検索サーバコンピュータ330に音声信号を送信するときに、携帯電話300に備えられたGPS装置の出力も情報検索サーバコンピュータ330に送信する、というものである。この場合、クエリ作成部68は、クエリテンプレートに「GPS」というタグが付された入力フィールドがある場合、携帯電話300から送信された位置情報をその入力フィールドに代入する。
【0069】
第2の方法は、クエリ作成部68ではクエリテンプレートに「GPS」というタグが付されている入力フィールドがあるときには、その部分をそのまま残しておく、という方法である。この場合、ブラウザ起動処理部70からブラウザ起動命令を受けた携帯電話300が、クエリ中の「GPS」というタグが付された入力フィールドに、自分の持つGPS装置の出力を挿入してから、指定されたURLにそのクエリを送信すればよい。
【0070】
このほかにも種々の方法が可能であるが、上記した2つが代表的な方法である。
【0071】
なお、図1に示す例では、情報検索装置30は共起データ作成装置50を含んでいる。しかし、情報検索装置30が動作するためには、共起DB52が存在していればよく、共起データ作成装置50は必ずしも必要ではない。共起DB52は、例えばネットワーク上の別のサーバで作成され、情報検索装置30がその共起DB52を受信して記憶装置に保存するようにしてもよい。
【0072】
図10に示す例では、携帯電話300は音声信号をデジタル化して情報検索サーバコンピュータ330に送信している。これは、携帯電話300の利用できるハードウェアリソースに限りがあるためである。携帯電話300がより高機能な端末であれば、例えば発話34を音声認識する音声認識装置36を携帯電話300内のソフトウェアにより実現し、認識結果のテキストを情報検索サーバコンピュータ330に送信するようにしてもよい。
【0073】
[コンピュータによる実現]
図10に示す情報検索サーバコンピュータ330は、図1に示す情報検索装置システム20のうち、音声認識装置36を除いた構成を持つ。ハードウェア的には、情報検索サーバコンピュータ330は、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現できる。プログラムの主要な部分の制御構造については図5〜図9に示し、データの例は図2〜図4に示した。
【0074】
図10を参照して、この情報検索サーバコンピュータ330は、FD(フレキシブルディスク)ドライブ352およびCD−ROM(コンパクトディスク読出専用メモリ)ドライブ350を有するコンピュータ340と、キーボード346と、マウス348と、モニタ342とを含む。
【0075】
図9を参照して、コンピュータ340は、FDドライブ352およびCD−ROMドライブ350に加えて、CPU(中央処理装置)356と、CPU356、FDドライブ352およびCD−ROMドライブ350に接続されたバス366と、ブートアッププログラム等を記憶する読出専用メモリ(ROM)358と、バス366に接続され、プログラム命令、システムプログラム、および作業データ等を記憶するランダムアクセスメモリ(RAM)360とを含む。情報検索サーバコンピュータ330はさらに、インターネットへの接続を提供するネットワークインターフェイス(I/F)344を含む。図示しないが、コンピュータ340はネットワークI/F344を介して携帯電話ネットワークと接続されており、携帯電話300とデータ通信を行なうことができる。
【0076】
情報検索サーバコンピュータ330に情報検索装置30としての動作を行なわせるためのコンピュータプログラムは、CD−ROMドライブ350またはFDドライブ352に挿入されるCD−ROM362またはFD364に記憶され、さらにハードディスク354に転送される。または、プログラムは図示しないネットワークを通じてコンピュータ340に送信されハードディスク354に記憶されてもよい。プログラムは実行の際にRAM360にロードされる。CD−ROM362から、FD364から、またはネットワークを介して、直接にRAM360にプログラムをロードしてもよい。
【0077】
このプログラムは、コンピュータ340にこの実施の形態の情報検索装置30として動作を行なわせる複数の命令を含む。この動作を行なわせるのに必要な基本的機能のいくつかはコンピュータ340上で動作するオペレーティングシステム(OS)もしくはサードパーティのプログラム、またはコンピュータ340にインストールされる各種ツールキットのモジュールにより提供される。従って、このプログラムはこの実施の形態のシステムおよび方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能または「ツール」を呼出すことにより、上記した情報検索装置システム20としての動作を実行する命令のみを含んでいればよい。
【0078】
なお、図1に示すWebコーパス32、シソーラス54、共起DB52、サービス名/URL対照DB62、及びマッピングコーパス記憶部66等は、いずれも図9に示すハードディスク354またはRAM360により実現される。特に、例えばWebコーパス32、共起DB52、シソーラス54、サービス名/URL対照DB62及びマッピングコーパス記憶部66等は通常はハードディスク354に記憶されており、プログラムの実行時、必要に応じてRAM360にロードされる。
【0079】
情報検索サーバコンピュータ330は一般的なコンピュータにより実現される。コンピュータ一般の動作は周知であるので、ここではその詳細は繰返さない。
【0080】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【0081】
20 情報検索装置システム
30 情報検索装置
32 Webコーパス
34 発話
36 音声認識装置
38 GPS装置
40 ブラウザ
50 共起データ作成装置
52 共起DB
54 シソーラス
56 対象文フィルタ
58 共起データ検索部
60 関連共起データ検索部
62 サービス名/URL対照DB
64 サービス名推定部
66 マッピングコーパス記憶部
68 クエリ作成部
70 ブラウザ起動処理部
【特許請求の範囲】
【請求項1】
ある単語列と他の単語列とを含む単語列対と、当該単語列対の共起頻度とを多数記憶する共起データベースと、
自然言語のテキストが入力されたことに応答して、入力されるテキストから1または複数の単語列を抽出するための単語列抽出手段と、
前記単語列抽出手段から出力される1または複数の単語列の各々について、前記共起データベースを参照して、当該単語列を起点とする共起チェーン内の単語列であって、所定の条件を満たす単語列を抽出するための共起データ抽出手段と、
ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのクエリのテンプレートとを互いに関連付けて複数個記憶するためのサービス名データベースと、
前記共起データ抽出手段により抽出された単語列を含むサービス名と関連付けられたクエリのテンプレートを前記サービス名データベースから読出し、当該単語列の属する共起チェーンに基づいて当該サービスを利用するためのクエリを作成するためのクエリ作成手段と含む、情報検索装置。
【請求項2】
請求項1に記載の情報検索装置であって、
前記共起データ抽出手段は、
前記単語列抽出手段から出力される1または複数の単語列の各々について、前記共起データベースを参照して、当該単語列を含む第1の単語列対を検索するための第1の検索手段と、
前記第1の検索手段により検索された1または複数個の前記第1の単語列対において、前記単語列抽出手段から出力された単語列と対になっている単語列を抽出し、当該抽出された単語列を含む第2の単語列対を前記共起データベースから検索するための第2の検索手段と、
前記第2の検索手段により検索された前記第2の単語列対において、前記第2の検索手段による検索で用いられた単語列と対を成す、予め定められる形式の単語列を特定し、当該単語列内の名詞または名詞句を前記クエリ作成手段に前記単語列として与えるための単語列特定手段とを含む、情報検索装置。
【請求項3】
請求項2に記載の情報検索装置であって、
前記単語列特定手段は、前記第2の検索手段により検索された前記第2の単語列対において、前記第2の検索手段による検索で用いられた単語列と対を成す単語列に含まれる、所定の単語列を伴う名詞または名詞句であって、かつ前記サービス名データベースに含まれるサービス名と一致するものを特定し、当該名詞または名詞句を前記クエリ作成手段に前記単語列として与えるための手段を含む、情報検索装置。
【請求項4】
請求項1に記載の情報検索装置であって、
前記クエリのテンプレートの各々は、検索のための情報が入力される入力フィールドを持ち、
前記サービス名データベースは、ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのクエリのテンプレートと、当該テンプレートに対応する自然言語の文であって、前記テンプレートの入力フィールドにマッピングされる、変数フィールドを含むマッピング文とを互いに関連付けて複数個記憶するためのマッピング文コーパスデータベースを含み、
前記クエリ作成手段は、
前記共起データ抽出手段により抽出された単語列を含むサービス名をキーにしてマッピング文及びクエリテンプレートを前記マッピング文コーパスデータベースから読出すための読出手段と、
前記共起チェーンに含まれる単語列と、前記テンプレート読出手段により読出されたマッピング文との比較により、前記共起チェーンに含まれる単語のうち、マッピング文に含まれる変数フィールドに対応する単語列を特定し、さらに当該変数フィールドがマッピングされた入力フィールドに当該単語列を代入することにより、前記読出手段により読出されたサービス名によるサービスを利用するためのクエリを作成するための手段とを含む、情報検索装置。
【請求項5】
請求項1に記載の情報検索装置であって、
前記共起データベースに含まれる単語列内の単語には、それぞれ単語クラスを表す単語クラス情報が付されており、
前記共起データ抽出手段は、
各単語の単語クラスを特定するための単語クラス辞書と、
前記単語列抽出手段から出力される1または複数の単語列の各々について、前記共起データベース及び前記単語クラス辞書を参照して、当該単語列を起点とする共起チェーン内の単語列であって、前記単語列に含まれる単語の単語クラスと共通する単語クラスの単語を含む単語列を抽出するための手段とを含む、情報検索装置。
【請求項6】
コンピュータを、
ある単語列と他の単語列とを含む単語列対と、当該単語列対の共起頻度とを多数記憶する共起データベースと、
自然言語のテキストが入力されたことに応答して、入力されるテキストから1または複数の単語列を抽出するための単語列抽出手段と、
前記単語列抽出手段から出力される1または複数の単語列の各々について、前記共起データベースを参照して、当該単語列を起点とする共起チェーン内の単語列であって、所定の条件を満たす単語列を抽出するための共起データ抽出手段と、
ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのURLとを互いに関連付けて複数個記憶するためのサービス名データベースと、
前記共起データ抽出手段により抽出された単語列を含むサービス名と関連付けられたURLを前記サービス名データベースから読出し、当該単語列の属する共起チェーンに基づいて当該URLで提供されるサービスを利用するためのクエリを作成するためのクエリ作成手段として機能させる、コンピュータプログラム。
【請求項1】
ある単語列と他の単語列とを含む単語列対と、当該単語列対の共起頻度とを多数記憶する共起データベースと、
自然言語のテキストが入力されたことに応答して、入力されるテキストから1または複数の単語列を抽出するための単語列抽出手段と、
前記単語列抽出手段から出力される1または複数の単語列の各々について、前記共起データベースを参照して、当該単語列を起点とする共起チェーン内の単語列であって、所定の条件を満たす単語列を抽出するための共起データ抽出手段と、
ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのクエリのテンプレートとを互いに関連付けて複数個記憶するためのサービス名データベースと、
前記共起データ抽出手段により抽出された単語列を含むサービス名と関連付けられたクエリのテンプレートを前記サービス名データベースから読出し、当該単語列の属する共起チェーンに基づいて当該サービスを利用するためのクエリを作成するためのクエリ作成手段と含む、情報検索装置。
【請求項2】
請求項1に記載の情報検索装置であって、
前記共起データ抽出手段は、
前記単語列抽出手段から出力される1または複数の単語列の各々について、前記共起データベースを参照して、当該単語列を含む第1の単語列対を検索するための第1の検索手段と、
前記第1の検索手段により検索された1または複数個の前記第1の単語列対において、前記単語列抽出手段から出力された単語列と対になっている単語列を抽出し、当該抽出された単語列を含む第2の単語列対を前記共起データベースから検索するための第2の検索手段と、
前記第2の検索手段により検索された前記第2の単語列対において、前記第2の検索手段による検索で用いられた単語列と対を成す、予め定められる形式の単語列を特定し、当該単語列内の名詞または名詞句を前記クエリ作成手段に前記単語列として与えるための単語列特定手段とを含む、情報検索装置。
【請求項3】
請求項2に記載の情報検索装置であって、
前記単語列特定手段は、前記第2の検索手段により検索された前記第2の単語列対において、前記第2の検索手段による検索で用いられた単語列と対を成す単語列に含まれる、所定の単語列を伴う名詞または名詞句であって、かつ前記サービス名データベースに含まれるサービス名と一致するものを特定し、当該名詞または名詞句を前記クエリ作成手段に前記単語列として与えるための手段を含む、情報検索装置。
【請求項4】
請求項1に記載の情報検索装置であって、
前記クエリのテンプレートの各々は、検索のための情報が入力される入力フィールドを持ち、
前記サービス名データベースは、ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのクエリのテンプレートと、当該テンプレートに対応する自然言語の文であって、前記テンプレートの入力フィールドにマッピングされる、変数フィールドを含むマッピング文とを互いに関連付けて複数個記憶するためのマッピング文コーパスデータベースを含み、
前記クエリ作成手段は、
前記共起データ抽出手段により抽出された単語列を含むサービス名をキーにしてマッピング文及びクエリテンプレートを前記マッピング文コーパスデータベースから読出すための読出手段と、
前記共起チェーンに含まれる単語列と、前記テンプレート読出手段により読出されたマッピング文との比較により、前記共起チェーンに含まれる単語のうち、マッピング文に含まれる変数フィールドに対応する単語列を特定し、さらに当該変数フィールドがマッピングされた入力フィールドに当該単語列を代入することにより、前記読出手段により読出されたサービス名によるサービスを利用するためのクエリを作成するための手段とを含む、情報検索装置。
【請求項5】
請求項1に記載の情報検索装置であって、
前記共起データベースに含まれる単語列内の単語には、それぞれ単語クラスを表す単語クラス情報が付されており、
前記共起データ抽出手段は、
各単語の単語クラスを特定するための単語クラス辞書と、
前記単語列抽出手段から出力される1または複数の単語列の各々について、前記共起データベース及び前記単語クラス辞書を参照して、当該単語列を起点とする共起チェーン内の単語列であって、前記単語列に含まれる単語の単語クラスと共通する単語クラスの単語を含む単語列を抽出するための手段とを含む、情報検索装置。
【請求項6】
コンピュータを、
ある単語列と他の単語列とを含む単語列対と、当該単語列対の共起頻度とを多数記憶する共起データベースと、
自然言語のテキストが入力されたことに応答して、入力されるテキストから1または複数の単語列を抽出するための単語列抽出手段と、
前記単語列抽出手段から出力される1または複数の単語列の各々について、前記共起データベースを参照して、当該単語列を起点とする共起チェーン内の単語列であって、所定の条件を満たす単語列を抽出するための共起データ抽出手段と、
ネットワークを介して提供されるサービスのサービス名と、当該サービスにアクセスするためのURLとを互いに関連付けて複数個記憶するためのサービス名データベースと、
前記共起データ抽出手段により抽出された単語列を含むサービス名と関連付けられたURLを前記サービス名データベースから読出し、当該単語列の属する共起チェーンに基づいて当該URLで提供されるサービスを利用するためのクエリを作成するためのクエリ作成手段として機能させる、コンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−79160(P2012−79160A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−224871(P2010−224871)
【出願日】平成22年10月4日(2010.10.4)
【出願人】(301022471)独立行政法人情報通信研究機構 (1,071)
【Fターム(参考)】
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願日】平成22年10月4日(2010.10.4)
【出願人】(301022471)独立行政法人情報通信研究機構 (1,071)
【Fターム(参考)】
[ Back to top ]