説明

スキーマ抽出方法、情報処理装置、コンピュータプログラム及び記録媒体

【課題】実世界に存在する「もの」の特性の定義(スキーマ)を一元的に管理することができる情報処理装置を提供する。
【解決手段】情報処理装置1は、複数の属性名A及び属性名Bをクエリとして文書データD1を取得し、取得した文書データD1内で属性名A及び属性名Bを抽出するためのテンプレートを属性名A及び属性名B夫々の前後の共通するテキストパターンから作成し、作成したテンプレートを文書データD1内に適用して属性名A、属性名B及び属性名CをスキーマSc1として抽出する。新たに抽出した属性名Cを選択して属性名A及び属性名Cをクエリとし、文書データD2を取得し、取得した文書データ内でテンプレートを作成し、作成したテンプレートを文書データD2に適用して属性名A、属性名C及び属性名DをスキーマSc2として抽出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク上に存在する文書データから所定の条件を満たすテキストデータを取得してデータベースに記憶する情報処理装置に関する。特に、ネットワーク上の文書データから実世界に存在するオブジェクトの特性の定義を一元的に管理することができる情報処理装置、スキーマ抽出方法、コンピュータを前記情報処理装置として機能させるコンピュータプログラム及び前記コンピュータプログラムが記録された記録媒体に関する。
【背景技術】
【0002】
World Wide Web(以下Webという)の普及により、様々な目的で情報を提供するために文書データが公開され、Web上には膨大な量の文書データが存在するようになってきている。ユーザは、Web上の文書データから実世界上に存在するあらゆるオブジェクトの情報を取得することができる。
【0003】
Web上の文書データの量は膨大であるがために、ユーザが有用な情報のみを探索することは非常に困難である。そこで、コンピュータ装置を用いてユーザにとって有用な情報を自動的に抽出、評価する技術、情報間の関係性を自動的に解析するデータマイニング(KDD:knowledge-discovery in database)、Webマイニング、テキストマイニング等の情報処理技術の開発・研究が行われている。
【0004】
さらに、Web上の膨大な量の文書データを人類の知識源とみなし、コンピュータ装置を用いて知識を自動的に抽出するための研究がなされている(非特許文献1、非特許文献2、非特許文献3)。Web上に公開されているあらゆるオブジェクトの情報、具体的にはオブジェクトが有する複数の属性(名)と各属性に対応する具体的な属性値との組をデータベース化することができた場合、実世界上に存在するオブジェクトの分類、特定が可能になり、情報検索、人工知能の分野における研究活動のみならず経済活動等の人間の社会活動全般に有用な情報になると考えられる。
【0005】
なお、ここでは、辞書に掲載されているような一般的な「もの」を指し示す言葉(考え方)を概念と呼び、概念を具体化した実世界上に存在するものをオブジェクトと呼ぶ。
【0006】
例えば、「ノートパソコン」という概念に対し、実体のノートパソコン夫々の「機種」をオブジェクトとして捉えることができる。この場合、「機種」が「X」である「ノートパソコンX」、「機種」が「Y」である「ノートパソコンY」のように、「機種」によってオブジェクトを一意に特定することができる。また、個人が所有する物理的に一つ一つのノートパソコンをオブジェクトとして捉えることもできる。この場合、「製品番号」が「X00001」である「ノートパソコン」、「製品番号」が「Y00002」である「ノートパソコン」のように、「製品番号」によってオブジェクトを一意に特定することができる。このように、何をオブジェクトとして捉えるかによって具体化のレベルが異なる。上述の例では「ノートパソコン」を概念とし、「ノートパソコン」の機種又は一つ一つの「ノートパソコン」をオブジェクトとして捉えるようにしたが、概念として捉える対象、及び概念を具体化するレベルは任意である。なお、オブジェクトを一意に特定し得る一又は複数の単語からなる語を「キー」と呼ぶ。上述の例では「X」及び「Y」、「X00001」及び「Y00002」が「キー」に相当する。
【0007】
また、オブジェクトの特性を表わす属性は、オブジェクトの捉え方によって異なる。上述のように「ノートパソコン」の「機種」をオブジェクトとした場合、そのオブジェクトの特性を表わす属性(名)の例として例えば「メモリ(の大きさ)」、「CPU(の種類)」等が挙げられる。「ノートパソコン」は各「機種」即ちオブジェクト毎に、「メモリ」、「CPU」という属性名に対応する属性値が異なる。Web上の文書データからオブジェクトが有する各属性に対応する属性値を取得することができた場合、ユーザが一の属性に対応する所望の属性値を具体的に入力することにより、その条件を満たすオブジェクトを特定することができる。「ノートパソコン」の「機種」をオブジェクトとして捉えた場合であれば、『「メモリ」が「××GB」であり「CPU」が「y」である「ノートパソコン」』とすることにより「ノートパソコン」の「機種」(オブジェクト)を特定することができる。
【0008】
さらに、「ノートパソコン」の「機種」をオブジェクトとした場合の特性を表わす属性名は、オブジェクトの捉えられ方でその組み合わせが異なる。「ノートパソコン」の「機種」を各構成部の機能的な特徴を基準に捉えた場合、上述のように属性名として「メモリ」、「CPU」、「DVDドライブの有無」等が挙げられる。しかし、「ノートパソコン」の各「機種」を、購入する際の判断基準に照らして捉えた場合、属性名として「価格」、「販売店」、「在庫数」等が挙げられる。さらに、「ノートパソコン」の各「機種」を性能によって捉えた場合、「軽さ」、「拡張性」、「処理速度」等が属性名として挙げられる。
【0009】
属性(名)はこのように、具体化されたオブジェクトの捉えられ方に応じて異なる複数の組で構成され、その組み合わせにオブジェクトの捉えられ方が表わされている。したがって、属性名を個々に抽出するのではなく、属性名の組み合わせを抽出することが重要である。このような、オブジェクトの特性を表わす属性名の組をスキーマと呼ぶ。
【0010】
コンピュータ装置にオブジェクトの各属性に対応する属性値を抽出させる場合、コンピュータ装置に予めオブジェクトのスキーマを与えておく。上述のようにオブジェクトのスキーマを予め認識することができた場合、オブジェクトを特定する各属性名に対応する具体的な属性値を抽出することができる。コンピュータ装置は、文書データからスキーマに含まれる属性名に相当する文字列を認識し、それらが文書データ中に現れるパターンに基づいて対応する属性値を抽出することができるからである。上述のように「ノートパソコン」の「機種」というオブジェクトの特性を表わす属性名「メモリ」、「CPU」を認識することができた場合、「メモリ」、「CPU」に相当する属性値「××GB」、「y」等を抽出することが容易になる。
【0011】
これまで、コンピュータ装置にオブジェクトの各属性に対応する属性値を抽出させる際に与えるスキーマの定義は、人手により行われてきた。スキーマの定義は、構造、形式、関連性、整合性の制約が考慮されることが望ましいからである。
【0012】
Web上の文書データからオブジェクトの各属性に対応する属性値を取得する際に、オブジェクトのスキーマを人手により定義した場合、スキーマを定義した人のオブジェクトに対する主観により、抽出することができる属性値が偏る可能性がある。多種多様な人間によって提供されたWeb上の文書データを人類の知識源とみなしたにも拘わらず、抽出することができる属性値が偏ったものではデータベース化の目的から反れてしまう。そこで、Web上の文書データから多種多様な人間によって定義されたオブジェクトのスキーマの定義を自動的に取得することが必要になる。
【0013】
ところで、コンピュータ装置がオブジェクトの各属性名と、その各属性に対応する属性値とを抽出する場合、文書データ中から属性名及び属性値を認識できなければならない。しかしながら、Web上の文書データに含まれるオブジェクトの情報は、オブジェクトの属性名と属性値との関係が明確に整形されて記載されているとは限らない。したがって、コンピュータ装置が自動的に文書データから属性名と属性値とを取得しようとする場合、文書データ中のテキストデータのいずれの部分が属性名に相当し、いずれの部分が対応する属性値に相当するのかを判定することは困難である。
【0014】
これに対し、Web上に存在する文書データから、オブジェクトの属性名と属性値との組を抽出する技術についての研究が複数行われている(非特許文献1、非特許文献2、非特許文献3)。非特許文献1乃至3の技術による場合、属性値を抽出するための属性値前後のテキストからなるテンプレートと属性値とを、夫々交互に繰り返し学習し、多数の属性値を取得するブートストラッピングの手法が採用されている。具体的には、コンピュータ装置に、少数の属性値がシード(種)として与えられ、コンピュータ装置は、与えられた属性値を文書データから抽出するためのテンプレートを学習し、そのテンプレートを他の文書データでも適用することにより他の属性値を抽出し、抽出する際にテンプレートを学習することによって更に他の属性値を抽出する処理を繰り返す。
【0015】
特に非特許文献1には、Web上に存在する文書データから書籍名とその著者との組を例に、特定の関係にある語を抽出する技術が開示されている。非特許文献1に開示されている技術による場合、コンピュータ装置には、具体的な著者名がシードとして与えられ、コンピュータ装置は、シードを含み書籍名が記載された文書データを取得する。コンピュータ装置は、取得した文書データから書籍名と著者名とが現れているパターン(テンプレート)を特定し、その特定したパターンを他の文書データにも当てはめ、更に他の書籍名と著者名とを抽出する。このように非特許文献1に開示されている技術は、Web上に存在する文書データから、実世界上に存在する書籍名と著者名との組のような特定の関係にある多数の語を抽出しようとするものである。
【非特許文献1】S.Brin:Extracting patterns and relations from the world wide web(World Wide Webからのパターンと関係の抽出), Proceedings of SIGMOD Workshop on Databases and the Web, pp.172-183, 1998.
【非特許文献2】E.Riloff, and R.Jones:Learning dictionaries for information extraction by multi-level bootstrapping(多重ブートストラッピングによる情報抽出のための辞書学習),Proceedings of the 16th National Conference on Artificial Intelligence, pp.474-479, 1999.
【非特許文献3】E.Agichtein, and L.Gravano:Snowball: Extracting relations from large plain-text collections(Snowball: 大規模プレーンテキスト集合からの関係抽出), Proceedings of the 5th ACM International Conference on Digital Libraries, pp.85-94, 2000.
【発明の開示】
【発明が解決しようとする課題】
【0016】
非特許文献1に開示されている技術により、書籍名と属性名との組のような特定の関係にある語をWeb上の文書データから抽出することができる。したがって、この技術を応用することにより、コンピュータ装置によって属性名と、対応する属性値との関係にある語を抽出することが可能になる。
【0017】
そこで、Web上の文書データから多種多様な人間によって定義されたあらゆるオブジェクトのスキーマの定義を自動的に抽出するためにも、属性名に対応する属性値を抽出する非特許文献1乃至3の技術が適用できるとも考えられる。しかしながら、これらの技術をオブジェクトのスキーマの取得に適用することは以下の問題により困難である。
【0018】
属性値を抽出する際には、属性値の前後のテキストをテンプレートとし、そのテンプレートを他の文書データにも適用することにより他の属性値を抽出する。属性値の前後には、一般的な語である属性名が存在することが多いので、テンプレートが他の文書データにも適合する確率が高く、多様な属性値を取得することができる。しかしながら、属性名を抽出する際に属性名の前後のテキストをテンプレートとした場合、属性名の前後に存在する属性値がテンプレートに含まれる。属性値は固有名詞又は数値等、限定的な語であることが多いので、属性値を含むテンプレートが他の文書データで適合する確率は低く、多様な属性名を抽出することは困難である。
【0019】
例えば、購入する際の判断基準に照らして捉えた「ノートパソコン」の各機種をオブジェクトとした場合に、属性値を抽出するために与えられた属性名が「ショップ名」であるとき、コンピュータ装置は、属性名に対応する属性値を例えば以下のように抽出することができる。コンピュータ装置が「ショップ名」を含む文書データを取得し、その文書データには「ショップ名:『ショップA』」というテキストが含まれていた場合を考える。この場合、属性値を抽出するためのテンプレートを「ショップ名:(属性値)」とすることにより、コンピュータ装置は、Web上の文書データから「ショップ名:」を含む文書データを検索し、検索された文書データから「ショップ名:」に続く文字列を属性値として抽出することができる。この方法によって多様な属性値を抽出することが可能である。
【0020】
一方、上述の例において属性名の抽出を試みるために、「ショップ名」という属性名を抽出するためのテンプレートを「:『ショップA』」とした場合、『ショップA』は固有名詞である。したがって、テキスト「:『ショップA』」を他の文書データ中から認識することができる確率が低下する。これにより、「ショップ名」以外の多様なスキーマを抽出することが困難になる。このように、オブジェクトの属性名の近傍に存在する属性値は、固有名詞又は数値を含む場合が多いので、属性名の抽出を属性値の抽出と同様の手法により実現することは難しい。
【0021】
本発明は斯かる事情に鑑みてなされたものであり、与えられた少数の語から同様に使用される語を自動的に多数取得するブートストラッピングの手法を用い、少数の属性名から実世界上に存在するオブジェクトの多数のスキーマを抽出する構成とすることにより、オブジェクトの特性を一元的にコンピュータ装置で管理することができるスキーマ抽出方法、情報処理装置、コンピュータプログラム及び記録媒体を提供することを目的とする。
【0022】
本発明の他の目的は、属性名群を抽出する文書データを、一又は複数の単語からなり、オブジェクトを一意に特定し得るキーを含む文書データに限定する構成とすることにより、スキーマを抽出するために適切でない文書データに対し、テンプレートの作成処理、属性名の抽出処理の無駄を回避することができるスキーマ抽出方法を提供することにある。
【0023】
本発明の他の目的は、少数の属性名群から多数の属性名群を抽出する処理と同様に、少数のキーから多数のキー群を抽出し、属性名群の抽出とキー群の抽出とを夫々実行し、夫々で抽出された属性名及びキーを使用して多様な文書データを取得する構成とすることにより、多様なスキーマを抽出することができるスキーマ抽出方法を提供することにある。
【0024】
本発明の他の目的は、作成されたテンプレートを適用して属性名群を抽出する範囲を、文書データの内で所定範囲に限定して属性名群を抽出する構成とすることにより、取得された文書データが多量のテキストを含む文書データである場合も、ノイズとなる語の抽出を低減させることができるスキーマ抽出方法を提供することにある。
【0025】
また、本発明の他の目的は、抽出した属性名、キー、及び作成したテンプレートの内のいずれか又は全てについて、有効性を評価するための評価値を算出し、評価値が高いものを優先的に使用する構成により、ノイズとなる語の抽出を低減させることができるスキーマ抽出方法を提供することにある。
【課題を解決するための手段】
【0026】
第1発明に係るスキーマ抽出方法は、複数の文書データを含む文書集合から文書データを取得し、取得した文書データからオブジェクトの特性を表わす属性名群であるスキーマを抽出するスキーマ抽出方法であって、複数の属性名を含む文書データを取得する第1ステップと、前記文書データから、前記複数の属性名に共通する前後のテキストパターンを特定し、属性名群を抽出するためのテンプレートを作成する第2ステップと、前記文書データの内から、前記テンプレートを適用して他の属性名群を抽出する第3ステップと、前記第3ステップで抽出された属性名群から属性名を選択する第4ステップとを含み、第4ステップで選択された属性名を含む文書データを前記第1ステップで取得するにようにして第1ステップから前記第4ステップまでの処理を繰り返し実行し、オブジェクトのスキーマを抽出することを特徴とする。
【0027】
第2発明に係るスキーマ抽出方法は、前記第1ステップは、オブジェクトを一意に特定する一又は複数の単語であるキーを更に含む文書データを取得することを特徴とする。
【0028】
第3発明に係るスキーマ抽出方法は、前記キーを含む文書データを取得する第5ステップと、前記文書データから、前記キーを抽出するためのテンプレートを作成する第6ステップと、前記文書データの内から、前記テンプレートを適用してキー群を抽出する第7ステップと、該第7ステップで抽出したキー群からキーを選択する第8ステップとを含み、前記第8ステップで選択されたキーを含む文書データを前記第1ステップ及び前記第6ステップで取得するようにして前記第1ステップから前記第4ステップまでの処理及び前記第5ステップから前記第8ステップまでの処理を実行することを特徴とする。
【0029】
第4発明に係るスキーマ抽出方法は、前記第3ステップは、前記文書データの内の前記複数の属性名が含まれている所定範囲、又は、前記複数の属性名及び前記キーが含まれている所定範囲の内から、作成されたテンプレートに基づいて属性名を抽出することを特徴とする。
【0030】
第5発明に係るスキーマ抽出方法は、文書データを構成する言語単位の木構造を解析するステップと、前記複数の属性名夫々に相当する前記言語単位を含む部分木を特定するステップとを含み、前記文書データの内の、特定した部分木の所定階層上の節以下に相当する部分を前記所定範囲とすることを特徴とする。
【0031】
第6発明に係るスキーマ抽出方法は、前記木構造は、DOM(Document Object Model)に基づくものであることを特徴とする。
【0032】
第7発明に係るスキーマ抽出方法は、前記第3ステップで抽出した属性名の評価値を算出する属性名評価ステップと、前記属性名を前記評価値と対応付けて記憶するステップとを更に含み、前記値の高い順に属性名を選択することを特徴とする。
【0033】
第8発明に係るスキーマ抽出方法は、前記第7ステップで抽出したキーの評価値を算出するキー評価ステップと、前記キーを前記評価値と対応付けて記憶するステップとを含み、前記値の高い順にキーを選択することを特徴とする。
【0034】
第9発明に係るスキーマ抽出方法は、前記第6ステップで作成したテンプレートの評価値を算出するテンプレート評価ステップを含み、前記第7ステップは、前記評価値が所定値以上であるテンプレートに基づいてキー群を抽出することを特徴とする。
【0035】
第10発明に係るスキーマ抽出方法は、前記第6ステップで作成したテンプレートの評価値を算出するテンプレート評価ステップと、前記第2ステップ及び第5ステップで作成したテンプレートを、前記テンプレート評価ステップで算出された評価値と対応付けて記憶するステップとを更に含み、前記属性名評価ステップ及び/又は前記キー評価ステップは、属性名又はキーを抽出する際に適用された、記憶してあるテンプレートを含むテンプレートの評価値に基づいて属性名及び/又はキーの評価値を算出することを特徴とする。
【0036】
第11発明に係る情報処理装置は、複数の文書データを含む文書集合から複数の属性名を含む文書データを取得する取得手段を備え、取得した文書データからオブジェクトの特性を表わす属性名群であるスキーマを抽出するようにしてある情報処理装置であって、前記取得手段により取得された文書データから、前記複数の属性名について共通する前後のテキストパターンを特定し、属性名群を抽出するためのテンプレートを作成する手段と、前記文書データの内から、前記テンプレートに基づいて属性名群を抽出する抽出手段と、抽出された属性名群から属性名を選択する手段とを備え、選択された属性名を含む文書データの前記取得手段による取得及び前記抽出手段による属性名群の抽出を繰り返すようにしてあることを特徴とする。
【0037】
第12発明に係る情報処理装置は、前記文書集合から一又は複数の単語からなるキーを含む文書データを取得する手段と、前記キーを抽出するためのテンプレートを作成する手段と、前記文書データに前記テンプレートを適用してキー群を抽出する手段と、抽出されたキー群からキーを選択する手段とを更に備え、選択されたキーを含む文書データの取得及びキーの抽出を繰り返すようにしてあり、前記取得手段は、抽出されたキー群中のキーを更に含む文書データを取得するようにしてあることを特徴とする。
【0038】
第13発明に係るコンピュータプログラムは、ネットワークに接続されているコンピュータに、複数の文書データを含む文書集合から複数の属性名を含む文書データを取得する第1ステップを実行させ、取得した文書データからオブジェクトの特性を表わす属性名群であるスキーマを抽出するようにしてあるコンピュータプログラムであって、コンピュータに、前記第1ステップにより取得した文書データから、前記複数の属性名に共通する前後のテキストパターンを特定し、属性名群を抽出するためのテンプレートを作成する第2ステップ、前記文書データの内から、前記テンプレートを適用して属性名群を抽出する第3ステップ、及び、前記第3ステップで抽出された属性名群から属性名を選択する第4ステップを実行させ、第1ステップで第4ステップにより選択された属性名を含む文書データを取得させるようにして第1ステップから第4ステップまでの処理を繰り返し実行させるようにしてあることを特徴とする。
【0039】
第14発明に係るコンピュータプログラムは、前記文書集合から一又は複数の単語からなるキーを含む文書データを取得する第5ステップ、前記文書データから、前記キーを抽出するためのテンプレートを作成する第6ステップ、前記文書データの内から、前記テンプレートを適用してキー群を抽出する第7ステップ、及び該7ステップで抽出したキー群からキーを選択する第8ステップを更に実行させ、前記第5ステップで第8ステップにより選択されたキーを含む文書データを取得させるようにして第5ステップから第8ステップまでの処理を繰り返し実行させるようにしてあり、前記第1ステップで、第7ステップにより抽出されたキー群中のキーを更に含む文書データを取得させるようにしてあることを特徴とする。
【0040】
第15発明に係るコンピュータが読み取り可能な記録媒体は、第13又は第14発明に係るコンピュータプログラムが記録されていることを特徴とする。
【0041】
第1発明、第11発明、第13発明及び第15発明では、複数の属性名が含まれる文書データが取得され、取得された文書データ内の複数の属性名夫々の前後のテキストパターンから属性名を抽出するためのテンプレートが作成され、取得された文書データ内でテンプレートが適用されて属性名群が抽出される。抽出された属性名群から再度、属性名が選択され、選択された属性名を元に他の属性名群がさらに抽出される処理が繰り返される。
【0042】
第2発明では、複数の属性名のみならず、オブジェクトを一意に特定する一又は複数の単語であるキーをも含む文書データから他の属性名群が抽出される。したがって、属性名が単に記述されているのみの文書データを取得することが防止される。
【0043】
第3発明、第12発明及び第14発明では、属性名群のみならず、キーについても少数のキーを元に、他のキー群を取得する処理が行なわれ、多数多様なキーが取得される。
【0044】
第4発明では、取得された文書データの内の、複数の属性名が含まれている限定的な範囲内又は複数の属性名及びキーが含まれている限定的な範囲内でテンプレートが適用されて他の属性名が抽出される。スキーマとなるような、属性名がまとめて記述されている範囲内で属性名群が抽出される。
【0045】
第5発明では、取得された文書データが木構造で解析されるので、複数の属性名に相当する語、文字列等の言語単位の構成の規則性を、コンピュータ装置が容易に認識することが可能となる。複数の属性名同士で、属性名に相当する言語単位を含む部分木が特定され、夫々の部分木の所定階層上以下に相当する文書データ中の部分にテンプレートが適用される。多様な形式であっても属性名群がリストにされている場合は、ある程度可読性が良いように属性名群が整理されて記述されている可能性が高いので、部分木の所定階層上以下には、複数の属性名の言語単位を含む部分木間で構成の規則性が共通する部分が含まれる可能性が高い。これにより、属性名が散在するのみで構成の規則がない部分からは属性名が抽出されない。
【0046】
第6発明では、文書データの木構造の解析は、Web上の文書データのHTML形式に適したDOMに基づいて行われる。
【0047】
第7発明では、抽出された各属性名について評価値が算出され、評価値がより高い属性名が再度他の属性名及び/又はキーを抽出するために選択される。
【0048】
第8発明では、抽出された各キーについて評価値が算出され、評価値がより高いキーが属性名及び/又は再度他のキーを抽出するために選択される。
【0049】
第9発明では、作成されたテンプレートについて評価値が算出され、評価値が所定値以上であるテンプレートがキー群を抽出する際に適用される。
【0050】
第10発明では、抽出された属性名及び/又はキーについての評価値が算出される際、それらの属性名及び/又はキーが抽出されたときに適用されたテンプレートの評価値に基づいて評価値が算出される。
【発明の効果】
【0051】
本発明による場合、与えられた複数の属性名を含む文書データから他の属性名群が抽出され、抽出された属性名が含まれる他の文書データから更に属性名が抽出されるというブートストラッピングの手法により、少数の属性名から多様な属性名が自動的に抽出される。これにより、人手によらずに実世界上に存在するオブジェクトの特性を表わす多数のスキーマを一元的にコンピュータ装置で管理することが可能になる。
【0052】
なお、文書データから属性名を抽出する際のテンプレートは、属性値よりも多様性が低い属性名を取得するために、属性値を抽出する際のテンプレートよりも汎用性が高くなる可能性が高いが、テンプレートを適用する対象を与えられた属性名が含まれる文書データ内に限ることにより、属性名でないノイズとなる語を抽出してしまうことを回避することができる。
【0053】
本発明による場合、複数の属性名が含まれる文書データを、オブジェクトを一意に特定し得る一又は複数の単語からなるキーを更に含む文書データに限定することにより、属性名が単に記述されているような文書データを除去し、オブジェクトの特性を表わす情報(オブジェクトについてのレコードとなり得る情報)を含む文書データから属性名を抽出することができる。これにより、スキーマを抽出するためには適切でない文書データに対して処理を実行する無駄を回避することができる。
【0054】
本発明による場合、属性名のみならずキーについてもブートストラッピングの手法により多様なキーを抽出して使用することにより、特定のキーが含まれている文書データに抽出対象の文書データが限定されて抽出される属性名の多様性が低下してしまうことを回避して、多様な属性名群、つまり多様なスキーマを抽出することができる。
【0055】
本発明による場合、作成したテンプレートを適用して属性名を抽出する範囲を所定の範囲に限定することにより、属性名を抽出するためのテンプレートが高い汎用性を有することにより文書データ中のあらゆる部分に当てはまり、属性名でない語が抽出されてしまうことを回避することができる。したがって、多量のテキストを含む文書データ内でもノイズとなるスキーマとして適切でない語を属性名として抽出してしまうことを防止することができる。
【0056】
さらに、本発明による場合、評価値がより高い属性名及び/又はキーが優先的に使用されて属性名群が抽出されるので、ノイズとなる語を属性名として抽出してしまうことを低減させることができる。
【0057】
また、本発明による場合、評価値がより高いテンプレートが適用されて属性名、キーが抽出され、さらに他の属性名を取得するために使用されるので、ノイズとなる語の抽出を低減させることができる。
【発明を実施するための最良の形態】
【0058】
以下本発明をその実施の形態を示す図面に基づき具体的に説明する。
【0059】
図1は、本発明に係るスキーマ抽出方法の概要を示す説明図である。図1中の楕円形R内に示された「オブジェクトA1」、「オブジェクトA2」、「オブジェクトA3」、…は、実世界上に存在するオブジェクトを表わす。「オブジェクトA1」、「オブジェクトA2」、「オブジェクトA3」は夫々を特定するための名称である。これに対し、「ものA」は、「オブジェクトA1」、「オブジェクトA2」、「オブジェクトA3」、…の一般的な概念を表わす名称である。
【0060】
例えば、図1中の楕円形R内の各オブジェクトがノートパソコンの実体である場合、一般名称「ノートパソコン」が「ものA」に相当する。また、「オブジェクトA1」、「オブジェクトA2」、「オブジェクトA3」は、「ノートパソコン」の各ブランド名、シリーズ名、機種名等、各ノートパソコンを一意に特定し得る名称、即ちキーに相当する。
【0061】
図1中のNはWebを構成するネットワークを表わしており、図1中の100は、Web上に存在する文書データD1,D2,…からなる文書データ集合を示している。また、文書データ集合中には、前述の「ものA」の「オブジェクトA1」、「オブジェクトA2」、「オブジェクトA3」についての情報を含む文書データがあることが示されている。
【0062】
また、文書データD1,D2,…中のSc1,Sc2は「ものA」に関するスキーマである。スキーマSc1,Sc2は、「ものA」の内の「オブジェクトA1」、「オブジェクトA3」の特性を夫々表わす属性名の組である。スキーマSc1の属性名A、属性名B、属性名C夫々に対応する属性値a1、b1、c1により、「オブジェクトA1」が特定され、スキーマSc2の属性名A、属性名C、属性名D夫々に対応する属性値a2,c2,d1により、「オブジェクトA3」が特定される。
【0063】
上述のノートパソコンの例に従う場合、例えば文書データ集合100中の文書データD1には、「ノートパソコン」の1つである「オブジェクトA1」の仕様の説明が箇条書きで記載されている。仕様を示すための各項目は属性名であり、スキーマSc1を構成する。また、文書データ集合100中の文書データD2には、「ノートパソコン」の1つである「オブジェクトA3」に対する評価(レビュー)が表組みで記載されている。評価項目は属性名であり、スキーマSc2を構成する。
【0064】
図1中の1は、本発明のスキーマ抽出方法を実施する情報処理装置である。情報処理装置1は、Webに接続されており、Web上の文書データ集合から文書データD1,D2,…を取得することが可能である。情報処理装置1が有する記憶部11には、抽出されるスキーマSc1及びSc2が記憶される。
【0065】
Web上の文書データは、あるオブジェクトについての属性名が自然言語で羅列して記載されている場合、文書データD1のように箇条書きで記載されている場合、文書データD2のようにタグ付けされた表組みで記載されている場合等、構成が多様である。さらに、属性値に関しては、属性名が与えられた場合に対応する多様な属性値を取得することが可能である一方、属性名に関しては属性値が与えられた場合に取得できる属性名は限られるという問題がある。本発明のスキーマ抽出方法は、このような困難を克服して情報処理装置1がWeb上に存在する文書データD1,D2,…から、「オブジェクトA1」,「オブジェクトA3」,…の特性を表わすスキーマSc1,Sc2,…を自動的に抽出して記憶することを目的としている。
【0066】
このようなオブジェクトの特性を表わすためのスキーマSc1,Sc2,…を予め管理可能に記憶しておくことにより、例えば、検索サービスを実現する際又は質問応答システムを実現する際、ユーザから入力されたキーワードから検索、質問の対象となるオブジェクトと、オブジェクトに対応するスキーマとを特定し、特定したスキーマに対応する属性値を有する文書データを検索することが可能になり、ユーザの検索の要求に適した検索結果、応答結果を出力することが可能になる。
【0067】
以下に説明する実施の形態1乃至3では、本発明に係るスキーマ抽出方法を情報処理装置1に実施させるために必要なハードウェア構成について、情報処理装置1による属性名群(スキーマ)を取得するための各処理について説明し、さらに具体例に当てはめた場合について説明する。なお、実施の形態1乃至3では、情報処理装置1はPC(Personal Computer)である構成とする。
【0068】
(実施の形態1)
図2は、実施の形態1における本発明のスキーマ抽出方法を実施する情報処理装置1の構成を示すブロック図である。情報処理装置1はPCで構成され、CPU等である制御部10と、ハードディスク等である記憶部11と、メモリ等である一時記憶領域12と、Webに接続するためのネットワークカード等である通信部13と、DVD、CD−ROM等の可搬型記録媒体14を用いる補助記憶部15とを備えている。
【0069】
記憶部11には、補助記憶部15を介してDVD、CD−ROM等の可搬型記録媒体14から取得した、PCが本発明に係るスキーマ抽出方法を実施するための制御プログラム1Pが記憶されている。制御部10は、制御プログラム1Pを記憶部11から読み出して実行すると共に、各種ハードウェアを制御する。
【0070】
また、記憶部11には、各オブジェクトの属性名群の属性名リスト111、オブジェクトを一意に特定することができるキー群のキーリスト112が記憶されている。なお、本発明に係るスキーマ抽出方法が実施される前の初期状態の属性名リスト111及びキーリスト112には、一のオブジェクトについて少なくとも二つの属性名、一のキーが夫々含まれている。
【0071】
情報処理装置1の制御部10は、属性名リスト111及びキーリスト112に記憶してある属性名とキーとから、文書データを検索するためのクエリを作成する。記憶部11には、制御部10により作成されたクエリがクエリリストとして記憶してある。本発明に係るスキーマ抽出方法が実施される前の初期状態のクエリリストには、記憶部11に記憶してある二つの属性名及び一のキーに基づいて、制御部10によりクエリが作成されて記憶してある。
【0072】
さらに記憶部11には、属性名を抽出するために作成された属性名用テンプレート及びキーを抽出するために作成されたキー用テンプレートがテンプレートリストに夫々記憶される。テンプレートリストに記憶されているキー用テンプレート夫々には、テンプレートの有用性を表わす評価値が対応付けて記憶されている。
【0073】
一時記憶領域12には、制御部10の演算処理によって一時的に発生する情報が記憶される。
【0074】
通信部13はネットワークNに接続されている。制御部10は、通信部13によりWeb上に存在する図示しないWWW(World Wide Web)サーバと接続し、WWWサーバ上に存在する文書データD1,D2,…を取得することが可能である。
【0075】
制御部10は、通信部13を介して取得した文書データD1,D2,…を文書データ集合113として記憶部11に記憶する。なお、文書データ集合113は、属性名及びキーの抽出が行われていない新規文書データの集合と、属性名及びキーの抽出が行われた既存文書データの集合とを区別できるようにしてある。このとき制御部10は、取得した文書データD1,D2,…夫々についての属性名及びキーの抽出処理が夫々終了しているか否かを判断するためのキー抽出済みマークと属性名抽出済みマークとを記憶部11に対応付けて記憶する。制御部10は、新規に取得した文書データについては、キー抽出済みマーク及び属性名抽出済みマークをオフにリセットしておく。
【0076】
上述のように構成される情報処理装置1の制御部10が実行する各処理について以下に説明する。
【0077】
図3は、実施の形態1における情報処理装置1の制御部10がスキーマを抽出する処理手順の概略を示すフローチャートである。
【0078】
情報処理装置1の制御部10は、まず記憶部11に記憶してある属性名リスト111及びキーリスト112に基づくクエリをクエリリストから選択し、選択したクエリ(属性名及びキー)に基づいて通信部13を介して文書データを取得する(ステップS11)。このとき制御部10は、文書データの取得のために使用したクエリを、クエリリストでの記憶から消去する。
【0079】
情報処理装置1の制御部10は、ステップS11で取得した文書データに対し、以下に示すステップS12からステップS14までのキーを抽出する処理と、ステップS15からステップS17までの属性名を抽出する処理とを夫々実行する。この場合、情報処理装置1の制御部10は、キーを抽出する処理と属性名を抽出する処理とを夫々同時に平行して実行させる構成でもよいし、キーを抽出する処理を実行させてから属性名を抽出する処理を実行させる構成でもよい。なお、実施の形態1では、キーを抽出する処理と属性名を抽出する処理を夫々平行して実行させる構成について説明する。
【0080】
情報処理装置1の制御部10は、ステップS11で取得した文書データ内において選択されたキーが記述されている箇所を特定し、近傍のテキストパターンからキー用テンプレートを作成する(ステップS12)。情報処理装置1の制御部10は、取得した文書データにキー用テンプレートを適用してキーを抽出する(ステップS13)。なお、ステップS13において制御部10は、キーを抽出する場合は、当該キーをクエリとしてステップS11で取得した文書データのみならず、他のキーをクエリとして取得した他の文書データについても、ステップS12で作成したキー用テンプレートを適用して新たなキーを抽出する。次に情報処理装置1の制御部10は、抽出したキーをキーリスト112に記憶し(ステップS14)、属性名を抽出する処理が終了するのを待ってステップS11に処理を戻し、次の文書データを取得する処理(S11)を実行する。
【0081】
一方、情報処理装置1の制御部10は、ステップS11で取得した文書データ内において、選択された複数の属性名が記述されている箇所を特定し、複数の属性名夫々の前後のテキストパターンを比較し、共通するパターンを属性名用テンプレートとして作成する(ステップS15)。情報処理装置1の制御部10は、ステップS11で取得した文書データに、作成した属性名用テンプレートを適用して属性名を抽出する(ステップS16)。なお、ステップS16において制御部10は、属性名を抽出する場合はキーを抽出する場合と異なり、ステップS11で取得した文書データに、ステップS15で作成した属性名用テンプレートを適用して属性名を抽出する。情報処理装置1の制御部10は、抽出した属性名を属性名リスト111に記憶し(ステップS17)、キーを抽出する処理が終了するのを待ってステップS11に処理を戻して次の文書データを取得する処理(S11)を実行する。
【0082】
情報処理装置1の制御部10は、上述の処理を例えばネットワークN上の全文書データを取得するまで繰り返す。また、所定回数繰り返した場合は全処理を終了する構成でもよい。これにより、一のオブジェクトに対して最初に属性名リスト111に記憶してあった少数の属性名から多数の属性名が抽出されて記憶される。
【0083】
次に、図3のフローチャートに示した情報処理装置1の制御部10による各処理を詳細に説明する。
【0084】
まず、ステップS11において、情報処理装置1の制御部10が文書データを取得する処理について詳細を説明する。図4は、実施の形態1における情報処理装置1の制御部10がスキーマを抽出する際に、文書データを取得する処理の詳細を示すフローチャートである。図4のフローチャートに示す処理手順は、図3のフローチャートに示した処理手順の内のステップS11の処理に対応する。
【0085】
情報処理装置1の制御部10は、記憶部11に記憶してあるクエリリストから、属性名のペアとキーとからなるクエリを選択する(ステップS21)。
【0086】
制御部10は、選択したクエリに基づいて通信部13を介してネットワークN上に存在する文書データを検索し複数の文書データを取得する(ステップS22)。このとき制御部10は、取得した文書データのファイルそのものをダウンロードすることにより記憶部11の文書データ集合113に記憶する構成でもよいし、取得した文書データのURL(Uniform Resource Locator)のみを記憶部11の文書データ集合113に記憶する構成でもよい。
【0087】
制御部10は、ステップS22で取得した複数の文書データの内から、既に以前の処理によって記憶部11の文書データ集合113に記憶されていない文書データを抽出する(ステップS23)。制御部10は、抽出された文書データを文書データ集合113の内の新規文書データの集合に記憶し(ステップS24)、記憶した文書データ夫々について以降の属性名の抽出及びキーの抽出の処理を行なう。したがって、制御部10はその後、処理を図3のステップS12又はステップS15へ戻す。
【0088】
本発明による場合、取得した複数の文書データから属性名を抽出する際に、与えられたオブジェクトの特定を表わす属性名を含む文書データを更に、キーを含む文書データに限定する。これにより、属性名が単に記述されているような文書データを除去して属性名の抽出処理の無駄を回避し、オブジェクトについての特性を表わす情報(オブジェクトについてのレコードとなり得る情報)を含む文書データから属性名を抽出することができる。
【0089】
次に、情報処理装置1の制御部10がキーを抽出する処理について説明する。図5は、実施の形態1における情報処理装置1の制御部10がキーを抽出する処理手順を示すフローチャートである。図5のフローチャートに示す処理手順は、図3のフローチャートに示した処理手順の内のステップS12からステップS14までの処理に対応する。
【0090】
情報処理装置1の制御部10は、記憶部11に記憶されている文書データ集合113の内の新規文書データの集合から、キー抽出済みマークがオフである文書データを取得する(ステップS31)。制御部10は、ステップS31で取得した文書データにおけるキー用の新規テンプレートを作成する(ステップS32)。テンプレートの作成についての詳細は後述する。
【0091】
制御部10は、ステップS32で作成した新規キー用テンプレートと、記憶部11に記憶してあるテンプレートリスト中の既存キー用テンプレートとを、ステップS31で取得した文書データに適用してキーを抽出する(ステップS33)。
【0092】
ステップS33において制御部10は、新規キー用テンプレートを、記憶部11にある文書データ集合113の新規文書データの集合中の文書データと、既存文書データの集合中の文書データとに夫々適用してキーを抽出する。また、既存キー用テンプレートを、ステップS31で取得して新規文書データの集合中に記憶してある文書データに適用してキーを抽出する。さらに、このとき制御部10は、新規キー用テンプレートを用いて通信部13を介して取得できる文書データからキーを検索、抽出する構成でもよい。なお、このとき制御部10に作成されるキー用テンプレートは、HTMLタグを含む可能性が高いので、制御部10には、ソースレベルで文書データを検索するエンジンが必要になる。
【0093】
制御部10は、ステップS33で使用した新規キー用テンプレート及び既存キー用テンプレートに対する評価値を算出し(ステップS34)、新規キー用テンプレート及び既存キー用テンプレートの内、算出した評価値が所定値以上であるキー用テンプレートを記憶部11のテンプレートリストに記憶する(ステップS35)。テンプレートについての評価値の算出方法の詳細については後述する。
【0094】
制御部10は、ステップS33で抽出したキーを記憶部11のキーリスト112に記憶する(ステップS36)。このとき制御部10は、ステップS33で抽出したキーの内、記憶部11のキーリスト112に記憶されていない新規キーについては記憶するが(S36)、記憶部11のキーリスト112に記憶してある既存キーと同一のキーについては、記憶しないか又は既に記憶してある既存キーを置き換える。
【0095】
また、制御部10はステップS36において、ステップS33で取得した新規キーについてキーリスト112に記憶すると共に新規キーに基づいたクエリを作成し、クエリリストに記憶する。制御部10は、記憶部11の属性名リスト111に記憶してある属性名のペアと新規キーとに基づいてクエリを作成し、クエリリストに追加する。
【0096】
制御部10は、ステップS31で取得した文書データのキー抽出済みマークをオンにセットし(ステップS37)、新規文書データの集合中の全文書データのキー抽出済みマークがオンにセットされているか否かを判断する(ステップS38)。制御部10は、新規文書データの集合中の全文書データのキー抽出済みマークが未だオンにセットされていないと判断した場合(S38:NO)、処理をステップS31へ戻してキー抽出済みマークがオフである文書データを取得し(S31)、ステップS32以降の処理を実行する。
【0097】
制御部10は、新規文書データの集合中の全文書データのキー抽出済みマークがオンにセットされていると判断した場合(S38:YES)、キーを抽出する処理を終了し、後述する属性名の抽出処理が終了するのを待って処理を図3のフローチャートに示したステップS11へ戻す。
【0098】
なお、図5のフローチャートに示した処理手順の内、ステップS34の評価値の算出及び付与の処理については省略する構成でもよい。この場合、情報処理装置1の制御部10は、全ての新規テンプレート及び既存テンプレートをテンプレートリストへ記憶する(S35)。ステップS34における処理を行なうのは、評価値が所定値以上であるテンプレートのみに絞り込むことにより、無闇にテンプレートを適用してキーを抽出するのではなく、属性名の抽出に有用性の高いキーを抽出するようにすることができるからである。
【0099】
図5のフローチャートに示した制御部10による各処理の内、ステップS32におけるキー用テンプレートの作成処理及びステップS34におけるテンプレートの評価値の算出処理について夫々、詳細を以下に説明する。
【0100】
まず、ステップS32におけるキー用テンプレートの作成処理について詳細を説明する。情報処理装置1の制御部10は、文書データ中のキーの前後任意n個の単語、又は文字をキー用テンプレートとする。ここでnは任意の自然数である。
【0101】
図6は、キーを抽出する際のキー用テンプレートの例を示す説明図である。図6(a)は、一の文書データで作成されるキー用テンプレートの例を示している。図6(b)は、図6(a)に示したキー用テンプレートで他のキーが抽出される例を示している。図6(a)、図6(b)において、文書データ上の破線で描かれた単語を囲う各矩形は、キー用テンプレートを構成する単語を夫々区別している。図6の説明図に示した例は、キーとして「シリーズA1」が与えられた場合に、制御部10がキーの前後夫々3個の単語をキー用テンプレートとして作成する例である。
【0102】
図6(a)の破線の矩形内によって示すように、キー「シリーズA1」の前後夫々3個の単語は、前の「製品シリーズ」「:」及び「</B>」の3単語、並びに後ろの「<LI>」「<B>」「タイプ」の3単語である。なお、ここではHTMLで記述されている文書データではHTMLタグも1単語とする。したがって情報処理装置1の制御部10は、図6(a)に示した文書データでは、キー「シリーズA1」に基づいて、『製品シリーズ:</B>(キー)<LI><B>タイプ』というキー用テンプレートを作成する。
【0103】
情報処理装置1の制御部10は、上述のように作成したキー用テンプレートを、当該文書データの他の部分及び他の文書データに適用してキーを取得する。図6(b)に示すように、文書データの他の部分に『製品シリーズ:</B>(キー)<LI><B>タイプ』のキー用テンプレートを適用することにより、キー「シリーズA2」及び「シリーズA3」を抽出することができる。
【0104】
なお、図6(a)に示した文書データについて、キー「シリーズA1」が与えられた場合に、前後8文字をキー用テンプレートとして作成するときは、キー用テンプレートは『リーズ:</B>(キー)<LI><B>タ』となる。
【0105】
本実施の形態では更に、キー用テンプレートの作成にDOM(Document Object Model)構造に対するUSP(Upper-Level Semantic text Portion)の概念を導入する。制御部10は、前後n個の単語又は文字のみならず、キーに対するUSPとなるテキストを特定し、前後n個の単語又は文字と、USPとなるテキストとをテンプレートとして作成する。制御部10は、このUSPが導入されたキー用テンプレートを適用する場合、前後n個の単語又は文字が前後に現れる文字列を抽出し、且つその文字列のUSPとなるテキストが同一である場合にその文字列をキーとして抽出する。
【0106】
DOMとは、XML、HTML等のタグ付けされた半構造化文書の論理構造を定義し、ソフトウェアによって半構造化文書を解析するためのモデルである(http://www.w3.org/DOM/参照)。実施の形態1における情報処理装置1の制御部10は、取得した文書データのDOM構造を解析することができるように構成されたプログラムを実行することによりDOM構造を認識することができる。
【0107】
ここでUSPとは、ある語に対しDOM構造上でその語と意味的に関連する可能性が高いテキスト部分を呼ぶ。図7は、USPの内容例を示す説明図である。図7には、HTMLの文書データ内に表わされる論理構造が明確な典型例として、表、箇条書きによる記述形式を示している。なお、図7に示した記述形式は、文書データがWebブラウザで読み込まれて表示された場合の例を示している。図7(a)に示す例は、情報が表形式で記述されている第1の例である。図7(b)に示す例は、情報が表形式で記述されている第2の例である。図7(c)に示す例は、情報が箇条書き形式で記述されている例である。
【0108】
図8、図9及び図10は、USPを特定するためのルールの例を示す表図である。図8、図9及び図10は、図7(a)、図7(b)、図7(c)夫々に示した3つの記述形式に対応するUSPのテキストを特定するためのルールの例を示している。ルール夫々には、ある語(キー)がそのルールを適用する記述形式に当てはまるか否かを判定するための判定条件を有している。情報処理装置1の制御部10は、夫々の判定条件に従ったプログラムを実行することにより、与えられたキーの近傍のDOM構造の解析結果に基づき、キーの近傍の構造がいずれの記述形式に当てはまるかを判定する。
【0109】
図7(a)に示すように、与えられたキー「A1」が表形式で記述されている場合について説明する。情報処理装置1の制御部10は、DOM構造を解析してキー「A1」の文書データ中の場所及び階層を認識する。制御部10は、キー「A1」のDOM構造に基づいて、図8、図9及び図10に示した各ルールの判定条件から、図7(a)に示した記述形式に当てはまると判定する。この場合、制御部10は、ルールに従ったプログラムを実行することにより、キー「A1」と表内の同列一行目のセル内に記述されているテキストをUSPに相当するテキストであると特定する。
【0110】
これにより、図7(a)に示した例の場合は、「項目A」がUSPとして特定される。なお、「項目A」はキーを属性値とした場合の属性名に対応する語である可能性が高い。制御部10は、キー「A1」の前後のtableタグ内に記述されるthタグ、tdタグ、trタグ等の単語のみならず、「項目A」がUSPとして特定されることをキー用テンプレートとする。これにより、例えば図7(a)に示すような文書データに対してキー「A1」が与えられた場合、制御部10は、キー用テンプレートを適用して前後のテキストパターン(n個の単語又は文字列)が共通し、同一のUSP「項目A」を有する「A2」をキーとして抽出することができる。
【0111】
同様に、図7(b)に示すように表形式で記述されている場合は、制御部10は図9の判定条件に適合すると判断し、「項目A」をUSPとして特定し、特定したUSPをキー用テンプレートに含める。図7(c)に示すように箇条書き形式で記述されている場合は、判制御部10は図10の判定条件に適合すると判断し「項目A」をUSPと特定し、特定したUSPをキー用テンプレートに含める。
【0112】
次に、図5のフローチャートに示した制御部10による処理手順の内のステップS34におけるテンプレートの評価値の算出処理について説明する。
【0113】
キーを抽出する際に適用したキー用テンプレートの評価値は、Yangarberらによる確信度の算出方法を適用して算出する。(参考文献R.Yangarber, and L.R.Grishman:Unsupervised learning of generalized names, Proceedings of the 19th International Conference on Computational Linguistics, Vol.1, pp.474-479, 2002.)
【0114】
Yangarberらによる確信度の算出方法を適用する場合、まず情報処理装置1の制御部10は、テンプレートti に対する確信度Ctemplate(ti )と、抽出した語we (ここではキーとなる属性値)に対する確信度Cword(we )を以下に示す式(1)及び式(2)に基づいて算出する。
【0115】
【数1】

【0116】
なお、式(1)及び式(2)におけるProb(ti )は、テンプレートti が適用されることによりこれまでに抽出された全ての語(ここではキー)の内、正しい語として既に記憶部11に記憶されている語の割合を示す。また、pos(ti )は、テンプレートti により抽出された語の内、正しい語として既に記憶部11に記憶してある語の数を示す。さらにMt は、語we を抽出したテンプレートの集合である。
【0117】
式(1)は、より正確により多くの正しい語を抽出することができたテンプレートに高い評価値を付与するための式である。一方、式(2)は、集合Mt に含まれる全てのテンプレートが間違って語を抽出している場合、その集合Mt に含まれるテンプレートに適合することによって抽出された語we は正しくないことに基づく式である。即ち、集合Mt に含まれるテンプレートが間違って語を抽出する場合を除いた、正しい事象が起こる確率を確信度として定義している。
【0118】
制御部10は、上述の式(1)によって得られる値を、作成したテンプレートの評価値としてもよい。また他に、式(1)からlog|pos(ti )|を除いた値、式(1)からProb(ti )を除いた値を、作成したテンプレートの評価値とする構成でもよい。さらに、テンプレートtk が適用されることにより抽出された語の評価値の平均、又はそれまでに抽出された語の評価値の合計を、作成したテンプレートの評価値とする構成でもよい。
【0119】
また、作成したテンプレートが適用されて抽出された語の評価値は、式(2)の値としてもよい。さらに、抽出された語を抽出することができた他のテンプレートの数、他のテンプレートの評価値の平均又は合計を評価値としてもよい。
【0120】
上述の図3から図5までのフローチャートに示したキーの抽出処理に対し、属性名を抽出する処理について次に説明する。
【0121】
図11は、実施の形態1における情報処理装置1の制御部10が属性名を抽出する処理手順を示すフローチャートである。図11は、図3のフローチャートに示した処理手順のうちのステップS15からステップS17までの処理に対応し、図5のフローチャートに示した処理手順と独立に平行して実行される。
【0122】
情報処理装置1の制御部10は、記憶部11に記憶されている文書データ集合113のうちの新規文書データの集合から、属性名抽出済みマークがオフである文書データを取得する(ステップS41)。制御部10は、ステップS41で取得した文書データにおける属性名用のテンプレートを作成する(ステップS42)。
【0123】
制御部10は、ステップS42で作成した属性名用テンプレートを適用する範囲を特定する(ステップS43)。ステップS43における属性名用テンプレートの適用範囲の特定処理については詳細を後述する。
【0124】
制御部10は、ステップS41で取得した文書データに対して特定した範囲内においてステップS42で作成した属性名用テンプレートを適用して属性名を抽出し、抽出した属性名の組をスキーマとして記憶する(ステップS44)。このとき、制御部10が、特定した範囲内のテキストに属性名用テンプレートを適用して抽出された属性名の組をスキーマとして記憶することにより、当該テキストにおけるオブジェクトの捉え方に応じたスキーマを記憶することが可能になる。
【0125】
さらに、制御部10は、抽出した属性名を属性名リスト111に記憶する(ステップS45)。制御部10はステップS45において、抽出した属性名を属性名リスト111に記憶するが、その際、既に抽出済みの属性名と重複する属性名については記憶しないようにしても良い。そして制御部10は、抽出したキー(図5参照)及び既にキーリスト112に記憶してある既存キー夫々と抽出した属性名とに基づいてクエリを作成し、クエリリストに記憶する(ステップS46)。
【0126】
制御部10は、ステップS41で取得した文書データの属性名抽出済みマークをオンにセットし(ステップS47)、新規文書データの集合中の全文書データの属性名抽出済みマークがオンにセットされているか否かを判断する(ステップS48)。制御部10は、新規文書データの集合中の全文書データの属性名抽出済みマークが未だオンにセットされていないと判断した場合(S48:NO)、処理をステップS41へ戻して属性名抽出済みマークがオフである文書データを取得し、さらにステップS42以降の処理を実行する。
【0127】
制御部10は、新規文書データの集合中の全文書データの属性名抽出済みマークがオンにセットされていると判断した場合(S48:YES)、属性名を抽出する処理を終了し、キーを抽出する処理が終了するのを待って処理を図3のフローチャートに示したステップS11へ戻す。
【0128】
なお、制御部10はステップS48において全文書データの属性名抽出済みマークがオンにセットされていると判断した場合、全文書データのキー抽出済みマークがオンにセットされているか否かを判断する。制御部10は、新規文書データの集合中の全文書データの属性名抽出済みマーク及びキー抽出済みマークのいずれもがオンにセットされていると判断した場合、新規文書データの集合の文書データを既存文書データの集合として記憶し直す。
【0129】
制御部10は上述に示すように、ステップS42において作成した属性名用テンプレートを、ステップS41で取得した文書データのみに適用し、更にステップS43で特定した範囲のみに適用して属性名を抽出する。これにより、多様な属性名を抽出するための汎用的なテンプレートを作成することができると共に、各文書データ夫々のみで有効なテンプレートで抽出することにより、文書データ夫々で異なる多様な記述形式に対応させることができる。
【0130】
また、キーを含む文書データから属性名を抽出する構成とすることにより、オブジェクトの情報が記述されていないような文書データに対するテンプレートの作成処理、属性名抽出処理等の処理の無駄を回避することができる。
【0131】
なお、制御部10はステップS45において属性名を記憶する際、抽出した属性名群をまとめてスキーマとして記憶部11に記憶する。このとき、既に抽出した属性名と重複する属性名があっても、一の文書データにおいて抽出した属性名が属性名群(スキーマ)として記憶されることに意味がある。論理構造に基づく範囲内に共に抽出される属性名は相互に、オブジェクトの特性を表わすために共通する目的を有して定義されたものであると考えられるからである。
【0132】
図11のフローチャートに示した制御部10による各処理の内、ステップS42における属性名用テンプレートの作成処理、及びステップS43における適用範囲の特定処理について夫々、詳細を以下に説明する。
【0133】
まず、ステップS42における属性名用テンプレートの作成処理について説明する。図12は、実施の形態1における情報処理装置1の制御部10が属性名用テンプレートを作成する処理手順を示すフローチャートである。情報処理装置1の制御部10は、与えられた複数の属性名の前後で共通するテキストパターンを特定し、テンプレートとする。図12のフローチャートに示す処理は、図11のフローチャートに示した処理手順の内のステップS42の処理の詳細に対応する。
【0134】
情報処理装置1の制御部10は、ステップS41により取得された文書データ内において、クエリに含まれている属性名ペアが出現する位置を特定し、記憶する(ステップS501)。このとき制御部10は、属性名ペアが出現する位置を、属性名夫々の始点Sと終点Eとにより記憶する(始点S1,S2及び終点E1,E2)。なお、クエリに含まれている属性名が二つではなく、3以上である場合は夫々の始点S及び終点Eを記憶する。
【0135】
制御部10は、まず属性名夫々の手前のテキストパターンについて共通するパターンを特定するために以下の処理を行なう。
【0136】
制御部10は、文字の読み出し位置Rfを属性名ペア夫々の始点Sにセットする(ステップS502)。制御部10は、読み出し位置Rfから一文字ずつ前方向に戻って一文字を読み出し(ステップS503)、全ての属性名(ここでは属性名ペア)に対する読み出し位置Rfから読み出した夫々の一文字が一致するか否かを判断する(ステップS504)。
【0137】
制御部10は、読み出した一文字が一致すると判断した場合(S504:YES)、共通するテキストパターンが未だ前方に続く可能性が高いので、処理をステップS503に戻して読み出し位置Rfを前方向に戻って(Rf=Rf−1)一文字を読み出す(S503)。その後再度、読み出した文字が一致するか否かの判断(S504)の処理を実行し、全ての属性名に対する前方向のテキストパターンにおいて一文字ずつ一致するか否かの判断を実行し、一致しない(S504:NO)と判断するまで処理(S503及びS504)を繰り返す。
【0138】
制御部10は、読み出した一文字が一致しないと判断した場合(S504:NO)、属性名ペアの一方に対する読み出し位置Rfの一文字分後方に進んだ位置(Rf+1)から、属性名の始点Sまでの文字列をテンプレートの文字列の内の前半部(Tstrf)として記憶する(ステップS505)。
【0139】
次に制御部10は、属性名夫々の後方のテキストパターンについて共通するパターンを特定するために以下の処理を行なう。
【0140】
制御部10は、文字の読み出し位置Rbを属性名ペア夫々の終点E(E1,E2)にセットする(ステップS506)。制御部10は、読み出し位置Rbから一文字ずつ後方向に進んで(Rb=Rb+1)一文字を読み出し(ステップS507)、全ての属性名(ここでは属性名ペア)に対する読み出し位置Rbから読み出した夫々の一文字が一致するか否かを判断する(ステップS508)。
【0141】
制御部10は、読み出した一文字が一致すると判断した場合(S508:YES)、共通するテキストパターンが未だ後方に続く可能性が高いので、処理をステップS507に戻して読み出し位置Rbを後方向に進んで一文字を読み出す(S507)。その後再度、読み出した文字が一致するか否かの判断(S507)の処理を実行し、全ての属性名に対する後方向のテキストパターンにおいて一文字ずつ一致するか否かの判断を実行し、一致しない(S508:NO)と判断するまで処理(S507及びS508)を繰り返す。
【0142】
制御部10は、読み出した一文字が一致しないと判断した場合(S508:NO)、属性名の終点Eから、属性名ペアの一方に対する読み出し位置Rbの一文字分手前に戻った位置(Rb−1)までの文字列をテンプレートの文字列の内の後半部(Tstrb)として記憶する(ステップS509)。
【0143】
制御部10は、ステップS505で記憶したテンプレートの前半部(Tstrf)及び後半部(Tstrb)の2種類の文字列を属性名テンプレートとする(ステップS510)。制御部10は、属性名用テンプレートの作成処理を終了し、図11のフローチャートに示した処理手順の内のステップS42へ処理を戻す。
【0144】
上述のように示した処理手順により、複数の属性名の前後のテキストから共通するパターンが特定され、属性名用テンプレートが作成される。なお、上述の処理手順の内のステップS504ステップS508の処理で一致するか否かを判断する処理においては、ステップS503及びステップS507夫々で一文字ずつ読み出して比較する構成とした。しかしながら、本発明はこれに限らず、読み出す単位を一文字ではなく一単語ずつ読み出して一致するか否かを判断する構成でもよい。このとき単語には、HTML、XMLタグが含まれる。
【0145】
このように、属性名用テンプレートを複数の属性名の前後テキストの完全一致部分から作成する構成とすることにより、属性名に関する部分の記述形式の多様性に対応させることができ、より多様なスキーマを抽出することができる。
【0146】
次に、制御部10によるステップS43における適用範囲の特定処理について説明する。図13は、実施の形態1における情報処理装置1の制御部10が属性名用テンプレートの適用範囲を特定する処理手順を示すフローチャートである。
【0147】
情報処理装置1の制御部10はまず、適用範囲を特定するために文書データのDOM構造に基づく木構造を解析する(ステップS61)。なお、DOM構造に基づく木構造の解析は、ステップS601のタイミングに限らず、図11のフローチャートに示した処理手順の内のステップS41で文書データを取得した後に解析しておいてもよい。DOM構造の解析のタイミングは他に、制御部10が属性名用テンプレートを作成した(S42)後でもよく、さらには図4のフローチャートに示した処理手順のステップS24で、新規文書データの集合に記憶する際にDOM構造を解析しておくようにしてもよい。
【0148】
次に、制御部10は、DOM構造に基づく木構造から、属性名ペアの各属性名を含む属性名用テンプレートに対応する部分木を夫々特定する(ステップS62)。なお、ステップS62で特定する部分木は、属性名用テンプレートに相当するテキストを含む最小の部分木である。制御部10は、属性名ペア夫々について特定した部分木が一致するか否かを判断する(ステップS63)。
【0149】
制御部10は、部分木が一致すると判断した場合(S63:YES)、その一致する部分木自身又はその部分木からn階層上のノード以下を属性名用テンプレートの適用範囲として特定する(ステップS64)。
【0150】
制御部10は、部分木が一致しないと判断した場合(S63:NO)、夫々の部分木からn階層上のノード以下を属性名用テンプレートの適用範囲として特定する(ステップS65)。
【0151】
制御部10は、ステップS64及びステップS65において属性名用テンプレートの適用範囲を特定した後は、図11のフローチャートに示した処理手順の内のステップS43へ処理を戻す。
【0152】
図14は、取得された文書データの一例を示す説明図である。図15は、取得された文書データについて解析されて得られたDOM構造に基づく木構造を示す説明図である。図15に示した木構造は、図14の説明図に示した文書データに対し、図13のフローチャートに示した処理手順の内のステップS62の処理を行った結果に対応する。図15に示す破線内は、作成された属性名用テンプレートに対応する部分木を示している。
【0153】
図14の説明図に示した文書データについて、属性名ペアとして「CPU」及び「メモリ」が与えられていた場合、情報処理装置1の制御部10は、図12のフローチャートに示した処理手順を実行することにより、「CPU」及び「メモリ」夫々の前後テキストの完全一致部分を属性名用テンプレートとして作成する。この場合に作成される属性名用テンプレートは、『<LI><B>(属性名):</B>』である。これに対し、情報処理装置1の制御部10は、図13のフローチャートに示したステップS62を実行することにより、図15に示すDOM構造に基づく木構造において、作成された属性名用テンプレート『<LI><B>(属性名):</B>』を含む部分木を破線で示すように作成する。「商品名B」と「1GB」は、リストタグの階層よりも下層に相当するため、夫々部分木に含まれる。
【0154】
情報処理装置1の制御部10は、図13のフローチャートのステップS63に示したように、作成した部分木が一致するか否かを判断する。図15の説明図に示した例では、情報処理装置1の制御部10は、部分木が一致しないと判断する。したがって、制御部10は、部分木から1階層上以下を適用範囲とする場合、属性名ペア「CPU」及び「メモリ」の内の一方である「CPU」から1階層(n=1)上のULタグ以下(一点鎖線内)を適用範囲とする。なお、「メモリ」から1階層上以下の範囲は、「CPU」から1階層上以下の範囲と同じULタグ以下であり一致する。したがって、「メモリ」から特定する適用範囲は考慮しなくても良い。
【0155】
一方例えば、属性名ペア夫々に対して特定した部分木が破線内ではなく上位の層のULタグ以下も含んだ一点鎖線で示した部分木である場合は、制御部10は部分木は一致すると判断する。
【0156】
情報処理装置1の制御部10は、上述のように特定した適用範囲内に属性名用テンプレートを適用し、属性名群を抽出する。図14及び図15に示した例では、一点鎖線内で属性名用テンプレートが適用され、スキーマとして「メーカー型番」、「製品シリーズ」、「タイプ」、「CPU」、「メモリ」及び「HDD」の属性名の組が抽出される。
【0157】
このように、作成した属性名用テンプレートを適用する範囲を限定することにより、テンプレートが汎用的になって文書データ中のあらゆる箇所からノイズとなる語が抽出されてしまうことを防ぐことができる。
【0158】
制御部10による、文書データの取得処理、キーの抽出処理及び属性名の抽出処理と、夫々の処理において使用又は抽出されるキー、属性名、クエリ及び文書データとの関係に注目し、本発明のブートストラッピングによる属性名の抽出処理を説明する。図16は、実施の形態1における情報処理装置1の制御部10が実行する処理を概念的に表わす説明図である。なお、図16の説明図に示す処理の流れの概略は図3のフローチャートに示した処理手順に対応し、夫々の処理の詳細は図4、図5、図11、図12及び図13のフローチャートに示した処理手順に対応する。なお、図16中の白矢印は、処理の流れを表わしている。
【0159】
図16(a)は、実施の形態1における本発明のスキーマ抽出方法が実施される前の初期状態で予め与えられるキー及び属性名ペアである。図16(b)は、キーリスト112及び属性名リスト111を示しており、既存キーのリスト及び属性名のリスト、新規キーのリスト及び属性名のリストに区別されていることが表わされている。図16(c)は、図16(b)のキーリスト112及び属性名リスト111に基づいて作成されるクエリリストを示している。なお、図16(b)の既存キーのリスト及び新規属性名のリスト間、新規キーのリスト及び既存属性名のリスト間、新規キーのリスト及び新規属性名のリスト間の実線は、それらの間でクエリが作成されることを表わしている。
【0160】
図16(d)は、図16(c)のクエリリストに基づいて検索され、取得される複数の文書データを示している。図16(e)は、図16(d)に示される文書データに基づいて抽出されたキー及び属性名のリストを示している。図16(e)に示したキー及び属性名のリストは、図16(b)の新規キーのリスト及び属性名のリストとして記憶される。
【0161】
図16に示すように、実施の形態1における情報処理装置1の制御部10は、初期状態で与えられる少数のキー及び属性名(図16(a)、(b))に基づいてクエリを作成し(図16(c))、クエリから複数の文書データを取得し(図16(d))、取得した文書データからキー及び属性名を夫々抽出し(図16(e))、抽出したキー及び属性名を記憶して(図16(b))、更にそれらからクエリを作成し、文書データを所得するという処理を繰り返す(図16(a)→(b)→(c)→(d)→(e)→(b)→(c)→(d)→(e)→(b)…)。これにより、多様多数の属性名を抽出することができる。このような方法はブートストラッピングと呼ばれている。
【0162】
上述の処理を図1の具体例に当てはめて属性名を抽出する処理について説明する。情報処理装置1の記憶部11の属性名リスト111には初期状態において、「オブジェクトA」に対する属性名「A」と属性名「B」とが記憶されている。キーリスト112には、「オブジェクトA」の内の一を一意に特定し得る語である名称「オブジェクトA1」がキーとして記憶されている。
【0163】
情報処理装置1の制御部10は、図3に示したステップS11の処理において記憶部11の属性名リスト111から属性名「A」と属性名「B」と、キーリスト112からキー「オブジェクトA1」とにより作成されたクエリを選択する。情報処理装置1の制御部10は、属性名「A」と属性名「B」とキー「オブジェクトA1」を含む文書データD1を取得する。
【0164】
情報処理装置1の制御部10は、文書データD1内の属性名「A」及び属性名「B」それぞれの前後のテキストを比較して属性名を抽出する属性名用テンプレートを作成し、作成したテンプレートを文書データD1内に適用し、属性名「A」及び「B」に加えて属性名「C」を抽出する。これにより、情報処理装置1は文書データD1から、属性名「A」、属性名「B」、属性名「C」からなるスキーマSc1を抽出することができる。
【0165】
次に情報処理装置1は、文書データD1で得られた新たな属性名「C」を使用し、キー「オブジェクトA1」、属性名「A」、属性名「C」からなるクエリに基づいて文書データD2を取得し、文書データD2から「オブジェクトA」の属性名「A」、属性名「C」、属性名「D」からなるスキーマSc2を抽出することができる。さらに、新たに得られた属性名「D」を使用して更に文書データを検索することにより、「オブジェクトA」の特性を表わすスキーマが多数抽出される。
【0166】
このように本発明に係るスキーマ抽出方法を実施する情報処理装置1は、ブートストラッピングの手法により、Web上から実世界上に存在する概念も含めた広義の「もの」を特定するための属性名を取得することができる。つまり、情報処理装置1の記憶部11には、例えば、「ノートパソコン」の実体夫々を特定するための情報として、属性名「A」、属性名「B」、属性名「C」、…が存在することが記憶される。さらに「ノートパソコン」は、その捉え方によってその特性を属性名「A」、属性名「C」及び属性名「D」の組により表現される場合、更に例えば属性名「C」、属性名「E」、属性名「F」、…の組により表現される場合があることが記憶される。
【0167】
本発明により、オブジェクトに対して定義された属性名群であるスキーマの集合が一元的に管理可能になる。オブジェクトに対するあらゆるスキーマが記憶してあるので、各オブジェクトについて多様な捉え方によって定義された属性名に対する属性値を予めデータベース化しておくことができる。オブジェクトを特定するための属性値を取得することが容易になるからである。これにより例えば、検索サービスを実現する際又は質問応答システムを実現する際、ユーザから入力されたキーワードから検索、質問の対象となるオブジェクトとスキーマとを特定し、スキーマに含まれる属性名に対応する属性値が含まれる文書データを検索することができ、ユーザの検索の要求に適した検索結果、応答結果を出力することが可能になる。
【0168】
なお、実施の形態1においては、抽出したキー及び属性名については特に処理を行なわずに新規に抽出されたキー及び属性名を記憶するように構成した。クエリリストについても、作成したクエリリストからクエリを選択する方法については特に言及せず、クエリリストからリスト順に選択し、選択したクエリについてはクエリリストから削除する構成とした。しかしながら、本発明はこれに限らず、より効果的、効率的にスキーマを抽出するため、抽出したキー及び属性名、さらにそれらから作成するクエリについて有用性を表わす評価値を与えて夫々のリストに対応付けて記憶しておく構成でもよい。
【0169】
この場合、制御部10はキーリスト112のキー夫々について有用性を表わす評価値を算出してキーに対応付けて記憶しておき、さらに、属性名についても評価値を算出して属性名と対応付けて記憶しておく。制御部10は属性名リスト111の評価値付きの属性名と、キーリスト112の評価値付きのキーとを選択してクエリを作成し、記憶部11にクエリリストとして記憶しておく。作成されたクエリには、含まれる属性名及びキーの評価値に基づいて算出されるクエリの評価値を対応付けて記憶しておく。これにより、制御部10は、クエリリストからクエリの評価値が高い順にクエリを記憶部11から読み出して使用することで効率的にスキーマを抽出することができる。
【0170】
(実施の形態2)
実施の形態1では、図3のフローチャートに示した文書データの取得処理後、取得した文書について、キーの抽出処理及び属性名の抽出処理を夫々独立平行して実行させる構成とした。また、実施の形態1では、抽出したキー及び属性名、並びにクエリについては単にリストに記憶する構成とした。
【0171】
これに対し、実施の形態2では、図3のフローチャートに示した文書データの取得処理を、キーの抽出処理及び属性名の抽出処理夫々に対して行う。さらに実施の形態2では、キーの抽出処理と属性名の抽出処理とを平行に実行させずに、キーの抽出処理の実行後に属性名の抽出処理を実行させる。さらに、実施の形態2では、抽出したキー及び属性名、クエリ夫々に有用性を表わす評価値を付与し、評価値が高い順に優先的に使用する構成とする。
【0172】
実施の形態2における情報処理装置1のハードウェア構成は、実施の形態1と同様であるので詳細な説明を省略し、同一の符号を用いて説明する。
【0173】
なお、実施の形態2における情報処理装置1の記憶部11に記憶されているキーリスト112、属性名リスト111には、キー及び属性名夫々について算出された評価値が対応付けられて記憶される。また、実施の形態2でも、キーの選択及び属性名の選択においては、予めクエリリストを作成しておき、クエリリストからクエリを選択する。しかし、実施の形態2では、情報処理装置1の制御部10は、実施の形態1のようにキー及び属性名ペアからなるクエリによって文書データを取得しておき、取得された文書データから夫々キーの抽出及び属性名の抽出の処理を実行するのではなく、キーを含む文書データを取得して予めキーを抽出しておき、取得した文書データから属性名ペアを含む文書データを取得して属性名を抽出する。つまり、情報処理装置1の制御部10は文書データの取得の処理を2回に分けて実行するので、情報処理装置1の記憶部11に記憶されるクエリリストは、キーをクエリとするキーの抽出のためのクエリ(キー)リストと、属性名ペアをクエリとする属性名の抽出のためのクエリ(属性名ペア)リストとに分けて予め記憶してあり、さらに後述する処理によって作成されて追加される。また、作成される各クエリには評価値が更に対応付けられて記憶される。キーを抽出するためのクエリはキーであるので、キーについて算出された評価値が対応付けられ、属性名を抽出するためのクエリは属性名ペアであるので、ペアとなる属性名夫々について算出された評価値に基づいて更に算出される評価値(後述)が対応付けられる。
【0174】
実施の形態2における情報処理装置1の制御部10の処理手順の概略は、実施の形態1において図3のフローチャートに示した処理手順と同様である。実施の形態2における情報処理装置1の制御部10は、図3のフローチャートにおけるステップS11からステップS14までの処理をm回実行してキーを複数抽出し、その後、ステップS11及びステップS15からステップS17までの処理をn回実行して属性名を抽出する(m及びnは任意の自然数である)。なお、情報処理装置1の制御部10は、キーの抽出の際のステップS11において、キーをクエリとして一又は複数選択し、クエリに基づいて文書データを取得する。一方、情報処理装置1の制御部10は、属性名の抽出の際のステップS11においては、キーをクエリとして取得された文書データから更に、属性名ペアをクエリとして選択してクエリに基づいて文書データを取得する。
【0175】
組み合わせられたキーと属性名ペアとの両方を含む文書データのみならず、キーのみを含む文書データに基づいても更にキーを抽出することにより多様なキーを抽出することができ、これにより多様な文書データが取得され、したがって多様なスキーマが抽出されることが期待される。さらに、より多様な組み合わせの属性名ペアを含む文書データを取得して属性名を抽出することにより多様なスキーマが抽出されることが期待される。
【0176】
次に、実施の形態2における情報処理装置1の制御部10によるキーの抽出の処理及び属性名の抽出の処理の詳細について以下に夫々説明する。
【0177】
図17及び図18は、実施の形態2における情報処理装置1の制御部10がキーを抽出する処理手順を示すフローチャートである。図17及び図18のフローチャートに示す処理手順は、図3のフローチャートに示した処理手順の内のステップS11からステップS14までの処理に対応する。
【0178】
情報処理装置1の制御部10は、記憶部11に記憶してあるキー抽出処理におけるクエリ(キー)リストから、クエリを選択する(ステップS701)。
【0179】
ステップS701において制御部10は、クエリ(キー)リストに記憶してある評価値が高い順に選択するようにする。
【0180】
次に、制御部10は、選択したクエリ(キー)に基づいて通信部13を介してネットワークN上に存在する文書データを検索し、複数の文書データを取得する(ステップS702)。このとき制御部10は、取得した文書データのファイルそのものをダウンロードすることにより記憶部11の文書データ集合113に記憶する構成でもよいし、取得した文書データのURLのみを記憶部11の文書データ集合113に記憶する構成でもよい。また、ステップS702において文書データの取得に用いたキーはクエリリストから削除する。
【0181】
制御部10は、ステップS702で取得した複数の文書データの内から、既に以前の処理によって記憶部11の文書データ集合113に記憶されていない文書データを抽出する(ステップS703)。制御部10は、抽出された文書データを文書データ集合113の内の新規文書データの集合に記憶する(ステップS704)。
【0182】
制御部10は、記憶部11に記憶された文書データ集合113の内の新規文書データの集合から、キー抽出済みマークがオフである文書データを取得する(ステップS705)。制御部10は、ステップS705で取得した文書データにおけるキー用の新規テンプレートを作成する(ステップS706)。このとき制御部10は、ステップS705で取得した文書データのキー抽出済みマークをオンにセットする。キー用テンプレートの作成処理の詳細は、実施の形態1における処理と同様であるので、詳細な説明を省略する。
【0183】
制御部10は、ステップS706で作成した新規キー用テンプレートと、記憶部11に記憶してあるテンプレートリスト中の既存キー用テンプレートとを、取得した文書データに適用してキーを抽出する(ステップS707)。ステップS707におけるキーの抽出処理については、実施の形態1における図5のフローチャートに示した処理手順の内のステップS33における処理と同様である。つまり、ステップS705で取得した文書データのみならず既存文書データの集合中の文書データにも新規キー用テンプレートを適用し、ステップS705で取得した文書データには、既存キー用テンプレートを適用してキーを抽出する。
【0184】
制御部10は、ステップS707で使用した新規キー用テンプレートと既存キー用テンプレートとに対する評価値を算出し(ステップS708)、新規キー用テンプレート及び既存キー用テンプレートの内、算出した評価値が所定値以上であるキー用テンプレートのみを記憶部11のテンプレートリストに記憶する(ステップS709)。ステップS709におけるテンプレートに対する評価値の算出処理については、実施の形態1における評価値の算出と同様であるので詳細な説明を省略する。
【0185】
制御部10は更に、ステップS707で抽出したキーに対する評価値を算出する(ステップS710)。制御部10は、ステップS707で抽出したキー夫々について算出した評価値を付与し(ステップS711)、記憶部11のキーリスト112に記憶する(ステップS712)。このとき制御部10は、ステップS707で抽出したキーの内、記憶部11のキーリスト112に記憶していないキーについては、そのまま評価値を付与して記憶するが(S712)、記憶部11のキーリスト112に記憶してあるキーと同一のキーについては、付与してある評価値をステップS710で算出された評価値に置き換えるようにする。この処理により、その後再度ステップS701において制御部10がクエリを選択する際は、評価値が高い順にキーがクエリとして選択される。なお、キーに対する評価値の算出方法の詳細については後述する。なお、既にクエリとして使用したキーについては記憶しないようにする。
【0186】
また、制御部10は、抽出したキーをキーリスト112に記憶するが、キーに算出した評価値を対応付けてクエリリストに記憶する。
【0187】
制御部10は、ステップS705で取得した文書データのキー抽出済みマークをオンにセットし(ステップS713)、新規文書データの集合中の全文書データのキー抽出済みマークがオンにセットされているか否かを判断する(ステップS714)。制御部10は、新規文書データの集合中の全文書データのキー抽出済みマークが未だオンにセットされていないと判断した場合(S714:NO)、処理をステップS705に戻してキー抽出済みマークがオフである文書データを取得し、ステップS706以降の処理を実行する。
【0188】
制御部10は、新規文書データの集合中の全文書データのキー抽出済みマークがオンにセットされていると判断した場合(S714:YES)、キーを抽出する処理をm回実行したか否かを判断する(ステップS715)。制御部10は、キーを抽出する処理をm回実行していないと判断した場合(S715:NO)、処理をステップS701へ戻して残数回処理を繰り返す。制御部10は、キーを抽出する処理をm回実行したと判断した場合(S715:YES)、処理を図3のフローチャートに示したステップS11へ戻し、次はステップS11及びステップS15からステップS17までの以下に示す属性名の抽出処理を実行する。
【0189】
次に、情報処理装置1の制御部10による属性名の抽出処理について説明する。図19は、実施の形態2における情報処理装置1の制御部10が属性名を抽出する処理手順を示すフローチャートである。図19のフローチャートに示す処理手順は、図17及び図18のフローチャートに示した処理手順を実行した後に行われる。
【0190】
情報処理装置1の制御部10は、記憶部11に記憶してあるクエリ(属性名ペア)リストから、クエリを選択する(ステップS801)。
【0191】
ステップS801において制御部10は、クエリ(属性名ペア)リストに記憶してある評価値が高い順に選択するようにする。
【0192】
制御部10は、選択したクエリ(属性名ペア)に基づいて、上述のキーの抽出の処理で使用されたキー抽出済みの文書データ(図17及び図18のフローチャートにおけるステップS702でm回取得された文書データの集合)から、文書データを検索して取得する(ステップS802)。
【0193】
制御部10は、ステップS802で取得した文書データ夫々における属性名用のテンプレートを作成する(ステップS803)。ステップS803における属性名用テンプレートの作成処理は、実施の形態1における処理手順と同様であるので詳細な説明を省略する(図12参照)。
【0194】
制御部10は、ステップS803で作成した属性名用テンプレートを適用する範囲を特定する(ステップS804)。ステップS804における属性名用テンプレートの適用範囲の特定処理は、実施の形態1における処理手順と同様であるので説明を省略する(図13参照)。
【0195】
制御部10は、ステップS802で取得した文書データ夫々に対して特定した範囲内においてステップS803で作成した属性名用テンプレートを適用して属性名を抽出し、抽出した属性名の組をスキーマとして記憶する(ステップS805)。このとき、制御部10が、特定した範囲内のテキストに属性名用テンプレートを適用して抽出された属性名の組をスキーマとして記憶することにより、当該テキストにおけるオブジェクトの捉え方に応じたスキーマを記憶することが可能になる。
【0196】
さらに制御部10は、抽出した属性名に対する評価値を算出し(ステップS806)、ステップS805で抽出した属性名に算出した評価値を付与し(ステップS807)、属性名を属性名リスト111に記憶する(ステップS808)。属性名に対する評価値の算出の詳細については後述する。
【0197】
また、制御部10はステップS808において抽出した属性名を属性名リスト111に記憶するが、その際、既に属性名リスト111に記憶してある属性名については算出した評価値を付与し直して記憶し、新規に抽出された属性名は算出された評価値と対応付けて記憶する。そして制御部10は、抽出した属性名と既に属性名リスト111に記憶してある属性名との全組み合わせからなる属性名ペア、及び抽出した属性名同士の全組み合わせからなる属性名ペアをクエリとして作成し、属性名抽出処理のためのクエリリストに記憶する(ステップS809)。
【0198】
制御部10は、上記ステップS801からステップS808までの属性名を抽出する処理を任意の自然数n回実行したか否かを判断する(ステップS810)。制御部10は、属性名を抽出する処理をn回実行していないと判断した場合は(S810:NO)、処理をステップS801へ戻して残数回処理を繰り返す。制御部10は、属性名を抽出する処理をn回実行したと判断した場合は(S810:YES)、処理を図3のフローチャートに示したステップS11へ、即ち図17及び図18のフローチャートに示したステップS701の処理へ戻してキーの抽出処理を再び実行する。
【0199】
このように制御部10は、図17及び図18のフローチャートに示したキーの抽出の処理をm回実行した後、図19のフローチャートに示した属性名の抽出の処理をn回実行する。これにより、偏った属性名から取得される文書データではなく、多様なキーから取得した文書データに基づいて、より多様なスキーマを抽出することができる。
【0200】
次に、上述の処理手順の内の、キー及び属性名に対する評価値の算出方法について説明する(図17及び図18のフローチャートにおけるステップS710、及び図19のフローチャートにおけるステップS806の処理)。
【0201】
キーについての評価値としては、(a)出現回数、(b)出現する文書データの数、(c)共起する属性名の種類の数、(d)キーリスト112又は属性名リスト111に記憶された順序(より先に記憶されたものほど高い値を持つ)、(e)乱数、又は(f)人手で付ける重要度を算出して付与する。
【0202】
キーについての評価値の算出は更に、実施の形態1において示した式(2)に基づいて算出してもよい。この場合、評価値の算出にはそのキーを抽出する際に適用したテンプレートについての評価値を使用する。この場合、情報処理装置1の制御部10は、キー用テンプレートについてはキーを抽出した際に評価値を算出するので(図17及び図18におけるステップS708)、その値と評価値が対応付けられているテンプレートリストを使用して式(2)に基づいて算出することができる。
【0203】
属性名についての評価値としては、(a)出現回数、(b)出現する文書データの数、(c)共起する(同一の文書データから共に抽出される)属性名の数、(d)共起する属性名の種類の数、(e)キーリスト112又は属性名リスト111に記憶された順序(より先に記憶された者ほど高い値を持つ)、(f)乱数、又は(g)人手で付ける重要度を算出して付与する。
【0204】
属性名についての評価値については、実施の形態2では属性名ペアをクエリとする。したがって、属性名夫々についての評価値ではなく、属性名ペアについての評価値を算出するようにしてもよい。この場合、ペアとなる属性名が共起する回数、又は属性名夫々と共起するキーの種類の数を評価値として算出するようにしてもよい。また、クエリとなる属性名ペアについての評価値は、属性名夫々について上述の(a)から(g)までのいずれかの方法で算出された評価値を更に相互に乗算して算出した値(クエリ評価値=属性名評価値×属性名評価値)を付与してもよい。
【0205】
属性名のついての評価値の算出についても、実施の形態1において示した式(2)に基づいて算出してもよい。この場合は、情報処理装置1の制御部10は、属性名用テンプレートについては各文書データ内のみで適用し他の文書データに対しては適用しないが、テンプレートリストとして記憶するようにし、同様に式(2)に基づいて評価値を算出するようにしてもよい。
【0206】
実施の形態2における制御部10による、文書データの取得処理、キーの抽出処理及び属性名の抽出処理と、夫々の処理において使用又は抽出されるキー、属性名、クエリ及び文書データとの関係に注目し、本発明のブートストラッピングによる属性名の抽出処理を説明する。図20は、実施の形態2における情報処理装置1の制御部10が実行する処理を概念的に表わす説明図である。なお、図20の説明図に示す処理の流れの概略は図3のフローチャートに示した処理手順に対応し、夫々の処理の詳細は図17、図18、図19、図12及び図13のフローチャートに示した処理手順に対応する。なお、図20中の白矢印は、処理の流れを表わしている。
【0207】
図20(a)は、実施の形態2における本発明のスキーマ抽出方法が実施される前の初期状態で予め与えられるキー及び属性名ペアである。図20(b)は、キーリスト112を示しており、キーリスト112は同時にキー抽出処理におけるクエリリストでもある。図20(b)の各キーの横に示された数字は、各キーについて算出されて付与された評価値である。図20(c)は、図20(b)のクエリリストに基づいて検索され、取得される複数の文書データを示している。図20(d)は、図20(c)に示される文書データに基づいて新規に抽出されたキーのリストを示している。図20(d)のリストの各キーは夫々評価値が算出され、図20(b)のキーリスト112に追加される。また、キーリスト112の既存キーと重複するキーについては算出された評価値に更新される。
【0208】
図20(e)は、属性名リスト111を示している。図20(e)の各属性名の横に示された数字は夫々、各属性名について算出されて付与された評価値である。図20(f)は、属性名リスト111に基づいて作成される属性名ペアからなるクエリリストを示している。図20(f)の各クエリの横に示された数字は、各クエリについて算出されて付与された評価値である。図20(g)は、図20(c)に示されるキーを含む文書データから更に、属性名ペアからなるクエリに基づいて検索され取得される文書データを示している。図20(h)は、図20(g)に示される文書データに基づいて抽出された属性名のリストを示している。図20(h)に示したリストの各属性名は夫々評価値が算出され、図20(e)の属性名リスト111に追加される。また、属性名リスト111の既存の属性名を重複する属性名については算出された評価値に更新される。
【0209】
図20に示すように、実施の形態2における情報処理装置1の制御部10は、初期状態で与えられる少数のキー(図20(a))に基づいてクエリとし(図20(b))、クエリから複数の文書データを取得し(図20(c))、取得した文書データからキーを抽出し(図20(d))、さらに抽出したキーに評価値を付与してクエリとし(図20(b))、文書データを取得するというキー抽出の処理をm回繰り返す(図20(a)→(b)→(c)→(d)→(b)→(c)→(d)→(b)→…)。
【0210】
次に情報処理装置1の制御部10は、初期状態で与えられる少数の属性名(図20(a))と属性名リスト111(図20(e))に基づいてクエリを作成し(図20(f))、キー抽出の際に取得された複数の文書データ(図20(c))から属性名ペアを含む文書データを取得し(図20(g))、取得した文書データから属性名を抽出し(図20(h))、さらに抽出した属性名に評価値を付与して属性名リスト111に記憶し(図20(e))、更にそれらからクエリを作成し、文書データを取得するという処理をn回繰り返す(図20(e)→(f)→(g)→(h)→(e)→(f)→(g)→(h)→(e)→…)。これにより、多様多数の属性名を抽出することができる。
【0211】
本発明により、オブジェクトに対して定義された属性名群であるスキーマの集合が一元的に管理可能になる。実施の形態2においては、制御部10により抽出されて次にクエリとして用いるキー、属性名について、評価値が算出されて付与される構成とした。情報処理装置1の制御部10は、テンプレート作成時においてキー又は属性名である可能性が高い語を優先的に使用することにより、ノイズとなる語の抽出の低減、及び他の多くのキー又は属性名と共起する語の抽出を実現することができる。
【0212】
なお、実施の形態2では、抽出したキー及び属性名に対して評価値を算出して付与する構成とした。しかしながら、本発明はこれに限らず、実施の形態1と同様に、抽出されたキー及び属性名に評価値を付与せずに、後の属性名の抽出の際に同等に用いるようにキーリスト112、属性名リスト111に記憶する構成でもよい。この場合、情報処理装置1の制御部10は、抽出したキーを記憶する際、キーリスト112に記憶されているキーと重複しないキーのみをキーリスト112に追加する。抽出した属性名を記憶する際も同様の処理を行なう。
【0213】
(実施の形態3)
実施の形態2では、図3のフローチャートに示した文書データの取得処理を、キーの抽出処理及び属性名の抽出処理夫々に対して行い更に、キーの抽出処理の実行後に、キーの抽出処理で取得された文書データから属性名を抽出する処理を実行する構成とした。
【0214】
これに対し、実施の形態3では、実施の形態2のようにキーの抽出処理と属性名の抽出処理とを順次行う構成とせず、独立して平行に実行させる。したがって、文書データの取得処理については、キーの抽出処理と属性名の抽出処理とにおいて実施の形態2と同様に夫々実行するが、キーの抽出処理において取得した文書データから属性名を含む文書データを抽出するのではなく、属性名を抽出する前に再度クエリを選択してネットワークN上から文書データを検索する構成とする。これにより、キーと属性名ペアとの組み合わせからなるクエリが更に多様になり、より多様なスキーマを抽出することが期待される。
【0215】
実施の形態3における情報処理装置1のハードウェア構成は、実施の形態1と同様であるので詳細な説明を省略し、同一の符号を用いて説明する。
【0216】
なお、実施の形態3における情報処理装置1の記憶部11に記憶されているキーリスト112、属性名リスト111には、実施の形態2と同様に、キー及び属性名夫々について算出された評価値が対応付けて記憶される。また、実施の形態3でも、実施の形態1と同様に、キーの選択及び属性名の選択においては、予めクエリリストを作成しておき、クエリリストからクエリを選択する。実施の形態3では、キーを抽出する処理と属性名を抽出する処理とで夫々独立して文書データを検索して取得する処理を実行するので、情報処理装置1の記憶部11に記憶されるクエリリストは、キーをクエリとするキーの抽出のためのクエリ(キー)リストと、キーと属性名ペアとをクエリとする属性名の抽出のためのクエリ(キー+属性名ペア)リストとに分けて予め記憶してある。また、作成される各クエリには評価値が更に対応付けて記憶される。キーを抽出するためのクエリはキーであるので、キーについて算出された評価値が対応付けられ、属性名を抽出するためのクエリはキー及び属性名ペアであるので、キーとペアとなる属性名夫々とについて算出された評価値に基づいて更に算出される評価値(後述)が対応付けられる。
【0217】
実施の形態2における情報処理装置1の制御部10の処理手順の概略は、実施の形態1において図3のフローチャートに示した処理手順と同様である。実施の形態3における情報処理装置1の制御部10は、図3のフローチャートにおけるステップS11からステップS14までの処理と、ステップS11及びステップS15からステップS17までの処理とを夫々任意の回数実行して属性名を抽出する。
【0218】
キーの抽出処理及び属性名の抽出処理においてキーリスト112と属性名リスト111とを共有し、相互に新規に抽出されたキー及び属性名を順次を更に利用してキー及び属性名を抽出することにより、さらに多様な文書データの取得が期待され、したがって多様な属性名群(スキーマ)が抽出されることが期待される。
【0219】
次に、実施の形態3における情報処理装置1の制御部10によるキーの抽出及び属性名の抽出の処理の詳細について以下に夫々説明する。
【0220】
図21及び図22は、実施の形態3における情報処理装置1の制御部10がキーを抽出する処理手順を示すフローチャートである。図21及び図22は、図3のフローチャートに示した処理手順の内のステップS11からステップS14までの処理に対応する。ただし、図21及び図22のフローチャート実施の形態3における情報処理装置1の制御部10がキーを抽出する処理手順は、実施の形態2におけるキーを抽出する処理手順と一部を除いて同様である。したがって、同様の処理について同一のステップ番号を付し、詳細な説明を省略する。
【0221】
図21及び図22に示すように、実施の形態3では、図17及び図18のフローチャートに示したステップS715の処理が存在しない。実施の形態3では、情報処理装置1の制御部10は、選択したクエリ(キー)に基づいて取得した全文書データからキーを抽出し、全文書データからキーを抽出した場合(全文書データのキー抽出済みマークがオンにセットされていると判断した場合(S714:YES))は、処理をステップS11に戻し、即ちステップS701に戻してクエリ(キー)を選択し、処理を繰り返す。
【0222】
なお、実施の形態3では、ステップS712においてキーリスト112に記憶する場合、既にキーリスト112に記憶してあるキーと同一でないキーについては、新規キーのリストとして記憶し、既存キーと新規キーとを区別して記憶する。ステップS714の処理において全文書データからキーを抽出したと判断し(S714:YES)、次のキーを選択してキーを抽出する処理を開始する前に、キーリスト112の内の新規キーのリストに記憶してあるキーを既存キーのリストに記憶し直す。
【0223】
情報処理装置1の制御部10はその後、処理を図3のフローチャートに示したステップS11へ即ちステップS701へ処理を戻して属性名の抽出処理を続行する。
【0224】
情報処理装置1の制御部10は、図21及び図22のフローチャートに示した処理を任意の回数繰り返す。したがって、属性名を含む文書データのみならず多様な文書データから多様なキーが抽出される。
【0225】
図23は、実施の形態3における情報処理装置1の制御部10が属性名を抽出する処理手順を示すフローチャートである。実施の形態3においては、図23のフローチャートに示す処理は図21及び図22のフローチャートに示した処理と独立して平行に実行される。
【0226】
情報処理装置1の制御部10は、記憶部11に記憶してあるクエリ(キー+属性名ペア)リストから、クエリを選択する(ステップS91)。
【0227】
ステップS91において制御部10は、クエリ(キー+属性名ペア)リストに記憶してある評価値が高い順に選択するようにする。
【0228】
制御部10は、選択したクエリ(キー+属性名ペア)に基づいて通信部13を介してネットワークN上に存在する文書データを検索し、複数の文書データを取得する(ステップS92)。このとき制御部10は、取得した文書データのファイルそのものをダウンロードすることにより記憶部11の文書データ集合113に記憶する構成でもよいし、取得した文書データのURLのみを記憶部11の文書データ集合113に記憶する構成でもよい。また、ステップS92において文書データの取得に用いたクエリ(キー+属性名ペア)はクエリリストから削除する。
【0229】
制御部10は、ステップS92で取得した文書データ夫々における属性名用のテンプレートを作成する(ステップS93)。ステップS93における属性名用テンプレートの作成処理は、実施の形態1における処理手順と同様であるので詳細な説明を省略する(図12参照)。
【0230】
制御部10は、ステップS93で作成した属性名用テンプレートを適用する範囲を特定する(ステップS94)。ステップS94における属性名用テンプレートの適用範囲の特定処理は、実施の形態1における処理手順と同様であるので説明を省略する(図13参照)。
【0231】
制御部10は、ステップS92で取得した文書データ夫々に対して特定した範囲内においてステップS93で作成した属性名用テンプレートを適用して属性名を抽出し、抽出した属性名の組をスキーマとして記憶する(ステップS95)。このとき、制御部10が、特定した範囲内のテキストに属性名用テンプレートを適用して抽出された属性名の組をスキーマとして記憶することにより、当該テキストにおけるオブジェクトの捉え方に応じたスキーマを記憶することが可能になる。
【0232】
さらに制御部10は、抽出した属性名に対する評価値を算出し(ステップS96)、ステップS95で抽出した属性名に算出した評価値を付与し(ステップS97)、属性名を属性名リスト111に記憶する(ステップS98)。属性名に対する評価値の算出の詳細については、実施の形態2における評価値の算出と同様であるため、詳細な説明を省略する。
【0233】
また、制御部10はステップS98において抽出した属性名を属性名リスト111に記憶するが、その際、既に属性名リスト111に記憶してある属性名については算出した評価値を付与し直して記憶し、新規に抽出された属性名は算出された評価値と対応付けて新規属性名のリストとして区別して記憶する。
【0234】
そして制御部10は、抽出した属性名と、キー抽出処理によって抽出されたキーに基づいてキーと属性名ペアとからなるクエリを作成し、記憶する(ステップS99)。制御部10は、キーリスト112の内の既存キーのリストに記憶してあるキーと、属性名リスト111の内の新規属性名のリストに記憶してある属性名の全組み合わせからなる属性名ペアとを組み合わせたクエリをまず作成する。次に、新規キーのリストに記憶してあるキーと、既存属性名のリストに記憶してある属性名の全組み合わせからなる属性名ペアとを組み合わせたクエリを作成し、更に、新規キーのリストに記憶してあるキーと、新規属性名のリストに記憶してある属性名の全組み合わせからなる属性名ペアとを組み合わせたクエリを作成する。
【0235】
また制御部10は、ステップS99において作成したクエリに対して評価値を算出して記憶しておく。評価値は、クエリに含まれるキー及び属性名夫々について算出された評価値に基づいて算出される。情報処理装置1の制御部10は例えば、クエリ評価値=(キー評価値)×(属性名評価値)×(属性名評価値)・・・(3)又はクエリ評価値=α×(キー評価値)+(1−α)(属性名評価値+属性名評価値)(ただしα∈(0,1))・・・(4)の式夫々に基づいて算出する。
【0236】
制御部10は、クエリを作成して記憶した後(S99)、処理を図3のフローチャートに示したステップS11へ、即ちステップS91へ処理を戻して属性名の抽出処理を続行する。
【0237】
情報処理装置1の制御部10は、図23のフローチャートに示した属性名抽出の処理手順を任意の回数繰り返す。したがって、多様なクエリ(キー+属性名ペア)から取得される文書データから多様な属性名が抽出される。
【0238】
実施の形態3における制御部10による、文書データの取得処理、キーの抽出処理及び属性名の抽出処理と、夫々の処理において使用又は抽出されるキー、属性名、クエリ及び文書データとの関係に注目し、本発明のブートストラッピングによる属性名の抽出処理を説明する。図24は、実施の形態3における情報処理装置1の制御部10が実行する処理を概念的に表わす説明図である。なお、図24の説明図に示す処理の流れの概略は図3のフローチャートに示した処理手順に対応し、夫々の処理の詳細は図21、図22、図23、図12及び図13のフローチャートに示した処理手順に対応する。なお、図24中の白矢印は、処理の流れを表わしている。
【0239】
図24(a)は、実施の形態3における本発明のスキーマ抽出方法が実施される前の初期状態で予め与えられるキー及び属性名ペアである。図24(b)は、キーリスト112及び属性名リスト111を示しており、既存キーのリスト及び属性名のリスト、新規キーのリスト及び属性名のリストに区別されていることが表わされている。また、図24(b)の各キー及び各属性名の横に示された数字は夫々、各キー及び属性名について算出されて付与された評価値である。
【0240】
図24(c)は、キーの抽出処理におけるクエリリストを示している。各クエリであるキーの横に示されている数字は、各キーについて算出された評価値を示している。図24(d)は、図24(c)の各クエリに基づいて取得される文書データを示している。図24(e)は、図24(c)の各文書データから抽出されるキーのリストを示している。図24(e)に示したリストの各キーは夫々評価値が算出され、図24(b)の新規キーのリストに夫々追加される。また、既存キーと重複するキーについては算出された評価値に更新される。
【0241】
図24(f)は、図24(b)のキーリスト112及び属性名リスト111に基づいて作成されるクエリリストを示している。なお、図24(b)の既存キーのリスト及び新規属性名のリスト間、新規キーのリスト及び既存属性名のリスト間、新規キーのリスト及び新規属性名のリスト間の実線は、それらの間で属性名を抽出するためのクエリが作成されることを表わしている。
【0242】
図24(g)は、図24(f)のクエリリストに基づいて検索され、取得される文書データを示している。図24(h)は、図24(g)に示される文書データに基づいて抽出された属性名のリストを示している。図24(h)に示したリストの属性名について夫々評価値が算出され、各属性名は図24(b)の新規属性名のリストに追加される。また、既存キーと重複するキーについては算出された評価値に更新される。
【0243】
図24に示すように、実施の形態3における情報処理装置1の制御部10は、初期状態で与えられる少数のキー及び属性名(図24(a))を含むキー及び属性名(図24(b))に基づいてキーを抽出するためのクエリリスト(図24(c))及び属性名を抽出するためのクエリリスト(図24(f))を夫々作成する。
【0244】
キーを抽出する処理について情報処理装置1の制御部10は、作成したクエリリスト(図24(c))から選択したクエリに基づいて文書データを取得し(図24(d))、取得した文書データからキーを抽出し(図24(e))、抽出したキーに評価値を付与してキーリスト112に追加し(図24(b))、更にそれらからクエリを作成し、文書データを取得するという処理を継続する(図24(a)→(b)→(c)→(d)→(e)→(b)→(c)→(d)→(e)→(b)→…)。これにより、多様多数のキーを抽出することができる。
【0245】
一方で属性名を抽出する処理について情報処理装置1の制御部10は、キーリスト112及び属性名リスト111(図24(b))に基づいて作成したクエリリスト(図24(f))からクエリを選択し、選択したクエリに基づいて文書データを取得し(図24(g))、取得した文書データから属性名を抽出し(図24(h))、抽出した属性名に評価値を付与して属性名リスト111に追加し(図24(b))、更にそれらの属性名及びキーからクエリを作成し(図24(f))、文書データを取得するという処理を継続する(図24(a)→(b)→(f)→(g)→(h)→(b)→(f)→(g)→(h)→(b)→…)。これにより多様なスキーマを抽出することができる。
【0246】
本発明により、オブジェクトに対して定義された属性名群であるスキーマの多様な集合が一元的に管理可能になる。実施の形態3においては、制御部10により抽出されて次にクエリとして用いるキー、属性名について、評価値が算出されて付与される構成とした。情報処理装置1の制御部10は、テンプレート作成時においてキー又は属性名である可能性が高い語を優先的に使用することにより、ノイズとなる語の抽出の低減、及び他の多くのキー又は属性名と共起する語の抽出を実現することができる。さらに、キーの抽出と属性名の抽出とを、キーリスト112及び属性名リスト111を共有して夫々独立して実行させることにより、より多様なキーと属性名との組み合わせに基づいて文書データが取得される。これにより、より多様なスキーマが取得される。
【0247】
なお、実施の形態1乃至3におけるネットワークNは、インターネットのみならず、例えば社内ネットワークでもよい。この場合、社内ネットワーク内上の各文書データに記述されたあらゆる情報をデータベース化し、後にデータベースを応用することができる。
【図面の簡単な説明】
【0248】
【図1】本発明に係るスキーマ抽出方法の概要を示す説明図である。
【図2】実施の形態1における本発明のスキーマ抽出方法を実施する情報処理装置の構成を示すブロック図である。
【図3】実施の形態1における情報処理装置の制御部がスキーマを抽出する処理手順の概略を示すフローチャートである。
【図4】実施の形態1における情報処理装置の制御部がスキーマを抽出する際に、文書データを取得する処理の詳細を示すフローチャートである。
【図5】図5は、実施の形態1における情報処理装置の制御部がキーを抽出する処理手順を示すフローチャートである。
【図6】キーを抽出する際のキー用テンプレートの例を示す説明図である。
【図7】USPの内容例を示す説明図である。
【図8】USPを特定するためのルールの例を示す表図である。
【図9】USPを特定するためのルールの例を示す表図である。
【図10】USPを特定するためのルールの例を示す表図である。
【図11】実施の形態1における情報処理装置の制御部が属性名を抽出する処理手順を示すフローチャートである。
【図12】実施の形態1における情報処理装置の制御部が属性名用テンプレートを作成する処理手順を示すフローチャートである。
【図13】実施の形態1における情報処理装置の制御部が属性名用テンプレートの適用範囲を特定する処理手順を示すフローチャートである。
【図14】取得された文書データの一例を示す説明図である。
【図15】取得された文書データについて解析されて得られたDOM構造に基づく木構造を示す説明図である。
【図16】実施の形態1における情報処理装置の制御部が実行する処理を概念的に表わす説明図である。
【図17】実施の形態2における情報処理装置の制御部がキーを抽出する処理手順を示すフローチャートである。
【図18】実施の形態2における情報処理装置の制御部がキーを抽出する処理手順を示すフローチャートである。
【図19】実施の形態2における情報処理装置の制御部が属性名を抽出する処理手順を示すフローチャートである。
【図20】実施の形態2における情報処理装置の制御部が実行する処理を概念的に表わす説明図である。
【図21】実施の形態3における情報処理装置の制御部がキーを抽出する処理手順を示すフローチャートである。
【図22】実施の形態3における情報処理装置の制御部がキーを抽出する処理手順を示すフローチャートである。
【図23】実施の形態3における情報処理装置の制御部が属性名を抽出する処理手順を示すフローチャートである。
【図24】実施の形態3における情報処理装置の制御部が実行する処理を概念的に表わす説明図である。
【符号の説明】
【0249】
1 情報処理装置
10 制御部
11 記憶部
111 属性名リスト
112 キーリスト
113 文書データ集合
1P 制御プログラム
13 通信部
14 可搬型記録媒体
N ネットワーク

【特許請求の範囲】
【請求項1】
複数の文書データを含む文書集合から文書データを取得し、取得した文書データからオブジェクトの特性を表わす属性名群であるスキーマを抽出するスキーマ抽出方法であって、
複数の属性名を含む文書データを取得する第1ステップと、
前記文書データから、前記複数の属性名に共通する前後のテキストパターンを特定し、属性名群を抽出するためのテンプレートを作成する第2ステップと、
前記文書データの内から、前記テンプレートを適用して他の属性名群を抽出する第3ステップと、
前記第3ステップで抽出された属性名群から属性名を選択する第4ステップと
を含み、
第4ステップで選択された属性名を含む文書データを前記第1ステップで取得するにようにして第1ステップから前記第4ステップまでの処理を繰り返し実行し、オブジェクトのスキーマを抽出する
ことを特徴とするスキーマ抽出方法。
【請求項2】
前記第1ステップは、オブジェクトを一意に特定する一又は複数の単語であるキーを更に含む文書データを取得する
ことを特徴とする請求項1に記載のスキーマ抽出方法。
【請求項3】
前記キーを含む文書データを取得する第5ステップと、
前記文書データから、前記キーを抽出するためのテンプレートを作成する第6ステップと、
前記文書データの内から、前記テンプレートを適用してキー群を抽出する第7ステップと、
該第7ステップで抽出したキー群からキーを選択する第8ステップと
を含み、
前記第8ステップで選択されたキーを含む文書データを前記第1ステップ及び前記第6ステップで取得するようにして前記第1ステップから前記第4ステップまでの処理及び前記第5ステップから前記第8ステップまでの処理を実行する
ことを特徴とする請求項2に記載のスキーマ抽出方法。
【請求項4】
前記第3ステップは、前記文書データの内の前記複数の属性名が含まれている所定範囲、又は、前記複数の属性名及び前記キーが含まれている所定範囲の内から、作成されたテンプレートに基づいて属性名を抽出する
ことを特徴とする請求項1乃至3のいずれかに記載のスキーマ抽出方法。
【請求項5】
文書データを構成する言語単位の木構造を解析するステップと、
前記複数の属性名夫々に相当する前記言語単位を含む部分木を特定するステップと
を含み、
前記文書データの内の、特定した部分木の所定階層上の節以下に相当する部分を前記所定範囲とする
ことを特徴とする請求項4に記載のスキーマ抽出方法。
【請求項6】
前記木構造は、DOM(Document Object Model)に基づくものであること
を特徴とする請求項5に記載のスキーマ抽出方法。
【請求項7】
前記第3ステップで抽出した属性名の評価値を算出する属性名評価ステップと、
前記属性名を前記評価値と対応付けて記憶するステップと
を更に含み、
前記値の高い順に属性名を選択する
ことを特徴とする請求項1乃至6のいずれかに記載のスキーマ抽出方法。
【請求項8】
前記第7ステップで抽出したキーの評価値を算出するキー評価ステップと、
前記キーを前記評価値と対応付けて記憶するステップと
を含み、
前記値の高い順にキーを選択する
ことを特徴とする請求項3乃至7のいずれかに記載のスキーマ抽出方法。
【請求項9】
前記第6ステップで作成したテンプレートの評価値を算出するテンプレート評価ステップを含み、
前記第7ステップは、前記評価値が所定値以上であるテンプレートに基づいてキー群を抽出する
ことを特徴とする請求項3乃至8のいずれかに記載のスキーマ抽出方法。
【請求項10】
前記第6ステップで作成したテンプレートの評価値を算出するテンプレート評価ステップと、
前記第2ステップ及び第5ステップで作成したテンプレートを、前記テンプレート評価ステップで算出された評価値と対応付けて記憶するステップと
を更に含み、
前記属性名評価ステップ及び/又は前記キー評価ステップは、属性名又はキーを抽出する際に適用された、記憶してあるテンプレートを含むテンプレートの評価値に基づいて属性名及び/又はキーの評価値を算出する
ことを特徴とする請求項9に記載のスキーマ抽出方法。
【請求項11】
複数の文書データを含む文書集合から複数の属性名を含む文書データを取得する取得手段を備え、取得した文書データからオブジェクトの特性を表わす属性名群であるスキーマを抽出するようにしてある情報処理装置であって、
前記取得手段により取得された文書データから、前記複数の属性名について共通する前後のテキストパターンを特定し、属性名群を抽出するためのテンプレートを作成する手段と、
前記文書データの内から、前記テンプレートに基づいて属性名群を抽出する抽出手段と、
抽出された属性名群から属性名を選択する手段と
を備え、
選択された属性名を含む文書データの前記取得手段による取得及び前記抽出手段による属性名群の抽出を繰り返すようにしてあること
を特徴とする情報処理装置。
【請求項12】
前記文書集合から一又は複数の単語からなるキーを含む文書データを取得する手段と、
前記キーを抽出するためのテンプレートを作成する手段と、
前記文書データに前記テンプレートを適用してキー群を抽出する手段と、
抽出されたキー群からキーを選択する手段と
を更に備え、
選択されたキーを含む文書データの取得及びキーの抽出を繰り返すようにしてあり、
前記取得手段は、抽出されたキー群中のキーを更に含む文書データを取得するようにしてあること
を特徴とする請求項11に記載の情報処理装置。
【請求項13】
ネットワークに接続されているコンピュータに、複数の文書データを含む文書集合から複数の属性名を含む文書データを取得する第1ステップを実行させ、取得した文書データからオブジェクトの特性を表わす属性名群であるスキーマを抽出するようにしてあるコンピュータプログラムであって、
コンピュータに、
前記第1ステップにより取得した文書データから、前記複数の属性名に共通する前後のテキストパターンを特定し、属性名群を抽出するためのテンプレートを作成する第2ステップ、
前記文書データの内から、前記テンプレートを適用して属性名群を抽出する第3ステップ、及び、
前記第3ステップで抽出された属性名群から属性名を選択する第4ステップ
を実行させ、
第1ステップで第4ステップにより選択された属性名を含む文書データを取得させるようにして第1ステップから第4ステップまでの処理を繰り返し実行させるようにしてあること
を特徴とするコンピュータプログラム。
【請求項14】
前記文書集合から一又は複数の単語からなるキーを含む文書データを取得する第5ステップ、
前記文書データから、前記キーを抽出するためのテンプレートを作成する第6ステップ、
前記文書データの内から、前記テンプレートを適用してキー群を抽出する第7ステップ、及び
該7ステップで抽出したキー群からキーを選択する第8ステップ
を更に実行させ、
前記第5ステップで第8ステップにより選択されたキーを含む文書データを取得させるようにして第5ステップから第8ステップまでの処理を繰り返し実行させるようにしてあり、
前記第1ステップで、第7ステップにより抽出されたキー群中のキーを更に含む文書データを取得させるようにしてあること
を特徴とする請求項13に記載のコンピュータプログラム。
【請求項15】
請求項13又は14に記載のコンピュータプログラムを記録した、コンピュータで読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2008−269106(P2008−269106A)
【公開日】平成20年11月6日(2008.11.6)
【国際特許分類】
【出願番号】特願2007−108648(P2007−108648)
【出願日】平成19年4月17日(2007.4.17)
【出願人】(801000061)財団法人大阪産業振興機構 (168)
【出願人】(504176911)国立大学法人大阪大学 (1,536)
【Fターム(参考)】