(57)【特許請求の範囲】
【請求項１】
各表データの各属性における値の分布の特徴を抽出する抽出部と、
表データの各属性のカテゴリを判定するカテゴリ判定部と、
前記抽出部により抽出された特徴に基づいて、第１の表データの各属性と、前記第１の表データに基づいて検索された第２の表データの各属性とが類似するか否かを判定する類似度判定部と、
を備え、
前記類似度判定部は、前記カテゴリ判定部により判定されたカテゴリが一致する前記第１の表データの各属性、及び前記第２の表データの各属性について、類似するか否かを判定する、
ることを特徴とする表データ検索装置。
【請求項２】
前記類似度判定部により類似していると判定された場合、検索された表データの各属性の表示態様を変化させる表示制御部を備える、
ことを特徴とする請求項１記載の表データ検索装置。
【請求項３】
前記抽出部は、表データの各属性における値の分布形状、平均値、中央値、最大値、最小値、出現種類数、最大出現回数、最少出現回数、及び平均出現回数のうちの少なくとも１つを抽出する、
ことを特徴とする請求項１または２記載の表データ検索装置。
【請求項４】
前記抽出部は、前記カテゴリ判定部によりカテゴリが判定できない属性について、カテゴリが判定できない場合の所定のルールに応じて、値の分布の特徴を抽出する、
ことを特徴とする請求項１から３のいずれか一項に記載の表データ検索装置。
【請求項５】
コンピュータが、
各表データの各属性における値の分布の特徴を抽出する処理と、
表データの各属性のカテゴリを判定する処理と、
前記抽出する処理により抽出された特徴に基づいて、第１の表データの各属性と、前記第１の表データに基づいて検索された第２の表データの各属性とが類似するか否かを、前記判定する処理より判定されたカテゴリが一致する前記第１の表データの各属性、及び前記第２の表データの各属性について判定する処理と、
を実行することを特徴とする表データ検索方法。
【請求項６】
コンピュータに、
各表データの各属性における値の分布の特徴を抽出する処理と、
表データの各属性のカテゴリを判定する処理と、
前記抽出する処理により抽出された特徴に基づいて、第１の表データの各属性と、前記第１の表データに基づいて検索された第２の表データの各属性とが類似するか否かを、前記判定する処理より判定されたカテゴリが一致する前記第１の表データの各属性、及び前記第２の表データの各属性について判定する処理と、
を実行させることを特徴とする表データ検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表データ検索装置、表データ検索方法、及び表データ検索プログラムに関する。
【背景技術】
【０００２】
従来、検索対象の文書に類似するとして検索された各類似文書について、検索対象の文書との類似度を算出し、類似度順に検索結果を表示したり、各類似文書の概要であるスニペットを検索結果に付けて表示したりする技術が知られている。このスニペットを表示することで、検索された文書がどのような文書であるかを検索者に伝え易くすることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２１６６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
検索対象として表データ（表形式ファイル）を指定し、類似する表データを検索する場合、検索された表データの一部を含むスニペットを表示しても、どのように類似しているのかが分かりにくい場合がある。例えば、検索された表データの属性（カラム）の並び順が、検索対象の表データから変更されている場合には、情報の内容としては同じデータであっても、同じであることが分かりにくい。また、属性の並び順や属性の一部の値が類似している場合には、情報の内容としては異なるデータであっても、異なることが分かりにくい。
【０００５】
そこで、一側面では、表形式のデータの類似性を判定することを目的とする。
【課題を解決するための手段】
【０００６】
一つの案では、表データ検索装置において、各表データの各属性における値の分布の特徴を抽出する抽出部と、表データの各属性のカテゴリを判定するカテゴリ判定部と、前記抽出部により抽出された特徴に基づいて、第１の表データの各属性と、前記第１の表データに基づいて検索された第２の表データの各属性とが類似するか否かを判定する類似度判定部と、を備え、前記類似度判定部は、前記カテゴリ判定部により判定されたカテゴリが一致する前記第１の表データの各属性、及び前記第２の表データの各属性について、類似するか否かを判定する。
【発明の効果】
【０００７】
一側面によれば、表形式のデータの類似性を判定することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施形態における表データ検索システムの構成例を示す図である。
【図２】実施の形態における表データ検索装置のハードウェア構成例を示す図である。
【図３】表データ検索装置の機能ブロック図である。
【図４】各表データに対する検索用のメタデータを作成する処理の一例を示すフローチャートである。
【図５】特徴抽出部により抽出される各属性の特徴について説明するための図である。
【図６】表データを検索する処理の一例を示すフローチャートである。
【図７】属性の特徴を抽出する処理の一例を示すフローチャートである。
【図８】各属性の類似度を判定する処理の一例を示すフローチャートである。
【図９】検索された表データの属性に対する表示を、類似度に応じて制御する例について説明する図である。
【図１０】第１の実施例に係るＦＰを説明するための図である。
【図１１】ｎ×ｎの有効フラグで類似性を判定する処理の一例を示す図である。
【図１２】転置インデックスを用いた比較を説明するための図である。
【図１３】第２の実施例に係るＦＰの特性を説明するための図（１）である。
【図１４】第２の実施例に係るＦＰの特性を説明するための図（２）である。
【図１５】第２の実施例に係る表データ検索部の処理を説明するための図である。
【図１６】キーワードと出現回数との関係を示す図である。
【図１７】第３の実施例に係る表データ検索部の処理を説明するための図である。
【図１８】残す対象とする特徴Ｌ−Ｌを説明するための図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて本発明の実施形態を説明する。図１は、実施形態における表データ検索システムの構成例を示す図である。図１において、表データ検索システム１は、表データ検索装置１０、及び情報端末２０を含む。
【００１０】
表データ検索装置１０と情報端末２０とは、ＬＡＮ（Local  Area  Network）やインターネット等の通信回線によって通信可能に接続される。
【００１１】
情報端末２０は、例えば、ＰＣ（Personal  Computer）、タブレット型端末、スマートフォン等の端末である。本実施の形態において、情報端末２０は、検索対象の表形式のデータ（以下、「表データ」という。）の指定や、検索対象の表データに類似するとして検索された表データの表示等に利用される。
【００１２】
表データ検索装置１０は、情報端末２０にて検索対象として指定された表データに類似している表データを検索し、検索結果を情報端末２０に通知する。なお、表データとは、各属性（カラム）に対する値を有するデータであり、例えばＣＳＶ（comma‐separated  values）形式のファイル等のデータである。
【００１３】
図２は、実施の形態における表データ検索装置１０のハードウェア構成例を示す図である。図２の表データ検索装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５等を有する。
【００１４】
表データ検索装置１０での処理を実現する表データ検索プログラムは、記録媒体１０１によって提供される。表データ検索プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、表データ検索プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、表データ検索プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされた表データ検索プログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１５】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って表データ検索装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１６】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard  Disk  Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００１７】
情報端末２０のハードウェア構成は、図２に示す表データ検索装置１０のハードウェア構成例と同様でもよい。
【００１８】
次に、図３を参照し、表データ検索装置１０の機能構成について説明する。図３は、表データ検索装置１０の機能ブロック図である。表データ検索装置１０は、特徴抽出部１２、カテゴリ判定部１３、類似度判定部１４、表データ検索部１５、表示制御部１６、及び通信部１７を有する。これら各部は、表データ検索装置１０にインストールされた１以上のプログラムが、表データ検索装置１０のＣＰＵ１０４に実行させる処理により実現される。
【００１９】
また、表データ検索装置１０は、表データを記憶する表データ記憶部１１を有する。表データ記憶部１１は、例えば、補助記憶装置１０２等を用いて実現される。
【００２０】
特徴抽出部１２は、表データの各属性における値の分布等の特徴を抽出する。
【００２１】
カテゴリ判定部１３は、表データの各属性の内容（カテゴリ）を判定する。カテゴリ判定部１３は、例えば、氏名、年齢、性別、生年月日、住所、身長、体重、年収、メールアドレス、ID、暗証番号、郵便番号、日付、マイナンバー、病名コード等のカテゴリを判定する。
【００２２】
類似度判定部１４は、特徴抽出部１２により抽出された特徴に基づいて、検索対象の表データの属性と、検索された各表データの属性との類似度を判定する。
【００２３】
表データ検索部１５は、検索対象の表データに類似する表データを、表データ記憶部１１に記憶されている表データ群から検索する。
【００２４】
表示制御部１６は、類似度判定部１４により判定された類似度に応じて、検索された表データの情報端末２０での表示を制御する。
【００２５】
通信部１７は、情報端末２０との通信を制御する。
【００２６】
＜メタデータ作成＞
次に、図４、図５を参照して、表データ記憶部１１に記憶されている被検索対象の各表データに対する検索用のメタデータを作成する処理の詳細例について説明する。図４は、各表データに対する検索用のメタデータを作成する処理の一例を示すフローチャートである。
【００２７】
ステップＳ１０１において、表データ検索部１５は、表データ記憶部１１に記憶されている各表データから、検索用のインデックスを抽出する。
【００２８】
続いて、特徴抽出部１２は、各表データにおける各属性（カラム）の格納タイプを抽出する（ステップＳ１０２）。なお、この処理の詳細は後述する。
【００２９】
続いて、特徴抽出部１２は、各表データにおける各属性の分布タイプを抽出する（ステップＳ１０３）。なお、この処理の詳細は後述する。
【００３０】
続いて、表データ検索部１５は、各表データに対応付けて、検索用のインデックス、格納タイプ、及び分布タイプをメタデータとして表データ記憶部１１に格納する（ステップＳ１０４）。
【００３１】
図５は、特徴抽出部１２により抽出される各属性の特徴について説明するための図である。図５（Ａ）には、特徴抽出部１２により抽出される各属性の特徴の一例が示されている。
【００３２】
表データの各属性について、格納タイプ、及び分布タイプ（「分布の特徴」の一例）が、属性の特徴として抽出される。格納タイプには、数値であるか、文字列であるかを示すデータと、表現形式、長さタイプ、カテゴリを示すデータが含まれる。
【００３３】
表データの全ての行データに関して、その値が数字（数値）であると判定された属性については、表現形式として、２進数、８進数、１０進数、１６進数等のいずれかが含まれる。また、長さタイプとして、固定長（桁数）、または可変長が含まれる。カテゴリ（内容）として、電話番号、年齢、生年月日、日付、郵便番号、クレジットカード番号、マイナンバー、0〜100の間の数字、1〜5の間の数字等のいずれかが含まれる。
【００３４】
表データの全ての行データに関して、その値が文字列（数字のみではない）と判定された属性については、表現形式として、アルファベット、アルファベット＋数字、カナ、ひらがな、漢字等のいずれかが含まれる。また、長さタイプとして、固定長（桁数）、または可変長が含まれる。カテゴリ（内容）として、住所、氏名等のいずれかが含まれる。
【００３５】
また、分布タイプとして、属性に対する各行データの値の分布形状と、属性に対する各行データの値の特徴が抽出される。分布形状には、例えば、正規分布、t分布、F分布、二項分布、カイ二乗分布、ポアソン分布、人口分布等がある。値の特徴には、例えば、平均値、中央値、最大値、最長値、有効数値範囲等がある。
【００３６】
図５（Ｂ）には、特徴抽出部１２により抽出された各属性の特徴を示すデータの一例が示されている。図５の例では、最初の属性の格納タイプは「数字」であり、表現形式は「１０進数」、長さは「固定長」の「８」桁であり、属性のカテゴリ（内容）は「生年月日」である。そして、属性に対する各行データの値の分布タイプは、分布形状が「人口分布」であり、値の特徴である平均値、中央値、最小値、最大値がそれぞれ、「19700101」、「19800101」、「19000101」、「20150101」である。
【００３７】
＜表データ検索処理＞
次に、図６を参照して、検索対象の表データに基づいて、表データ記憶部１１に記憶されている各表データから類似しているものを検索する処理の詳細例について説明する。図６は、表データを検索する処理の一例を示すフローチャートである。
【００３８】
ステップＳ１１１において、表データ検索部１５は、情報端末２０から、検索対象の表データを受信する。当該表データは、情報端末２０において、ユーザによって指定されたものである。
【００３９】
続いて、表データ検索部１５は、表データ記憶部１１に記憶されている表データ群から、検索対象の表データに類似する表データを検索する（ステップＳ１１２）。なお、この処理の詳細は後述する。
【００４０】
続いて、特徴抽出部１２は、検索対象の表データにおける各属性の格納タイプを抽出する（ステップＳ１１３）。なお、この処理の詳細は後述する。
【００４１】
続いて、特徴抽出部１２は、検索対象の表データにおける各属性の分布タイプを抽出する（ステップＳ１１４）。なお、この処理の詳細は後述する。
【００４２】
続いて、類似度判定部１４は、検索された各表データに対応付けられた各属性の特徴（格納タイプ、及び分布タイプ）と、検索対象の表データから抽出された各属性の特徴を比較して、類似度を判定する（ステップＳ１１５）。なお、この処理の詳細は後述する。
【００４３】
続いて、表示制御部１６は、類似度判定部１４により判定された類似度に応じて、表データ検索部１５により検索された表データの属性に対するデータを作成し、出力する（ステップＳ１１６）。例えば、情報端末２０に、検索された各表データの各属性に対し、類似度に応じたデータを付加して表示させる。
【００４４】
なお、ステップＳ１１５で判定した類似度に基づいて、検索結果を更新してもよい。例えば、類似度が高いと判定された表データの表示順が上位にされてもよい。
【００４５】
＜＜属性の特徴抽出＞＞
次に、図４のステップＳ１０２、Ｓ１０３、及び図６のステップＳ１１３、Ｓ１１４の、特徴抽出部１２による、各属性の特徴（格納タイプ、及び分布タイプ）を抽出する処理の詳細例について説明する。図７は、属性の特徴を抽出する処理の一例を示すフローチャートである。
【００４６】
ステップＳ２０１において、特徴抽出部１２は、表データに含まれる各属性のうち、一の属性（以下、「対象属性」という。）を処理対象として選択する。
【００４７】
続いて、特徴抽出部１２は、対象属性が、数字であるか文字列であるか、表現形式、及び長さタイプの情報を抽出する（ステップＳ２０２）。
【００４８】
続いて、特徴抽出部１２は、対象属性のカテゴリを判定する（ステップＳ２０３）。
【００４９】
なお、表データにおける対象属性のカテゴリは、例えば以下のように判定可能である。
（１）対象属性に対する各行データの値と、予め記憶されている人名辞書に含まれるデータとの類似度が、所定の閾値以上である場合に、対象属性のカテゴリは「氏名」カテゴリであると判定可能である。
（２）対象属性に対する各行データの値が、「男」、「女」等の性別を表す文字又は文字列である場合に、対象属性のカテゴリは「性別」カテゴリであると判定可能である。
（３）対象属性に対する各行データの値が、日付の表現形式と一致し、かつ、数値範囲が日付と同等である場合、対象属性のカテゴリは、「生年月日」、または「日付」であると判定可能である。
（４）対象属性に対する各行データの値と、予め記憶されている住所辞書に含まれるデータとの類似度が、所定の閾値以上である場合に、「住所」カテゴリであると判定可能である。
（５）対象属性に対する各行データの値が、メールアドレスの表現形式と一致する場合、「メールアドレス」カテゴリであると判定可能である。
（６）対象属性に対する各行データの値が、郵便番号の表現形式（例えば７桁の数字）と一致し、かつ、予め記憶されている郵便番号辞書に含まれるいずれかの郵便番号と一致する場合、対象属性のカテゴリは、「郵便番号」であると判定可能である。
（７）対象属性に対する各行データの値が、マイナンバーの表現形式（例えば１２桁の数字）と一致し、かつ、対象属性に対する各行データの値をマイナンバーとみなした場合における当該マイナンバー用のチェックデジットが正しい場合に、対象属性のカテゴリは、「マイナンバー」のカテゴリであると判定可能である。
（８）対象属性に対する各行データの値が、クレジットカード番号の表現形式（１５桁又は１６の数字）と一致し、かつ、対象属性に対する各行データの値をクレジットカード番号とみなした場合における当該クレジットカード番号用のチェックデジットが正しい場合に、対象属性のカテゴリは、「クレジットカード」カテゴリであると判定可能である。
（９）対象属性に対する各行データの値をソートし、隣接する値の間の距離の中央値、及び最大値を算出する。続いて、隣接する値の間の距離の中央値と最大値の差が所定の閾値以上であれば、対象属性のカテゴリは、「社員番号」のカテゴリであると判定可能である。これは、対象属性に対する各行データの値が、例えば入社年度＋３桁で表現される社員番号であり、１年間に入社する社員が平均１００人、３桁の番号がシリアルに発番されているとすると、隣接する値の間の距離の中央値、及び最大値は、それぞれ１、及び９００となり、所定の閾値以上である（分布に連続性が無い）と判定可能であるためである。
（１０）対象属性に対する各行データの値の分布が、多様な値が出現する均等分布に従う場合、対象属性のカテゴリは、「ＩＤ」カテゴリであると判定可能である。
（１１）対象属性に対する各行データの値の分布が、特定の値（例えば生年月日等）が出現する均等分布に従う場合、対象属性のカテゴリは、「暗証番号」カテゴリであると判定可能である。
（１２）対象属性に対する各行データの値の分布が、パレート分布に従う場合、対象属性のカテゴリは、「病名コード」カテゴリであると判定可能である。なお、病名コードの場合、国際統計分類で使用されているＩＣＤ−１０では、先頭のアルファベットが全２１章から成る大分類に続く数字が中分類に使用されている（風邪のコード、J00）。
【００５０】
続いて、特徴抽出部１２は、対象属性のカテゴリが判定できたか否か判定する（ステップＳ２０４）。
【００５１】
対象属性のカテゴリが判定できた場合（ステップＳ２０４でＹＥＳ）、特徴抽出部１２は、カテゴリが判定できた場合のルールに応じて、対象属性に対する各行データの値の統計的な特徴を示すデータである分布タイプを判定する（ステップＳ２０５）。特徴抽出部１２は、カテゴリが判定できた場合に応じた所定の複数種類の分布形状（例えば、ユニーク分布、均等分布、パレート分布等）の中から、例えば最小二乗法により、最も近い分布形状を選択する。また、特徴抽出部１２は、カテゴリが判定できた場合に応じた所定の値の特徴（例えば、出現種類数、最大出現回数、最少出現回数、平均出現回数等）を算出する。なお、出現種類数は、対象属性に対する各行データの値の種類の数である。最大出現回数は、対象属性に対する各行データの値の各種類のうち、最も多い値の数である。最少出現回数は、対象属性に対する各行データの値の各種類のうち、最も少ない値の数である。平均出現回数は、対象属性に対する各行データの値の種類毎の平均値である。
【００５２】
対象属性のカテゴリが判定できない場合（ステップＳ２０４でＹＥＳ）、特徴抽出部１２は、カテゴリが判定できない場合のルールに応じて、対象属性に対する各行データの値の統計的な特徴を示すデータである分布タイプを判定する（ステップＳ２０６）。特徴抽出部１２は、カテゴリが判定できない場合に応じた所定の複数種類の分布形状（例えば、正規分布、ｔ分布、Ｆ分布等）の中から、例えば最小二乗法により、最も近い分布形状を選択する。また、特徴抽出部１２は、カテゴリが判定できない場合に応じた所定の値の特徴（例えば、最大値、最小値、平均値等）を算出する。なお、これにより、例えば、年齢、身長、体重、年収等のカテゴリを判定（区別）してもよい。年齢、身長、及び体重と、年収とは、最小値及び最大値が異なるため、最大値及び最小値の少なくとも一方に基づいて区別できる。また、年齢、身長、体重は、最小値及び最大値が類似することもあるが、年齢は人口分布に従い、身長、体重は正規分布に従うため、分布の種別の違いに基づいて、年齢と、身長及び体重とを区別できる。また、身長と体重の平均値を比較することにより、身長と体重とを区別できる。
【００５３】
＜＜属性の類似度判定＞＞
次に、図６のステップＳ１１４の詳細例について説明する。図８は、各属性の類似度を判定する処理の一例を示すフローチャートである。なお、類似度判定部１４は、以下の処理を、検索対象の表データにおける各々の属性について、検索された各表データにおける各々の属性に対して実行する。以下、検索対象の表データの各属性のうち、処理対象とされている属性を「対象属性」という。
【００５４】
ステップＳ３０１において、類似度判定部１４は、検索対象の表データにおける対象属性と、検索された一の表データにおける一の属性との間で、表現形式、長さ、及びカテゴリが一致するか否か判定する。なお、表現形式は、例えば、２進数、８進数、１０進数、１６進数、アルファベット、アルファベット＋数字、カナ、ひらがな、漢字等のデータである。長さは、対象属性に対する各行データの値の長さが固定長であるか、可変長であるか、固定長である場合の桁数等のデータである。
【００５５】
表現形式、長さ、及びカテゴリのうちの少なくともいずれか一つが一致しない場合（ステップＳ３０１でＮＯ）、類似度判定部１４は、属性が類似していない（非類似）と判定し（ステップＳ３０２）、処理を終了する。
【００５６】
表現形式、長さ、及びカテゴリの全てが一致する場合（ステップＳ３０１でＹＥＳ）、類似度判定部１４は、検索対象の表データにおける対象属性の分布形状と、検索された表データにおける対象属性の分布形状とが一致するか否か判定する（ステップＳ３０３）。
【００５７】
分布形状が一致する場合（ステップＳ３０３でＹＥＳ）、類似度判定部１４は、分布形状が一致すると判定する（ステップＳ３０４）。
【００５８】
分布形状が一致しない場合（ステップＳ３０３でＮＯ）、又はステップＳ３０４に続いて、類似度判定部１４は、検索対象の表データにおける対象属性の値の特徴と、検索された表データにおける対象属性の値の特徴が類似するか判定する（ステップＳ３０５）。類似度判定部１４は、例えば、検索された表データにおける対象属性の最大値や最小値と、検索された表データにおける対象属性の最大値や最小値の差が、所定の閾値以下である場合に、比較された双方の値の特徴が類似すると判定する。
【００５９】
属性の値の特徴が類似する場合（ステップＳ３０５でＹＥＳ）、類似度判定部１４は、属性の値の特徴が類似すると判定する（ステップＳ３０６）。
【００６０】
属性の値の特徴が類似しない場合（ステップＳ３０５でＮＯ）、又はステップＳ３０６に続いて、類似度判定部１４は、分布形状が類似するか、値の特徴が類似するかに応じて、属性間の類似度を算出する（ステップＳ３０７）。類似度判定部１４は、例えば、分布形状、及び値の特徴の両方が類似している場合、類似度を「高」と判定する。値の特徴のみが類似している場合、類似度を「中」と判定する。分布形状のみが類似している場合、類似度を「低」と判定する。分布形状、及び値の特徴の両方が類似していない場合、類似度を「非類似」と判定する。
【００６１】
比較される一方の属性が体重の値であり、他方の属性が年齢の値である場合を例として、類似度の算出方法を説明する。体重の値を示す属性における値の特徴は、最小値が４０、最大値が９５、平均値が６５であり、分布形状は正規分布であったとする。また、年齢の値を示す属性における値の特徴は、最小値が２０、最大値が６５、平均値が４５であり、分布形状は人口分布であったとする。
【００６２】
この場合、分布形状が正規分布と人口分布で異なるため、分布形状が類似しないと判定される。また、値の特徴は、最小値、最大値、平均値の差がそれぞれの閾値以内であれば、類似していると判断される。この場合、値の特徴のみが類似しているため、類似度は「中」と判定される。
【００６３】
＜＜表示制御＞＞
次に、図６のステップＳ１１５の詳細例について説明する。図９は、検索された表データの属性に対する説明文の表示態様を、類似度に応じて制御する例について説明する図である。
【００６４】
図９（Ａ）には、検索対象の表データの一例が示されている。図９（Ｂ）には、検索された表データの属性に対する説明文の表示態様が、類似度に応じて制御されている例が示されている。
【００６５】
図９（Ｂ）の例では、検索された表データの各属性に対する説明文の表示態様について、検索対象の表データに同じカテゴリの属性が存在する属性に対する説明文５０１の枠を実線で表示させ、存在しない属性に対する説明文５０２の枠を破線で表示させている。また、検索された表データの属性のうち、検索対象の表データに同じカテゴリの属性が存在する属性については、類似度判定部１４により判定された類似度が高い程、枠内が濃い色（例えば、密な斜線）で表示されている。例えば、説明文５０１は、類似度が高い属性に対応するため、枠内が濃い色で表示され、説明文５０２は、類似度が比較的低い属性に対応するため、枠内が比較的薄い色（例えば、疎な斜線）で表示されている。また、各属性のカテゴリ、分布形状、値の特徴等を示す説明文が付加されている。それにより、検索のランキングの順位による表示だけでは分かりにくい、表データの類似度を、より分かりやすく表示することができる。
【００６６】
また、表示制御部１６は、図９（Ｂ）の検索結果を表示する際に、個人情報が表示されないよう、例えば氏名の一部を非表示としたり、住所を市町村レベルまでの表示に止めたりするように制御してもよい。
【００６７】
＜類似表データ検索＞
次に、図１０を参照して、図６のステップＳ１１２の表データ検索部１５による、被検索対象の表データ群から、検索対象の表データに類似する表データを検索する処理の詳細例について説明する。
【００６８】
表データ検索部１５は、検索対象の表データ、及び被検索対象の各表データから、表データの特徴を表すフィンガープリント（ＦＰ）を取得し、ＦＰの類似性に基づいて、検索対象の表データに類似する表データを検索する。
【００６９】
＜＜表データ検索部の第１の実施例＞＞
図１０は、第１の実施例に係るＦＰを説明するための図である。表データ検索部１５は、例えば、表データからキーワードとその並びを抽出し、特定範囲内のキーワードの向きつきの並びを特徴とする。例えば、表データのある行データとして「キーワード１,キーワード２,キーワード３,キーワード４」が存在した場合に、かかる行データの特徴は、図１０の特徴１０ａに示すように、６つのキーワードの組となる。
【００７０】
表データ検索部１５は、特徴の一致数を基にして、テキスト間の類似性を判定する。例えば、第２表データの特徴が、図１０の特徴１０ｂであるものとする。第１表データの特徴１０ａと、第２表データの特徴１０ｂとを比較すると、特徴１０ｂに含まれる５つのキーワードの組のうち、４つのキーワードの組が、特徴１０ａのキーワードの組と一致する。具体的には「キーワード１→キーワード２、キーワード１→キーワード３、キーワード１→キーワード４、キーワード３→キーワード４」が一致する。この一致数が多いほどお互いに類似した表データであるといえる。
【００７１】
特徴をデータとして扱う際には、キーワードのままでは扱いにくい。このため、キーワードをハッシュ化し、定数ｎによる余剰演算（ｍｏｄ）を実行し範囲を狭めたハッシュ値にすることで、表データの特徴をｎ×ｎの有効グラフで表現する。以下において、ハッシュ値を定数ｎでｍｏｄした値と定義する。ｍｏｄする前のハッシュ値を、中間ハッシュ値と定義する。
【００７２】
例えば、ｎの値を１００００程度にした上でキーワードをハッシュ化する場合には、異なるキーワード間で同一のハッシュ値になる可能性があり、精度が低下する場合がある。しかし、特徴をキーワードの組としているため、異なるキーワード間で多少同一のハッシュ値になったとしても、特徴に含まれるキーワードの組の両方の値が、異なる表データ間で同一のハッシュ値に変換される確率は低い。
【００７３】
図１１は、ｎ×ｎの有効フラグで類似性を判定する処理の一例を示す図である。図１１のＦＰ１１ａは、表データＡのＦＰをｎ×ｎの有効グラフで表したものである。ＦＰ１１ｂは、表データＢのＦＰをｎ×ｎの有効グラフで表したものである。例えば、表データＡについて、キーワードの組「キーワード１→キーワード２」が含まれ、キーワード１のハッシュ値が「０」、キーワード２のハッシュ値が「２」であるものとする。この場合には、ＦＰ１１ａについて、「０」の行と「２」の列とが交差する部分の値が「１」に設定される。
【００７４】
ＦＰ１１ａとＦＰ１１ｂとの間のａｎｄを取ることで、比較結果１１ｃが得られる。比較結果１１ｃに含まれる「１」の数が、表データＡと表データＢとの類似性を示す値となる。図１１に示す例では、表データＡと表データＢとの類似性は「４」となる。
【００７５】
表データ検索部１５は、転置インデックスを用いて、各表データの比較を行ってもよい。
【００７６】
図１２は、転置インデックスを用いた比較を説明するための図である。図１２について、ＦＰ５１２は、検索表データのＦＰを示すものである。ＦＰ５１２に含まれる各特徴は、検索表データに含まれるキーワードの組から算出されるハッシュ値である。転置インデックス５１３は、ログ中に含まれる複数の表データの転置インデックスであり、特徴と文書識別子とを対応付ける。転置インデックス５１３の特徴は、表データに含まれるキーワードの組から算出されるハッシュ値である。文書識別子は、表データを一意に識別する情報である。例えば、転置インデックス５１３の１行目を参照すると、文書識別子「００１、００３、００７、・・・」により識別される各ファイルが、特徴「４８４８９３」を有していることを示す。
【００７７】
ＦＰ５１２と転置インデックス５１３とを比較すると、比較結果５１４が得られる。例えば、比較結果５１４は、文書識別子と特徴量とを対応付ける。このうち、特徴量は、該当表データに含まれる特徴のうち、検索表データＦＰ５１２と一致する特徴の数を示すものであり、特徴量が多いほど、類似性が高いことを示す。
【００７８】
＜＜表データ検索部の第２の実施例＞＞
ここで、表データでは、表データを取得する際のＳＱＬ文等に応じて、同じ情報であっても、属性の並び順が異なる場合がある。そのため、第１の実施例では、転置インデックスのデータが増加し、検索コストがかかるようになる。そこで、表データ検索部１５は、転置インデックスのデータを以下のように削減してもよい。
【００７９】
図１３、図１４は、第２の実施例に係るＦＰの特性を説明するための図である。例えば、図１３に示すように、キーワードｋ１とキーワードｋ２との特徴ｔ１が複数個出現した場合には、１つにまとめられる。このため、各キーワードの配列を示す特徴は出現回数を持っているがＦＰのデータ上では、図１４に示すような情報に丸められ、出現回数の情報は削除される。
【００８０】
図１４において、各キーワード横の括弧内の数字は、表データに含まれるキーワードの出現回数を示す。例えば、キーワードｋ１（５０）は、表データに含まれるキーワードｋ１の出現回数が、５０回であることを示す。
【００８１】
図１４に示す特徴の出現回数は、表データに含まれるキーワードの配列が出現する回数を示す。例えば、特徴ｔ１に対応するキーワードｋ１とキーワードｋ２との配列が表データ上に３０回出現することが示される。なお、ＦＰのデータ上では、係る出現回数の情報は削除され、出現回数については、各特徴の間で区別されない。なお、図１４に示す例では、各特徴が、特徴の出現回数の昇順で並べられている。
【００８２】
表データ検索部１５は、出現回数の低いキーワードを含む特徴を残しつつ、出現回数の低いキーワードを含む特徴を削除することで、類似性判定の精度を落とさずに、ＦＰのデータ量を削減する。
【００８３】
図１５は、第２の実施例に係る表データ検索部１５の処理を説明するための図である。図１５に示すように、表データ検索部１５は、特徴の出現回数に基づいて、特徴の出現回数が閾値以下となる特徴ｔ９８，ｔ９９，ｔ１００を削除対象候補として選択する。表データ検索部１５は、削除対象候補の特徴のうち、特徴を削除しても特徴の有するキーワードが他の特徴で補完できる特徴を削除する。
【００８４】
例えば、図１５に示す例では、特徴ｔ１００のキーワードｋＢは、特徴ｔ９９に存在する。特徴ｔ１００のキーワードｋＡは、特徴ｔ９８に存在する。特徴ｔ１００の有するキーワードは他の特徴ｔ９８，ｔ９９で補完することができるため、表データ検索部１５は特徴ｔ１００を削除する。
【００８５】
＜＜表データ検索部の第３の実施例＞＞
第２の実施例では、削除対象を細かく確認するため、処理負荷が大きくなる場合がある。以下においては、図１５で説明した第２の実施例の処理と同じ考え方で削除対象を細かく確認する処理を省いた、表データ検索部１５の処理の一例について説明する。
【００８６】
図１５で説明した処理では、特徴の出現回数を基に削除する特徴を絞り込んだが、キーワードの出現回数に着目して処理を行ってもよい。表データ検索部１５は、表データ内に出現するキーワードの出現回数をキーワード毎に計数し、出現回数を基にしてキーワードをグループＨまたはグループＬに分類する。
【００８７】
図１６は、キーワードと出現回数との関係を示す図である。図１６の縦軸は出現回数を示し、横軸はキーワードに対応する。例えば、キーワードは、出現回数の多いものから順に左側から右側に並ぶ。図１６の分割ポイント５２０よりも左側のキーワードは、グループＨに属する。分割ポイント５２０よりも右側のキーワードは、グループＬに属する。表データ検索部１５は、出現回数が均等になるように、分割ポイント５２０を設定する。例えば、表データ検索部１５は、グループＨに属する各キーワードの出現回数の合計数と、グループＬの属する各キーワードの出現回数の合計数とが同じ数になるように分割ポイント５２０を設定する。以下の説明において、グループＨに属するキーワードをキーワードＨ、グループＬに属するキーワードをキーワードＬと適宜表記する。また、キーワードＬとキーワードＬとの配列を示す特徴を、特徴Ｌ−Ｌと表記する。
【００８８】
図１７は、第３の実施例に係る表データ検索部１５の処理を説明するための図（２）である。表データ検索部１５は、表データ３５上に一定範囲３５ａを設定し、特徴Ｌ−Ｌをした場合の残りの特徴の数を計数する。表データ検索部１５は、計数した特徴の数が所定数未満である場合には、削除予定となる特徴Ｌ−Ｌのうち、一部を残すようにする。表データ検索部１５は、一定範囲３５ａをずらしつつ、上記処理を繰り返し実行する。
【００８９】
表データ検索部１５は、残す対象となる特徴Ｌ−Ｌを、特徴Ｌ−Ｌを構成するキーワードＬの出現回数に基づいて特定する。図１８は、残す対象とする特徴Ｌ−Ｌを説明するための図である。図１８の横軸は、特徴Ｌ−Ｌを構成するキーワードＬのペアうち、一方のキーワードＬの出現回数を示し、縦軸は、他方のキーワードＬの出現回数を示す。例えば、縦軸は、出現回数はキーワードＬのペアのうち、出現回数の多いキーワードＬの出現回数とする。
【００９０】
例えば、表データ検索部１５は、全ての特徴Ｌ−Ｌのうち、キーワードＬのペアの出現回数が多い特徴Ｌ−Ｌを残す。図１８に示す例では、表データ検索部１５は、領域３６に含まれるキーワードＬのペアを有する特徴Ｌ−Ｌを残し、それ以外の特徴Ｌ−Ｌを削除する。表データ検索部１５がこのような処理を実行することにより、表データの全体的な特徴を残しながら最低限の部分的な特徴を残すことができ、類似判定の精度が落ちることを抑止することができる。
【００９１】
＜変形例＞
上述した実施形態は、情報漏洩の原因を調査するシステムにも適用できる。この場合、表データ検索装置１０は、例えば、検索対象の表データが印刷等により外部に出力された際に、出力された表データの特徴を抽出して、出力したユーザのＩＤと共にメタデータとして格納しておく。そして、情報漏洩が判明した際に、漏洩した表データを検索対象とし、格納されているメタデータに基づいて、類似度が高い表データを、当該表データを出力したユーザＩＤを取得する。それにより、情報漏洩の原因を調査できる。
【００９２】
＜まとめ＞
表データ（表形式ファイル）は、表データを取得する際のＳＱＬ文等に応じて、同じ情報であっても、属性の並び順が異なる場合がある。そのため、検索された表データの一部をスニペットとして表示しても、同じ情報であることが分かりにくい。
【００９３】
また、従来技術では、属性の並び順や値が類似しているが、属性の値の分布の特徴が異なる場合、データが異なることをユーザに伝えることができない。
【００９４】
上述した実施形態によれば、表データの各属性における値の分布の特徴を抽出し、抽出された特徴に基づいて、検索対象の表データの属性と、被検索対象の表データの属性の類似度を判定する。それにより、表形式のデータの類似性の判定を容易にすることが可能となる。
【００９５】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００９６】
表データ検索装置１０の各機能部は、例えば１以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。また、表データ検索装置１０と情報端末２０とを一体として構成してもよい。
【００９７】
以上の説明に関し、更に以下の項を開示する。
（付記１）
各表データの各属性における値の分布の特徴を抽出する抽出部と、
前記抽出部により抽出された特徴に基づいて、第１の表データの各属性と、前記第１の表データに基づいて検索された第２の表データの各属性とが類似するか否かを判定する類似度判定部と、
を備えることを特徴とする表データ検索装置。
（付記２）
前記類似度判定部により類似していると判定された場合、検索された表データの各属性の表示態様を変化させる表示制御部を備える、
ことを特徴とする付記１記載の表データ検索装置。
（付記３）
前記抽出部は、表データの各属性における値の分布形状、平均値、中央値、最大値、最小値、出現種類数、最大出現回数、最少出現回数、及び平均出現回数のうちの少なくとも１つを抽出する、
ことを特徴とする付記１または２記載の表データ検索装置。
（付記４）
表データの各属性のカテゴリを判定するカテゴリ判定部を備え、
前記類似度判定部は、前記カテゴリ判定部により判定されたカテゴリが一致する前記第１の表データの各属性、及び前記第２の表データの各属性について、類似するか否かを判定する、
ことを特徴とする付記１乃至３のいずれか一項に記載の表データ検索装置。
（付記５）
前記抽出部は、前記カテゴリ判定部によりカテゴリが判定できない属性について、カテゴリが判定できない場合の所定のルールに応じて、値の分布の特徴を抽出する、
ことを特徴とする付記４記載の表データ検索装置。
（付記６）
コンピュータが、
各表データの各属性における値の分布の特徴を抽出する処理と、
前記抽出する処理により抽出された特徴に基づいて、第１の表データの各属性と、前記第１の表データに基づいて検索された第２の表データの各属性とが類似するか否かを判定する処理と、
を実行することを特徴とする表データ検索方法。
（付記７）
前記判定する処理により類似していると判定された場合、検索された表データの各属性の表示態様を変化させる処理と、
を実行することを特徴とする付記６記載の表データ検索方法。
（付記８）
前記抽出する処理は、表データの各属性における値の分布形状、平均値、中央値、最大値、最小値、出現種類数、最大出現回数、最少出現回数、及び平均出現回数のうちの少なくとも１つを抽出する、
ことを特徴とする付記６または７記載の表データ検索方法。
（付記９）
表データの各属性のカテゴリを判定する処理を実行し、
前記類似するか否かを判定する処理は、前記カテゴリを判定する処理により判定されたカテゴリが一致する前記第１の表データの各属性、及び前記第２の表データの各属性について、類似するか否かを判定する、
ことを特徴とする付記６乃至８のいずれか一項に記載の表データ検索方法。
（付記１０）
前記抽出する処理は、前記カテゴリを判定する処理によりカテゴリが判定できない属性について、カテゴリが判定できない場合の所定のルールに応じて、値の分布の特徴を抽出する、
ことを特徴とする付記９記載の表データ検索方法。
（付記１１）
コンピュータに、
各表データの各属性における値の分布の特徴を抽出する処理と、
前記抽出する処理により抽出された特徴に基づいて、第１の表データの各属性と、前記第１の表データに基づいて検索された第２の表データの各属性とが類似するか否かを判定する処理と、
を実行させることを特徴とする表データ検索プログラム。
（付記１２）
前記判定する処理により類似していると判定された場合、検索された表データの各属性の表示態様を変化させる処理と、
を実行させることを特徴とする付記６記載の表データ検索プログラム。
（付記１３）
前記抽出する処理は、表データの各属性における値の分布形状、平均値、中央値、最大値、最小値、出現種類数、最大出現回数、最少出現回数、及び平均出現回数のうちの少なくとも１つを抽出する、
ことを特徴とする付記６または７記載の表データ検索プログラム。
（付記１４）
表データの各属性のカテゴリを判定する処理を実行し、
前記類似するか否かを判定する処理は、前記カテゴリを判定する処理により判定されたカテゴリが一致する前記第１の表データの各属性、及び前記第２の表データの各属性について、類似するか否かを判定する、
ことを特徴とする付記６乃至８のいずれか一項に記載の表データ検索プログラム。
（付記１５）
前記抽出する処理は、前記カテゴリを判定する処理によりカテゴリが判定できない属性について、カテゴリが判定できない場合の所定のルールに応じて、値の分布の特徴を抽出する、
ことを特徴とする付記９記載の表データ検索プログラム。
【符号の説明】
【００９８】
１０  表データ検索装置
１１  表データ記憶部
１２  特徴抽出部（抽出部）
１３  カテゴリ判定部
１４  類似度判定部
１５  表データ検索部
１６  表示制御部
１７  通信部
２０  情報端末
【図１】
0006677093.tif 000002
【図２】
0006677093.tif 000003
【図３】
0006677093.tif 000004
【図４】
0006677093.tif 000005
【図５】
0006677093.tif 000006
【図６】
0006677093.tif 000007
【図７】
0006677093.tif 000008
【図８】
0006677093.tif 000009
【図９】
0006677093.tif 000010
【図１０】
0006677093.tif 000011
【図１１】
0006677093.tif 000012
【図１２】
0006677093.tif 000013
【図１３】
0006677093.tif 000014
【図１４】
0006677093.tif 000015
【図１５】
0006677093.tif 000016
【図１６】
0006677093.tif 000017
【図１７】
0006677093.tif 000018
【図１８】
0006677093.tif 000019