(57)【要約】【課題】様々なＷｅｂアプリケーションをＷｅｂサービスとして利用することを可能にするシステムを提供する。【解決手段】半構造化データ要素分割部２１は、半構造化データを、その半構造化データを構成する最小単位の要素に分割し、半構造化データの階層構造における要素毎の深度を算出する。深度特徴抽出部２２は、半構造化データ要素分割部２１にて算出された要素毎の深度から、深度変化の特徴を抽出する。要素群発見部２３は、深度特徴抽出部２２にて抽出された深度変化の特徴に基づいて、半構造化データ内の構造化データの部分の要素群を発見する。【選択図】図２
2007241417.tif 000002
【特許請求の範囲】
【請求項１】
構造化された部分を含む半構造化データから構造化データを抽出する構造化データ抽出システムであって、
要求に応じて処理を実行し、該処理の結果として前記半構造化データを生成する半構造化データ生成装置と、
前記半構造化データ生成装置に前記半構造化データを要求し、得られた該半構造化データ内の構造化データの部分を抽出する構造化データ抽出装置と、を有する構造化データ抽出システム。
【請求項２】
前記構造化データ抽出装置は、
前記半構造化データを、該半構造化データを構成する最小単位の要素に分割し、前記半構造化データの階層構造における要素毎の深度を算出する半構造化データ要素分割部と、
前記半構造化データ要素分割部にて算出された前記要素毎の深度から、深度変化の特徴を抽出する深度特徴抽出部と、
前記深度特徴抽出部にて抽出された深度変化の特徴に基づいて、前記半構造化データ内の構造化データの部分の要素群を発見する要素群発見部と、を有する請求項１に記載の構造化データ抽出システム。
【請求項３】
前記深度特徴抽出部は、前記深度変化の特徴として、前記半構造化データの深度変化の部分的な周期性を抽出し、
前記要素群発見部は、前記深度特徴抽出部で抽出された周期性に基づいて、該周期性のある部分を構造化データの部分として検出する、請求項２に記載の構造化データ抽出システム。
【請求項４】
前記深度特徴抽出部は、
前記半構造化データ要素分割部にて算出された要素毎の深度をフーリエ変換して周波数スペクトルを計算する深度スペクトル計算部と、
前記深度スペクトル計算部にて計算された前記周波数スペクトルからピークを発見し、該ピークに対応する周期を前記深度特徴と定めるピーク特徴算出部と、を有する請求項３に記載の構造化データ抽出システム。
【請求項５】
前記要素群発見部は、
前記深度特徴抽出部で抽出された前記深度特徴と、前記半構造化データ要素分割部で算出された前記要素毎の深度とから、深度の周期的に変化している部分を発見する周期変化部分発見部と、
前記周期変化部分発見部にて発見された前記深度の周期的に変化している部分を１周期毎に分解して前記構造化データを生成する要素群化部と、を有する請求項２から４のいずれか１項に記載の構造化データ抽出システム。
【請求項６】
構造化された部分を含む半構造化データから構造化データを抽出する構造化データ抽出装置であって、
前記半構造化データを、該半構造化データを構成する最小単位の要素に分割し、前記半構造化データの階層構造における要素毎の深度を算出する半構造化データ要素分割部と、
前記半構造化データ要素分割部にて算出された前記要素毎の深度から、深度変化の特徴を抽出する深度特徴抽出部と、
前記深度特徴抽出部にて抽出された前記深度変化の特徴に基づいて、前記半構造化データ内の構造化データの部分の要素群を発見する要素群発見部と、を有する構造化データ抽出装置。
【請求項７】
構造化された部分を含む半構造化データから構造化データを抽出するための構造化データ抽出方法であって、
前記半構造化データを、該半構造化データを構成する最小単位の要素に分割し、前記半構造化データの階層構造における要素毎の深度を算出し、
算出した前記要素毎の深度から、深度変化の特徴を抽出する深度特徴抽出部と、
抽出した前記深度変化の特徴に基づいて、前記半構造化データ内の構造化データの部分の要素群を発見する、構造化データ抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＷｅｂアプリケーションをＷｅｂサービスとして利用するシステムに関し、特に、Ｗｅｂアプリケーションの生成する半構造化データからＷｅｂサービスの戻り値に当たる構造化データを抽出する技術に関する。
【背景技術】
【０００２】
近年、Ｗｅｂサービスの需要が高まっている。Ｗｅｂサービスとは、Ｗｅｂ上での様々なサービスを実現するために、部品として用いられるサービスコンポーネントのことである。Ｗｅｂサービスの一例として、結果がＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述され、コンポーネント間の通信にＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）が用いられるものがある。
【０００３】
その主な応用対象はＢ２Ｂの分野である。ビジネスの世界でＷｅｂ環境が充実してきたことに伴い、これまで理論的なものとして考えられてきたものが、実際的なものとなってきている。また、ユビキタスの分野においてもＷｅｂサービスを用いることが検討されている。このため、Ｂ２ＣやＣ２Ｃの分野でもＷｅｂサービスが注目されている。
【０００４】
このようにＷｅｂサービスの応用範囲が広がっている状況においては、サービスを充実させるためにＷｅｂサービス数を増やすことが要求される。これに対して、膨大な数の既存のＷｅｂアプリケーションをＷｅｂサービスとして利用するという発想がある。Ｗｅｂアプリケーションは既に膨大な数が存在するので、これをＷｅｂサービスとして利用することには大きなメリットがある。
【０００５】
しかし、Ｗｅｂサービスはインタフェースが統一されているのに対して、ＷｅｂアプリケーションはＷｅｂサービス程にはインタフェースが統一されていない。Ｗｅｂサービスの結果が構造化データであるのに対して、Ｗｅｂアプリケーションの結果が半構造化データである。構造化データは、表のように規則的に整理された構造を有するデータである。これに対して、構造が整理されていないデータが非構造化データである。半構造化データは、構造化データと非構造化データの中間的なデータであり、多くの場合、構造化された部分と構造化されていない部分を含んでいる。
【０００６】
そこで、ＷｅｂアプリケーションをＷｅｂサービスとして利用するために、ラッパを用いて半構造化データから構造化データを抽出することが行われている。ＷｅｂアプリケーションをＷｅｂサービスとして利用するためのラッパは、今後、重要な役割を果たすと考えられている。
【０００７】
しかし、上述したように膨大な数のＷｅｂアプリケーションが存在するので、それらをＷｅｂサービスとして利用するためのラッパを人手によって個々に作るには膨大なコストと膨大な時間が必要となる。そのため、ラッパを自動生成することが検討されている（非特許文献１参照）。非特許文献１には、Ｗｅｂアプリケーションのプログラムのソースコードからラッパを生成する技術が開示されている。
【非特許文献１】Ｈ．Ｐ．Ｈｕｙ，  Ｔ．Ｋａｗａｍｕｒａ，  Ｔ．Ｈａｓｅｇａｗａ：Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｇａｔｅｗａｙ−ａ  ｓｔｅｐ  ｆｗｏｒｗａｒｄ  ｔｏ  ｅ−Ｂｕｓｉｎｅｓｓ，  Ｐｒｏｃｅｅｄｉｎｇ  ｏｆ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ（ＩＣＷＳ  ２００４），ＩＥＥＥ，ｐｐ．６４８−６５５，２００４
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、従来技術では、Ｗｅｂアプリケーションに仕様の変更があるとラッパの仕様も変更しなければならず、膨大な数のラッパの個々の仕様を適正に管理することは現実的には可能なことではない。
【０００９】
また、非特許文献１に開示された従来技術では、ラッパを生成するために既存のＷｅｂアプリケーションのソースコードが必要であった。ソースコードを入手できたＷｅｂアプリケーションのラッパだけしか生成できず、膨大な数のＷｅｂアプリケーションをＷｅｂサービスとして利用するのに適しているとは言えないものであった。
【００１０】
本発明の目的は、様々なＷｅｂアプリケーションをＷｅｂサービスとして利用することを可能にするシステムを提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の構造化データ抽出システムは、
構造化された部分を含む半構造化データから構造化データを抽出する構造化データ抽出システムであって、
要求に応じて処理を実行し、該処理の結果として前記半構造化データを生成する半構造化データ生成装置と、
前記半構造化データ生成装置に前記半構造化データを要求し、得られた該半構造化データ内の構造化データの部分を抽出する構造化データ抽出装置とを有している。
【００１２】
本発明によれば、構造化データ抽出装置は、半構造化データ生成装置で生成された半構造化データから構造化データを抽出するので、個々のＷｅｂアプリケーション毎に予めラッパを作っておかなくても、またＷｅｂアプリケーションのソースコードを用いなくても様々な半構造化データから構造化データを抽出することができる。そのため、様々なＷｅｂアプリケーションを容易にＷｅｂサービスとして利用することが可能となる。
【００１３】
また、前記構造化データ抽出装置は、
前記半構造化データを、該半構造化データを構成する最小単位の要素に分割し、前記半構造化データの階層構造における要素毎の深度を算出する半構造化データ要素分割部と、
前記半構造化データ要素分割部にて算出された前記要素毎の深度から、深度変化の特徴を抽出する深度特徴抽出部と、
前記深度特徴抽出部にて抽出された深度変化の特徴に基づいて、前記半構造化データ内の構造化データの部分の要素群を発見する要素群発見部と、を有することとしてもよい。
【００１４】
これによれば、構造化データの深度変化には一定の特徴が推定できることを利用して、その特徴に基づいて要素群を発見するので、一定の特長を有する構造化データを容易に発見することができる。
【００１５】
また、前記深度特徴抽出部は、前記深度変化の特徴として、前記半構造化データの深度変化の部分的な周期性を抽出し、
前記要素群発見部は、前記深度特徴抽出部で抽出された周期性に基づいて、該周期性のある部分を構造化データの部分として検出することとしてもよい。
【００１６】
これによれば、構造化データの特徴として深度の周期性が推定できることを利用して、その周期性のある部分を発見するので、周期性を有する構造化データを容易に発見することができる。
【００１７】
また、前記深度特徴抽出部は、
前記半構造化データ要素分割部にて算出された要素毎の深度をフーリエ変換して周波数スペクトルを計算する深度スペクトル計算部と、
前記深度スペクトル計算部にて計算された前記周波数スペクトルからピークを発見し、該ピークに対応する周期を前記深度特徴と定めるピーク特徴算出部とを有することとしてもよい。
【００１８】
また、前記要素群発見部は、
前記深度特徴抽出部で抽出された前記深度特徴と、前記半構造化データ要素分割部で算出された前記要素毎の深度とから、深度の周期的に変化している部分を発見する周期変化部分発見部と、
前記周期変化部分発見部にて発見された前記深度の周期的に変化している部分を１周期毎に分解して前記構造化データを生成する要素群化部とを有することとしてもよい。
【発明の効果】
【００１９】
本発明によれば、構造化データ抽出装置は、半構造化データ生成装置で生成された半構造化データから構造化データを抽出するので、個々のＷｅｂアプリケーション毎に予めラッパを作っておかなくても、またＷｅｂアプリケーションのソースコードを用いなくても様々な半構造化データから構造化データを抽出することができる。そのため、様々なＷｅｂアプリケーションを容易にＷｅｂサービスとして利用することが可能となる。
【発明を実施するための最良の形態】
【００２０】
本発明を実施するための形態について図面を参照して詳細に説明する。
【００２１】
図１は、本実施形態の構造化データ抽出システム１０の構成を示すブロック図である。図１を参照すると、構造化データ抽出システム１０は、構造化データ抽出１１および半構造化データ生成装置１２を有している。
【００２２】
半構造化データ生成装置１２は、例えばインターネットなどのネットワーク上に存在しており、要求に応じてＷｅｂアプリケーションを実行し、その結果として半構造化データを生成する。
【００２３】
構造化データ抽出装置１１は、半構造化データ生成装置１２におけるＷｅｂアプリケーションの結果である半構造化データから、そのＷｅｂアプリケーションがＷｅｂサービスとして利用された場合にＷｅｂサービスの結果として提供する構造化データを抽出する。
【００２４】
例えば、半構造化データ生成装置１２がホテル検索Ｗｅｂアプリケーションであれば、半構造化データであるＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）データにはホテル情報部分の他に広告部分が含まれていることがある。そのＷｅｂアプリケーションをＷｅｂサービスとして利用する場合、Ｗｅｂサービスの結果として提供すべきなのはホテル情報部分である。そして、そのホテル情報部分のようにＷｅｂサービスの結果として利用できる部分は、機械的に生成されるため構造化されている場合が多いといえる。
【００２５】
図２は、構造化データ抽出装置１１の構成を示すブロック図である。図２を参照すると、構造化データ抽出装置１１は、半構造化データ要素分割部２１、深度特徴抽出部２２、および要素群発見部２３を有している。
【００２６】
半構造化データ要素分割部２１は、ユーザからの半構造化データの指定を受け、半構造化データ生成装置１２に対して半構造化データの要求を行う。これは、例えば、ユーザからのＵＲＬの指定を受けて該当するＷｅｂサーバにリクエストを送信することである。半構造化データの要求を受けた半構造化データ生成装置１２は、該当する半構造化データを生成して半構造化データ要素分割部２１に送る。
【００２７】
半構造化データ要素分割部２１は、半構造化データ生成装置１２から半構造化データを受けると、その半構造化データを要素に分割する。ここで要素とは、半構造化データを構成する単位をいう。例えば、半構造化データであるＨＴＭＬにおけるタグや文章が要素である。
【００２８】
また、半構造化データ要素分割部２１は、半構造化データを要素に分割すると同時に、各要素の半構造化データ内での階層構造における深度を算出する。深度とは、入れ子を用いた階層構造における要素までの入れ子の回数をいい、例えばネスティングされたＨＴＭＬデータ内の要素までのネストの深さである。
【００２９】
半構造化データ要素分割部２１は、算出した深度の情報を深度特徴抽出部２２に通知し、要素と深度の対応情報を要素群発見部２３に通知する。
【００３０】
深度特徴抽出部２２は、半構造化データ要素分割部２１から通知された深度の情報から深度特徴を抽出する。深度特徴とは、半構造化データ内における深度変化の特徴である。例えば、半構造化データの表の部分では深度変化に規則的な周期性があることが考えられる。その場合、深度の周期的な変化が深度特徴である。半構造化データの深度をフーリエ変換して得られたスペクトル内の最大ピークの周期を、半構造化データにおける構造化された部分の周期と推定することができる。深度特徴抽出部２２で抽出された深度特徴は要素群発見部２３に通知される。例えば、スペクトル内の最高ピークの部分を残すようなフィルタ処理をし、フィルタ処理されたスペクトルを深度特徴とすることとしてもよい。
【００３１】
要素群発見部２３は、深度特徴抽出部２２から通知された深度特徴から推定される、構造の共通する要素からなる要素群を発見し、その要素群を構造化データとして出力する。深度特徴が深度変化の周期性にあれば、その周期性を手がかりに構造化データを見つけることができる。例えば、ホテル検索Ｗｅｂアプリケーションであれば、各ホテルの宿泊料金、住所、電話番号などの情報が記載されたテーブルにおいて、ホテル毎の情報が要素群に相当する。深度特徴が上述したようなフィルタ処理されたスペクトルであれば、そのスペクトルを逆フーリエ変換することで深度が周期的に変化している部分を発見することとしてもよい。
【００３２】
図３は、半構造化データ要素分割部２１の構成を示すブロック図である。図３を参照すると、半構造化データ要素分割部２１は、半構造化データ要求部３１、深度算出部３２、および深度提供部３３を有している。
【００３３】
半構造化データ要求部３１は、ユーザの指定した半構造化データを半構造化データ生成装置１２に要求する。半構造化データ要求部３１からの要求を受けた半構造化データ生成装置１２は、要求された半構造化データを生成して半構造化データ要素分割部２１の深度算出部３２に通知する。
【００３４】
深度算出部３２は、半構造化データ生成装置１２から半構造化データを受けると、
半構造化データを要素に分割し、各要素の深度を算出して要素と深度の情報を深度提供部３３に通知する。
【００３５】
深度提供部３３は、深度算出部３２から通知された要素と深度を要素群発見部２３に提供し、深度を深度特徴抽出部２２に提供する。
【００３６】
図４は、深度特徴抽出部２２の構成を示すブロック図である。図４を参照すると、深度特徴抽出部２２は、深度スペクトル計算部４１およびピーク特徴算出部４２を有している。
【００３７】
深度スペクトル計算部４１は、半構造化データ要素分割部２１の深度提供部３３から通知された深度をＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）でフーリエ変換して周波数成分に分解する。そして、深度スペクトル計算部４１は、得られた周波数スペクトルをピーク特徴算出部４２に通知する。
【００３８】
ピーク特徴算出部４２は、深度スペクトル計算部４１から通知された周波数スペクトル内の最大ピークを発見し、そのピーク周波数に対応する周期（ピーク周期）を算出する。そして、ピーク特徴算出部４２は、算出したピーク周期を深度特徴として要素群発見部２３に通知する。
【００３９】
図５は、要素群発見部２３の構成を示すブロック図である。図５を参照すると、要素群発見部２３は、周期変化部分発見部５１および要素群化部５２を有している。
【００４０】
周期変化部分発見部５１は、半構造化データ要素分割部２１から深度と要素の情報を受け、深度特徴抽出部２２から深度特徴であるピーク周期を受け、半構造化データの深度がピーク周期で周期的に変化している部分（深度周期変化部分）を発見する。そして、周期変化部分発見部５１は、その深度周期変化部分の各要素を抽出し、要素群化部５２に通知する。例えば、半構造化データの深度変化の波形に対して２周期分の幅で先頭から走査し、２周期分の中の前半（１周期目）と後半（２周期目）の波形の差分をとり、この差分が所定値以下の範囲を深度周期変化部分すればよい。そして、周期変化部分発見部５１は、その深度周期変化部分を要素群化部５２に通知する。
【００４１】
要素群化部５２は、周期変化部分発見部５１から通知された深度周期変化部分に対応する要素を１周期毎に分割して要素群化する。例えば、ＨＴＭＬデータ内の表の部分すなわちｔａｂｌｅタグで囲まれている部分が深度周期変化部分であるとすると、その中のｔｒタグで分割したものが要素群となる。この要素群がＷｅｂサービスの結果として用いられる構造化データである。深度周期変化部分を１周期毎に分割するとき、深度の最も浅い箇所の要素で分割することとしてもよい。表のような構造の部分では、項目の切り替わり目の深度が浅いと推定されるからである。また、深度周期変化部分を１周期毎に分割するとき、要素のタグ情報を参照し、そのタグ情報を用いて分割箇所を決定してもよい。表のような構造の部分では、項目の切り替わり目のタグ情報に共通性があると推定されるからである。
【００４２】
図６は、本実施形態における構造化データ抽出動作を示すフローチャートである。図６を参照すると、構造化データ抽出装置１１は、まず、半構造化データ生成装置１２から取得した半構造化データを要素に分割する（ステップ１０１）。次に、構造化データ抽出装置１１は、各要素の深度を算出する（ステップ１０２）。
【００４３】
図７は、半構造化データの各要素とその深度の関係の一例を示すグラフである。図７には、天気予報のＨＴＭＬデータの各要素とその深度が示されている。図７のグラフから半構造化データの深度変化の様子が分かる。図８は、要素と深度の関係の一例を示す表である。図７のグラフは図８のような表にすることができ、この表を元に深度特徴の抽出が可能となる。
【００４４】
次に、構造化データ抽出装置１１は、半構造化データの深度変化から深度特徴を抽出する（ステップ１０３）。その際、構造化データ抽出装置１１は、深度変化の波形をフーリエ変換し、得られた周波数スペクトルの最大のピーク周波数に対応するピーク周期を深度特徴として求める。図９は、半構造化データの深度の周波数スペクトルの一例を示すグラフである。図９から最大のピーク周波数が求まるので、構造化データ抽出装置１１は、その周波数に対応する周期を深度特徴と定める。
【００４５】
次に、構造化データ抽出装置１１は、深度特徴として定めたピーク周期から、構造の共通する要素からなる深度周期変化部分を発見し（ステップ１０４）、その深度周期変化部分を１周期毎に分割して要素群化して構造化データとして出力する。
【００４６】
図１０は、深度周期変化部分を説明するための図である。図１０の例にある深度変化のグラフにおいて、ピーク周期で周期的に変化している部分が深度周期変化部分となる。図１１は、構造化データの一例を示す図である。深度周期変化部分を１周期毎に分解したものが図１１のような構造化データとなる。
【００４７】
以上説明したように、本実施形態によれば、構造化データ抽出装置１１は、半構造化データ生成装置１２で生成された半構造化データから構造化データを抽出するので、個々のＷｅｂアプリケーション毎のラッパを予め準備しておかなくても、またＷｅｂアプリケーションのソースコードを用いなくても様々な半構造化データから構造化データを抽出することができる。そのため、様々なＷｅｂアプリケーションを容易にＷｅｂサービスとして利用することが可能となる。
【００４８】
また、構造化データの深度変化には一定の特徴が推定できることを利用して、その特徴に基づいて要素群を発見するので、一定の特長を有する構造化データを容易に発見することができる。また、構造化データの特徴として深度の周期性が推定できることを利用して、その周期性のある部分を発見するので、周期性を有する構造化データを容易に発見することができる。
【００４９】
なお、本実施形態では、周波数スペクトルの最大のピークを取り出し、そのピーク周波数に対応する周期を深度特徴としたが、本発明はこれに限定されるものではない。他の例として、最大でないものも含めてピークを取り出し、その周波数に対応する周期を深度特徴としてもよい。これによれば、半構造化データ内に複数の異なる構造化データの部分が存在する場合に、それらを抽出することができる。
【図面の簡単な説明】
【００５０】
【図１】本実施形態の構造化データ抽出システム１０の構成を示すブロック図である。
【図２】構造化データ抽出装置１１の構成を示すブロック図である。
【図３】半構造化データ要素分割部２１の構成を示すブロック図である。
【図４】深度特徴抽出部２２の構成を示すブロック図である。
【図５】要素群発見部２３の構成を示すブロック図である。
【図６】本実施形態における構造化データ抽出動作を示すフローチャートである。
【図７】半構造化データの各要素とその深度の関係の一例を示すグラフである。
【図８】要素と深度の関係の一例を示す表である。
【図９】半構造化データの深度の周波数スペクトルの一例を示すグラフである。
【図１０】深度周期変化部分を説明するための図である。
【図１１】構造化データの一例を示す図である。
【符号の説明】
【００５１】
１０    構造化データ抽出システム
１１    構造化データ抽出
１２    半構造化データ生成装置
２１    半構造化データ要素分割部
２２    深度特徴抽出部
２３    要素群発見部
３１    半構造化データ要求部
３２    深度算出部
３３    深度提供部
４１    深度スペクトル計算部
４２    ピーク特徴算出部
５１    周期変化部分発見部
５２    要素群化部
１０１〜１０４    ステップ
【図１】
2007241417.tif 000003
【図２】
2007241417.tif 000004
【図３】
2007241417.tif 000005
【図４】
2007241417.tif 000006
【図５】
2007241417.tif 000007
【図６】
2007241417.tif 000008
【図７】
2007241417.tif 000009
【図８】
2007241417.tif 000010
【図９】
2007241417.tif 000011
【図１０】
2007241417.tif 000012
【図１１】
2007241417.tif 000013