(57)【要約】【課題】  本発明の課題は、表内に構造を推定するための特徴が含まれていない場合であっても、表の構造を精度よく自動的に推定し、明確化する技術を提供することにある。【解決手段】  入力装置、出力装置、記憶装置、および処理装置を備えた表構造の推定システムである。このシステムにおいて、記憶装置は、表と文章の両方に関係する特徴を定義する特徴定義データを格納する。入力装置は、分析対象データを受け付けるものである。処理装置は、分析対象データから、表を取得するとともに、表に関連する文章を関連テキストとして取得する、関連テキスト情報抽出部と、特徴定義データを用いて、取得した表と関連テキストから、特徴を抽出する特徴抽出部と、特徴抽出部の特徴抽出結果に基づいて、表の構造を推定する識別部と、を備える。【選択図】図１０
2018049356.tif 000002
【特許請求の範囲】
【請求項１】
入力装置、出力装置、記憶装置、および処理装置を備えた表構造の推定システムであって、
前記記憶装置は、
表と文章の両方に関係する特徴を定義する特徴定義データを格納し、
前記入力装置は、
分析対象データを受け付けるものであり、
前記処理装置は、
前記分析対象データから、表を取得するとともに、当該表に関連する文章を関連テキストとして取得する、関連テキスト情報抽出部と、
前記特徴定義データを用いて、取得した前記表と前記関連テキストから、前記特徴を抽出する特徴抽出部と、
前記特徴抽出部の特徴抽出結果に基づいて、前記表の構造を推定する識別部と、
を備える表構造の推定システム。
【請求項２】
前記関連テキスト情報抽出部は、
前記分析対象データに含まれる、表の項目および項目の値の少なくとも一つを含む文章を、前記関連テキストとして取得する、
請求項１記載の表構造の推定システム。
【請求項３】
前記関連テキスト情報抽出部は、
前記分析対象データに含まれる、表の項目および項目の値の少なくとも一つと関連する語を含む文章を、前記関連テキストとして取得する、
請求項１記載の表構造の推定システム。
【請求項４】
前記記憶装置は、
所定の語に関連する語を関連語として定義する辞書を格納し、
前記表の項目および項目の値の少なくとも一つと関連する語は、
前記辞書によって定義された関連語である、
請求項３記載の表構造の推定システム。
【請求項５】
前記特徴は、
文書中における表の項目または項目の値の使われ方を定義したものであり、
前記処理装置は、
前記関連テキストの構文を解析する関連テキスト情報解釈部を備え、
前記特徴抽出部は、
前記関連テキストにおける、前記表の項目または項目の値の使われ方を判定することにより、前記特徴を抽出する、
請求項１記載の表構造の推定システム。
【請求項６】
前記表の項目または項目の値の使われ方は、
（１）項目は主語であり、修飾されている
（２）項目は主語を修飾している
のうちの少なくとも一つを含む、
請求項５記載の表構造の推定システム。
【請求項７】
前記表の項目または項目の値の使われ方は、
（１）項目の値は述部に含まれる
（２）項目の値は主語を修飾している
のうちの少なくとも一つを含む、
請求項５記載の表構造の推定システム。
【請求項８】
前記記憶装置は、
前記特徴抽出部の特徴抽出結果と前記表の構造の関係を規定する識別モデルを記憶し、
前記識別部は、
前記識別モデルを用いて前記表の構造を推定する、
請求項１記載の表構造の推定システム。
【請求項９】
前記入力装置は、
訓練データを受け付けるものであり、
前記処理装置は、学習部を備え、該学習部は、
前記訓練データの表の構造に関する情報を、構造データとして前記記憶装置に格納し、
前記訓練データを前記分析対象データとして、前記関連テキスト情報抽出部、および、特徴抽出部に処理を実行させ、
前記特徴抽出部で抽出された特徴と、前記構造データに基づいて、前記識別モデルを生成し、前記記憶装置に格納する、
請求項８記載の表構造の推定システム。
【請求項１０】
表と文章の対応付け部を備え、
該表と文章の対応付け部は、
前記分析対象データから、表特定の配置関係にある文章を文章抽出し、当該抽出した文章を、前記関連テキスト情報抽出部に送る、
請求項１記載の表構造の推定システム。
【請求項１１】
前記表の構造は、表の項目の「次元」と「測度」を区別することにより、特定されるものである、
請求項１記載の表構造の推定システム。
【請求項１２】
入力装置、出力装置、記憶装置、および処理装置を用いた表構造の推定方法であって、
前記記憶装置に、
表と文章の両方に関係する特徴を定義する特徴定義データを準備し、
前記入力装置から、
分析対象データを入力し、
前記処理装置は、
前記分析対象データから、表を取得するとともに、当該表に関連する文章を関連テキストとして取得し、
前記特徴定義データを用いて、取得した前記表と前記関連テキストから、前記特徴を抽出し、
前記抽出された特徴に基づいて、前記表の項目の「次元」と「測度」の区別を推定する、
表構造の推定方法。
【請求項１３】
前記分析対象データに含まれる、表の項目および項目の値の少なくとも一つを含む文章を、前記関連テキストとして取得する、
請求項１２記載の表構造の推定方法。
【請求項１４】
前記表の項目の「次元」と「測度」の区別を推定する際に、抽出された特徴と前記表の構造の関係を規定する識別モデルを用いる、
請求項１３記載の表構造の推定方法。
【請求項１５】
前記入力装置から、
訓練データを入力し、
前記入力装置から、
前記訓練データが含む、表の項目の「次元」と「測度」とを区別する情報を含む構造データを入力し、
前記処理装置は、
前記訓練データから、表を取得するとともに、当該表に関連する文章を関連テキストとして取得し、
前記特徴定義データを用いて、取得した前記表と前記関連テキストから、前記特徴を抽出し、
前記抽出された特徴と、前記構造データに基づいて、前記識別モデルを生成し、前記記憶装置に格納する、
請求項１４記載の表構造の推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造が不明確な表に対する構造の推定システム、および方法に関するものである。
【背景技術】
【０００２】
公共の資産として、データの公開が進められている。いわゆるデータのオープン化である。例えば、国や省庁、公共団体により公開されている有用なデータとしては、都道府県別や産業別の売上高や購買情報、投資情報などの統計データがある。一方、公開されているデータを有効利用するニーズが高まっている。例えば、企業等では公開された統計データを検索し、組織内のデータと組み合わせて分析することで、有用な知見を得ることができる。現在公開されているデータは、Excel（商標）やcomma-separated values（CSV）などによる表形式で提供されていることが多い。以後、表形式で提供されたデータを単に「表」ということにする。
【０００３】
公開されている表は、データ作成者あるいは提供者が一方的に定めた構造により作成されている。また、表自体は構造に関する情報を含まない場合が多い。よって、データを利用しようとする第三者は、当該表の構造についての知識を持たないまま、種々の構造のデータを利用しなければならない。しかし、構造が不明確な表のデータを、人手を介さずに利用することは難しい。すなわち、公開されているデータを、コンピュータ等の情報処理装置により、機械的に検索等の処理を行うことは困難である。
【０００４】
ここで、表の「構造」とは、表が「何」を「どの観点」で表しているかをいう。構造は、「次元」と「測度」によって定義できる。上記の「何」が「測度」に対応し、「どの観点」が「次元」に対応する。表の構造が明確だと、表構造に基づいて、表のデータを機械的に検索できるようになる。また、表構造と自然言語表現を対応付けることで、比較的容易に自然言語を用いた表内のデータ検索が実現できると考えられる。一方、不明確だと、表構造と自然言語表現との対応付けが複数通り考えられ、自然言語を用いた検索は困難となる。表のデータ検索を実現するためには、構造を自動的に推定し明確化する技術が求められている。
【０００５】
構造が不明確な表の構造を推定するための技術として、非特許文献１に記載のものがある。この文献では、表の各列に対して、表内に現れる表記や他の列との位置関係を用いた機械学習手法により、何を表しているかを推定していることが記されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−４１２２５号公報
【非特許文献】
【０００７】
【非特許文献１】Goel, A., Knoblock, C.A., Lerman, K.: Exploiting Structure within Data for Accurate Labeling using Conditional Random Fields. In: Proceedings of the 14th international conference on Artificial Intelligence, ICAI (2012)
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献１では、表以外のものを用いることを想定していない。そのため、構造の推定には、表のみを用いることに留まる。例えば、表内に現れる表記や位置関係である。この場合、表内に構造を推定するための特徴が含まれていないと、推定が困難となる。
【０００９】
また、特許文献１には共起性の高いテキスト情報を画像に関連付ける技術について開示があるが、表を取り扱う技術ではなかった。
【００１０】
本発明の課題は、表内に構造を推定するための特徴が含まれていない場合であっても、表の構造を精度よく自動的に推定し、明確化する技術を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決する本発明の一側面は、入力装置、出力装置、記憶装置、および処理装置を備えた表構造の推定システムである。このシステムにおいて、記憶装置は、表と文章の両方に関係する特徴を定義する特徴定義データを格納する。入力装置は、分析対象データを受け付けるものである。処理装置は、分析対象データから、表を取得するとともに、表に関連する文章を関連テキストとして取得する、関連テキスト情報抽出部と、特徴定義データを用いて、取得した表と関連テキストから、特徴を抽出する特徴抽出部と、特徴抽出部の特徴抽出結果に基づいて、表の構造を推定する識別部と、を備える。
【００１２】
本発明の他の一側面は、入力装置、出力装置、記憶装置、および処理装置を用いた表構造の推定方法である。この方法では、記憶装置に、表と文章の両方に関係する特徴を定義する特徴定義データを準備する。入力装置から、分析対象データを入力する。処理装置は、分析対象データから、表を取得するとともに、表に関連する文章を関連テキストとして取得し、特徴定義データを用いて、取得した表と関連テキストから、特徴を抽出し、抽出された特徴に基づいて、表の項目の「次元」と「測度」の区別を推定する。
【発明の効果】
【００１３】
本発明によれば、表の構造の推定が可能になり、その結果、推定の精度が向上する。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１４】
【図１】処理対象とする表の例を示す概念図
【図２】表の構造の概念図
【図３】実施例の表構造推定システムが行う処理の概念図
【図４】実施例のシステムのハードウェア構成ブロック図
【図５】前処理部の構成ブロック図
【図６】表と文章の対応付けを説明する概念図
【図７】特徴定義データの例を示す表図
【図８】訓練データの処理の流れを示すフロー図
【図９】訓練データの識別結果と識別モデルを示す概念図
【図１０】特徴抽出処理の流れを示すフロー図
【図１１】分析対象データの処理の流れを示すフロー図
【図１２】識別モデルの他の例を示す表図
【図１３】識別モデルを用いた識別処理の例を示す表図
【図１４】自然言語による検索処理の概念図
【発明を実施するための形態】
【００１５】
実施の形態について、図面を用いて詳細に説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１６】
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【００１７】
本明細書等における「第１」、「第２」、「第３」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【００１８】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【００１９】
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
【００２０】
上記で説明した課題を解決するために、代表的な本発明の手法及びシステムの実施例では、表と表の関連文書を組み合わせた特徴を用いた手法により、構造を推定する。実施例には、表構造の推定手法、および表構造の推定システムが含まれる。以下で説明する実施例では、表に加えて、表に関連する文書も用い、表の構造を推定する。
【実施例１】
【００２１】
＜１．表データの説明＞
実施例の具体的な説明に先立ち、本実施例が処理の対象とする表の例を説明する。
【００２２】
図１は、実施例の表構造推定システムが処理対象とする表の例である。図１は、分析対象データである報告書１００の例を示している。報告書１００には、表１０１、表のタイトル１０２、説明文１０３が含まれている。表１０１は、年度に対応して各年齢層の人口を示している。タイトル１０２では、表が年度別年齢別の人口であることを示している。説明文１０３には、表１０１に関連した記述が記載されている。以下、タイトル１０２や説明文１０３等、表１０１に付随したテキストを含む情報を「文章」あるいは「テキスト情報」ということにする。本明細書で「文章」あるいは「テキスト情報」といった場合には、複数の文でもよいし、単一の文でもよいものとする。
【００２３】
ここで、表やタイトル、説明文のデータ形式は、テキストとして認識でき、表との位置関係、対応関係あるいは配置関係を識別できるものであれば、特に問わない。例えば、Excel（商標）やCSV等のテキストを含むデータである。あるいは、ビットマップ形式の画像データや紙データであってもよい。画像データの場合は、文字部分は光学文字認識（Optical character recognition（OCR)）等で処理してテキストデータを得ればよい。
【００２４】
図２に、表１０１の構造の概念を示す。表１０１の一番上のセル（枠）２０１〜２０３は「項目」である。「項目」には、表の構造である「次元」や「測度」が格納されている。「測度」は観測対象のことであり、「次元」は観測の条件である。この例ではセル２０１の「年度」やセル２０２の「年齢」は「次元」である。セル２０３の「人口」は「測度」である。表１０１の「項目」以外のセルには「項目の値」が格納されている。セル２０１の項目「年度」に対しては、セル２０４、２０５に「次元の値（年度の値）」が格納される。セル２０２の項目「年齢」に対しては、セル２０６、２０７に「次元の値（年齢の値）」が格納される。セル２０３の項目「人口」に対しては、セル２０８、２０９に観測値である「測度の値（人口の値）」が格納される。なお、項目のセルは、一般に、表の一番上のセルの行か、一番左のセルの列であるため、デフォルトではこの部分を項目と推定すればよい。
【００２５】
本実施例の表構造推定システムの目的は、表から上記の構造を自動的に推定することである。例えば、「年度」「年齢」「人口」という項目からは、可能性として「年度別、年齢別の人口」と、「年度別の年齢（平均）と人口」が考えられる。前者の場合では「年度」と「年齢」が「次元」であり、「人口」が「測度」である。後者の場合では、「年度」が「次元」であり、「年齢」と「人口」が「測度」である。
【００２６】
本実施例では、表１０１の構造が不明の場合であっても、表１０１とタイトル１０２や説明文１０３から、例えば図２の「年度」と「年齢」が「次元」であり、「人口」が「測度」であることを推定する。また項目が省略されている場合であっても、各列に対応する項目が「次元」であるか「測度」であるかを推定する。
【００２７】
＜２．本実施例による処理の概要＞
図３に本実施例の表構造推定システムが行う処理の概念を示す。本システムの典型的な一例では、表のみでなく、表のタイトルや説明文（テキスト情報）における項目やその値の表れ方を特徴として使用した、教師あり機械学習手法を採用する。これにより表の構造の推定精度が向上する。
【００２８】
本実施例の表構造推定システムでは、訓練データ３０１を用いる。訓練データ３０１には表１０１Ｔ、表のタイトル１０２Ｔ、説明文１０３Ｔが含まれている。また、訓練データ３０１に対して、構造データ３０２が付加されている。構造データ３０２は、対象データの内容、次元である項目、次元の値、測度となる項目などが含まれている。構造データは、オペレータが訓練データ３０１を目視して分析し、入力し、データとして保存することができる。
【００２９】
本実施例では、複数の訓練データ３０１と、これに対応する複数の構造データ３０２を用いることにする。一般に、訓練データ３０１の数が多いほど、推定精度が向上する。
【００３０】
以上のように準備された訓練データ３０１と構造データ３０２を用い、特徴を抽出し、系列ラベリングの手法により識別モデル生成を行う。識別モデルは、特徴抽出結果と表の構造の関係を規定する。識別モデル３０３には例えば、次元の構造に関する次元モデルと、測度の構造に関する測度モデルを含んでいる。以上のように識別モデル３０３を準備した上で、分析対象データ３０４を入力し、識別モデル３０３に基づいて分析を行い、構造推定データ３０５を得ることができる。以下具体的に実施例の構成を説明する。
【００３１】
＜３．実施例のシステム全体構成＞
図４は、本発明の実施例の一例である、表構造推定システムの構成を示すブロック図である。表構造推定システム１は、具体的な例としては、コンピュータ等の情報処理装置により構成される。通常の情報処理装置と同様に、表構造推定システム１は、中央処理装置（ＣＰＵ）１１、キーボードや画像モニタなどの公知の入出力装置１３、磁気ディスク装置や半導体記憶素装置からなるメモリ１５を備える。また、外部とデータをやり取りするためのインタフェースとして、データ通信部１２を備えていてもよい。データ通信部１２は、例えば外部のネットワーク１６と接続される。なお、入出力装置という場合、入出力両機能を備える装置のみを意味するのではなく、入力機能のみを備える装置、出力機能のみを備える装置、さらには入出力の両方を備える装置のいずれをも意味するものとする。
【００３２】
本実施例では計算や制御等の機能は、メモリ１５に格納されたプログラムがＣＰＵ１１によって実行されることで、定められた処理を他のハードウェアと協働して実現される。ＣＰＵ１１が実行するプログラム、その機能、あるいはその機能を実現する手段を、「機能」、「手段」、「部」、「ユニット」、「モジュール」等と呼ぶ場合がある。図４では、概念的にＣＰＵ１１が、ソフトウェアに基づいて実行する機能を、制御部１４として示している。制御部１１は、前処理部１４１、学習部１４２、識別部１４３、表示部１４４を備える。これらの機能を実現するためのプログラムはメモリ１５に格納される。また、メモリ１５にはデータとして、訓練データ３０１、構造データ３０２、識別モデル３０３、分析対象データ３０４、識別結果である構造推定データ３０５、特徴定義データ３０６、辞書３０７等が格納される。
【００３３】
メモリ１５に格納する、訓練データ３０１、構造データ３０２、分析対象データ３０４、特徴定義データ３０６、辞書３０７は、入出力装置１３やデータ通信部１２を介して入力することができる。また、識別モデル３０３や構造推定データ３０５は、入出力装置１３やデータ通信部１２を介して出力することができる。
【００３４】
以上の構成は、図４に示したように単体のコンピュータで構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。また、本実施例中、ソフトウェアで構成した機能と同等の機能は、FPGA（Field Programmable Gate Array）、ASIC（Application Specific Integrated Circuit）などのハードウェアでも実現できる。そのような態様も本願発明の範囲に含まれる。
【００３５】
＜４．実施例のシステムのデータ構造の説明＞
メモリ１５に格納されるデータについて説明する。
【００３６】
訓練データ３０１は、図３で概念を説明したように、表１０１Ｔとこれに付随するテキスト情報を含むデータである。テキスト情報は例えば、表のタイトル１０２Ｔ、説明文１０３Ｔなどである。本実施例では、訓練データ３０１はテキストベースのデータとし、また、表１０１Ｔとこれに付随するテキスト情報の位置関係を示す情報を含むものとする。位置関係を示す情報としては、例えば表１０１Ｔとこれに付随するテキスト情報の座標情報である。あるいは、表１０１Ｔとこれに付随するテキスト情報が、同一のファイルに含まれることを示す情報である。あるいは、表１０１Ｔとこれに付随するテキスト情報が、特定の関係にあること、例えばエクセル（商標）ファイルの同一のページに含まれることを示す情報である。
【００３７】
構造データ３０２は、図３で概念を説明したように、訓練データの表１０１Ｔの構造を示すデータである。構造データは３０２は、例えば表１０１Ｔの「項目名」に対して、「次元」あるいは「測度」の別を規定する。また、「次元」や「測度」の値を規定しても良い。また、表の名称や内容についての情報を含んでも良い。構造データは３０２は、オペレータが訓練データ３０１を目視、分析することで生成する。
【００３８】
識別モデル３０３は、訓練データ３０１と構造データ３０２を用いて生成されたモデルである。識別モデルの生成および使用については、後述する。
【００３９】
分析対象データ３０４は、図３に示したような、構造を推定するべき表構造が未知の表データである。データ構成としては、訓練データ３０１と同様でよく、例としては図１の報告書１００のような構成である。
【００４０】
構造推定データ３０５は、分析対象データ３０４を識別モデル３０３に基づいて分析した結果である、分析対象データ３０４の表構造を示すデータである。データ構成としては、構造データ３０２と同様でよい。
【００４１】
特徴定義データ３０６は、表の構造を推定するために用いる特徴を定義したデータである。例えば、オペレータが経験に基づいて生成し、入出力装置１３から入力しても良い。あるいは、自動的に生成しても良い。
【００４２】
辞書３０７は、後に説明する関連テキスト情報抽出部１４１２の処理に用いる。
【００４３】
＜４．実施例のシステムの制御部の説明＞
制御部１４について説明する。
【００４４】
＜４−１.前処理部＞
図５は、前処理部１４１の機能ブロック図である。前処理部１４１は、表と文章の対応付け部１４１１、関連テキスト情報抽出部１４１２、関連テキスト情報解釈部１４１３、特徴定義部１４１４、特徴抽出部１４１５を含む。
【００４５】
表と文章の対応付け部１４１１は、表に対応する文章（テキスト情報）を抽出する。抽出は、例えば表と文章が特定の配置関係にあることを条件に行うことができる。例えば、表と文章が接して配置されていたり、同じ頁に存在する場合に、文章を抽出をすることができる。あるいは、タイトル等のように、表の内部に文章が埋め込まれている場合に、当該文章を抽出することができる。表と文章の対応付け部１４１１は、訓練データ３０１および分析対象データ３０４に対して、上記の処理を行う。表と文章の対応付けによって、表に付随するテキスト情報の中から、特に表に対応する部分を選択して抽出することができる。ただし、この処理は省略し、表に付随するテキスト情報を全て以降の処理で用いることもできる。
【００４６】
関連テキスト情報抽出部１４１２は、表と文章の対応付け部１４１１で抽出された、あるいは表に付随する全てのテキスト情報において、表内の項目または項目の値が現れる文章を関連テキスト情報として抽出する。このとき、項目の同義語等も項目と同様に扱う。このためには、辞書（シソーラス）３０７を使用して、同義語や類語を抽出することができる。同様に、項目の省略形や、対応する外国語等も項目と同様に扱うことができる。また、項目の値も、単位が付加されているものと付加されていないものを同様に扱うことができる。また、同じ物理量や性質を示す単位、例えばキログラム（ｋｇ）とトン（ｔ）、円と米ドルを同様に扱うことができる。また乗数の有無なども同等に扱うことができる。これら関連する語については、辞書３０７に登録しておけばよい。
【００４７】
図６に関連テキスト情報抽出の例を示す。タイトル１０２には、項目「年度」「年齢」「人口」が含まれる文章６０１があるため抽出される。説明文１０３からは、「人口」が含まれる文章６０２と、項目「人口」と項目の値である「２０１０年」「６５歳」「６１０人」が含まれる文章６０３を抽出する。抽出される文章は、一つでも複数でも良い。また抽出される文章は、一つの文からなるものでもよいし、複数の文からなるものでも良い。
【００４８】
関連テキスト情報解釈部１４１３は、テキスト情報の文章の語順、主語、述語、目的語、修飾関係などを特定する。これはテキストマイニング等で用いられる、自然言語の構文解析を行う、公知の文書解析ソフトウェアで構成することができる。
【００４９】
特徴定義部１４１４は、表や文章の特徴を定義して特徴定義データ３０６を生成する。
【００５０】
図７に特徴定義データ３０６の例を示す。図７の例は、オペレータが経験則に基づいて作成した定義データである。特徴定義データ３０６は、特徴を一意に示すＩＤ７０１、特徴の対象７０２、特徴の内容７０３等の情報を含む。図７に示すように、特徴には、表を対象とする特徴、例えば「特徴１」や「特徴２」、表と文章を対象とする特徴、例えば「特徴３」や「特徴４」がある。
【００５１】
例えば、表を対象とする「特徴１」は、項目の表内の位置に関する特徴であり、「項目が表の右側に現れる」ことを内容とする。例えば、表と文書を対象とする「特徴３」は、項目と文章の構造に関する特徴であり、「項目が主語であり、修飾されている」ことを内容とする。また、例えば、表と文章を対象とする「特徴４」は、項目の値と文章の構造に関する特徴であり、「項目の値が述部に含まれる」ことを内容とする。
【００５２】
特徴定義部１４１４は、以上の様な特徴を定義して、メモリ１５に特徴定義データ３０６として格納する。特徴は例えば、オペレータが経験則に基づいて作成し、入出力装置１３あるいはデータ通信部１２から入力することができる。あるいは、特徴を網羅的に自動生成し、後に説明する学習部の処理において推定に寄与しない特徴を削除することで、自動的に生成することも可能である。
【００５３】
特徴抽出部１４１５は、関連テキスト情報解釈部１４１３の解釈結果も用いて、特徴定義部１４１４で定義した特徴が、訓練データ３０１または分析対象データ３０４の各項目に当てはまるかどうかを判定する。特徴は表の項目ごとに判定する。
【００５４】
＜４−２.学習部＞
学習部１４２は、訓練データ３０１と構造データ３０２を用いて、識別モデル３０３を生成する処理を行う。
【００５５】
図８は学習部１４２が行う処理の処理フローを示す。
【００５６】
処理Ｓ８０１では、例えば図３に示すような訓練データ３０１に対して、関連テキスト情報抽出部１４１２を用いて、表１０１Ｔとタイトル１０２Ｔ，説明文１０３Ｔの関連付けを行う。関連付けの概念は図６で説明した。このとき、先に述べたように、表と文章の対応付け部１４１１を用いて、訓練データ３０１のテキスト情報から必要な部分のみを選択抽出して処理しても良い。
【００５７】
処理Ｓ８０２では、各訓練データへ正解を付与する。すなわち、例えば図３の表１０１Ｔの各項目について、それぞれ「次元」や「測度」を特定する構造データ３０２を入力する。入力は、先に述べたように、オペレータが表１０１Ｔを目視して判断し、入出力装置１３から入力すればよい。構造データ３０２はメモリ１５に格納される。なお、処理Ｓ８０２は、処理Ｓ８０１の前でもよいし、処理Ｓ８０３の後でも良い。
【００５８】
処理Ｓ８０３では、特徴定義データ３０６に基づいて、関連テキスト情報解釈部１４１３および特徴抽出部１４１５を用い、訓練データ３０１の特徴を抽出する。
【００５９】
図９は、訓練データ３０１の特徴抽出を説明する概念図である。訓練データ３０１に含まれる表の各項目について、図７の特徴定義データ３０６の特徴の内容７０３が当てはまるかどうかを判定し、特徴を抽出する。図９の例では、特徴抽出結果９０１において、訓練データ３０１の各項目に便宜上とおし番号９１１を付加し、当該項目について、特徴の抽出有無を特徴ＩＤ７０１ごとに「True」「False」で判定する。特徴が抽出された場合を「True」、特徴が抽出されない場合を「False」とする。このとき、訓練データ３０１の各項目については、正解が構造データ３０２として既知であるため、特徴抽出結果９０１を統計的に処理することにより、識別モデル３０３を得ることができる。
【００６０】
図９に示した例では、識別モデル３０３には、モデル定義テーブル９０２として、特徴の出現パターンに基づき、モデルＡ、Ｂ、Ｃ・・・を定義している。各モデルに該当する複数の項目があった場合において、項目が「次元」か「測度」のいずれかであったかは、構造データ３０２により判定できるため、統計的に当該モデルにおける「次元」「測度」の出現頻度９０３が決定できる。作成した識別モデル３０３はメモリ１５に格納する。
【００６１】
なお、図９の識別モデル３０３では、出現頻度９０３をそのまま判定の判断結果として表構造の推定に用いているが、出願頻度の高いほうを選択し、「次元」か「測度」かの二者択一の結果としてもよい。
【００６２】
先に述べたように特徴を網羅的に自動生成している場合等では、出現頻度９０３に対して相関が見られない特徴については、推定に寄与しない特徴と判定して削除することで、特徴数を減少し、処理量を低減することができる。
【００６３】
＜４−３．特徴抽出処理＞
図１０は、訓練データの特徴抽出処理Ｓ８０３の詳細を示す図である。図１０のフローは、一つの項目についての処理を示しており、訓練データ３０１の表の全ての項目について、同様の処理を行う。
【００６４】
図１０では、図７の特徴定義データ３０６を持いて特徴抽出を行い、図９の特徴抽出結果９０１を得る例を示している。
【００６５】
処理Ｓ８０３１では、変数Ｎに１を代入する。
【００６６】
処理Ｓ８０３２では、特徴定義データ３０６からＮ番目の特徴の内容を取得する。最初の特徴は（特徴１）である。
【００６７】
処理Ｓ８０３３では、特徴の内容により分岐処理を行う。特徴が表と文章の両方に関するものである場合は、処理Ｓ８０３６に進む。特徴が表と文章の両方に関するものでない場合は、処理Ｓ８０３４に進む。図７の特徴定義データ３０６の例では、表と文章の両方に関する特徴は、（特徴３）（特徴４）（特徴７）（特徴８）である。表と文章の両方に関するものでない特徴、すなわち表のみに関する特徴は、（特徴１）（特徴２）（特徴５）（特徴６）である。
【００６８】
表のみに関する特徴判定処理である処理Ｓ８０３４では、表の項目の位置を判定する。例えば図７の（特徴１）（特徴５）については、処理Ｓ８０３４で特徴を抽出することができる。
【００６９】
処理Ｓ８０３５では、表の項目または項目の値を判定する。例えば図７の（特徴２）（特徴６）については、処理Ｓ８０３５で特徴を抽出することができる。
【００７０】
表と文章の両方に関する特徴判定処理である処理Ｓ８０３６では、処理Ｓ８０１で抽出した関連テキスト情報を取得する。
【００７１】
処理Ｓ８０３７では、関連テキスト情報解釈部１４１３により、関連テキスト情報の文章の構文解析を行う。
【００７２】
処理Ｓ８０３８では、文章中での項目または項目の値の使われ方を判定する。すなわち、図７の例では、「項目が主語であり、修飾されているかどうか」を判定することで（特徴３）を抽出する。また、「項目の値が述部に含まれるかどうか」を判定することで（特徴４）を抽出する。
【００７３】
以上の処理の結果、処理Ｓ８０３９で特徴を抽出し、当該特徴について「True」「False」の結果を得ることができる。
【００７４】
処理Ｓ８０４０ではＮの値をインクリメントし、処理Ｓ８０４１では、最後の特徴まで処理が終わっている場合には処理を終了し、最後の特徴まで処理が終わっていない場合には、処理Ｓ８０３２に戻って、次の特徴の抽出処理を行う。以上により、図９に例を示す特徴抽出結果９０１を得ることができる。
【００７５】
以上の説明では、訓練データ３０１の処理Ｓ８０３について説明したが、分析対象データ３０４についての特徴抽出処理Ｓ１１０２も同様に行うことができる。
【００７６】
＜４−４.識別部＞
識別部１４３は、分析対象データ３０４と識別モデル３０３を用いて、構造推定データ３０５を生成する処理を行う。
【００７７】
図１１は識別部１４３が行う処理の処理フローを示す。
【００７８】
処理Ｓ１１０１では、分析対象データ３０４に対して、関連テキスト情報抽出部１４１２を用いて、表１０１とタイトル１０２，説明文１０３の関連付けを行う。具体的な処理は、処理Ｓ８０１と同様でよい。
【００７９】
処理Ｓ１１０２では、特徴定義データ３０６に基づいて、関連テキスト情報解釈部１４１３および特徴抽出部１４１５を用い、分析対象データ３０４の特徴を抽出する。具体的な処理は、処理Ｓ８０３と同様でよい。具体的には、図１０で説明したものと同様でよい。分析対象データ３０４の特徴抽出結果も、図９の訓練データ３０１の特徴抽出結果９０１と同様の構造である。
【００８０】
処理Ｓ１１０３では、識別モデル３０３に、分析対象データ３０４の特徴抽出結果を当てはめ、分析対象データ３０４が含む表の項目を識別する。例えば、二者択一方式であれば、図９のモデルＡに該当する特徴が抽出された項目は、「次元」と判定する。
【００８１】
処理Ｓ１１０４では、識別部１４３は識別結果を表示部１４４に送付し、表示部１４４の制御により、入出力装置１３が備える例えば画像表示装置に結果を表示する。また、同時にあるいはこれに代えて、データ通信部１２から結果を送信してもよい。
【００８２】
以上説明した実施例では、表のみではなく、表のタイトルや説明文における、表の項目やその値の現れ方を特徴として使用している。本実施例によれば、表と表に関連する文書の両方を用いることで、表内に構造を推定するための特徴が含まれていない場合であっても、表の関連文書に構造を推定する特徴が含まれている場合は、構造の推定が可能になる。その結果、推定の精度が向上する。また、構造を推定するための識別モデルを自動生成することができるので、人手を介する部分を削減することができる。
【実施例２】
【００８３】
実施例１で使用した識別モデル３０３は、定義した特徴の全てを用いている。しかし、特徴を全て用いずに、結果との相関が高い特徴のみを用いて識別モデルを生成することもできる。所定のアルゴリズムを与えることにより、所望の識別モデルを生成することができる。
【００８４】
例えば、図９において、訓練データ３０１の特徴抽出結果９０１を集計した場合において、「所定の条件が成立する場合に、所定の識別モデルを生成する」、というアルゴリズムにより、モデル生成を行うことができる。
【００８５】
例えば、「ある特徴Ｘが「True」であれば、他の特徴がどのような結果であっても、当該項目は９０％以上が「次元」である」という条件が成立する場合に、「特徴Ｘが「True」であれば、当該項目は「次元」である」という識別モデルを生成することができる。
【００８６】
上記は単純な例であるが、条件や識別モデルは種々のものが採用可能であり、さらに複雑な条件により、複雑な識別モデルを生成するものであってもよい。
【実施例３】
【００８７】
実施例１では、学習部１４２において、訓練データ３０１と構造データ３０２を用いて識別モデル３０３を自動生成した。
【００８８】
しかし、単純な識別モデル３０３であれば、データの使用者が経験的に人手により作成することもできる。作成した識別モデル３０３は、入出力装置１３やデータ通信部１２から入力し、メモリ１５に格納する。この場合のシステム構成は基本的に実施例１と同様であるが、図４の学習部１４２および学習部１４２が使用するデータは不要となる。
【００８９】
図１２に実施例３の識別モデル３０３−２の例を示す。図１２の識別モデル３０３−２は、オペレータが経験側に基づいて作成し、分類して表示したものである。図１２では、表を対象とする特徴（特徴１）（特徴２）（特徴５）（特徴６）、表と文書を対象とする特徴（特徴３）（特徴４）（特徴７）（特徴８）が定義されている。また、「測度」を判定する特徴（特徴１）（特徴２）（特徴３）（特徴４）と、「次元」を判定する特徴（特徴５）（特徴６）（特徴７）（特徴８）がある。
【００９０】
例えば、表を対象とする（特徴１）は、項目の表内の位置に関する特徴であり、「項目が表の右側に現れる」ことを内容とする。「測度」を示す項目は、表の右側に現れやすいので、（特徴１）が抽出された項目は「測度」と判定する。
【００９１】
例えば、表と文書を対象とする（特徴３）は、表の項目と文章の構造に関する特徴であり、「文章中において、項目が主語であり、修飾されている」ことを内容とする。このような特徴が抽出された項目は、「測度」と判定する。
【００９２】
例えば、表と文章を対象とする（特徴４）は、表の項目の値と文章の構造に関する特徴であり、「項目の値が述部に含まれる」ことを内容とする。このような特徴が抽出された項目は、「測度」と判定する。
【００９３】
識別部１４３が、図１２のような識別モデル２０２−２を用いて識別する場合の処理フローは、図１１で説明したものと同様である。
【００９４】
図１３に、実施例３における、分析対象データ３０４の識別処理Ｓ１００３の例を示す。この例では、分析対象データ３０４が含む表の各項目に便宜上とおし番号１３１１を付している。各項目夫々に対して、図１２で示した８つの特徴が抽出されるかどうかをカウントする。例えば、＃００１番の項目では、測度を示す特徴のカウントが３で、次元を示す特徴のカウントが１であり、この例では多数決により判定を行うため、結果は「測度」となる。もちろん、単純な多数決ではなく、各特徴に異なる重みをつける等の変更は可能である。また、説明した８つの特徴は例であり、種類を増やすことも減らすことも可能である。
【実施例４】
【００９５】
図１４に実施例１〜３によって得られた、表の構造情報を利用した自然言語による検索システムの応用例を示す。
【００９６】
実施例１〜３によって、分析対象データ３０４の表１０１には、その構造に関する構造データ３０２が付加されている。この構造に従って、検索可能な自然言語表現１４０１を準備する。自然言語表現１４０１は所定の生成規則に基づいて自動生成しても良いし、オペレータが作成しても良い。例えば、次元が「都道府県」であり、測度が「年齢」と「人口」の場合には、これを示す自然言語表現としては「都道府県別の年齢と人口」となる。従って、このような自然言語表現をユーザ１４０２に提示すること、あるいはユーザ１４０２に入力させることにより、所望の表を自然言語で検索することを支援することができる。
【００９７】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【００９８】
表：１０１
表のタイトル：１０２
説明文：１０３
【図１】
2018049356.tif 000003
【図２】
2018049356.tif 000004
【図３】
2018049356.tif 000005
【図４】
2018049356.tif 000006
【図５】
2018049356.tif 000007
【図６】
2018049356.tif 000008
【図７】
2018049356.tif 000009
【図８】
2018049356.tif 000010
【図９】
2018049356.tif 000011
【図１０】
2018049356.tif 000012
【図１１】
2018049356.tif 000013
【図１２】
2018049356.tif 000014
【図１３】
2018049356.tif 000015
【図１４】
2018049356.tif 000016