<実施形態>
以下に、本発明の実施形態について、図面を用いて説明する。
本実施形態の情報分析システムの構成及び処理について説明する。また、具体的な例として、文書が登録された文書データベースを検索し、検索された文書を分析する処理について説明する。
図1は、本発明の実施形態の数値表現を利用した情報分析システムの構成を示すブロック図である。
本実施形態の情報分析システムは、ユーザインタフェース部101、分析クエリ処理部102、分析結果一覧表示部103、データ登録部104、文書データベース105、数値表現処理部106、説明語抽出部107、及び、文書内容表示部108を備える。
また、本実施形態の情報分析システムは、少なくとも一以上のプロセッサ、少なくとも一以上のメモリ、記憶装置、キーボード、ポインティングデバイス等の情報入力装置、及び、モニタディスプレイ等の情報出力装置を備える。記憶装置は、各種プログラム及び電子文書のデータを格納する。メモリは、プロセッサによって実行される各種プログラムを格納する。プロセッサは、記憶装置に格納された各種プログラムをメモリにロードし、ロードされた各種プログラムを実行することによって、各部の処理を実現してもよい。
なお、本実施形態の情報分析システムは、例えば、端末及びサーバによって構成されてもよい。この場合、端末は、ユーザインタフェース部101、分析クエリ処理部102、分析結果一覧表示部103、数値表現処理部106、及び、文書内容表示部108を備える。また、サーバは、データ登録部104、数値表現処理部106、説明語抽出部107、及び、文書データベース105を備える。
また、本実施形態の情報分析システムは、ブラウザの機能のみを備えた端末、及び、サーバによって構成されてもよい。この場合、端末は、ユーザインタフェース部101のみを備える。また、サーバは、分析クエリ処理部102、分析結果一覧表示部103、データ登録部104、文書データベース105、数値表現処理部106、説明語抽出部107、及び、文書内容表示部108を備える。
図1に示した情報分析システムは、大きく分けて2種類の処理を実行する。第1に、情報分析システムは、利用者がシステムと対話的に実行する情報分析作業のための入出力処理を実行する。第2に、情報分析システムは、解析対象の文書を文書データベースに登録する文書登録処理を実行する。
入出力処理は、ユーザインタフェース部101、分析クエリ処理部102、分析結果一覧表示部103、文書データベース105、数値表現処理部106、及び、文書内容表示部108によって実現される。
利用者は、ユーザインタフェース部101に分析クエリを入力する。ここで、分析クエリとは、文書の検索又は分類に用いるキーフレーズ及びファセットの値である。分析クエリの詳細については、後述する。
分析クエリ処理部102は、利用者によって入力された分析クエリを文書データベース105に対する分析命令に変換する。なお、分析命令の形式は、文書データベース105の種類に依存する。例えば、文書データベース105として関係データベースを用いる場合には、検索実行命令は、SQL(Structured Query Langage)によって表現される。また、XMLデータベースを用いる場合には、検索実行命令は、XQueryによって表現される。また、全文検索システムを用いて文書データベース105を構築する場合には、専用の検索言語を使用してもよい。
分析クエリ処理部102は、数値表現処理部106を用いて、分析クエリに含まれる数値表現を処理する。
分析結果一覧表示部103は、文書データベース105から送信された分析結果を受信し、受信した分析結果をユーザインタフェース部101に表示することができる画面データに変換し、変換された画面データをユーザインタフェース部101に送信する。例えば、端末でウェブブラウザが実行される場合には、分析結果一覧表示部103は、文書データベース105から送信された分析結果をHTML形式のデータに変換する。なお、本実施形態では、端末は、ウェブブラウザを使用しなくてもよい。また、画面に表示するためのデータは、HTML形式に制限する必要はない。
文書内容表示部108は、利用者がユーザインタフェース部101に表示された画面から、閲覧したい文書を選択した場合には、文書の内容を表示するための要求を文書データベース105に送信する。文書データベース105は、文書の内容を文書内容表示部108に送信する。文書内容表示部108は、送信された文書の内容をユーザインタフェース部101が表示することができる形式(例えば、HTML)に変換して、ユーザインタフェース部101に送信する。
文書登録処理は、データ登録部104、数値表現処理部106、説明語抽出部107及び文書データベース105によって実現される。
データ登録部104は、数値表現処理部106及び説明語抽出部107を用いて、分析対象となる入力文書から、分析に必要なデータを抽出し、抽出された分析に必要なデータを入力文書に付加した後、入力文書を文書データベース105に登録する。ここで、分析に必要なデータとは、数値表現とその数値表現の説明語である。ここで、説明語とは数値表現の数値が何についての数値かを説明する入力文書中の単語である。
以下に、文書登録処理の詳細について説明する。
図3は、本発明の実施形態の文書登録処理を示すフローチャートである。
文書登録処理には、文書ファイル入力処理501、文書部分抽出処理502、数値表現抽出処理503、数値化処理504、換算処理505、説明語抽出処理506、文書整形処理507、及び、文書出力処理508がある。
まず、文書ファイル入力処理501において、データ登録部104は、分析対象となる文書を入力する。文書は、ワードプロセッサ等によって作成された文書ファイルでもよいし、光学式文字読取装置(OCR)等によって電子化された文書ファイルでもよい。ただし、どちらの場合でも、文書は文字コード化されている。なお、文字コードには、任意のコードを用いることができる。
次に、文書部分抽出処理502において、データ登録部104は、入力された文書ファイルから文書部分を抽出する。ここで、文書部分とは、当該文書ファイルの内容と考えられるプレーンテキストの部分である。文書部分を抽出するとは、入力された文書ファイルからフォーマット情報及びメタデータを取り除く処理である。
次に、数値表現抽出処理503において、データ登録部104は、数値表現処理部106を用い、抽出された文書部分から数値表現を抽出する。ここで、数値表現とは、アラビア数字又は漢数字等で表記される数値、単位、助数詞、範囲表現(「〜」、「から」等の範囲を表す表現)を含む数字文字列の部分である。本実施形態では、数値表現に使われる数字文字列を検索するために、正規表現に基づくパターンを記述し、そのパターンと文書中に含まれる数値表現の数字文字列とを照合することによって、数値表現を抽出するが、その他の方法でもよい。ここで、正規表現とは、複数の数字列及び文字列を一つのパターンで表現する方法である。
次に、数値化処理504において、データ登録部104は、数値表現処理部106を用い、抽出された数値表現に含まれる数字列(ただし、範囲表現を含む)を、具体的な値(整数値、又は、実数値)に変換する。なお、数字列は範囲表現を含むため、変換された値は、数字列に含まれる数値の最大値と最小値とが出力されてもよい。例えば、「百から二百」という数字列は、「最大値:200、最小値:100」として出力される。
以下に、数値化処理504の詳細について説明する。
図4は、本発明の実施形態の数値化処理504の詳細を示すフローチャートである。
まず、数値表現処理部106は、数字列を取得する(601)。次に、数値表現処理部106は、取得した数字列がコンマを含むか否かを判定する(602)。ステップ602において、取得した数字列がコンマを含むと判定された場合には、数値表現処理部106は、ステップ603へ進む。一方、取得した数字列がコンマを含まないと判定された場合には、ステップ608へ進む。
数値表現処理部106は、コンマを含む数字列が3桁の位どりの形式であるか否かを判定する(603)。ステップ603において、コンマを含む数字列が3桁の位どりの形式であると判定された場合には、数値表現処理部106は、数字列からコンマを削除し、ステップ608へ進む。
ステップ603において、コンマを含む数字列が3桁の位どりの形式でないと判定された場合には、数値表現処理部106は、コンマの前後にある数字が連番であるか否かを判定する(604)。
ステップ604において、連番ではないと判定された場合には、数値表現処理部106は、コンマで数字を分割し(605)、ステップ608に進む。ステップ604において、連番であると判定された場合には、ステップ607に進む。
ステップ607では、変数A、B、C、Dが使用される。具体的には、数値表現処理部106は、コンマの前一文字をAに、コンマの後一文字をBに、数字列の先頭からコンマの二文字前までをCに、コンマの二文字後から数字列の末尾までをDに代入する。数値表現処理部106は、C、A、Dの順にその値を連結した数字列と、C、B、Dの順にその値を連結した数字列を作成する。以降では、この作成された数字列を処理する。ステップ608へ進む。
ステップ608では、変数V、C1、C2、Fが使用される。数値表現処理部106は、変数Vの初期値を「0」、変数C1の初期値を「1」、変数C2の初期値を「1」、変数Fの初期値を「0」とする(608)。次に、数値表現処理部106は、数字列の右(末尾)から順に1文字ずつ抽出する(609)。
数値表現処理部106は、抽出された数字の値が、漢数字の〇から九、及び、アラビア数字の0から9のいずれかであるか否かを判定する(610)。ステップ610において、〇から九、及び、0から9のいずれかであると判定された場合には、数値表現処理部106は、「数字の値」×C1×C2をVに加え、また、C1を10倍する(614)。
一方、ステップ610において、〇から九、及び、0から9のいずれでもないと判定された場合には、数値表現処理部106は、次に、数字の値が漢数字の十、百、千のいずれかであるか否かを判定する(611)。
ステップ611において、漢数字の十、百、千のいずれかであると判定された場合には、数値表現処理部106は、次に、Fが「1」であるか否かを判定する(615)。ステップ615において、Fが「1」であると判定された場合には、数値表現処理部106は、C1×C2をVに加える(616)。さらに、C1に数字の値(10、100、1000)を代入し、Fに「1」を代入する(617)。一方、ステップ615において、Fが「1」でないと判定された場合には、数値表現処理部106は、ステップ617に進む。
一方、ステップ611において、漢数字の十、百、千のいずれかでもないと判定された場合には、数値表現処理部106は、数字が漢数字の万、億、兆、京、亥のいずれかであるか否かを判定する(612)。
ステップ612において、漢数字の万、億、兆、京、亥のいずれかであると判定された場合には、数値表現処理部106は、次に、Fが「1」であるか否かを判定する(618)。一方、ステップ612において、漢数字の万、億、兆、京、亥のいずれかでもないと判定された場合には、数値表現処理部106は、エラーを出力し(613)、数値化処理504を終了する。
ステップ618において、Fが「1」であると判定された場合には、数値表現処理部106は、C1×C2をVに加える(619)。一方、ステップ618において、Fが「1」でないと判定された場合には、数値表現処理部106は、C2に数字の値(例えば、「10000」等)、C1に「1」、Fに「0」を代入する(620)。
次に、数値表現処理部106は、数字列のうち、まだ検査されていない桁が残っているか否かを判定する(621)。ステップ621において、検査されていない桁が残っていないと判定された場合には、数値表現処理部106は、Vを出力し(622)、数値化処理504を終了する。ステップ621において、検査されていない桁が残っていると判定された場合には、ステップ609以降を繰り返す。
図3の換算処理505の処理に戻る。
換算処理505において、数値表現処理部106は、数値表現に含まれる単位を、基準となる単位(以下、基準単位)に変換する。ここで、基準単位とは、利用者によって指定される単位であり、ある尺度の中で換算後に用いられる単位である。例えば、利用者によって長さの基準単位が「メートル」に指定されている場合には、文書中から抽出された数値表現「10cm」は「0.1メートル」に換算される。また、長さの基準単位が「センチメートル」に指定されている場合には、「0.1m」は「10センチメートル」に換算される。
以下に、換算処理505の詳細について、説明する。
図5は、本発明の実施形態の換算処理505に用いられる表を示す説明図である。
数値表現処理部106は、単位構造解析機能702及び計算機能703によって、基準単位選択用表701、接頭辞換算表704、及び、単位換算表705を用い、換算処理505を実行する。
基準単位選択用表701は、項目名として、単位又は助数詞711、尺度712、及び、尺度がとる基準単位713を含む。尺度712及び尺度がとる基準単位713は、計量法及び計量単位令を参考に定義される。なお、前述した法令に含まれない尺度及び基準単位が定義されてもよい。
数値表現処理部106は、数値表現に含まれる数値の右側に単位が与えられている場合には、基準単位選択用表701に基づいて、与えられた単位711に対応する基準単位を選ぶ。
また、数値表現処理部106は、尺度712が個数である、すなわち、数値表現に含まれる数値の右側に物の個数を数える助数詞(例えば、1個の「個」、1台の「台」等)が与えられている場合には、基準単位713を「個」とする。また、尺度712が含有量等の割合を示すものである場合には、基準単位713を「%」とする。
単位構造解析機能702は、文脈自由文法に基づく構文解析プログラムによって、単位の構造を解析する。具体的には、抽出された数値表現に含まれる単位を、単位の接頭辞と、単位とに分ける。例えば、「10cm」の「cm」を、接頭辞の「c」と単位の「m」とに分ける。ここで、文脈自由文法とは、プログラミング言語の設計、コンパイラの構文の解析に利用される形式文法の一つである。また、構文解析プログラムとは、文節間の係り受けの構造を解析するプログラムである。
計算機能703は、単位構造解析機能702によって単位の構造が解析された後、接頭辞換算表704及び単位換算表705を用いて、抽出された数値を基準単位に合うように換算する。接頭辞換算表704は、単位の接頭辞と、接頭辞によって表わされる10のN乗倍のNに相当する値とを含む。単位換算表705は、変換元単位714、基準単位715、及び、変換式716を含む。計算機能703は、数値表現から抽出された数値を変換式716のXに代入する。
例えば、文書中の数値表現に含まれる「10cm」を基準単位「メートル」に換算する場合には、計算機能703は、接頭辞換算表704によって、接頭辞「c」を「10の(−2)乗」とし、数値「10」×「10の(−2)乗」を計算する。また、単位換算表705によって、単位「m」を基準単位「メートル」とし、計算された数値「0.1」を変換式716のXに代入する。これによって、「10cm」は「0.1メートル」に換算される。
また、例えば、文書中の数値表現に含まれる「1m」を基準単位「センチメートル」に換算する場合には、計算機能703は、単位換算表705を用い、数値「1」を変換式「X×10の2乗」(図示省略)のXに代入する。これによって、「1m」は「100センチメートル」に換算される。
図3の説明語抽出機能506の処理に戻る。
説明語抽出処理506において、説明語抽出部107は、抽出された数値表現が何を表すのかを説明する単語(説明語)を文書から抽出する。なお、説明語は、数値表現の前後からn個が抽出される。本実施形態では、nを1としたが、nを2以上としてもよい。
なお、例えば、「藤畑勝之、外2名、「係り受けの制約と優先規則に基づく数量表現抽出」、情報処理学会、自然言語処理研究会NL−145−18、2001年9月、Vol.2001、No.86、p119−125」に記載された方法によって、数値表現と数値表現の前後の単語との係り受け関係から、説明語を抽出してもよい。ここで、「係り受けの制約と優先規則に基づく数量表現抽出」に記載された方法とは、数値表現と、数値表現に係る格助詞と、数値表現に係る名詞句及びその格助詞と、数値表現に係る名詞句及びその格助詞との組み合わせから、あらかじめ定義された規則に従って、数値表現が指し示すものが何かを推定する方法である。
次に、文書整形処理507において、データ登録部104は、抽出された数値の最大値、最小値、単位、及び、抽出された説明語を、元の文書に付加することによって、文書を整形する。
次に、文書出力処理508において、データ登録部104は、整形された文書を文書データベース105に送信する。送信された文書は、文書データベース105に登録される。
図6、図7は、各々、本発明の実施形態のデータ登録部に入力される文書の例、データ登録部によって文書登録処理された文書の例を示す説明図である。
例えば、図6に示す入力文書は、図3に示された文書登録処理によって処理されると、図7に示す文書になる。
本実施形態の情報分析システムは、図6に示した「文書」の「本文」の部分から数値表現を抽出し、抽出された数値表現の前後に出現する単語を説明語として抽出する。また、抽出された数値表現を整数値等の数値及び数値の単位に変換する。そして、変換された数値、単位及び説明語を文書に追加する。図6及び図7に示した例では、文書の構造は、XMLで記述されているが、本実施形態は、文書の構造を記述する方法を特に制限しない。
図7に示した文書は、文書データベース105に登録される。利用者は、登録された文書に付与された一意の文書識別子、元の文書に含まれる単語、及び、項目名(及びその値)の3つの方法を使って、登録された文書を検索することができる。ここで、項目名とは、図8Aから図8Dを用いて後述する各テーブルに含まれるカラムの名である。本実施形態の情報分析システムは、全文検索技術、関係データベース、及び、XMLデータベースを用いて、このような検索の機能を実現してもよい。本実施形態では、全文検索機能を追加した関係データベースを用いた。具体的には、オープンソースのデータベースPostgreSQLに、全文検索用のプログラムLudiaを追加したデータベースを用いた。また、関係データベースHiRDBに、全文検索用のプログラムTextSearch Plug−inを追加した商用のデータベースを用いてもよい。これらのデータベースは、すでに広く使われている技術であるため、前述したデータベースの詳細については説明しない。
以下に、文書データベース105に登録されるテーブルの形式について説明する。
図8A、図8B、図8C、図8Dは、各々、本発明の実施形態の関係データベースに登録される各テーブルの例を示す説明図である。
データ登録部104は、元の文書の内容を、全文検索の対象となるデータ型、例えば、図8Aから図8Dに示された、TABLE_AからTABLE_Dのすべての形式によって文書データベース105に登録する。
図8AのTABLE_Aは、文書識別子801、文書の見出し802、及び、文書の本文803を含む。
図8BのTABLE_Bは、文書識別子804、最大値805、最小値806、基準単位807、説明語1 808、及び、説明語2 809を含む。
図8CのTABLE_Cは、文書識別子810、及び、文書の項目(例えば、年811、月812、日813)を含む。
図8DのTABLE_Dは、文書識別子814、及び、文書の項目(例えば、出典815、面816)を含む。
TABLE_Bでは、抽出された数値表現から得られた数値の最大値と、最小値と、基準単位と、数値表現の前後から得られた説明語との組みが、文書識別子に対応付けられている。
また、TABLE_C及びTABLE_Dでは、元の文書に含まれる項目の値(例えば、図6に示した文書の項目「日付」2007年1月2日)が文書識別子に対応付けられて、テーブルに登録されている。
なお、本実施形態では、データ登録部104は、文書のデータを、複数のテーブルに分けて登録したが、すべてのデータを一つのテーブルにまとめて登録してもよい。
利用者は、文書に含まれる語(後述する分析クエリ)を用いた全文検索のほか、文書の「項目」の値を利用して、情報分析を実行してもよい。また、情報分析システムは、利用者によって入力された後(分析クエリ)に基づいて、全文検索を実行し、分析クエリを含む文書の集合を作成するだけでなく、ユーザによって指定された文書の項目(例えば、「日付」、「出典」等)ほかに基づいて、文書の集合を作成してもよい。
以下に、情報分析作業のための入出力処理について説明する。ユーザインタフェース部101は、情報分析作業において、利用者の入力作業を受け、得られた分析結果を利用者へ表示する。
図9は、本発明の実施形態の情報分析作業のための入出力処理を示すフローチャートである。
まず、情報分析システムは、利用者によって入力された分析クエリを受け付ける(1101)。ここで、分析クエリとは、キーフレーズ、又は、ファセットの値である。なお、キーフレーズは、一般にいうキーワード(単語)のほか、名詞句及び文を含む。
ここで、利用者が情報分析作業を開始する時のユーザインタフェース画面の構成について説明する。
図10は、本発明の実施形態のユーザインタフェース部に表示される初期画面の例を示す説明図である。
ユーザインタフェース画面は、キーフレーズ入力部1201、ファセット入力部1202、及び、検索結果一覧表示部1203を含む。
ユーザインタフェース画面は、利用者が分析クエリを入力する(図9のステップ1101)時に表示される画面である。つまり、利用者が情報分析システムを利用する時に初めに表示される初期画面である。
図9のステップ1102に戻る。
利用者によって、図10に示すキーフレーズ入力部1201にキーフレーズ(例えば、「靴」)が入力されると、情報分析システムは、キーフレーズの入力を受け付け(1101)、分析クエリの処理を開始する。情報分析システムは、ユーザインタフェース画面に分析結果(例えば、「靴」に関する文書を分析した結果)を表示する(1102)。利用者は、表示された分析結果を閲覧することができる。以下に、分析結果が表示されたユーザインタフェース画面について、説明する。
図11は、本発明の実施形態のユーザインタフェース部に表示される分析結果閲覧の画面の例を示す説明図である。
分析結果が表示されたユーザインタフェース画面は、キーフレーズ入力部1301、ファセット表示部1302、及び、検索結果一覧表示部1303を含む。
キーフレーズ入力部1301には、「靴」が入力されている。ファセット表示部1302には、キーフレーズ「靴」を含む文書から抽出された数値表現から得られた数値と説明語とが、数値の基準単位毎、すなわち、ファセット毎に表示される。検索結果一覧表示部1303には、キーフレーズ「靴」を含む文書の項目(例えば、「出典」「日付」、「見出し」)が表示される。
これによって、利用者は、ファセット及びファセットの値に基づき、分類の結果得られた文書のグループの意味を推定することができる。具体的には、利用者は、例えば、ファセット「円」と、ファセット「円」の値(数値)と、値(数値)に付与された説明語とによって、文書のグループが、例えば、靴に関する業種の業績、株式市場、商品の話題を収集したものであると推定することができる。
なお、図11に示したユーザインタフェース画面は、利用者が図9に示したステップ1102のほか、ステップ1103、1104及び1105が実行された時に表示される画面である。
図9のステップ1103に戻る。
ここで、利用者は、図11に示されるユーザインタフェース画面の検索結果一覧表示部1303に、興味のある文書があるか否かを判断し、興味のある文書がある場合には、興味のある文書を選択する。情報分析システムは、利用者によって興味のある文書が選択されたか否かを判定する(1103)。
ステップ1103において、利用者によって興味のある文書が選択されていないと判定された場合には、情報システムは、ステップ1104に進む。
ここで、利用者は、次に、図11に示されるユーザインタフェース画面のファセット表示部1302に興味のある数値(ファセットの値)があるか否かを判断し、興味のある数値がある場合には、数値を選択する。情報システムは、利用者が興味のある数値が選択されたか否かを判定する(1104)。
ステップ1104において、利用者によって興味のある数値が選択されたと判定された場合には、情報システムは、ステップ1105に進む。
利用者が、ファセット表示部1302(図11)に示されたファセットの値から、興味ある値を選択すると、情報分析システムは、選択された値を受け付ける(1105)。情報分析システムは、利用者によって選択されたファセットの値を処理し、文書データベースによって、新たに文書集合を作成し、作成された文書集合を分析する。報分析システムは、分析された結果に基づいて、ファセット表示部1302の内容を変更して表示する(1102)。ここで、利用者は、新たに表示されたユーザインタフェース画面を閲覧することができる。なお、利用者は、各ファセットのそれぞれから複数の値を選択してもよい。
なお、新たに表示されるユーザインタフェース画面とは、例えば、後述する図12の画面である。
ステップ1103において、利用者によって興味のある文書が選択されたと判定された場合には、情報分析システムは、利用者が検索結果一覧表示部1303(図11)から選択した興味のある文書の内容をユーザインタフェース画面に表示する(1106)。ここで、利用者は、表示された文書の内容(「出典」「日付」「見出し」「本文」等)を閲覧することができる。また、利用者は、他の文書の内容を閲覧する場合には、分析クエリを修正してもよい。
以下に、利用者によって選択された文書の内容が表示されたユーザインタフェース画面について、説明する。
図12は、本発明の実施形態のユーザインタフェース部に表示される文書内容閲覧の画面の例を示す説明図である。
ユーザインタフェース画面は、キーフレーズ入力部1401、ファセット表示部1402、及び、文書内容表示部1403を含む。図12では、分析クエリとして使用されたキーフレーズ及びファセットの値が強調されている。
図12に示したユーザインタフェース画面は、利用者によって図9に示したステップ1106が実行される時に表示される画面である。
図9のステップ1107に戻る。
ステップ1104において、利用者によって興味のある数値が選択されていないと判定された場合には、情報システムは、ステップ1107に進む。ここで、利用者は、次に、分析クエリを修正するか否かを判断する。
情報システムは、利用者が分析クエリを修正する入力がされたか否かを判定する(1107)。
ステップ1107において、分析クエリを修正する入力がされたと判定された場合には、情報システムは、利用者によって入力された分析クエリを受け付ける(1101)。ここで、分析クエリの入力とは、キーフレーズ入力部1301(図11)に入力されているキーフレーズを書き換える、キーフレーズ入力部1301(図11)に新たなキーフレーズを追加することである。
一方、ステップ1107において、分析クエリを修正する入力がされていないと判定された場合には、情報システムは、ステップ1108に進む。ここで、利用者は、情報分析を継続するか否かを判断する。
情報システムは、利用者が分析を継続する入力、及び、分析を終了する入力のいずれを受け付けたのかを判定する(1108)。
ステップ1108において、分析を継続する入力を受け付けた場合には、情報分析システムは、ユーザインタフェース画面を利用者に継続して表示する(1102)。
一方、ステップ1108において、分析を終了する入力を受け付けた場合には、情報分析システムは、入出力処理を終了する。
以下に、情報分析システムによって実行される分析クエリの処理について説明する。
図13は、本発明の実施形態の分析クエリの処理を示すフローチャートである。
分析クエリ処理には、分析クエリ受理処理1501、タイプ判断処理1502、形態素解析処理1503、数値表現抽出処理1504、数値化処理1505、換算処理1506、検索命令作成処理1507、検索命令送信処理1508、及び、ファセット処理1509がある。
まず、分析クエリ受理処理1501において、分析クエリ処理部102は、ユーザインタフェース部101から送信された分析クエリ(キーフレーズ及びファセット)を受信する。次に、タイプ判断処理1502において、分析クエリ処理部102は、受信した分析クエリのタイプがキーフレーズ又はファセットのどちらであるのかを判定する。
タイプ判断処理1502において、分析クエリのタイプがキーフレーズであると判定された場合には、分析クエリ処理部102は、次に、形態素解析処理1503に進む。
ここで、形態素解析とは、名詞句又分等を形態素(最小単位、単語)に分割し、各形態素の品詞を判別する処理であるが、すでに広く知られた技術であるので、ここでは詳細な説明はしない。
次に、形態素解析処理1503において、分析クエリ処理部102は、キーフレーズを単語に分割し、分割された単語に品詞等の情報を付与する。なお、キーフレーズが1語のみによって表現されている場合には、形態素解析処理1503は省略されてもよい。
次に、入力されたキーフレーズが数値表現を含む場合には、数値表現処理部106は、キーフレーズに対して、数値表現抽出処理1504、数値化処理1505、及び、換算処理1506を実行する。数値表現抽出処理1504、数値化処理1505、換算処理1506は、各々、文書登録処理における数値表現抽出処理503(図3)、数値化処理504(図3)、換算処理505(図3)と同じである。
一方、タイプ判断処理1502において、分析クエリのタイプがファセットであると判定された場合には、分析クエリ処理部102は、次に、ファセット処理1509に進む。
ファセット処理1509において、分析クエリ処理部102は、受信したファセットから数値の最大値、最小値、及び、単位の三つを組として抽出し、命令作成処理1507に進む。
つまり、分析クエリ処理部102は、分析クエリがキーフレーズである場合には、形態素解析処理1503から換算処理1506までの処理を実行し、分析クエリがファセットである場合には、ファセット処理1509を実行する。
次に、命令作成処理1507において、分析クエリ処理部102は、各処理が実行されたキーフレーズ及びファセットを用い、文書データベース105に入力される分析命令(検索命令)を作成する。なお、分析命令は、SQL形式で作成されてもよい。例えば、テーブルが図8Aから図8Dに示したテーブルの形式によって文書データが文書データベース105に登録されている場合には、分析命令(検索命令)は、式(2)に示すSQLの形式で作成される。なお、分析クエリ処理部102は、ファセットとして、最大値「1000億」、最小値「100億」、単位「円」、キーフレーズとして、「靴」を受信しているとする。
SELECT A.文書識別子,A.見出し,B.最大値,B.最小値,B.単位,
B.説明語1,B.説明語2,
C.年,C.月,C.日,D.新聞,D.面
FROM TABLE_A A,TABLE_B B,TABLE_C C,
TABLE_D D
WHERE A.文書識別 = B.文書識別子
AND A.文書識別 = C.文書識別子
AND A.文書識別 = D.文書識別子
AND A.文書本文 @@ ‘靴’
AND B.最大値 <= 100000000000
AND B.最小値 >= 10000000000
AND B.単位 = 円’100000000000 ・・・・・(2)
ただし、@@は、関係データベースPostgreSQL用の全文検索プログラムLudiaにおいて、全文検索条件を記述する記号である。例えば、「XX @@ YY」は、「項目XXに対してYYを分析クエリとする全文検索」を意味する。
次に、命令送信処理1508において、分析クエリ処理部102は、文書データベース105に、作成された分析命令(検索命令)を送信する。
以下に、分析クエリ処理部102によって、分析命令が文書データベース105に送信された後の処理について説明する。
文書データベース105は、分析クエリ処理部102から送信された分析命令を実行
した後、実行の結果(分析結果)を分析結果一覧表示部103に送信する。送信された分析結果(検索結果)には、文書を一意に識別するための「文書識別子」、文書の内容を判断するための「見出し」(文書タイトル)、文書に含まれる数値表現から抽出された「最大値」と「最小値」と「単位」との組が含まれる。なお、分析結果は、文書の「出典」及び「日付」の情報を含んでもよい。また、文書の内容を判断するために文書の内容(「本文」)の一部を含んでもよい。
分析結果一覧表示部103は、受信した分析結果(検索結果)を表示用の画面データに変換して、変換された画面データをユーザインタフェース部101に送信する。ここで、画面データは、文書識別子と見出し(文書タイトル)とを対応付けて表示するためのデータ、及び、ファセットを選択できるように表示するためのデータを含む。
また、利用者がユーザインタフェース部101に表示されたユーザインタフェース画面の検索結果一覧1303(図11)から興味ある「見出し」(文書タイトル)を選択した場合には、ユーザインタフェース部101は、選択された見出し(図8Aの見出し802)に対応付けられた文書識別子(図8Aの文書識別子801)を文書内容表示部108に送信する。文書内容表示部108は、文書データベース105から送信された文書の内容を表示用の画面データに変換して、変換された画面データをユーザインタフェース部101に送信する。
利用者がファセットの値を選択した場合には、分析クエリ処理部102は、ファセットの値(最大値、最小値、基準単位)を文書データベース105に送信する。分析結果一覧表示部103は、文書データベース105から送信された分析結果を、表示用の画面データに変換し、変換されたデータをユーザインタフェース部101に送信する。ユーザインタフェース部101は、図11に示されるユーザインタフェース画面を利用者に表示する。
図11では、ファセットの値、すなわち、文書データベース105に登録されている文書に含まれる数値表現が指す具体的な数値(整数値又は実数値)は、数値の単位毎に表示される。なお、数値は、等比数列又は等差数列によって区分して表示されてもよい。例えば、等比数列によって区分して表示される場合には、比の値は10とする。等差数列によって区分して表示される場合には、差の値は10のn乗である。数値を等比数列又は等差数列によって区分する処理については、図15を用いて後述する。
図11では、「円」及び「センチメートル」を等比数列によって区分して表示している。また、「歳」を等差数列によって区分して表示している。利用者が等比数列によって区分して表示された値を選択した場合には、分析結果一覧表示部103は、選択された値(最小値と最大値とによって示される数値)の部分を、さらに、等差数列に展開し、展開された各値を表示してもよい。また、分析結果一覧表示部103は、各ファセットの値と、各ファセットの値を含む文書の数とを並べて表示してよい。
さらに、文書から抽出された数値表現の前後に出現する複数の説明語のうち、数値表現との関連性が最も高いと判定される少なくとも一以上の説明語を、数値と並べて表示してもよい。なお、複数の説明語から数値表現との関連性が最も高い説明語を選択する統計的な方法についてはいくつかあるが、本実施形態では、出現回数が多い説明語を最も関連性の高い説明語とした。また、図11に示した分析結果の例では、説明語を一つのみ表示したが、二つ以上を表示してもよい。
以下に、分析結果一覧表示部103が実行する処理の詳細について説明する。
図14は、本発明の実施形態の分析結果一覧表示処理を示すフローチャートである。
分析結果一覧表示処理には、分析結果一覧データ受信処理1601、ファセットデータ作成処理1602、出力データ作成処理1603、及び、出力データ送信処理1604がある。
分析結果一覧表示部103は、文書データベース105から送信された分析結果(検索結果)のデータを受信する(分析一覧データ受信処理1601)。受信したデータのうち、ファセットになるデータは、最大値と最小値と単位と説明語との組である。これらは、表示用のファセット構造に変換される(ファセットデータ作成処理1602)。
以下に、ファセットデータ作成処理1602の詳細について説明する。
図15は、本発明の実施形態のファセットデータ作成処理1602の詳細を示すフローチャートである。
分析結果一覧表示部103は、ファセットデータ作成処理1602を、基準単位毎に実行する。図15に示したファセットデータ作成処理1602は、基準単位毎に分けられたファセットのデータの最大値と最小値との組の集合を対象とする。
まず、分析結果一覧表示部103は、ファセットデータの各最大値のうち最も大きい最大値を「MMax」、各最小値のうち最も小さい最大値を「MMin」とする(1701)。次に、分析結果一覧表示部103は、「MMax」と「MMin」との比が10より大きいか否かを判定する(1702)。
ステップ1702において、比が10より大きいと判定された場合には、分析結果一覧表示部103は、次に、ステップ1703に進む。
一方、ステップ1702において、比が10より大きくないと判定された場合には、分析結果一覧表示部103は、ステップ1708に進む。
なお、ステップ1703以降の処理は、ファセットを等比数列によって区分して表示するデータを作成する処理である。ステップ1708以降の処理は、ファセットを等差数列によって区分して表示するデータを作成する処理である。
以下に、ファセットを等比数列によって区分して表示する場合の処理について述べる。
まず、分析結果一覧表示部103は、受信したファセットのデータの最大値と最小値との組みのうち、処理されていない組みが少なくとも1組以上があるか否かを判定する(1703)。
ステップ1703において、処理されていない組みが少なくとも1組以上があると判定された場合には、分析結果一覧表示部103は、1組の最大値及び最小値を取り出し(1704)、ステップ1705に進む。
一方、ステップ1703において、処理されていない組みはない、すなわち、すべての組みについて処理が終了していると判定された場合は、分析結果一覧表示部103は、ファセットデータ作成処理1602を終了する。
次に、分析結果一覧表示部103は、「int(log10 最大値)」、「int(log10 最小値)」を、各々、「Maxl」、「Minl」に代入する。ここで、「int」は、「log10 最大値」及び「log10 最小値」の小数点以下を切り捨て、整数とする関数である。
次に、分析結果一覧表示部103は、「10の(Maxl)乗」、「10の(Minl)乗」を、各々、「MaxL」、「MinL」に代入する(1705)。
次に、分析結果一覧表示部103は、「MaxL」を10で割り、10で割られた「MaxL」を「MaxL」に代入する。また、「MaxL」をハッシュキーとするハッシュ「HashTbl」の値に「1」を加え、さらに、「MaxL」をハッシュキーとするハッシュSetの値(データ型は集合)に説明語を追加する(1706)。
次に、分析結果一覧表示部103は、「MaxL」が「MinL」より大きいか否か判定する(1707)。
ステップ1707において、「MaxL」が「MinL」より大きいと判定された場合には、分析結果一覧表示部103は、ステップ1706に戻る。つまり、「MaxL」が「MinL」と等しくなるまで、ステップ1706からステップ1707の処理を繰り返す。
一方、ステップ1707において、「MaxL」が「MinL」より大きくないと判定された場合には、分析結果一覧表示部103は、ステップ1703に戻る。
以下に、ファセットを等差数列によって区分して表示する場合の処理について述べる。
まず、分析結果一覧表示部103は、受信したファセットのデータの最大値と最小値との組みのうち、処理されていない組みが少なくとも1組以上があるか否かを判定する(1708)。
ステップ1708において、処理されていない組みが少なくとも1組以上があると判定された場合には、分析結果一覧表示部103は、1組の最大値及び最小値を取り出し(1709)、ステップ1710に進む。
一方、ステップ1708において、処理されていない組みはない、すなわち、すべての組みについて処理が終了していると判定された場合は、分析結果一覧表示部103は、ファセットデータ作成処理1602を終了する。
次に、分析結果一覧表示部103は、「int(log10 最大値)」を「Maxl」に代入する。次に、「10の(Maxl)乗」を「MaxL」を代入する。次に、「MaxL」の10倍を「MaxE」に代入する(1710)。
次に、分析結果一覧表示部103は、「MaxL」に「MaxO」を加算する。また、「MaxL」をハッシュキーとするハッシュ「HashTbl」の値に「1」を加え、さらに、「MaxL」をハッシュキーとするハッシュSetの値(データ型は集合)に説明語を追加する(1711)。
次に、分析結果一覧表示部103は、「MaxL」が「MinE」より小さいか否か判定する(1712)。
ステップ1712において、「MaxL」が「MinE」より小さいと判定された場合には、分析結果一覧表示部103は、ステップ1711に戻る。つまり、「MaxL」が「MinE」と等しくなるまで、ステップ1711からステップ1713の処理を繰り返す。
一方、ステップ1712において、「MaxL」が「MinL」より小さくないと判定された場合には、分析結果一覧表示部103は、ステップ1708に戻る。
図14のステップ1603に戻る。
分析結果一覧表示部103は、文書データベース105から送信された分析結果一覧データ、及び、ファセットデータ作成処理の結果を、表示用の画面データに変換する(出力データ作成処理1603)。例えば、ユーザインタフェース部101がウェブブラウザである場合には、分析結果一覧表示部103は、分析結果一覧データ及びファセットデータ作成処理の結果をHTML形式に変換する。なお、分析結果一覧表示部103は、HashTblに保存されたデータをHashTblのキーの昇順にソートし、数値と説明語との組みをファセットの値として表示する。この場合、数値の文書数は、ファセットの値の小さい方をキーとするハッシュ「HashTbl」の値である。また、数値と並べて表示される説明語は、ハッシュSetの値である集合に最も多く出現する説明語である。
出力データ送信処理1604において、分析結果一覧表示部103は、変換されたデータを、ユーザインタフェース部101(例えば、ウェブブラウザ)に送信する。ユーザインタフェース部101に送信されたデータは、例えば、図11に示したユーザインタフェース画面として、利用者に閲覧される。
図11に示すユーザインタフェース画面が表示された場合、利用者は、表示された分析結果を閲覧することができる。ここで、利用者は、結果を閲覧して、内容を確認したい文書があるか否かを判断してもよい。内容を確認したい文書がある場合には、利用者は、内容を確認したい文書を、検索結果一覧表示部1303から選択し、選択された文書の内容を表示させることができる。
利用者が文書を選択すると、ユーザインタフェース部101は、利用者が閲覧を希望した文書の文書識別子(図8Aの文書識別子801)を文書内容表示部108に送信する。次に、文書内容表示部108は、ユーザインタフェース部101から送信された文書識別子を文書データベース105に送信し、文書データベース105から送信される文書の内容を受信する。文書内容表示部108は、受信した文書の内容を、例えば、「出典」、「日付」、「見出し」、「本文」等を含む表示用の画面データに変換し、変換された画面データをユーザインタフェース部101に送信する。ユーザインタフェース部101は、例えば、図12に示すユーザインタフェース画面のとおり、選択された文書の内容を表示する。
文書を閲覧した後、利用者は、分析クエリを修正して新たな分析を実行するか否かを判断してもよい。分析クエリを修正する場合には、利用者は、分析クエリを入力する。分析クエリを修正しない場合には、分析作業を継続するか否かを判断する。分析を継続する場合には、利用者は、再度、図11に示されたユーザインタフェース画面を閲覧してもよい。分析を継続しない場合には、利用者は、分析作業を終了する。
一方、内容を確認したい文書がない場合には、利用者は、ユーザインタフェース画面に表示されているファセットの数値から興味ある数値があるか否かを判断してもよい。
利用者によって選択された数値の入力を受け付ける(図9のステップ1105)と、分析クエリ処理部102は、ファセット処理1509を実行し、作成された分析命令を文書データベース105に送信する。文書データベース105は、送信された分析命令に基づいて、登録された文書を分析し、分析結果を分析結果一覧表示部103に送信する。分析結果一覧表示部103は、送信された分析結果を表示用の画面データに変換し、変換されたデータをユーザインタフェース部101に送信する。ユーザインタフェース部101は、分析結果を利用者に表示する(図9のステップ1102)。
以上説明したように、本実施形態によれば、情報分析システムは、文書から数値表現を抽出し、抽出された数値を具体的な値に変換し、数値をファセットとして利用することによって、あらかじめ分類体系を用意することなく文書カテゴライズに基づく文書分析を実行することができる。