(57)【要約】【課題】予め辞書を用意することなく、語と語との関係及びその関係を満たす語の集合を抽出し得る、関係抽出装置、関係抽出方法、及びプログラムを提供する。【解決手段】語と語との関係及びその関係を満たす語の集合を抽出する関係抽出装置１１を用いる。関係抽出装置１１は、複数の語を要素として含む構造化データから、２以上の要素を要素集合として抽出し、抽出した要素集合を、予め設定された語と語との関係を表す文字列パターンに当てはめて、複数の文字列表現を作成する文字列表現作成部３と、作成された複数の文字列表現それぞれが文書集合中に出現しているかどうかを判定し、文書集合中に出現している文字列表現を、語と語との関係及びその関係を満たす語の集合として出力する文字列表現判定部４とを備えている。【選択図】図１
2010272006.tif 000002
【特許請求の範囲】
【請求項１】
語と語との関係及びその関係を満たす語の集合を抽出する装置であって、
複数の語を要素として含む構造化データから、２以上の前記要素を要素集合として抽出し、抽出した前記要素集合を、予め設定された語と語との関係を表す文字列パターンに当てはめて、複数の文字列表現を作成する文字列表現作成部と、
作成された前記複数の文字列表現それぞれが文書集合中に出現しているかどうかを判定し、前記文書集合中に出現している文字列表現を、前記語と語との関係及び前記その関係を満たす語の集合として出力する文字列表現判定部と、
を備えることを特徴とする関係抽出装置。
【請求項２】
前記文字列表現判定部によって出力された前記文字列表現を構成している前記文字列パターン及び前記要素集合を記憶する、出力データ記憶部を更に備えている、請求項１に記載の関係抽出装置。
【請求項３】
前記構造化データが、複数の前記要素が行列状に配置されたデータ構造を有し、
前記文字列表現作成部が、前記文字列パターンに当てはめ可能な要素の数が３である場合に、前記データ構造における行と列とを一つずつ選択し、選択した行の端にある要素と、選択した列の端にある要素と、選択した行及び列の交点にある要素とを、前記要素集合として抽出する、請求項１または２に記載の関係抽出装置。
【請求項４】
前記文字列表現判定部によって出力された前記文字列表現の前記文書集合中での出現頻度を求め、求めた出現頻度が予め設定された閾値以上となっているかどうかを判定する、閾値判定部を更に備え、
前記出力データ記憶部が、前記閾値判定部によって前記出現頻度が前記閾値以上となっていると判定された前記文字列表現について、それを構成している前記文字列パターン及び前記要素集合を記憶する、請求項２に記載の関係抽出装置。
【請求項５】
前記構造化データから、前記文字列表現判定部によって出力された前記文字列表現を構成している前記要素集合と各要素の関係が同一となる別の要素集合を抽出し、抽出した前記別の要素集合を前記出力データ記憶部に記憶させる、要素集合抽出部を更に備えている、請求項２に記載の関係抽出装置。
【請求項６】
前記データ構造を構成する行と行との間、列と列との間、又は両者において、意味的な境界を検出する境界検出部を備え、
前記文字列表現作成部が、前記意味的な境界、及び前記文字列パターンが表す語と語との関係に基づいて、前記要素集合を抽出する、請求項３に記載の関係抽出装置。
【請求項７】
前記境界検出部が、前記文字列表現判定部によって出力された前記文字列表現に基づいて、出力された前記文字列表現に含まれる前記要素それぞれにおける、前記データ構造での位置と、出力された前記文字列表現での出現頻度と、出現したときの前記文字列パターンでの位置とを検出し、検出した前記出現頻度と前記位置とを用いて、前記意味的な境界を検出する、請求項６に記載の関係抽出装置。
【請求項８】
前記境界検出部が、隣接する行よりも数字を要素としている割合が高い行が存在する場合に、当該二つの行と行との間に境界が存在していると判断し、更に、隣接する列よりも数字を要素としている割合が高い列が存在する場合に、当該二つの列と列との間に境界が存在していると判断する、請求項６に記載の関係抽出装置。
【請求項９】
語と語との関係及びその関係を満たす語の集合を抽出するための方法であって、
（ａ）複数の語を要素として含む構造化データから、２以上の前記要素を要素集合として抽出し、抽出した前記要素集合を、予め設定された語と語との関係を表す文字列パターンに当てはめて、複数の文字列表現を作成する、ステップと、
（ｂ）前記（ａ）のステップで作成された前記複数の文字列表現それぞれが文書集合中に出現しているかどうかを判定し、前記文書集合中に出現している文字列表現を、前記語と語との関係及び前記その関係を満たす語の集合として出力する、ステップと、
を有することを特徴とする関係抽出方法。
【請求項１０】
（ｃ）前記（ｂ）のステップで出力された前記文字列表現を構成している前記文字列パターン及び前記要素集合を記憶する、ステップを更に有している、請求項９に記載の関係抽出方法。
【請求項１１】
前記構造化データが、複数の前記要素が行列状に配置されたデータ構造を有し、
前記（ａ）のステップにおいて、前記文字列パターンに当てはめ可能な要素の数が３である場合に、前記データ構造における行と列とを一つずつ選択し、選択した行の端にある要素と、選択した列の端にある要素と、選択した行及び列の交点にある要素とを、前記要素集合として抽出する、請求項９または１０に記載の関係抽出方法。
【請求項１２】
（ｄ）前記（ｂ）のステップで出力された前記文字列表現の前記文書集合中での出現頻度を求め、求めた出現頻度が予め設定された閾値以上となっているかどうかを判定する、ステップを更に有し、
前記（ｃ）のステップにおいて、前記（ｄ）のステップで前記出現頻度が前記閾値以上となっていると判定された前記文字列表現について、それを構成している前記文字列パターン及び前記要素集合を記憶する、請求項１０に記載の関係抽出方法。
【請求項１３】
（ｅ）前記構造化データから、前記（ｂ）のステップで出力された前記文字列表現を構成している前記要素集合と各要素の関係が同一となる別の要素集合を抽出し、抽出した前記別の要素集合を記憶する、ステップを更に有している、請求項１０に記載の関係抽出方法。
【請求項１４】
（ｆ）前記データ構造を構成する行と行との間、列と列との間、又は両者において、意味的な境界を検出する、ステップを更に有し、
前記（ａ）のステップにおいて、前記（ｆ）のステップで検出された前記意味的な境界、及び前記文字列パターンが表す語と語との関係に基づいて、前記要素集合を抽出する、請求項１１に記載の関係抽出方法。
【請求項１５】
前記（ｆ）のステップにおいて、既に実行された前記（ｂ）のステップで出力された前記文字列表現に基づいて、出力された前記文字列表現に含まれる前記要素それぞれにおける、前記データ構造での位置と、出力された前記文字列表現での出現頻度と、出現したときの前記文字列パターンでの位置とを検出し、検出した前記出現頻度と前記位置とを用いて、前記意味的な境界を検出する、請求項１４に記載の関係抽出方法。
【請求項１６】
前記（ｆ）のステップにおいて、隣接する行よりも数字を要素としている割合が高い行が存在する場合に、当該二つの行と行との間に境界が存在していると判断し、更に、隣接する列よりも数字を要素としている割合が高い列が存在する場合に、当該二つの列と列との間に境界が存在していると判断する、請求項１４に記載の関係抽出方法。
【請求項１７】
コンピュータによって、語と語との関係及びその関係を満たす語の集合を抽出させるためのプログラムであって、
前記コンピュータによって、
（ａ）複数の語を要素として含む構造化データから、２以上の前記要素を要素集合として抽出し、抽出した前記要素集合を、予め設定された語と語との関係を表す文字列パターンに当てはめて、複数の文字列表現を作成する、ステップと、
（ｂ）前記（ａ）のステップで作成された前記複数の文字列表現それぞれが文書集合中に出現しているかどうかを判定し、前記文書集合中に出現している文字列表現を、前記語と語との関係及び前記その関係を満たす語の集合として出力する、ステップと、
を実行させることを特徴とするプログラム。
【請求項１８】
（ｃ）前記（ｂ）のステップで出力された前記文字列表現を構成している前記文字列パターン及び前記要素集合を記憶する、ステップを、更に前記コンピュータによって実行させる、請求項１７に記載のプログラム。
【請求項１９】
前記構造化データが、複数の前記要素が行列状に配置されたデータ構造を有し、
前記（ａ）のステップにおいて、前記文字列パターンに当てはめ可能な要素の数が３である場合に、前記データ構造における行と列とを一つずつ選択し、選択した行の端にある要素と、選択した列の端にある要素と、選択した行及び列の交点にある要素とを、前記要素集合として抽出する、請求項１７または１８に記載のプログラム。
【請求項２０】
（ｄ）前記（ｂ）のステップで出力された前記文字列表現の前記文書集合中での出現頻度を求め、求めた出現頻度が予め設定された閾値以上となっているかどうかを判定する、ステップを、更に前記コンピュータによって実行させ、
前記（ｃ）のステップにおいて、前記（ｄ）のステップで前記出現頻度が前記閾値以上となっていると判定された前記文字列表現について、それを構成している前記文字列パターン及び前記要素集合を記憶する、請求項１８に記載のプログラム。
【請求項２１】
（ｅ）前記構造化データから、前記（ｂ）のステップで出力された前記文字列表現を構成している前記要素集合と各要素の関係が同一となる別の要素集合を抽出し、抽出した前記別の要素集合を記憶する、ステップを、更に前記コンピュータによって実行させる、請求項１８に記載のプログラム。
【請求項２２】
（ｆ）前記データ構造を構成する行と行との間、列と列との間、又は両者において、意味的な境界を検出する、ステップを、更に前記コンピュータによって実行させる、
前記（ａ）のステップにおいて、前記（ｆ）のステップで検出された前記意味的な境界、及び前記文字列パターンが表す語と語との関係に基づいて、前記要素集合を抽出する、請求項１９に記載のプログラム。
【請求項２３】
前記（ｆ）のステップにおいて、既に実行された前記（ｂ）のステップで出力された前記文字列表現に基づいて、出力された前記文字列表現に含まれる前記要素それぞれにおける、前記データ構造での位置と、出力された前記文字列表現での出現頻度と、出現したときの前記文字列パターンでの位置とを検出し、検出した前記出現頻度と前記位置とを用いて、前記意味的な境界を検出する、請求項２２に記載のプログラム。
【請求項２４】
前記（ｆ）のステップにおいて、隣接する行よりも数字を要素としている割合が高い行が存在する場合に、当該二つの行と行との間に境界が存在していると判断し、更に、隣接する列よりも数字を要素としている割合が高い列が存在する場合に、当該二つの列と列との間に境界が存在していると判断する、請求項２２に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報検索の分野で利用され、且つ、語と語との関係及びその関係を満たす語の集合を抽出する、関係抽出装置、関係抽出方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、インターネットの急速な発達により、大量の情報が電子文書化され、多くの人に利用可能となっている。また、これにより、その中に埋もれた情報を有効活用したいという要求が高まっている。そして、このような大量の電子文書化された情報の活用において、電子化された文書からの情報検索は特に重要となる。
【０００３】
例えば、通常、ある企業の情報を検索したい場合であれば、企業名をキーワードに設定し、インターネット上で提供されているキーワード検索エンジンを用いて、検索が行われる。この場合、ヒットしたＷｅｂページから、必要な企業情報（従業員数、平均年収など）を取得することができる。
【０００４】
但し、従来からのキーワード検索エンジンにおいては、語と語との関係が考慮されないため、属性検索による情報の取り出しに対応できないという問題がある。例えば、「従業員数が２０００人以上の企業」を網羅的に検索したい場合、「平均年収が５００万円以上の企業」を網羅的に検索したい場合、といった属性検索が求められている場合において、従来のキーワード検索エンジンでは、このような情報の取得は困難である。
【０００５】
これは、従来からの検索エンジンでは、「従業員数」や、「平均年収」といったキーワードしか入力できないことによる。つまり、「従業員数」や、「平均年収」といった語は一般的な語であり、企業情報を網羅的にまとめたＷｅｂページに特有のキーワードではない。そのため、キーワードを含むが、有益ではないＷｅｂページまでもが大量に検索されてしまう。
【０００６】
その結果、例えば、大量のＷｅｂページ集合から、人手によって有益なＷｅｂページを見つけて「平均年収が５００万円以上の企業」を網羅的に抽出することは、利用者の大きな負担となる。そこで、このような検索を効率良く行うために、文書を解析してその目的に合うインデックスを作成しておく方法や、文書中に語や語の関係を表すタグを付与しておく方法などが考えられている。
【０００７】
また、このような方法を実現するためには、語が、どういった属性及び属性値を有しているかを示す知識（データベース）が必要となる。そして、既存の電子文書からそういった知識を構築する技術、即ち、語と語との関係を抽出する技術の開発が求められている。なお、ここで、語の「属性」とは、その語についての特色をいい、例えば、語が「企業名」である場合ならば、属性としては、その企業の住所、電話番号、従業員数、平均年収等が挙げられる。
【０００８】
語と語との関係の抽出を実現する技術としては、例えば、特許文献１に開示の技術が挙げられる。特許文献１に開示の技術では、先ず、文書に対して形態素解析及び構文解析が行われる。更に、単語毎の領域（種類）が登録された領域辞書が用いられ、各形態素に対して、機能型又は装置型などのように表される領域（種類）が付与される。
【０００９】
次に、予め用意された、２語の特定の関係を表す文字列パターンを用い、これと、語に領域が付与された文とが一致するかどうかの確認が行われる。文字列パターンとしては、
例えば、２語の構成要素関係を表す「Ａ部を改良したＢ」（Ａ、Ｂは装置型）、２語の処理機能関係を表す「ＡができるＢ」（Ａは機能型、Ｂは装置型）等が挙げられる。この結果、文字列パターンに当てはまる２語の集合と、文字列パターンによって特定される２語の関係とが抽出される。
【００１０】
このように、特許文献１に開示の技術を用いれば、語と語との関係と、その関係を満たす語の集合とを示す知識（データベース）の構築が可能となる。そして、このような知識を用いれば、上述した属性検索を簡単に行うことができると考えられる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平７−８５０４１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、特許文献１に開示の技術では、形態素解析及び構文解析を行うための辞書と、領域辞書とが必要になり、知識（データベース）を作成するために辞書が必要になるという問題がある。
【００１３】
また、特許文献１に開示の技術では、語と語との関係及びその関係を表す語の抽出精度を高めるためには、辞書の完成度を高める必要があるが、そのために、出来るだけ多くの語について、予め調べて登録しておくことが求められる。しかし、企業名や、商品名などの語は、日々増加していることから、大量の語を日毎又は週毎に網羅的に調べて、これを辞書に蓄えることは極めて困難である。
【００１４】
以上の点から、領域辞書や、形態素解析及び構文解析用の辞書を必要とすることなく、語と語との関係の抽出を実現する技術の開発が求められている。
【００１５】
本発明の目的は、上記問題を解消し、予め辞書を用意することなく、語と語との関係及びその関係を満たす語の集合を抽出し得る、関係抽出装置、関係抽出方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明における関係抽出装置は、語と語との関係及びその関係を満たす語の集合を抽出する装置であって、
複数の語を要素として含む構造化データから、２以上の前記要素を要素集合として抽出し、抽出した前記要素集合を、予め設定された語と語との関係を表す文字列パターンに当てはめて、複数の文字列表現を作成する文字列表現作成部と、
作成された前記複数の文字列表現それぞれが文書集合中に出現しているかどうかを判定し、前記文書集合中に出現している文字列表現を、前記語と語との関係及び前記その関係を満たす語の集合として出力する文字列表現判定部と、
を備えることを特徴とする。
【００１７】
また、上記目的を達成するため、本発明における関係抽出方法は、語と語との関係及びその関係を満たす語の集合を抽出するための方法であって、
（ａ）複数の語を要素として含む構造化データから、２以上の前記要素を要素集合として抽出し、抽出した前記要素集合を、予め設定された語と語との関係を表す文字列パターンに当てはめて、複数の文字列表現を作成する、ステップと、
（ｂ）前記（ａ）のステップで作成された前記複数の文字列表現それぞれが文書集合中に出現しているかどうかを判定し、前記文書集合中に出現している文字列表現を、前記語と
語との関係及び前記その関係を満たす語の集合として出力する、ステップと、
を有することを特徴とする。
【００１８】
更に、上記目的を達成するため、本発明におけるプログラムは、コンピュータによって、語と語との関係及びその関係を満たす語の集合を抽出させるためのプログラムであって、
前記コンピュータによって、
（ａ）複数の語を要素として含む構造化データから、２以上の前記要素を要素集合として抽出し、抽出した前記要素集合を、予め設定された語と語との関係を表す文字列パターンに当てはめて、複数の文字列表現を作成する、ステップと、
（ｂ）前記（ａ）のステップで作成された前記複数の文字列表現それぞれが文書集合中に出現しているかどうかを判定し、前記文書集合中に出現している文字列表現を、前記語と語との関係及び前記その関係を満たす語の集合として出力する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１９】
以上の特徴により、本発明における、関係抽出装置、関係抽出方法、及びプログラムによれば、予め辞書を用意することなく、語と語との関係及びその関係を満たす語の集合を抽出することができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の実施の形態１における関係抽出装置の概略構成を示すブロック図である。
【図２】図２は、本発明の実施の形態１で用いられる構造化データの一例を示す図である。
【図３】図３は、構造化データの元となるデータの一例を示す図であり、図３（ａ）及び図３（ｂ）はそれぞれ異なる例を示している。
【図４】図４は、本発明の実施の形態１で用いられる文字列パターンの一例を示す図である。
【図５】図５は、図１に示した出力データ記憶部に記憶されている文字列表現の一例を示す図である。
【図６】図６は、本発明の実施の形態１における関係抽出装置の動作を示すフロー図である。
【図７】図７は、本発明の実施の形態２における関係抽出装置の概略構成を示すブロック図である。
【図８】図８は、本発明の実施の形態２における関係抽出装置の動作を示すフロー図である。
【図９】図９は、本発明の実施の形態３における関係抽出装置の概略構成を示すブロック図である。
【図１０】図１０は、本発明の実施の形態３における関係抽出装置の動作を示すフロー図である。
【図１１】図１１は、本発明の実施の形態４における関係抽出装置の概略構成を示すブロック図である。
【図１２】図１２は、本発明の実施の形態４における関係抽出装置の動作を示すフロー図である。
【図１３】図１３は、本発明の実施の形態４における関係抽出装置の他の例の概略構成を示すブロック図である。
【図１４】図１４は、本発明の実施の形態５における関係抽出装置の概略構成を示すブロック図である。
【図１５】図１５は、本発明の実施の形態５における関係抽出装置の動作を示すフロー図である。
【図１６】図１６は、本発明の実施の形態６における関係抽出装置の概略構成を示すブロック図である。
【図１７】図１７は、本発明の実施の形態６における関係抽出装置を構成する境界検出部の動作を示すフロー図である。
【図１８】図１８は、本発明の実施の形態１における関係抽出装置の動作の他の例を示すフロー図である。
【発明を実施するための形態】
【００２１】
（発明の概要）
本発明においては、複数の語を要素として含む構造化データ、語と語との関係を表す文字列パターン、文字列パターンから生成された文字列表現の存在を確認するための文書集合が用いられる。構造化データの例としては、複数の要素が行列状に配置されたデータ構造を有するテーブル、複数の要素が一定の規則に沿って羅列された箇条書き等が挙げられる。
【００２２】
ここで、要素とは、例えば、構造化データにおいて、区切り記号と区切り記号とで囲まれた部分が挙げられる。構造化データがテーブルの場合は、各セルの内容が要素となる。また、箇条書きの場合は、各項目の内容が要素となる。後述する図２には、構造化データがテーブルの場合の例が示されている。図２においては、「企業名」、「会社Ａ」、「会社Ｂ」等の各セルに書かれている語が要素となる。
【００２３】
文字列パターンの例としては、「ＡのＢはＣである（Ａ、Ｂ、Ｃは語を表す）」等が挙げられる。更に、上記文字列パターンにおいて、要素Ａ、Ｂ、Ｃの関係は、［対象、属性、属性値］となる（後述の図４参照）。
【００２４】
そして、本発明においては、語と語との関係と、その関係を満たす語の集合とを抽出するため、先ず、一つの文字列パターンが選ばれる。次に、構造化データから、構造化データを構成する複数の要素が取り出される。また、要素の取り出しは、取り出す順序及び組み合わせをそれぞれ変えながら行われる。つまり、最初に選ばれた文字列パターンに当てはめる要素の組み合わせを、構造化データから抽出された全要素の集合から取り出し、取り出す際の順番を保持して要素の組み合わせを作る。以下、この組み合わせを要素集合と呼ぶ。
【００２５】
例えば、「ＡのＢはＣである」という文字列パターンが選ばれた場合、この文字列パターンに必要な要素の数は３つである。そこで、構造化データから３つの要素が選び出され、これらは、選び出された順番を保持した要素集合となる。構造化データが、例えば図２に示すものであり、要素として、「会社Ｂ」、「従業員」、「２０００」が、順に全要素集合から選ばれれば、その要素集合は（会社Ｂ、従業員数、２０００）となる。また、要素が、「従業員」、「２０００」、「会社Ｂ」の順に選ばれた場合は、要素集合は（従業員、２０００、会社Ｂ）となる。
【００２６】
続いて、このようにして選び出された各要素集合が、次々に文字列パターンに当てはめられ、文字列表現が生成される。例えば、上記した文字列パターン「ＡのＢはＣである」に、要素集合（会社Ｂ、従業員数、２０００）を当てはめると、文字列表現「［会社Ｂ］の［従業員数］は［２０００］である」が作成される。また、この文字列パターンに、要素集合（従業員数、２０００、会社Ｂ）を当てはめると、文字列表現「［従業員数］の［２０００］は［会社Ｂ］である」が作成される。
【００２７】
その後、生成された文字列表現が、用意されている文書集合中に出現しているかどうか
の判断が行われる。文字列表現で表される表現が、文書集合中に出現している場合は、文字列表現で使われた要素集合は、文字列パターンによって表された語と語との関係を適切に表していると考えられる。そして、この文字列表現から、要素集合と、文字列パターンと、この文字列パターンにおける要素の関係とを抽出する。また、別の要素集合に対しても同様の処理を行う。
【００２８】
一方、文字列表現で表される表現が、文書集合中に出現していない場合は、文字列表現で使われた要素集合は、文字列パターンによって表された語と語との関係を適切に表していないと考えられる。そして、この文字列表現で使われた要素集合は抽出されずに、別の要素集合に対して同様の処理が行われる。
【００２９】
特定の文字列パターンのために取り出された要素集合全てについて、文字列パターンへの当てはめと、文書集合中の文書に一致するかどうかの確認とが終了すると、別の文字列パターンが選ばれ、上記の処理が行われる。上記の処理は、全ての文字列パターンについて終了するまで、繰り返し行われる。そして、このようにして特定された文字列表現（文書集合中の文書と一致した文字列表現）は、語と語との関係及びその関係を満たす語の集合に相当する。
【００３０】
以上の説明に示したように、本発明では、領域辞書や、形態素解析及び構文解析を行うために必要な辞書を用いることなく、語と語との関係及びその関係を満たす語の集合を抽出することができる。
【００３１】
（実施の形態１）
以下、本発明の実施の形態１における、関係抽出装置、関係抽出方法、及びプログラムについて、図１〜図６を参照しながら説明する。最初に、図１を用いて、本実施の形態１における関係抽出装置の構成について説明する。図１は、本発明の実施の形態１における関係抽出装置の概略構成を示すブロック図である。
【００３２】
図１に示す関係抽出装置１１は、語と語との関係及びその関係を満たす語の集合を抽出する装置である。図１に示すように、関係抽出装置１１は、文字列表現作成部３と、文字列表現判定部４とを備えている。
【００３３】
文字列表現作成部３は、先ず、複数の語を要素として含む構造化データから、２以上の要素を要素集合として抽出する。また、文字列表現作成部３は、抽出した要素集合を、予め設定された語と語との関係を表す文字列パターンに当てはめて、複数の文字列表現を作成する。
【００３４】
文字列表現判定部４は、作成された複数の文字列表現それぞれが文書集合中に出現しているかどうかを判定する。また、文字列表現判定部４は、文書集合中に出現している文字列表現を、語と語との関係及びその関係を満たす語の集合として出力する。
【００３５】
また、本実施の形態１では、関係抽出装置１１は、上記した構成に加え、構造化データ記憶部１と、文字列パターン記憶部２と、文書集合記憶部５と、出力データ記憶部６とを備えている。本実施の形態１では、構造化データ、文字列パターン、及び文書集合は予め用意され、それぞれ、構造化データ記憶部１、文字列パターン記憶部２、または文書集合記憶部５に記憶されている。また、出力データ記憶部６は、出力された文字列表現を記憶する。
【００３６】
このように、関係抽出装置１１は、構造化データと文字列パターンとで文字列表現を作成し、文字列表現と文書集合中の文書との一致の有無から、文字列表現で使われた要素集
合が、文字列パターンが表す語と語との関係を適切に表しているかどうかを判定する。つまり、関係抽出装置１１は、領域辞書、形態素解析及び構文解析で用いられる辞書を必要とすることなく、適切かどうかの判定を行うことができる。よって、関係抽出装置１１によれば、予め辞書を用意することなく、語と語との関係及びその関係を満たす語の集合を抽出することができる。また、このように、辞書を必要としないため、辞書の作成、保守、及び更新のために必要となる労力を無くすことができる。
【００３７】
ここで、図２〜図５を用いて、関係抽出装置１１の構成を更に具体的に説明する。図２は、本発明の実施の形態１で用いられる構造化データの一例を示す図である。図３は、構造化データの元となるデータの一例を示す図であり、図３（ａ）及び図３（ｂ）はそれぞれ異なる例を示している。図４は、本発明の実施の形態１で用いられる文字列パターンの一例を示す図である。図５は、図１に示した出力データ記憶部に記憶されている文字列表現の一例を示す図である。
【００３８】
本実施の形態１において、構造化データ記憶部１は、例えば、図２に示す構造化データを記憶している。図２の例に示す構造化データは、テーブルであり、複数の前記要素が行列状に配置されたデータ構造を有している。また、区切り記号と区切り記号とで囲まれた部分、即ち、テーブルを構成する各セルの内容が要素となる。文字列表現作成部３は、例えば、要素集合（会社Ｂ、従業員、２０００）等のように、各セルから要素を選び出す。
【００３９】
また、図２に示す構造化データは、例えば、Ｗｅｂページに掲載されているテーブルから取得できる。具体的には、図３（ａ）に示すように、Ｗｅｂページでは、テーブル（下段参照）はＨＴＭＬによって記述されている（上段参照）。この場合、構造化データ記憶部１には、構造化データとして、テーブルを特定するＨＴＭＬファイルが格納される。
【００４０】
更に、本実施の形態１では、構造化データとして、複数の要素が一定の規則に沿って羅列された箇条書きを用いることもできる。この場合、箇条書きも、Ｗｅｂページから取得することができる。具体的には、図３（ｂ）に示すように、箇条書き（下段参照）もＨＴＭＬによって記述されている（上段参照）ので、構造化データ記憶部１には、箇条書きを特定するＨＴＭＬファイルが格納される。
【００４１】
なお、本実施の形態において、構造化データの収集は、人手によって行われていても良いし、コンピュータによって行われていても良い。具体的には、後者の場合では、コンピュータは、インターネット上のＨＴＭＬファイルから、ｔａｂｌｅ要素又はｕｌ要素を検索し、構造化データの収集を実行する。また、図３（ａ）及び（ｂ）において、下段の図は、ブラウザ上で表示されたときのイメージを示している。
【００４２】
また、構造化データ記憶部１が記憶する構造化データの数は、特に限定されず、構造化データ記憶部１は、複数の構造化データを記憶することができる。更に、構造化データ記憶部１に記憶される複数の構造化データは、テーブルのみ又は箇条書きのみで構成されていても良いし、テーブルと箇条書きとの両方で構成されていても良い。
【００４３】
また、本実施の形態１において、文字列パターン記憶部２は、例えば、図４に示す文字列パターンを記憶している。図４の例では、各文字列パターンは、文字列規則と、当てはめられる要素間の関係とで構成されている。なお、「要素間の関係」は、要素集合が適用された文字列パターン（要素集合が当てはめられた文字列規則）が、文書集合中の文書と一致して、適切であると判断された場合における、各要素と他の要素との関係を表している。
【００４４】
更に、本実施の形態１では、文字列パターンは、人手によって作成されていても良いし
、コンピュータによって作成されていても良い。ここで、後者の場合について説明する。例えば、図４に示す５番のような上位語と下位語とで構成される文字列パターンを作成するのであれば、コンピュータは、先ず、予め用意された、上位語と下位語とが対となったデータ（例えば、（家具、椅子）、（家電製品、冷蔵庫）等）を用いて、一文中に対が存在する文書の抽出を行う。文書の抽出対象となる文書集合は、文書データベースに格納されたものであっても良いし、インターネット上に存在するものであっても良い。
【００４５】
次に、コンピュータは、抽出された文書の各文を比較し、共通部分を抽出し、これを文字列規則とする。例えば、文１「家具である椅子」と、文２「家電製品である冷蔵庫」とが抽出されている場合は、コンピュータは、文字列規則として、「ＡであるＢ」を抽出する。このとき、要素間の関係は、最初の設定により、（上位語、下位語）となる。
【００４６】
また、本実施の形態１において、文字列パターン記憶部２に記憶される文字列パターンの数は、特に限定されるものではなく、関係抽出装置１１に求められる性能が得られるように設定すれば良い。更に、本実施の形態１では、文字列表現判定部３によって文書集合中の文書との一致の判定を行った後に、文字列パターン毎に一致した回数等を求め、利用者が、求められた回数等に基づいて、記憶される文字列パターンを取捨選択することもできる。
【００４７】
文書集合記憶部５に記憶されている文書集合は、本実施の形態１においては、テキストデータによって構成されている。なお、後述するように、文書集合記憶部５は、テキストデータ以外の形式のデータを記憶することもできる。また、文書集合は、電子メールを蓄積しているメールサーバ、種々の文書を格納しているデータベース、インターネット上のＷｅｂサイト等から、人手又はコンピュータによって取得され、文章集合記憶部５に記憶される。
【００４８】
また、文字列表現作成部３は、本実施の形態１では、一つの文字列パターンを選択し、構造化データから、対応する数の要素を含む要素集合を組み合わせ及び順序を変えて選び出し、選び出した要素集合を、次々に、選択された文字列パターンに適用する。これにより、選択された文字列パターンに対応する文字列表現が作成される。文字列表現作成部３は、他の文字列パターンについても同様の処理を行い、文字列表現を作成する。
【００４９】
更に、本実施の形態１においては、構造化データが図２に示したテーブルであって、文字列パターンに当てはめ可能な要素の数が３である場合には、文字列表現作成部３は、次のように要素集合を選択することができる。つまり、文字列表現作成部３は、データ構造（テーブル）における行と列とを一つずつ選択し、選択した行の端にある要素と、選択した列の端にある要素と、選択した行及び列の交点にある要素とを、要素集合として抽出することができる。
【００５０】
具体的には、文字列表現作成部３は、図２において「会社Ｂ」の行と、「従業員数」の列とを選択し、行の端の「会社Ｂ」と、列の端の「従業員」と、交点にある「２０００」と選択する。このような処理により、効率的に、適正な文字列表現を作成することが容易となる。
【００５１】
また、文字列表現判定部４は、本実施の形態１では、文字列表現が文書集合中に出現しているかどうかを判定するため、文書集合中の文書が、文字列表現と完全に一致する箇所を有しているかどうかを判定する。具体的には、文字列表現判定部４は、文字列表現を構成する文字コード列と同一の文字コード列が、文書集合中の文書に存在しているかどうかを判定している。なお、文書集合中に出現している文字列表現は、文書集合の問い合わせの結果として正しいと判定された文字列表現である。
【００５２】
更に、本実施の形態１では、文字列表現判定部４は、文書集合中に出現している文字列表現を出力する際、図５に示すように、文字列表現を構成している文字列パターン及び要素集合を出力する。そして、図５に示す内容が、そのまま、出力データ記憶部６によって記憶される。この結果、出力データ記憶部６は、語と語との関係を適切に表していると判断される文字列表現を蓄積していくことになり、出力データ記憶部６に蓄積された文字列表現は、適切な語と語との関係及びその関係を満たす語の集合が登録されたデータベースとして機能することができる。
【００５３】
このようにして得られたデータベースは、検索クエリの展開用辞書、文書解析用辞書、又は比較関係展開用辞書等として利用できる。また、背景技術の欄で述べた「平均年収が５００万円以上の企業」を網羅的に抽出した場合は、このデータベースを用いて、「平均年収」、又は「５００万円」といったキーワード検索を行えば良い。この場合、キーワードを含む文字列表現が抽出されるので、利用者が望む網羅的な抽出が実行されたことになる。つまり、本実施の形態１で得られたデータベースを用いれば、属性検索が可能となる。
【００５４】
その他、本実施の形態１で得られたデータベースは、クエリ展開、文書検索のためのタグ付けにも利用できる。クエリ展開とは、例えば、ある用語を検索する場合に、その用語と同種類の語も同時に検索することをいう。また、文書検索のためのタグとは、例えば、地域Ｘの旅行代理店を検索したときに、地域Ｘへの旅行を計画している旅行代理店の情報といった目的としない情報が検索されないようにするために、文書に付与されるタグをいう。この例であれば、文書中の旅行代理店に付与される、所在地及び職種といったタグが挙げられる。なお、文書検索のためのタグは、上記の例に限定されるものではない。
【００５５】
次に、本発明の実施の形態１における関係抽出装置１１の動作について図６を用いて説明する。図６は、本発明の実施の形態１における関係抽出装置の動作を示すフロー図である。また、本実施の形態１においては、関係抽出装置１１を動作させることにより、本実施の形態１における関係抽出方法が実行される。このため、関係抽出方法の説明は、以下の関係抽出装置１１の動作の説明に代える。また、以下の説明においては、適宜、図１〜図５を参酌する。
【００５６】
図６に示すように、先ず、文字列表現作成部３は、文字列パターン記憶部２に記憶されている文字列パターンの中から、１つの文字列パターンを選択する（ステップＡ１）。次に、文字列表現作成部３は、構造化データ記憶部１に記憶されている幾つかの構造化データの中から、１つの構造化データを選択し（ステップＡ２）、更に、選択された構造化データから、文字列パターンに当てはめる要素集合を全て抽出する（ステップＡ３）。
【００５７】
ステップＡ３においては、文字列表現作成部３は、選択された構造化データから、抽出される要素の組み合わせや順序を変えて、ステップＡ１で選択された文字列パターンに当てはめることが可能な要素集合を全て抽出する。
【００５８】
次に、文字列表現作成部３は、構造化データ記憶部１に記憶されている全ての構造化データについて、要素集合の抽出が終了したかどうかを判定する（ステップＡ４）。ステップＡ４の判定の結果、全ての構造化データについて要素集合の抽出が終了していない場合は、文字列表現作成部３は、再度、ステップＡ２及びＡ３を実行する。一方、ステップＡ４の判定の結果、全ての構造化データについて要素集合の抽出が終了している場合は、文字列表現作成部３は、ステップＡ５を実行する。
【００５９】
ステップＡ５では、文字列表現作成部３は、抽出された要素集合を、ステップＡ１で選
択された文字列パターンに順次適用し、文字列表現を作成する。例えば、文字列パターン「ＡのＢはＣである」が選択されているとする。この場合、この文字列パターンに必要な要素は３つである。よって、図２に示した構造化データが選択されているのであれば、図２に示した構造化データから抽出される要素集合は、下記の通りとなる。要素集合としては、（会社Ｂ、従業員、２０００）、（従業員、２０００、会社Ｂ）、（企業名、会社Ａ、会社Ｂ）、（企業名、３５歳平均年収、従業員数）、（６００、８５０、３０００）等が抽出される。
【００６０】
そして、ステップＡ５において、文字列表現作成部３は、上記した要素集合を文字列パターンに適応する。この結果、「［会社Ｂ］の［従業員］は［２０００］である」、「［従業員］の［２０００］は［会社Ｂ］である」、「［企業名］の［会社Ａ］は［会社Ｂ］である」といった文字列表現が作成される。ステップＡ５で作成された文字列表現の中には、日本語として正しくない文字列表現も含まれているが、これらは、ステップＡ６により除去される。
【００６１】
次に、文字列表現判定部４は、作成された文字列表現が文書集合中に出現しているかどうかを判定する（ステップＡ６）。ステップＡ６において、出現していると判定する場合は、文字列表現判定部４は、この文字列表現を構成している文字列パターンと、使用されている要素集合とを出力し、これらのデータを出力データ記憶部６に記憶させる（ステップＡ９）。その後、文字列表現判定部４は、ステップＡ７を実行する。一方、ステップＡ６において、出現していないと判定する場合も、文字列表現判定部４は、ステップＡ７を実行する。
【００６２】
ステップＡ７においては、文字列表現判定部４は、全ての文字列表現について、ステップＡ６の判定が行われているかどうかを判定する。ステップＡ７の判定の結果、全ての文字列表現について、ステップＡ６の判定が行われていない場合は、文字列表現判定部４は、再度ステップＡ６を実行する。一方、ステップＡ７の判定の結果、全ての文字列表現について、ステップＡ６の判定が行われている場合は、文字列表現判定部４は、ステップＡ８を実行する。
【００６３】
ステップＡ８では、文字列表現判定部４は、全ての文字列パターンについてステップＡ１〜Ａ７及びＡ９の処理が行われているかどうかを判定する。ステップＡ８の判定の結果、全ての文字列パターンについてステップＡ１〜Ａ７及びＡ９の処理が終了していない場合は、再度、文字列表現作成部３によってステップＡ１が実行される。一方、ステップＡ８の判定の結果、全ての文字列パターンについてステップＡ１〜Ａ７及びＡ９の処理が終了している場合は、関係抽出装置１１における処理は終了する。
【００６４】
ステップＡ１〜Ａ９の実行により、出力データ記憶部６には、上述したデータベースが構築される。そして、このデータベースを用いることにより、属性検索、クエリ展開、文書検索のためのタグ付けが可能となる。
【００６５】
また、本実施の形態１におけるプログラムは、コンピュータに、図６に示すステップＡ１〜Ａ９を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することにより、本実施の形態１における関係抽出装置１１及び関係抽出方法を実現することができる。
【００６６】
この場合、コンピュータのＣＰＵ（Central Processing Unit）は、文字列表現作成部３及び文字列表現判定部４として機能し、処理を行なう。更に、プログラムがインストールされたコンピュータ（マスタ）に、ネットワーク等を介して別のコンピュータ（スレイブ）が接続されている場合は、マスタの指示により、スレイブのＣＰＵが、文字列表現作
成部３及び文字列表現判定部４のいずれか又は両方として機能しても良い。
【００６７】
更に、構造化データ記憶部１、文字列パターン記憶部２、文書集合記憶部５、及び出力データ記憶部６は、コンピュータに備えられたハードディスク等の記憶装置によって実現できる。なお、記憶装置を備えるコンピュータは、本実施の形態１におけるプログラムがインストールされるコンピュータに、ネットワーク等を介して接続された別のコンピュータであっても良い。
【００６８】
以上のように、本実施の形態１では、構造化データが入力として用いられ、そして、文字列パターンと構造化データの要素集合とから文字列表現が作成される。更に、この文字列表現の正しさは、文書集合によって判断され、正しさの判定に辞書は一切用いられない。よって、本実施の形態１によれば、領域辞書、形態素解析及び構文解析で用いられる辞書等を必要とすることなく、語と語との関係及びその関係を満たす語の集合の抽出が実現される。
【００６９】
（実施の形態２）
次に、本発明の実施の形態２における関係抽出装置、関係抽出方法、及びプログラムについて、図７及び図８を参照しながら説明する。最初に、図７を用いて、本実施の形態２における関係抽出装置の構成について説明する。図７は、本発明の実施の形態２における関係抽出装置の概略構成を示すブロック図である。
【００７０】
図７に示すように、本実施の形態２における関係抽出装置１２は、図１に示した関係抽出装置１１の構成に加え、閾値判定部７を備えている。閾値判定部７は、文字列表現判定部４によって出力された文字列表現の文書集合中での出現頻度を求める。そして、閾値判定部７は、求めた出現頻度が予め設定された閾値以上となっているかどうかを判定する。
【００７１】
また、出力データ記憶部６は、閾値判定部７によって出現頻度が閾値以上となっていると判定された文字列表現についてのみ、それを構成している文字列パターン及び要素集合を記憶する。閾値の設定は、関係抽出装置１２に求められる性能に応じて適宜設定すれば良い。
【００７２】
更に、本実施の形態２では、閾値の判定は、出現頻度以外の文字列表現の利用の程度を表す指標を用いて行うこともできる。なお、本実施の形態２において、関係抽出装置１２は、上記した点以外については、実施の形態１において図１に示した関係抽出装置１１と同様に構成されている。
【００７３】
次に、本発明の実施の形態２における関係抽出装置１２の動作について図８を用いて説明する。図８は、本発明の実施の形態２における関係抽出装置の動作を示すフロー図である。また、本実施の形態２においても、関係抽出装置１２を動作させることにより、本実施の形態２における関係抽出方法が実行される。このため、関係抽出方法の説明は、以下の関係抽出装置１２の動作の説明に代える。また、以下の説明においては、適宜、図７を参酌する。
【００７４】
図８において、ステップＢ１〜Ｂ８は、実施の形態１において図６に示したステップＡ１〜Ａ８と同様のステップである。本実施の形態２においては、ステップＢ９及びＢ１０のみが異なっている。以下に相違点について具体的に説明する。なお、ステップＡ１〜Ａ８と同様のステップＢ１〜Ｂ８については説明を省略する。
【００７５】
ステップＢ６において、文字列表現判定部４が、ステップＢ５で作成された文字列表現が文書集合中に出現していると判定すると、閾値判定部７は、ステップＢ９を実行する。
ステップＢ９では、閾値判定部７は、ステップＢ５で作成された文字列表現が文書中で出現している頻度が閾値以上であるかどうかを判定する。
【００７６】
ステップＢ９の判定の結果、文字列表現の出現頻度が閾値以上でない場合は、文字列表現判定部４は、ステップＢ７を実行する。一方、ステップＢ９の判定の結果、文字列表現の出現頻度が閾値以上である場合は、出力データ記憶部６は、文字列表現判定部４がステップＢ６の判定結果に基づいて出力するデータのうち、出現頻度が閾値以上となっている文字列表現の文字列パターン及び要素集合のみを記憶する（ステップＢ１０）。
【００７７】
このように、本実施の形態２では、文字列表現の出現頻度に対して閾値を設定し、出現頻度が高い文字列表現のみを選択して蓄積している。よって、語と語との関係及びその関係を満たす語の集合の抽出精度の向上が図られ、属性検索等に用いられる辞書の信頼度の向上が可能となる。
【００７８】
また、本実施の形態２におけるプログラムは、コンピュータに、図８に示すステップＢ１〜Ｂ１０を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することにより、本実施の形態２においても、実施の形態１と同様に、関係抽出装置１２及び関係抽出方法を実現することができる。
【００７９】
この場合、コンピュータのＣＰＵ（Central Processing Unit）は、文字列表現作成部３、文字列表現判定部４、及び閾値判定部７として機能し、処理を行なう。更に、プログラムがインストールされたコンピュータ（マスタ）に、ネットワークを介して別のコンピュータ（スレイブ）が接続されている場合は、マスタの指示により、スレイブのＣＰＵが、文字列表現作成部３、文字列表現判定部４及び閾値判定部７のいずれか又は全部として機能しても良い。
【００８０】
更に、構造化データ記憶部１、文字列パターン記憶部２、文書集合記憶部５、及び出力データ記憶部６は、コンピュータに備えられたハードディスク等の記憶装置によって実現できる。なお、記憶装置を備えるコンピュータは、本実施の形態２におけるプログラムがインストールされるコンピュータに、ネットワーク等を介して接続された別のコンピュータであっても良い。
【００８１】
（実施の形態３）
次に、本発明の実施の形態３における関係抽出装置、関係抽出方法、及びプログラムについて、図９及び図１０を参照しながら説明する。最初に、図９を用いて、本実施の形態３における関係抽出装置の構成について説明する。図９は、本発明の実施の形態３における関係抽出装置の概略構成を示すブロック図である。
【００８２】
図９に示すように、本実施の形態３における関係抽出装置１３は、図１に示した関係抽出装置１１の構成に加え、要素集合抽出部８を更に備えている。要素集合抽出部８は、構造化データから、文字列表現判定部４によって出力された文字列表現を構成している要素集合と各要素の関係が同一となる別の要素集合を抽出する。また、要素集合抽出部８は、新たに抽出した別の要素集合を出力データ記憶部６へと出力し、それに記憶させる。
【００８３】
ここで、要素集合抽出部８が実行する処理について具体的に説明する。例えば、構造化データが図２に示すテーブルであり、出力された文字列表現の要素集合として、（会社Ｂ、従業員数、２０００）が抽出されているとする。また、文字列パターンにおいて要素間の関係は（対象、属性、属性値）であるとする。この場合、要素集合抽出部８は、既に抽出した要素集合と各要素の関係が同一となる別の要素集合を抽出するため、以下の処理を行う。
【００８４】
要素集合抽出部８は、先ず、既に抽出した要素集合の各要素間を結ぶ行と列、即ち、「会社Ｂ」と「２０００」とを結ぶ行と、「従業員数」と「２０００」とを結ぶ列とを特定する。そして、要素集合抽出部８は、特定した行をテーブルの垂直方向（列方向）に一つずらし、特定した列をテーブルの水平方向（行方向）に一つずらす。そして、ずらした後の行と列とに対する各要素の位置関係が、ずらす前の行と列とに対する各要素の位置関係と同じになるように、ずらした後の行と列とから要素集合を抽出する。
【００８５】
これによって、要素集合（会社Ｂ、従業員数、２０００）と同じ関係を持つ、要素集合（会社Ａ、従業員数、１０００）や、（会社Ｂ、３５歳平均年収、６００）等が抽出される。また、このようにして抽出された新たな要素集合が、既に出力されている文字列表現の文字列パターンに適用され、新たな文字列表現が作成されたとする。この場合、作成された新たな文字列表現は、文書集合中には現れていないが、現れている文字表現と同様に適切であると考えられる。
【００８６】
次に、本発明の実施の形態３における関係抽出装置１３の動作について図１０を用いて説明する。図１０は、本発明の実施の形態３における関係抽出装置の動作を示すフロー図である。また、本実施の形態３においても、関係抽出装置１３を動作させることにより、本実施の形態３における関係抽出方法が実行される。このため、関係抽出方法の説明は、以下の関係抽出装置１３の動作の説明に代える。また、以下の説明においては、適宜、図９を参酌する。
【００８７】
図１０において、ステップＣ１〜Ｃ８は、実施の形態１において図６に示したステップＡ１〜Ａ８と同様のステップである。本実施の形態３においては、ステップＣ９及びＣ１０のみが異なっている。以下に相違点について具体的に説明する。なお、ステップＡ１〜Ａ８と同様のステップＣ１〜Ｃ８については説明を省略する。
【００８８】
ステップＣ６において、文字列表現判定部４が、ステップＣ５で作成された文字列表現が文書集合中に出現していると判定すると、要素集合抽出部８は、ステップＣ９を実行する。ステップＣ９では、要素集合抽出部８は、文字列表現判定部４がステップＣ６の判定結果に基づいて出力する文字列表現を用い、構造化データから、この文字列表現の要素集合と各要素の関係が同一となる別の要素集合を抽出する。
【００８９】
その後、文字列表現判定部４がステップＣ６の判定結果に基づいて出力した文字列表現（文字列パターン及び要素集合）と、ステップＣ９で抽出された要素集合とが、出力データ記憶部６に記憶される（ステップＣ１０）。
【００９０】
このように、本実施の形態３では、抽出できた要素集合とそれを構成する各要素の関係とに基づいて、文書集合中には現れないなどの理由で抽出できなかった要素集合が新たに抽出される。このため、本実施の形態３によれば、属性検索等に用いられる辞書に、より多くの要素集合を登録できるため、当該辞書の信頼度の向上が可能となる。
【００９１】
また、本実施の形態３におけるプログラムは、コンピュータに、図１０に示すステップＣ１〜Ｃ１０を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することにより、本実施の形態３においても、実施の形態１と同様に、関係抽出装置１３及び関係抽出方法を実現することができる。
【００９２】
この場合、コンピュータのＣＰＵ（Central Processing Unit）は、文字列表現作成部３、文字列表現判定部４、及び要素集合抽出部８として機能し、処理を行なう。更に、プログラムがインストールされたコンピュータ（マスタ）に、ネットワーク等を介して別の
コンピュータ（スレイブ）が接続されている場合は、マスタの指示により、スレイブのＣＰＵが、文字列表現作成部３、文字列表現判定部４及び要素集合抽出部８のいずれか又は全部として機能しても良い。
【００９３】
更に、構造化データ記憶部１、文字列パターン記憶部２、文書集合記憶部５、及び出力データ記憶部６は、コンピュータに備えられたハードディスク等の記憶装置によって実現できる。なお、記憶装置を備えるコンピュータは、本実施の形態３におけるプログラムがインストールされるコンピュータに、ネットワーク等を介して接続された別のコンピュータであっても良い。
【００９４】
（実施の形態４）
次に、本発明の実施の形態４における関係抽出装置、関係抽出方法、及びプログラムについて、図１１及び図１２を参照しながら説明する。最初に、図１１を用いて、本実施の形態４における関係抽出装置の構成について説明する。図１１は、本発明の実施の形態４における関係抽出装置の概略構成を示すブロック図である。
【００９５】
図１１に示すように、本実施の形態４における関係抽出装置１４は、図１に示した関係抽出装置１１の構成に加え、境界検出部９を更に備えている。境界検出部９は、構造化データがテーブルである場合に、データ構造を構成する行と行との間、列と列との間、又は両者において、意味的な境界を検出することができる。
【００９６】
例えば、境界検出部９は、隣接する行よりも数字を要素としている割合が高い行が存在する場合に、当該二つの行と行との間に境界が存在していると判断する。また、境界検出部９は、隣接する列よりも数字を要素としている割合が高い列が存在する場合に、当該二つの列と列との間に境界が存在していると判断する。また、本実施の形態４では、文字列表現作成部３は、意味的な境界、及び文字列パターンにおける要素間の関係（図４参照）に基づいて、要素集合を抽出する。
【００９７】
具体的には、構造化データが図２に示すテーブルであるとすると、境界検出部９は、第１行目と第２行目との間に境界が存在していると判断する。そして、例えば、文字列パターン「ＡのＢはＣである」（（Ａ、Ｂ、Ｃ）＝（対象、属性、属性値））が選択されているとする。この場合、文字列表現作成部３は、Ａ、Ｂ、Ｃそれぞれの種類が意味的に異なるため、要素集合を抽出する際に、境界で分割された一方側と他方側とから要素を抽出する。
【００９８】
また、例えば、文字列パターン「Ｂ、Ｃ、ＤなどのＡ」（（Ａ、Ｂ、Ｃ、Ｄ）＝（上位語、下位語、下位語、下位語））が選択されている場合は、文字列表現作成部３は、Ｂ、Ｃ、Ｄは下位語なので、これらを境界で分割された同じ側から抽出する。また、文字列表現作成部３は、ＡはＢ、Ｃ、Ｄとは異なる上位語なので、境界で分割された別の側から抽出する。
【００９９】
次に、本発明の実施の形態４における関係抽出装置１４の動作について図１２を用いて説明する。図１２は、本発明の実施の形態４における関係抽出装置の動作を示すフロー図である。また、本実施の形態４においても、関係抽出装置１４を動作させることにより、本実施の形態４における関係抽出方法が実行される。このため、関係抽出方法の説明は、以下の関係抽出装置１４の動作の説明に代える。また、以下の説明においては、適宜、図１１を参酌する。
【０１００】
図１２において、ステップＤ１、Ｄ２、Ｄ５〜Ｄ１０は、実施の形態１において図６に示したステップＡ１、Ａ２、Ａ４〜Ａ９と同様のステップである。本実施の形態４は、ス
テップＤ３及びＤ４において、実施の形態１と異なっている。以下に相違点について具体的に説明する。なお、ステップＡ１、Ａ２、Ａ４〜Ａ９に対応する、ステップＤ１、Ｄ２、Ｄ５〜Ｄ１０については説明を省略する。
【０１０１】
本実施の形態４では、文字列表現作成部３が１つの構造化データを選択する（ステップＤ２）と、境界検出部９は、データ構造を構成する行と行との間、列と列との間、又は両者において、意味的な境界を検出する（ステップＤ３）。次に、文字列表現作成部３は、ステップＡ３と同様に要素集合を抽出するが、本実施の形態４では、意味的な境界、及び文字列パターンにおける要素間の関係（図４参照）を考慮して、要素集合を抽出する（ステップＤ４）。
【０１０２】
このように本実施の形態４では、要素集合の抽出処理においては、検出された境界と、文字列パターンに設定されている要素間の関係（各要素の種類）とが参照される。よって、本実施の形態４によれば、無駄な要素集合の抽出を省くことが可能となり、結果、要素集合を抽出する際の抽出精度の向上が図られる。
【０１０３】
また、文字列表現作成部３によって抽出される要素集合の数を減らすことが可能となるので、本実施の形態４によれば、文字列表現作成部３が要素集合の抽出に費やす時間、及び文字列表現判定部４が文字列表現の判定に費やす時間の短縮も図られる。
【０１０４】
また、本実施の形態４におけるプログラムは、コンピュータに、図１２に示すステップＤ１〜Ｄ１０を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することにより、本実施の形態４においても、実施の形態１と同様に、関係抽出装置１４及び関係抽出方法を実現することができる。
【０１０５】
この場合、コンピュータのＣＰＵ（Central Processing Unit）は、文字列表現作成部３、文字列表現判定部４、及び境界抽出部９として機能し、処理を行なう。更に、プログラムがインストールされたコンピュータ（マスタ）に、ネットワーク等を介して別のコンピュータ（スレイブ）が接続されている場合は、マスタの指示により、スレイブのＣＰＵが、文字列表現作成部３、文字列表現判定部４及び境界抽出部９のいずれか又は全部として機能しても良い。
【０１０６】
更に、構造化データ記憶部１、文字列パターン記憶部２、文書集合記憶部５、及び出力データ記憶部６は、コンピュータに備えられたハードディスク等の記憶装置によって実現できる。なお、記憶装置を備えるコンピュータは、本実施の形態４におけるプログラムがインストールされるコンピュータに、ネットワーク等を介して接続された別のコンピュータであっても良い。
【０１０７】
また、本実施の形態４においては、図１３に示す関係抽出装置１５を用いることもできる。図１３は、本発明の実施の形態４における関係抽出装置の他の例の概略構成を示すブロック図である。図１３の例に示す関係抽出装置１５は、図１１に示した境界検出部９に加えて、実施の形態２において図７に示した閾値判定部７と、実施の形態３において図８に示した要素集合抽出部８とを備えている。
【０１０８】
図１３に示す関係抽出装置１５によれば、実施の形態２及び３で述べた効果をも得ることができ、要素集合と各要素間の関係との抽出精度を保ちながら、大量の要素集合を高速に、要素集合記憶部６に格納することができる。なお、関係抽出装置１５は、閾値判定部７、要素集合抽出部８、及び境界検出部９のうち、いずれか二つのみを備えている態様であっても良い。この場合であっても、構成に応じた効果が得られることとなる。
【０１０９】
（実施の形態５）
次に、本発明の実施の形態５における関係抽出装置、関係抽出方法、及びプログラムについて、図１４及び図１５を参照しながら説明する。最初に、図１４を用いて、本実施の形態４における関係抽出装置の構成について説明する。図１４は、本発明の実施の形態５における関係抽出装置の概略構成を示すブロック図である。
【０１１０】
図１４に示すように、本実施の形態５における関係抽出装置１６は、図１に示し他関係抽出装置１１の構成に加え、バイナリデータ変換部１０を更に備えている。また、本実施の形態５においては、構造化データ記憶部１は、構造化データとして、テキスト形式のデータ以外のバイナリ形式のデータ、例えば、テキストを文字コードではなく画像によって特定するデータも記憶している。なお、実施の形態１で挙げたＨＴＭＬファイルのように文字コードを含むデータは、上述したテキスト形式のデータに含まれ、バイナリ形式のデータからは除かれる。
【０１１１】
バイナリデータ変換部１０は、バイナリ形式の構造化データに対して変換処理を行い、バイナリ形式のデータをテキスト形式のデータに変換することができる。このため、本実施の形態５によれば、バイナリ形式の構造化データからの要素集合の抽出も可能となる。なお、バイナリデータ変換部１０で行われる変換処理は、特に限定されるものではなく、既存の変換処理の方法を用いることができる。
【０１１２】
次に、本発明の実施の形態５における関係抽出装置１６の動作について図１５を用いて説明する。図１５は、本発明の実施の形態５における関係抽出装置の動作を示すフロー図である。また、本実施の形態５においても、関係抽出装置１６を動作させることにより、本実施の形態５における関係抽出方法が実行される。このため、関係抽出方法の説明は、以下の関係抽出装置１６の動作の説明に代える。また、以下の説明においては、適宜、図１４を参酌する。
【０１１３】
図１５において、ステップＥ２〜Ｅ１０は、実施の形態１において図６に示したステップＡ１〜Ａ９と同様のステップである。本実施の形態５は、ステップＥ１が実行される点で、実施の形態１と異なっている。以下に相違点について具体的に説明する。なお、ステップＡ１〜Ａ９と同様のステップＥ２〜Ｅ１０については説明を省略する。
【０１１４】
本実施の形態５においては、先ず、バイナリデータ変換部１０が、構造化データ記憶部１からバイナリ形式の構造化データを検出し、検出した構造化データに対して変換処理を実行する（ステップＥ１）。これにより、構造化データ記憶部１に記憶されているバイナリ形式のデータは、全て、テキスト形式のデータに変換される。その後、ステップＥ２〜Ｅ１０が、実施の形態１において図６に示したステップＡ１〜Ａ９と同様に実行される。
【０１１５】
また、本実施の形態５におけるプログラムは、コンピュータに、図１５に示すステップＥ１〜Ｅ１０を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することにより、本実施の形態５においても、実施の形態１と同様に、関係抽出装置１６及び関係抽出方法を実現することができる。
【０１１６】
この場合、コンピュータのＣＰＵ（Central Processing Unit）は、文字列表現作成部３、文字列表現判定部４、及びバイナリデータ変換部１０として機能し、処理を行なう。更に、プログラムがインストールされたコンピュータ（マスタ）に、ネットワーク等を介して別のコンピュータ（スレイブ）が接続されている場合は、マスタの指示により、スレイブのＣＰＵが、文字列表現作成部３、文字列表現判定部４及びバイナリデータ変換部１０のいずれか又は全部として機能しても良い。
【０１１７】
更に、構造化データ記憶部１、文字列パターン記憶部２、文書集合記憶部５、及び出力データ記憶部６は、コンピュータに備えられたハードディスク等の記憶装置によって実現できる。なお、記憶装置を備えるコンピュータは、本実施の形態５におけるプログラムがインストールされるコンピュータに、ネットワーク等を介して接続された別のコンピュータであっても良い。
【０１１８】
（実施の形態６）
次に、本発明の実施の形態６における関係抽出装置、関係抽出方法、及びプログラムについて、図１６及び図１７を参照しながら説明する。最初に、図１６を用いて、本実施の形態６における関係抽出装置の構成について説明する。図１６は、本発明の実施の形態６における関係抽出装置の概略構成を示すブロック図である。
【０１１９】
本実施の形態６における関係抽出装置１７は、実施の形態４において図１１に示した関係抽出装置１４と同様に、境界検出部９を備えている。但し、本実施の形態６では、境界検出部９は、実施の形態４で述べた機能に加え、更に、以下の機能も備えている。
【０１２０】
境界検出部９は、本実施の形態６では、文字列表現判定部４によって出力された文字列表現に基づいて、出力された文字列表現に含まれる要素それぞれにおける、データ構造での位置と、出力された文字列表現での出現頻度と、出現したときの文字列パターンでの位置とを検出する。例えば、文字列パターンにおいて、対象、属性、上位語、又は下位語に相当する要素は、テーブルにおいて項目となりやすく、同じ行または同じ列に出現しやすくなっている。本実施の形態６では、このことが利用されている。
【０１２１】
具体的には、境界検出部９は、出力データ記憶部６に格納されている要素集合について、要素毎に、対象、属性、上位語、又は下位語に該当しているか（文字列パターンでの位置）と、各要素の出現頻度と、テーブルでの位置とを検出する。続いて、境界検出部９は、検出した情報を用いて、テーブルを行方向または列方向に沿って解析する。これにより、対象、属性、上位語、又は下位語に該当した要素が、頻繁に出現している行又は列と、頻繁に出現していない行又は列とが特定される。
【０１２２】
そして、境界検出部９は、前者と後者との間を境界候補とし、更に、前者と後者との要素の出現頻度の比を求め、求められた比が閾値を超えていれば、この境界候補を境界と判定する。なお、境界の検出は、上記の処理以外の処理によって行うこともできる。また検出される境界は、実施形態４で述べた境界と同様のものである。
【０１２３】
次に、本発明の実施の形態６における関係抽出装置１７の動作について説明する。本実施の形態６において、関係抽出装置１７の動作は、境界抽出部９における動作を除き、実施の形態４において図１２に示した関係抽出装置１４の動作と同様である。つまり、関係抽出装置１７は、図１２に示すステップＤ３を除く、ステップＤ１、Ｄ２、Ｄ４〜Ｄ１０を実行する。
【０１２４】
このため、以下においては、境界抽出部９の動作について図１７を用いて説明する。図１７は、本発明の実施の形態６における関係抽出装置を構成する境界検出部の動作を示すフロー図である。なお、本実施の形態６においても、関係抽出装置１７を動作させることにより、本実施の形態６における関係抽出方法が実行される。
【０１２５】
図１７に示すように、先ず、図１２に示したステップＤ２による構造化データの選択が行われると、境界抽出部９は、出力データ記憶部６から、それに格納されている要素集合を抽出する（ステップＤ３１）。次に、境界検出部９は、各要素について、文字列パターンでの位置と、各要素の出現頻度と、テーブルでの位置とを検出する（ステップＤ３２）
。
【０１２６】
次に、境界抽出部９は、検出した情報を用いて、対象、属性、上位語、又は下位語に該当する要素が頻繁に出現している行又は列と、頻繁に出現していない行又は列とを見つけ出し、境界候補を特定する（ステップＤ３３）。
【０１２７】
次に、境界抽出部９は、特定の要素が頻繁に出現している行又は列と、特定の要素が頻繁に出現していない行又は列とについて、特定の要素の出現頻度の比を算出する（ステップＤ３４）。続いて、境界抽出部９は、ステップＤ３４で算出した比が閾値を超えているかどうかを判定する（ステップＤ３５）。
【０１２８】
ステップＤ３５の判定の結果、比が閾値を超えていない場合は、境界抽出部９は、後述するステップＤ３７を実行する。一方、ステップＤ３５の判定の結果、比が閾値を超えている場合は、境界抽出部９は、判定対象となった境界候補を境界と判定する（ステップＤ３６）。
【０１２９】
次に、境界抽出部９は、境界を特定する情報を文字列表現作成部３に通知し、全ての境界候補について判定が終了しているかどうかを判定する（ステップＤ３７）。ステップＤ３７の判定の結果、全ての境界候補についての判定が終了していない場合は、境界抽出部９は、再度ステップＤ３５を実行する。
【０１３０】
一方、ステップＤ３７の判定の結果、全ての境界候補についての判定が終了している場合は、境界抽出部９は処理を終了する。その後、文字列表現作成部３によって、図１２に示したステップＤ４が実行される。なお、本実施の形態６においては、出力データ記憶部６が、未だ要素集合を記憶していない状態にあるときは、境界抽出部９は、実施の形態４で説明した処理を実行することともできる。
【０１３１】
以上のように、本実施の形態６によれば、より精度の高い、境界抽出を行うことができるので、無駄な要素集合の抽出を確実に省くことができ、結果、要素集合を抽出する際の抽出精度の更なる向上が図られる。
【０１３２】
また、本実施の形態６におけるプログラムは、コンピュータに、図１２に示すステップステップＤ１、Ｄ２、Ｄ４〜Ｄ１０と、図１７に示すステップＤ３１〜Ｄ３７とを実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することにより、本実施の形態６においても、実施の形態１と同様に、関係抽出装置１７及び関係抽出方法を実現することができる。
【０１３３】
この場合、コンピュータのＣＰＵ（Central Processing Unit）は、文字列表現作成部３、文字列表現判定部４、及び境界抽出部９として機能し、処理を行なう。更に、プログラムがインストールされたコンピュータ（マスタ）に、ネットワーク等を介して別のコンピュータ（スレイブ）が接続されている場合は、マスタの指示により、スレイブのＣＰＵが、文字列表現作成部３、文字列表現判定部４及び境界抽出部９のいずれか又は全部として機能しても良い。
【０１３４】
更に、構造化データ記憶部１、文字列パターン記憶部２、文書集合記憶部５、及び出力データ記憶部６は、コンピュータに備えられたハードディスク等の記憶装置によって実現できる。なお、記憶装置を備えるコンピュータは、本実施の形態６におけるプログラムがインストールされるコンピュータに、ネットワーク等を介して接続された別のコンピュータであっても良い。
【０１３５】
また、上述した実施の形態１〜６では、各関係抽出装置は、先ず、一つの文字列パターンを選択し、選択した文字列パターン毎に、文字列表現の作成及び判定を実行しているが、本発明はこれに限定されるものではない。例えば、関係抽出装置は、先ず、構造化データを選択し、選択した構造化データ毎に、文字列表現の作成及び判定を実行することもできる。この点について実施の形態１の他の例を挙げて図１８を用いて説明する。
【０１３６】
図１８は、本発明の実施の形態１における関係抽出装置の動作の他の例を示すフロー図である。図１８の例では、先ず、文字列表現作成部３は、構造化データ記憶部１に記憶されている幾つかの構造化データの中から、１つの構造化データを選択する（ステップＦ１）。ステップＦ１は、図６に示したステップＡ２と同様のステップである。
【０１３７】
次に、文字列表現作成部３は、文字列パターン記憶部２に記憶されている文字列パターンの中から、１つの文字列パターンを選択する（ステップＦ２）。ステップＦ２は、図６に示したステップＡ１と同様のステップである。
【０１３８】
続いて、文字列表現作成部３は、ステップＦ１で選択された構造化データから、ステップＦ２で選択された文字列パターンに当てはめる要素集合を全て抽出する（ステップＦ３）。ステップＦ３は、図６に示したステップＡ３と同様のステップである。
【０１３９】
次に、文字列表現作成部３は、文字列パターン記憶部２に記憶されている全ての文字列パターンについて、要素集合の抽出が終了したかどうかを判定する（ステップＦ４）。ステップＦ４の判定の結果、全ての文字列パターンについて要素集合の抽出が終了していない場合は、文字列表現作成部３は、再度、ステップＦ２及びＦ３を実行する。一方、ステップＦ４の判定の結果、全ての文字列パターンについて要素集合の抽出が終了している場合は、文字列表現作成部３は、ステップＦ５を実行する。
【０１４０】
ステップＦ５では、文字列表現作成部３は、抽出された各要素集合を、ステップＦ２で選択された各文字列パターンに順次適用し、文字列表現を作成する。このように、図１８の例では、図６に示した例と異なり、構造化データ毎に、文字列表現が作成される。なお、作成される文字列表現は、図６に示したステップＡ５で作成される文字列表現と同様となる。
【０１４１】
次に、文字列表現判定部４は、文字列表現が文書集合中に出現しているかどうかの判定（ステップＦ６）、及び全ての文字列表現についてステップＦ６の判定が行われているかどうかの判定（ステップＦ７）を順次実行する。そして、文字列表現判定部４は、ステップＦ６において、出現していると判定する場合は、文字列表現を構成している文字列パターンと、使用されている要素集合とを出力し、これらのデータを出力データ記憶部６に記憶させる（ステップＦ９）。
【０１４２】
ステップＦ６、Ｆ７、及びＦ９は、それぞれ、図６に示したステップＡ６、Ａ７、及びＡ９と同様ステップである。図１８の例においても、図６の例と同様に、作成された文字列表現が、文書集合中に出現しているかどうかを判定される。そして、出現している文字列表現は、出力データ記憶部６に記憶される。
【０１４３】
その後、文字列表現判定部４は、ステップＦ７の判定の結果、全ての文字列表現について、ステップＦ６の判定が行われている場合は、ステップＦ８を実行する。ステップＦ８では、文字列表現判定部４は、全ての構造化データについてステップＦ１〜Ｆ７及びＦ９の処理が行われているかどうかを判定する。
【０１４４】
ステップＦ８の判定の結果、全ての構造化データについてステップＦ１〜Ｆ７及びＦ９
の処理が終了していない場合は、再度、文字列表現作成部３によってステップＦ１が実行される。一方、ステップＦ８の判定の結果、全ての構造化データについてステップＦ１〜Ｆ７及びＦ９の処理が終了している場合は、関係抽出装置１１における処理は終了する。
【０１４５】
このように、関係抽出装置１１は、図１８に示すステッＦ１〜Ｆ９に沿って動作することもでき、この場合も実施の形態１で述べた場合と同様の効果が得られる。また、実施の形態２〜実施の形態６における関係抽出装置も、図１８の例と同様に、最初に、構造化データを選択し、選択した構造化データ毎に、文字列表現の作成及び判定を実行できる。
【産業上の利用可能性】
【０１４６】
以上のように、本発明によれば、予め辞書を用意することなく、語と語との関係及びその関係を満たす語の集合を抽出することができる。また、本発明は、属性検索、検索クエリの展開、文書検索のためのタグ付け等に利用でき、産業上の利用可能性を有している。
【符号の説明】
【０１４７】
１  構造化データ記憶部
２  文字列パターン記憶部
３  文字列表現作成部
４  文字列表現判定部
５  文書集合記憶部
６  出力データ記憶部
７  閾値判定部
８  要素集合抽出部
９  境界検出部
１０  バイナリデータ変換部
１１  関係抽出装置（実施の形態１）
１２  関係抽出装置（実施の形態２）
１３  関係抽出装置（実施の形態３）
１４、１５  関係抽出装置（実施の形態４）
１６  関係抽出装置（実施の形態５）
１７  関係抽出装置（実施の形態６）
【図１】
2010272006.tif 000003
【図２】
2010272006.tif 000004
【図３】
2010272006.tif 000005
【図４】
2010272006.tif 000006
【図５】
2010272006.tif 000007
【図６】
2010272006.tif 000008
【図７】
2010272006.tif 000009
【図８】
2010272006.tif 000010
【図９】
2010272006.tif 000011
【図１０】
2010272006.tif 000012
【図１１】
2010272006.tif 000013
【図１２】
2010272006.tif 000014
【図１３】
2010272006.tif 000015
【図１４】
2010272006.tif 000016
【図１５】
2010272006.tif 000017
【図１６】
2010272006.tif 000018
【図１７】
2010272006.tif 000019
【図１８】
2010272006.tif 000020