(57)【要約】【課題】属性名と属性値とが明確に区別されていない半構造データから、構造データとスキーマとを自動作成できるデータ処理装置、データ処理方法及びデータ処理方法を提供すること。【解決手段】データ処理装置１は、半構造データを汎用データに変換し、汎用データからテーブル構造の部分を抽出するデータ取得部１１と、テーブル構造の部分に含まれる単語それぞれが出現する頻度を算出し、頻度のヒストグラムから、最も度数の高い頻度である単語を、属性候補として抽出する属性候補抽出部１２と、テーブル構造の形式に基づく所定の行又は列の組み合わせのうち、属性候補の出現率が最も高い組み合わせに配置された単語を属性名と判別する属性推定部１３と、属性名に対して、汎用データのうち属性名を除いたデータを属性値として対応付け、構造データを作成する構造データ作成部１４と、属性名を定義したスキーマを作成するスキーマ作成部１５と、を備える。【選択図】図１
2019168758.tif 000002
【特許請求の範囲】
【請求項１】
半構造データを汎用データに変換し、当該汎用データからテーブル構造の部分を抽出するデータ取得部と、
前記テーブル構造の部分に含まれる単語それぞれが出現する頻度を算出し、当該頻度のヒストグラムから、最も度数の高い頻度である単語を、属性候補として抽出する属性候補抽出部と、
前記テーブル構造の形式に基づく所定の行又は列の組み合わせのうち、前記属性候補の出現率が最も高い組み合わせに配置された単語を属性名と判別する属性推定部と、
前記属性名に対して、前記汎用データのうち前記属性名を除いたデータを属性値として対応付け、構造データを作成する構造データ作成部と、
前記属性名を定義したスキーマを作成するスキーマ作成部と、を備えるデータ処理装置。
【請求項２】
前記属性推定部は、所定の共通語彙に存在する単語との類似度が閾値以上の前記属性候補のみを採用する請求項１に記載のデータ処理装置。
【請求項３】
前記属性候補抽出部は、属性推定部により前記属性候補が採用されなかった場合、前記度数が１段階低い頻度である単語を、前記属性候補として抽出する請求項２に記載のデータ処理装置。
【請求項４】
前記属性推定部は、前記属性候補として抽出した単語の頻度に基づいて、前記テーブル構造の形式を判定する請求項１から請求項３のいずれかに記載のデータ処理装置。
【請求項５】
前記データ取得部は、前記半構造データを、ＸＭＬ形式を含む前記汎用データに変換し、当該ＸＭＬ形式における特定のタグにより前記テーブル構造の部分を抽出する請求項１から請求項４のいずれかに記載のデータ処理装置。
【請求項６】
半構造データを汎用データに変換し、当該汎用データからテーブル構造の部分を抽出するデータ取得ステップと、
前記テーブル構造の部分に含まれる単語それぞれが出現する頻度を算出し、当該頻度のヒストグラムから、最も度数の高い頻度である単語を、属性候補として抽出する属性候補抽出ステップと、
前記テーブル構造の形式に基づく所定の行又は列の組み合わせのうち、前記属性候補の出現率が最も高い組み合わせに配置された単語を属性名と判別する属性推定ステップと、
前記属性名に対して、前記汎用データのうち前記属性名を除いたデータを属性値として対応付け、構造データを作成する構造データ作成ステップと、
前記属性名を定義したスキーマを作成するスキーマ作成ステップと、をコンピュータが実行するデータ処理方法。
【請求項７】
半構造データを汎用データに変換し、当該汎用データからテーブル構造の部分を抽出するデータ取得ステップと、
前記テーブル構造の部分に含まれる単語それぞれが出現する頻度を算出し、当該頻度のヒストグラムから、最も度数の高い頻度である単語を、属性候補として抽出する属性候補抽出ステップと、
前記テーブル構造の形式に基づく所定の行又は列の組み合わせのうち、前記属性候補の出現率が最も高い組み合わせに配置された単語を属性名と判別する属性推定ステップと、
前記属性名に対して、前記汎用データのうち前記属性名を除いたデータを属性値として対応付け、構造データを作成する構造データ作成ステップと、
前記属性名を定義したスキーマを作成するスキーマ作成ステップと、をコンピュータに実行させるためのデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半構造データから構造データ及びスキーマを作成する装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、例えば自治体は、保育園情報、公共施設情報、人口統計情報等の街に関する情報を、オープンデータとして公開している。これらのデータを統合して分析することで、ユーザが住みたい家をＷｅｂ検索する際に、街の情報や他の街との比較情報等を合わせて表示する家探し支援サービスが提供される。また、企業には、顧客情報、商品情報、購入情報等のデータがある。これらのデータを統合して分析することで、顧客の商品購入の傾向が把握され、類似した他の商品のお薦め、又は新商品の開発等に活用される。
【０００３】
このように、複数に分散したデータを統合して分析することで、個々のデータのみでは提供できなかった価値が生み出される。
ところが、統合する対象である各自治体等で公開しているデータの形式がそれぞれ異なる場合がある。例えば、ある自治体ではＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ）で扱うことができるように、先頭行に属性名を配置したＣＳＶ（Ｃｏｍｍａ−Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）形式で構造データを公開しているが、他の自治体ではＲＤＢで扱えないＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）又はＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等の形式で半構造データを公開している。したがって、データを統合する際は、ＰＤＦ又はＸＭＬ形式の半構造データから構造データ及びＲＤＢのスキーマを作成する必要がある。
なお、半構造データとは、保育施設のリスト等の表形式で表現できる構造データと、公開資料に含まれるタイトル、前書き等の表形式で表現できない非構造データとを併せ持つデータである。
【０００４】
半構造データから構造データ及びＲＤＢのスキーマを作成する方法として、例えば以下の方法が提案されている。
特許文献１の方法では、ＸＭＬスキーマ内の、＜ｘｓｄ：ｅｌｅｍｅｎｔ  ｎａｍｅ＝”（属性名）”＞の記述から、ＲＤＢスキーマが作成される。
特許文献２の方法では、ＸＭＬデータのタグ内の＜（属性名）＞属性値＜／（属性名）＞の記述から、＜＞内の単語を属性名と認識して構造データ及びＲＤＢスキーマが作成される。
特許文献３の方法では、自然文章であるテキストの文章構造を予め想定し、例えば、「［イベント］において［目的］のため［アクション］した。」といった属性名及びその属性値が入る場所を指定した構造化変換ルールに基づき構造データ及びＲＤＢスキーマが作成される。
【０００５】
また、非特許文献１のライブラリは、テキスト・表・画像等をそれぞれ１つの情報単位として、ＰＤＦデータを、＜ａｈｐ：ｆｒａｍｅ＞＜／ａｈｐ：ｆｒａｍｅ＞タグで情報単位毎に区切って表現したＸＭＬデータに変換する。例えば、＜ａｈｐ：ｆｒａｍｅ  ａｈｐ：ｆｒａｍｅ−ｔｙｐｅ＝”ｔａｂｌｅ”＞＜／ａｈｐ：ｆｒａｍｅ＞の記載で区切られた箇所には、表形式のデータに関する記載が行われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３５０９２４号公報
【特許文献２】特開２００３−２７１４４３号公報
【特許文献３】特開２００３−２８８３３２号公報
【非特許文献】
【０００７】
【非特許文献１】「Ａｎｔｅｎｎａ  Ｈｏｕｓｅ  ＰＤＦＸＭＬ  変換ライブラリ  Ｖ２．０」、［ｏｎｌｉｎｅ］、アンテナハウス株式会社、［平成３０年３月１３日検索］、インターネット＜ｈｔｔｐ：／／ｗｗｗ．ａｎｔｅｎｎａ．ｃｏ．ｊｐ／ｐｄｆｘｍｌ／＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、前述した従来の方法では、属性名が明記されているＸＭＬスキーマ若しくはＸＭＬデータ、又は予め属性名を明記した構造化変換ルールを用いることで、半構造データから、ＲＤＢで利用できる構造データ及びスキーマを自動作成していた。
【０００９】
特許文献１の方法では、対象とする半構造データに、属性名が定義されているＸＭＬスキーマが存在しないと、属性名を認識することができず、ＲＤＢスキーマを自動作成できない。
特許文献２の方法では、対象とする半構造データにおいて、ＸＭＬタグ内には文書のスタイルを示す記述（例えば、＜Ｐ＞又は＜ＴＤ＞等）が入り、属性名が記述されていないと、タグ内の情報から属性名を認識することができず、ＲＤＢスキーマを自動作成できない。
特許文献３の方法では、属性名と属性値とが区別されていない個々の半構造データに対して、属性名とその属性値の入る場所を指定する構造化変換ルールを手動で作成する必要があり、ＲＤＢスキーマを自動作成できない。
【００１０】
また、非特許文献１の方法では、半構造データからＣＳＶ形式の構造データを取り出すことができるものの、各セルの値が属性名か属性値かを認識できない場合、正しい構造データ及びＲＤＢスキーマを自動作成できない。
【００１１】
半構造データには、スキーマがなく、例えば「実施施設」等の性質を表す属性名と、この属性の値に該当する「第一保育園」等の属性値とが記載されているものの、属性名と属性値とは明確に区別されていない場合がある。なお、属性名と属性値とが区別されていないとは、双方が同じ形式でデータ内に記述されており、この記述単独では区別を判定できない状況のことである。
このように、対象とする半構造データにおいて、属性名と属性値とが明確に区別されていない場合には、従来の方法では、正しい構造データ及びＲＤＢスキーマを作成することは難しかった。
【００１２】
本発明は、属性名と属性値とが明確に区別されていない半構造データから、構造データとスキーマとを自動作成できるデータ処理装置、データ処理方法及びデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係るデータ処理装置は、半構造データを汎用データに変換し、当該汎用データからテーブル構造の部分を抽出するデータ取得部と、前記テーブル構造の部分に含まれる単語それぞれが出現する頻度を算出し、当該頻度のヒストグラムから、最も度数の高い頻度である単語を、属性候補として抽出する属性候補抽出部と、前記テーブル構造の形式に基づく所定の行又は列の組み合わせのうち、前記属性候補の出現率が最も高い組み合わせに配置された単語を属性名と判別する属性推定部と、前記属性名に対して、前記汎用データのうち前記属性名を除いたデータを属性値として対応付け、構造データを作成する構造データ作成部と、前記属性名を定義したスキーマを作成するスキーマ作成部と、を備える。
【００１４】
前記属性推定部は、所定の共通語彙に存在する単語との類似度が閾値以上の前記属性候補のみを採用してもよい。
【００１５】
前記属性候補抽出部は、属性推定部により前記属性候補が採用されなかった場合、前記度数が１段階低い頻度である単語を、前記属性候補として抽出してもよい。
【００１６】
前記属性推定部は、前記属性候補として抽出した単語の頻度に基づいて、前記テーブル構造の形式を判定してもよい。
【００１７】
前記データ取得部は、前記半構造データを、ＸＭＬ形式を含む前記汎用データに変換し、当該ＸＭＬ形式における特定のタグにより前記テーブル構造の部分を抽出してもよい。
【００１８】
本発明に係るデータ処理方法は、半構造データを汎用データに変換し、当該汎用データからテーブル構造の部分を抽出するデータ取得ステップと、前記テーブル構造の部分に含まれる単語それぞれが出現する頻度を算出し、当該頻度のヒストグラムから、最も度数の高い頻度である単語を、属性候補として抽出する属性候補抽出ステップと、前記テーブル構造の形式に基づく所定の行又は列の組み合わせのうち、前記属性候補の出現率が最も高い組み合わせに配置された単語を属性名と判別する属性推定ステップと、前記属性名に対して、前記汎用データのうち前記属性名を除いたデータを属性値として対応付け、構造データを作成する構造データ作成ステップと、前記属性名を定義したスキーマを作成するスキーマ作成ステップと、をコンピュータが実行する。
【００１９】
本発明に係るデータ処理プログラムは、半構造データを汎用データに変換し、当該汎用データからテーブル構造の部分を抽出するデータ取得ステップと、前記テーブル構造の部分に含まれる単語それぞれが出現する頻度を算出し、当該頻度のヒストグラムから、最も度数の高い頻度である単語を、属性候補として抽出する属性候補抽出ステップと、前記テーブル構造の形式に基づく所定の行又は列の組み合わせのうち、前記属性候補の出現率が最も高い組み合わせに配置された単語を属性名と判別する属性推定ステップと、前記属性名に対して、前記汎用データのうち前記属性名を除いたデータを属性値として対応付け、構造データを作成する構造データ作成ステップと、前記属性名を定義したスキーマを作成するスキーマ作成ステップと、をコンピュータに実行させるためのものである。
【発明の効果】
【００２０】
本発明によれば、属性名と属性値とが明確に区別されていない半構造データから、構造データとスキーマとを自動作成できる。
【図面の簡単な説明】
【００２１】
【図１】実施形態に係るデータ処理装置の機能構成を示す図である。
【図２】実施形態に係る第１のパターンの半構造データを例示する図である。
【図３】実施形態に係る第２のパターンの半構造データを例示する図である。
【図４】実施形態に係る第１のパターンの半構造データに対する汎用データを例示する図である。
【図５】実施形態に係る第１のパターンの半構造データに対するヒストグラムを例示する図である。
【図６】実施形態に係る第１のパターンの半構造データに対して、属性候補と共通語彙との類似度を算出した結果を例示する図である。
【図７】実施形態に係る第１のパターンの半構造データにおける属性名及び属性値の判別方法を示す図である。
【図８】実施形態に係る第１のパターンの半構造データに対する構造データ及びスキーマの出力例を示す図である。
【図９】実施形態に係る第２のパターンの半構造データに対する汎用データを例示する図である。
【図１０】実施形態に係る第２のパターンの半構造データに対するヒストグラムを例示する図である。
【図１１】本実施形態に係る第２のパターンの半構造データに対して、属性候補と共通語彙との類似度を算出した結果を例示する図である。
【図１２】実施形態に係る第２のパターンの半構造データにおける属性名及び属性値の判別方法を示す図である。
【図１３】実施形態に係る第２のパターンの半構造データに対する構造データ及びスキーマの出力例を示す図である。
【図１４】実施形態に係る構造データ及びスキーマの作成処理を示す第１のフローチャートである。
【図１５】実施形態に係る構造データ及びスキーマの作成処理を示す第２のフローチャートである。
【図１６】実施形態に係る構造データ及びスキーマの作成処理を示す第３のフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態の一例について説明する。
図１は、本実施形態に係るデータ処理装置１の機能構成を示す図である。
データ処理装置１は、サーバ装置又はパーソナルコンピュータ等の情報処理装置であり、記憶部に格納された所定のソフトウェア（データ処理プログラム）を制御部が実行することにより、本実施形態の各種機能を実現する。また、データ処理装置１は、入出力デバイス及び通信インタフェースを備え、処理対象の半構造データを入力とし、本実施形態の各種機能により構造データ及びスキーマを作成して出力する。
【００２３】
例えば、自治体は、保育サービスを実施している施設の情報等を、一部に表形式のデータを含んだＰＤＦファイルで公表している。データ処理装置１は、このように表形式のデータが記載されているものの、属性名と属性値とが明確に区別されておらず直接ＲＤＢに取込むことができない半構造データから、構造データとスキーマとを自動作成し、ＲＤＢに取り込めるようにする。
【００２４】
データ処理装置１は、データ取得部１１と、属性候補抽出部１２と、属性推定部１３と、構造データ作成部１４と、スキーマ作成部１５と、メモリ部１６と、ルール管理部１７と、共通語彙記憶部１８と、設定部１９とを備える。
【００２５】
データ取得部１１は、インターネット上を含むデータリソースから、半構造データを取得すると、この半構造データを、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ／Ｒｅａｄｅｒ）ツールを用いて汎用データに変換する。汎用データは、例えばＸＭＬ形式のデータであり、さらにテキスト形式のデータにも変換されることが好ましい。
さらに、データ取得部１１は、ＸＭＬ形式における特定のタグ（例えば、＜ｔａｂｌｅ＞）を目印にして、変換した汎用データからテーブル構造の部分を抽出し、属性候補抽出部１２及びメモリ部１６に転送する。
【００２６】
属性候補抽出部１２は、データ取得部１１から転送されたデータ、すなわち汎用データにおけるテーブル構造の部分に含まれる各単語が出現する頻度を算出し、この頻度のヒストグラムから、最も度数の高い頻度である単語を、属性候補として抽出する。属性候補抽出部１２は、抽出した単語を属性推定部１３に転送する。
また、属性候補抽出部は、後述の属性推定部１３により属性候補が採用されなかった場合、度数が１段階低い頻度である単語を、新たな属性候補として抽出し、属性推定部１３に提供する。
【００２７】
属性推定部１３は、属性候補抽出部１２から転送される属性候補の単語と、共通語彙記憶部１８に記憶された共通語彙（例えば、独立行政法人情報処理推進機構（ＩＰＡ）が整備を進めている、表記の統一を図るための用語集）の単語との一致文字数等の類似度を求め、閾値以上の単語を属性名であると推定する。なお、共通語彙は、例えば、独立行政法人情報処理推進機構（ＩＰＡ）が整備を進めている、表記の統一を図るための用語集である。
【００２８】
また、属性推定部１３は、メモリ部に格納されているＸＭＬ形式のデータを参照し、テーブル構造に基づいて、後述の方法により属性名と推定する単語を更新する。
具体的には、属性推定部１３は、テーブル構造の形式に基づく所定の行又は列の組み合わせのうち、属性名と推定した単語の出現率が最も高い組み合わせに配置された単語を属性名と判定する。ここで、テーブル構造の形式は、例えば、属性候補として抽出した単語の出現した頻度に基づいて判定される。
属性推定部１３は、属性名と推定した単語を構造データ作成部１４に転送する。
【００２９】
構造データ作成部１４は、属性推定部１３から転送された属性名と推定した単語を先頭行に配し、メモリ部１６に格納されている汎用データのうち属性名を除いたデータを属性値と判断して属性名と対応付けて配列し、構造データを作成する。構造データ作成部１４は、構造データをスキーマ作成部１５に転送する。
【００３０】
スキーマ作成部１５は、構造データ作成部１４から転送された構造データの先頭行の単語を属性名として定義し、必要に応じて共通語彙を参照することでデータ形式を決定してＲＤＢスキーマを作成する。スキーマ作成部１５は、作成したＲＤＢスキーマ及び構造データを出力する。
【００３１】
メモリ部１６は、データ取得部１１が作成した汎用データを格納し、属性推定部１３及び構造データ作成部１４等へ提供する。
【００３２】
ルール管理部１７は、構造データ及びスキーマの自動生成処理のルールとして、例えば、データ取得部１１における半構造データの取得ＵＲＬ、取得間隔、変換ルール等と、属性推定部１３における共通語彙との類似度の閾値等とを管理する。
【００３３】
共通語彙記憶部１８は、ＲＤＢスキーマのテンプレートとなる共通語彙を記憶する。共通語彙は、標準化されたものに加え、インターネット上の辞典等を参照し類似語が設定されてもよい。
【００３４】
設定部１９は、管理者がルール及び共通語彙を設定するためのインタフェースを提供し、入力されたルールをルール管理部１７に、共通語彙を共通語彙記憶部１８に提供する。
【００３５】
ここで、データ処理装置１への入力となる半構造データのパターンを例示する。
半構造データは、記載されている属性名と属性値との対応関係によって、次のように場合分けできる。
【００３６】
図２は、本実施形態に係るデータ処理装置１への入力となる第１のパターンの半構造データを例示する図である。
この例では、１ページ目の文章に続く２ページ目の一覧表で、属性名と属性値とが１対多に対応している。例えば、１つの属性名「実施施設」に対して、複数の属性値（「Ａ保育所」、「Ｂ保育所」、・・・）が記載されている。
しかしながら、このデータは、属性名と属性値とが記載されているものの、どの単語が属性名で、どの単語が属性値であるかの定義がないため、明確に属性名と属性値とが区別されていない半構造データである。
【００３７】
図３は、本実施形態に係るデータ処理装置１への入力となる第２のパターンの半構造データを例示する図である。
この例では、情報のタイトルに続く複数の表において、属性名と属性値とが１対１に対応している。例えば、上から１つ目の表に出現する１つの属性名「名称」に対して、対応する１つの属性値「ＡＡ保育園」が記載されている。同様に、上から２番目の表に出現する属性名「名称」に対しては、属性値「ＢＢ保育園」が１対１に対応付けられている。
しかしながら、このデータは、属性名と属性値とが記載されているものの、どの単語が属性名で、どの単語が属性値であるかの定義がないため、明確に属性名と属性値とが区別されていない半構造データである。
【００３８】
また、入力される半構造データは、データファイルの中に含まれるテーブル構造の数と、属性名の共有の有無によって、次のように場合分けできる。
（ケース１）単一のテーブル構造が１つのファイル（半構造データ）に記載される。
（ケース２）複数のテーブル構造が１つのファイルに記載される。
（ケース２−１）属性名を共有する複数のテーブル構造が１つのファイルに記載される。
（ケース２−２）属性名を共有しない複数のテーブル構造が１つのファイルに記載される。
【００３９】
次に、データ処理装置１による構造データ及びスキーマの作成処理の手順を、テーブル構造のパターン毎に詳述する。
【００４０】
［実施例１］
実施例１は、属性名と属性値とが１対多である第１のパターンの半構造データ（図２）が入力された場合である。
まず、データ取得部１１により、半構造データからテーブル構造の部分が抽出される。
【００４１】
図４は、本実施形態に係る第１のパターンの半構造データに対する汎用データを例示する図である。
ここでは、属性名と属性値とが１対多のパターン（図２）で記述されているテキスト形式及びＸＭＬ形式のデータから、テーブル構造の部分を抽出したデータを示している。
この例では、ＸＭＬ形式のデータにおける＜ｔａｂｌｅ＞タグで特定される部分が、テーブル構造の部分として抽出されている。
なお、テキスト形式のデータは、ＸＭＬ形式のデータからタグを削除することにより作成されてもよい。
【００４２】
次に、属性候補抽出部１２により、テーブル構造内の単語が抽出され、単語毎の出現頻度に基づくヒストグラムが作成される。
【００４３】
図５は、本実施形態に係る第１のパターンの半構造データに対するヒストグラムを例示する図である。
汎用データにおけるテーブル構造の部分（図４）から、「実施施設」、「所在地・問合先」等の単語が抽出され、単語毎に、データ中に出現した頻度が記録される（Ａ）。
そして、１回、２回、・・・の頻度毎に、単語数及び度数（頻度×単語数）が集計され、ヒストグラム（Ｂ）が作成される。
【００４４】
属性名と属性値とが１対多のパターンでは、属性名が１回のみ出現し、属性値が複数回出現する場合が多いため、頻度が１の単語数及び度数が高くなる。したがって、この例において、属性候補抽出部１２は、度数が最高の４６である頻度１の単語を４６個、属性候補として抽出する。
【００４５】
続いて、属性推定部１３により、共通語彙記憶部１８が参照され、共通語彙との類似度の高い単語に属性候補が絞り込まれる。
【００４６】
図６は、本実施形態に係る第１のパターンの半構造データに対して、属性候補と共通語彙との類似度を算出した結果を例示する図である。
図中、横に並べた「実施施設」、「所在地・問合先」等の単語が属性候補抽出部１２により抽出された属性候補であり、縦に並べた「識別情報」、「団体コード」等の単語が共通語彙である。
この例では、属性推定部１３は、属性候補の文字列のうち、共通語彙のいずれかの文字と一致している文字数を算出し、類似度としている。なお、類似度の指標はこれには限られず、例えばレーベンシュタイン距離等の別の指標であってもよい。
【００４７】
属性推定部１３は、例えば、一致文字数が２以上の単語を属性名と推定する。この例では、複数の属性候補のうち、共通語彙のいずれかとの類似度が２以上となっている「実施施設」、「対象年齢」、「実施日及び保育時間」、「利用料金」が属性名と推定される。
【００４８】
そして、属性推定部１３により、属性名と属性値とが１対多というテーブル構造の特徴を用いて、属性名と属性値とが最終的に判別される。
【００４９】
図７は、本実施形態に係る第１のパターンの半構造データにおける属性名及び属性値の判別方法を示す図である。
第１のパターンの半構造データでは、テーブル構造内の各データＡｋｌのうち、ｋ＝１（１行目）又はｌ＝１（１列目）のいずれかに属性名が記述されている。
したがって、属性推定部１３は、１行目又は１列目のうち、属性名であると推定されたデータの割合を示す推定属性率の高い方を属性名と判別する。この例では１行目（推定属性率＝８０％）の単語群が属性名と最終的に判別され、推定された属性名に新たに「所在地・問合先」が追加されている。
【００５０】
図８は、本実施形態に係る第１のパターンの半構造データに対する構造データ及びスキーマの出力例を示す図である。
構造データ作成部１４は、属性名と判別された単語を先頭行に配し、汎用データから属性名を除いたデータを属性値として属性名に対応付けて配列する。なお、属性名と属性値との対応関係は、ＸＭＬデータに記載のタグに基づいて判定される。
【００５１】
また、スキーマ作成部１５は、構造データの先頭行に配置された属性名を定義するために、共通語彙で定義されたデータ形式を参照してＲＤＢスキーマを作成する。
具体的には、属性名のデータ形式には、類似度が高いと計算された共通語彙のデータ形式が採用されてよい。例えば、「対象年齢」は、図６に示したように、共通語彙の「サービス＿対象［利用可能年齢］」との類似度が高い。したがって、「サービス＿対象［利用可能年齢］」のデータ形式である「文字列」が採用される。また、「実施施設」のように複数の共通語彙との類似度が高い場合は、最も類似度が高い共通語彙のデータ形式が、さらに、最高の類似度が複数存在する場合は、これらのデータ形式のうち多数のものが採用されてよい。なお、共通語彙に類似の単語がない場合は、デフォルトとして特定のデータ形式（例えば、文字列）が採用されてよい。
【００５２】
［実施例２］
実施例２は、属性名と属性値とが１対１である第２のパターンの半構造データ（図３）が入力された場合である。
【００５３】
図９は、本実施形態に係る第２のパターンの半構造データに対する汎用データを例示する図である。
ここでは、属性名と属性値とが１対１のパターン（図３）で記述されているテキスト形式及びＸＭＬ形式のデータから、テーブル構造の部分を抽出したデータを示している。
【００５４】
図１０は、本実施形態に係る第２のパターンの半構造データに対するヒストグラムを例示する図である。
汎用データにおけるテーブル構造の部分（図９）から、「施設情報」、「団体コード」等の単語が抽出され、単語毎に、データ中に出現した頻度が記録される（Ａ）。
そして、１回、２回、・・・の頻度毎に、単語数及び度数（頻度×単語数）が集計され、ヒストグラム（Ｂ）が作成される。
【００５５】
属性名と属性値とが１対１のパターンでは、属性名がテーブル構造の個数と同じｎ回出現する場合が多いため、２以上の特定の頻度ｎの単語数及び度数が高くなる。したがって、この例において、属性候補抽出部１２は、度数が最高の５６である頻度４の単語を１４個、属性候補として抽出する。
【００５６】
図１１は、本実施形態に係る第２のパターンの半構造データに対して、属性候補と共通語彙との類似度を算出した結果を例示する図である。
この例では、実施例１と同様に、属性推定部１３は、属性候補の文字列のうち、共通語彙のいずれかの文字と一致している文字数を算出し、類似度としている。
属性推定部１３は、例えば、一致文字数が２以上の単語を属性名と推定する。この例では、複数の属性候補のうち、共通語彙のいずれかとの類似度が２以上となっている「団体コード」、「団体名」、「種別」、「設置者」、「名称」、「住所」、「電話番号」、「受入年齢」、「定員」、「一時預かり」、「給食」、「アレルギー食」が属性名と推定される。
【００５７】
図１２は、本実施形態に係る第２のパターンの半構造データにおける属性名及び属性値の判別方法を示す図である。
第２のパターンの半構造データでは、テーブル構造内の各データＡｋｌのうち、ｋが奇数の行、ｋが偶数の行、ｌが奇数の列、ｌが偶数の列のうち、いずれかに属性名が記述されている。
したがって、属性推定部１３は、奇数行、偶数行、奇数列、偶数列のうち、属性名であると推定されたデータの割合を示す推定属性率の最も高い行又は列の組み合わせを属性名と判別する。この例では奇数列（推定属性率＝８６％）の単語群が属性名と最終的に判別されている。
【００５８】
図１３は、本実施形態に係る第２のパターンの半構造データに対する構造データ及びスキーマの出力例を示す図である。
構造データ作成部１４は、実施例１と同様に、属性名と判別された単語を先頭行に配し、汎用データから属性名を除いたデータを属性値として属性名に対応付けて配列する。
また、スキーマ作成部１５は、実施例１と同様に、構造データの先頭行に配置された属性名を定義するために、共通語彙で定義されたデータ形式を参照してＲＤＢスキーマを作成する。
【００５９】
図１４〜１６は、本実施形態に係る構造データ及びスキーマの作成処理を示すフローチャートである。
【００６０】
ステップＳ１において、データ取得部１１は、インターネット上を含むデータリソースから半構造データを取得する。
【００６１】
ステップＳ２において、データ取得部１１は、取得したデータをテキスト形式及びＸＭＬ形式の汎用データに変換する。
【００６２】
ステップＳ３において、データ取得部１１は、変換したＸＭＬ形式のデータにテーブル構造が含まれているか否かを判定する。この判定がＹＥＳの場合、処理はステップＳ４に移り、判定がＮＯの場合、処理は終了する。
【００６３】
ステップＳ４において、データ取得部１１は、テキスト形式及びＸＭＬ形式の汎用データから、テーブル構造の部分のみを抽出する。このとき、テーブル構造が複数個（ｎ個）抽出される場合がある。この場合、データ取得部１１は、複数のテーブル構造をそれぞれ分離しておく。
【００６４】
ステップＳ５において、データ取得部１１は、ステップＳ２の変換結果、及びステップＳ４で抽出された個々のテーブル構造の部分を、メモリ部１６に保存すると共に、属性候補抽出部１２に転送する。
【００６５】
ステップＳ６において、属性候補抽出部１２は、テーブル構造のデータの中から、単語を抽出すると共に、各単語が出現する頻度を算出し、この頻度に基づくヒストグラムを作成する。
【００６６】
ステップＳ７において、属性候補抽出部１２は、作成したヒストグラムの中で最も度数の高い頻度である単語を抽出し、抽出した単語を属性候補として属性推定部１３に転送する。
【００６７】
ステップＳ８において、属性推定部１３は、抽出された単語と共通語彙記憶部１８の各単語との類似度を算出する。
【００６８】
ステップＳ９において、属性推定部１３は、算出した類似度が閾値以上の単語を属性名であると推定して抽出する。
【００６９】
ステップＳ１０において、データ処理装置１は、属性推定部１３により属性名が抽出されたか否かを判定する。この判定がＹＥＳの場合、処理はステップＳ１２に移り、判定がＮＯの場合、処理はステップＳ１１に移る。
【００７０】
ステップＳ１１において、データ処理装置１は、属性候補の中に属性名と推定される単語がないため、既に調査した単語を除外し、処理をステップＳ７に戻して次に度数の高い頻度である単語を属性候補として抽出する。
【００７１】
ステップＳ１２において、データ処理装置１は、ステップＳ４で抽出されたテーブル構造を順に読み出し構造データを作成するために、まず、インデックスｉを１に初期化する。
【００７２】
ステップＳ１３において、データ処理装置１は、インデックスｉがテーブル構造の個数ｎを超えているか否かを判定する。この判定がＹＥＳの場合、処理はステップＳ２０に移り、判定がＮＯの場合、処理はステップＳ１４に移る。
【００７３】
ステップＳ１４において、属性推定部１３は、ステップＳ７で判定された最も度数の高い頻度の値が１であるか否かを判定し、これにより、対象のテーブル構造のパターンを場合分けする。この判定がＹＥＳの場合、属性名と属性値とが１対多の第１パターンと推定され、処理はステップＳ１５に移る。一方、判定がＮＯの場合、属性名と属性値とが１対１の第２パターンと推定され、処理はステップＳ１６に移る。
【００７４】
ステップＳ１５において、属性推定部１３は、テーブル構造が第１パターンであるので、１行目と１列目とを比較し、推定属性率の高い方を属性名と判別する。属性推定部１３は、属性名と判別した単語を構造データ作成部１４に転送する。
【００７５】
ステップＳ１６において、属性推定部１３は、テーブル構造が第２パターンであるので、奇数行、偶数行、奇数列、偶数列を比較し、推定属性率が最も高いものを属性名と判別する。属性推定部１３は、属性名と判別した単語を構造データ作成部１４に転送する。
【００７６】
ステップＳ１７において、構造データ作成部１４は、属性名と判別された単語を先頭行に配置し、ＲＤＢに適合した所定の形式の構造データを作成する。
【００７７】
ステップＳ１８において、構造データ作成部１４は、メモリ部１６に格納されている汎用データから属性名を除いたデータを属性値と判別し、作成する構造データに配列する。構造データ作成部１４は、作成した構造データをスキーマ作成部１５に転送する。
【００７８】
ステップＳ１９において、データ処理装置１は、インデックスｉをカウントアップし、処理はステップＳ１３に戻る。
【００７９】
ステップＳ２０において、構造データ作成部１４は、ステップＳ４で抽出されたテーブル構造の個数ｎが１か否かを判定し、これにより、処理対象の半構造データを前述のケース１（単一のテーブル）とケース２（複数のテーブル）とに場合分けする。この判定がＹＥＳの場合、ケース１となり、処理はステップＳ２３に移る。一方、判定がＮＯの場合、ケース２となり、処理はステップＳ２１に移る。
【００８０】
ステップＳ２１において、構造データ作成部１４は、ｎ個のテーブル構造それぞれに対して作成された構造データ（デーブル）の属性名が共通であるか否かを判定する。この判定がＹＥＳの場合、半構造データは前述のケース２−１に相当し、処理はステップＳ２２に移る。一方、判定がＮＯの場合、半構造データは前述のケース２−２に相当し、構造データ作成部１４は、個々に独立した構造データがあると判断して、処理はステップＳ２３に移る。
【００８１】
ステップＳ２２において、構造データ作成部１４は、共通の属性名を先頭行にして、属性値を２行目以降に、ＸＭＬデータに記載のタグ（例えば、＜ＴＲ＞及び＜ＴＤ＞）を基にして順に配列し、ｎ個の構造データを統合する。
【００８２】
ステップＳ２３において、スキーマ作成部１５は、構造データの先頭行を属性名とし、共通語彙のデータ形式を参照してスキーマを作成する。
【００８３】
ステップＳ２４において、スキーマ作成部１５は、作成した構造データとスキーマとを出力する。
【００８４】
本実施形態によれば、データ処理装置１は、半構造データのテーブル構造の部分において、単語それぞれが出現する頻度を算出し、この頻度のヒストグラムから、最も度数の高い頻度である単語を属性候補として抽出する。そして、データ処理装置１は、テーブル構造の形式に基づく所定の行又は列の組み合わせのうち、属性候補の出現率が最も高い組み合わせに配置された単語を属性名と判別する。
これにより、データ処理装置１は、テーブル構造に含まれる単語が属性名であるか属性値であるかを自動で判別でき、属性名と属性値とが明確に区別されていない半構造データから、構造データとスキーマとを自動作成できる。
この結果、スキーマがなく、属性名と属性値とが記載されているものの明確に区別されていない半構造データを、自動的にＲＤＢに取り込み分析に利用できる。
【００８５】
データ処理装置１は、共通語彙記憶部１８に存在する標準的な単語との類似度が閾値以上の属性候補のみを採用することにより、属性名としてより確かな候補を抽出でき、属性名及び属性値の判別精度を向上できる。
このとき、データ処理装置１は、共通語彙と類似する属性候補を得られなかった場合、ヒストグラムの度数が１段階低い頻度である単語を新たに属性候補として抽出する。
これにより、データ処理装置１は、頻度に基づく属性名の推定に誤りがあった場合にも、正しく調整して属性名を判別できる。
【００８６】
データ処理装置１は、テーブル構造から属性候補として抽出した単語の出現した頻度に基づいて、属性名と属性値とが１対多なのか、１対１なのかといった、テーブル構造の形式を判定する。
したがって、データ処理装置１は、テーブル構造の特徴を、ヒストグラムから自動で抽出でき、処理可能なテーブル構造の形式を限定することなく、属性名と属性値とを区分できる。
【００８７】
データ処理装置１は、半構造データを、ＸＭＬ形式を含む汎用データに変換し、ＸＭＬ形式における特定のタグによりテーブル構造の部分を抽出する。
これにより、データ処理装置１は、ＸＭＬのタグを利用することで効率的にテーブル構造の部分を抽出し、さらに、属性名と属性値との対応付を容易に把握して構造データを作成できる。
【００８８】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【００８９】
前述の実施形態では、共通語彙記憶部１８に標準的な属性名を共通語彙として予め記憶することとしたが、共通語彙の参照形態はこれに限られない。例えば、外部のデータベースを参照する形態であってもよい。
また、共通語彙として、既存のスキーマが利用されてもよい。
【００９０】
データ処理装置１によるデータ処理方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置（コンピュータ）にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したＷｅｂサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【００９１】
１  データ処理装置
１１  データ取得部
１２  属性候補抽出部
１３  属性推定部
１４  構造データ作成部
１５  スキーマ作成部
１６  メモリ部
１７  ルール管理部
１８  共通語彙記憶部
１９  設定部
【図１】
2019168758.tif 000003
【図２】
2019168758.tif 000004
【図３】
2019168758.tif 000005
【図４】
2019168758.tif 000006
【図５】
2019168758.tif 000007
【図６】
2019168758.tif 000008
【図７】
2019168758.tif 000009
【図８】
2019168758.tif 000010
【図９】
2019168758.tif 000011
【図１０】
2019168758.tif 000012
【図１１】
2019168758.tif 000013
【図１２】
2019168758.tif 000014
【図１３】
2019168758.tif 000015
【図１４】
2019168758.tif 000016
【図１５】
2019168758.tif 000017
【図１６】
2019168758.tif 000018