(57)【要約】【課題】ユーザは、行いたい分析の中身を理解していないと、様々な分析要素の各々について正しいキーを入力することは難しく、故に、類似する分析を検索することが難しい。【解決手段】分析は、通常、データ加工処理を含んでおり、データ加工処理の特徴である加工処理特徴が、分析の特徴を表している。そこで、検索装置は、それぞれが分析について登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴から、指定特徴（指定されたデータ加工処理定義の加工処理特徴、又は、指定された加工処理特徴）に類似する加工処理特徴を検索する。そして、検索装置は、類似する加工処理特徴を有するデータ加工処理定義に関する情報が関連付いた検索結果を表示する。【選択図】  図１５
2019159608.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが分析について登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴から、指定されたデータ加工処理定義の加工処理特徴又は指定された加工処理特徴に類似する加工処理特徴を検索する加工処理検索部と、
前記類似する加工処理特徴を有するデータ加工処理定義に関する情報が関連付いた検索結果を表示する検索結果表示部と
を有する検索装置。
【請求項２】
前記登録済の１以上のデータ加工処理定義の少なくとも１つのデータ加工処理定義には、当該データ加工処理定義のデータ傾向が関連付けられており、
前記類似する加工処理特徴を有するデータ加工処理定義が前記少なくとも１つのデータ加工処理定義の場合、前記検索結果は、前記類似する加工処理特徴を有するデータ加工処理定義に関連付けられているデータ傾向が関連付けられている、
請求項１に記載の検索装置。
【請求項３】
前記少なくとも１つのデータ加工処理定義には、更に、当該データ加工処理定義の加工処理特徴が関連付けられており、
前記類似する加工処理特徴を有するデータ加工処理定義が前記少なくとも１つのデータ加工処理定義の場合、前記検索結果は、前記類似する加工処理特徴を有するデータ加工処理定義に関連付けられている加工処理特徴が関連付けられている、
請求項２に記載の検索装置。
【請求項４】
下記（ａ）及び（ｂ）の各々が、データ加工処理に含まれる集約処理の集約キー、集約対象及び集約方法の組合せを含む、
（ａ）前記指定されたデータ加工処理定義の加工処理特徴、又は、前記指定された加工処理特徴、
（ｂ）前記登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴のうちの少なくとも１つ、
請求項１に記載の検索装置。
【請求項５】
下記（ａ）及び（ｂ）の各々が、データ加工処理に含まれる結合処理において結合されるデータ項目の組合せを含む、
（ａ）前記指定されたデータ加工処理定義の加工処理特徴、又は、前記指定された加工処理特徴、
（ｂ）前記登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴のうちの少なくとも１つ、
請求項１に記載の検索装置。
【請求項６】
前記少なくとも１つのデータ加工処理定義に関連付けられているデータ傾向は、当該データ加工処理定義が示すデータ加工処理において使用されるデータの統計量である、
請求項２に記載の検索装置。
【請求項７】
前記登録済の１以上のデータ加工処理定義の少なくとも１つのデータ加工処理定義には、当該データ加工処理定義の加工処理特徴と当該データ加工処理定義のデータ傾向とのうちの少なくとも１つが関連付けられている、
請求項１に記載の検索装置。
【請求項８】
前記指定されたデータ加工処理定義の加工処理特徴を当該指定されたデータ加工処理定義から自動抽出する特徴抽出部、
を更に有する請求項１に記載の検索装置。
【請求項９】
それぞれが分析について登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴から、指定されたデータ加工処理定義の加工処理特徴又は指定された加工処理特徴に類似する加工処理特徴を検索し、
前記類似する加工処理特徴を有するデータ加工処理定義に関する情報が関連付いた検索結果を表示する、
検索方法。
【請求項１０】
それぞれが分析について登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴から、指定されたデータ加工処理定義の加工処理特徴又は指定された加工処理特徴に類似する加工処理特徴を検索し、
前記類似する加工処理特徴を有するデータ加工処理定義に関する情報が関連付いた検索結果を表示する、
ことを計算機に実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、検索、例えば、分析支援の１つとしての検索に関する。
【背景技術】
【０００２】
データ分析では、分析対象のデータを準備するデータ準備作業に大半の時間を費やす傾向にある。データ準備作業に費やす時間の削減を図る方法として、今回の分析と類似する過去の分析を探し、当該過去の分析で使用されたデータを、今回の分析の対象とする方法が考えられる。特許文献１に開示の分析支援サーバは、分析目的と、目的カテゴリと、分析手法と、対象データ（項目キーと当該項目キーを用いて取得するデータ項目）といった複数の分析要素をキーに、類似する分析を検索し、当該類似する分析の分析目的、目的カテゴリ、分析手法及び対象データを表示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２０５２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ユーザ（例えば分析者）は、行いたい分析の中身を理解していないと、特許文献１に開示のような様々な分析要素の各々について正しいキーを入力することは難しく、故に、類似する分析を検索することが難しい。例えば、様々な分析要素として、分析の目的や手法等を理解している必要がある。
【課題を解決するための手段】
【０００５】
分析は、通常、データ加工処理を含んでおり、データ加工処理の特徴である加工処理特徴が、分析の特徴を表している、言い換えれば、分析を区別する。そこで、本発明に係る検索装置は、それぞれが分析について登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴から、指定特徴（指定されたデータ加工処理定義の加工処理特徴、又は、指定された加工処理特徴）に類似する加工処理特徴を検索する。そして、検索装置は、類似する加工処理特徴を有するデータ加工処理定義に関する情報が関連付いた検索結果を表示する。なお、「類似する加工処理特徴」とは、指定特徴との関連性に関して所定の条件を満たす加工処理特徴でよく、例えば、指定特徴との一致度が所定度合以上の加工処理特徴でよい。
【発明の効果】
【０００６】
ユーザは、様々な分析要素の各々について正しいキーを入力できるほど十分に分析の中身を理解していなくても、行いたい分析に関するデータ加工処理定義（又は、当該データ加工処理定義の加工処理特徴）さえ指定できれば、行いたい分析に類似する分析に関する情報の提示を受けることができる。
【図面の簡単な説明】
【０００７】
【図１】実施例１に係る検索装置の構成を示す。
【図２】データ登録処理の流れを示す。
【図３】データ登録画面の一例を示す。
【図４】分析の一例を模式的に示す。
【図５】データ加工処理定義の一例の構成を示す。
【図６】特徴管理テーブルの構成を示す。
【図７】傾向管理テーブルの構成を示す。
【図８】実施例１に係る特徴抽出処理の流れを示す。
【図９】検索処理の流れを示す。
【図１０】実施例１に係る特徴検索の流れを示す。
【図１１Ａ】検索画面の一例を示す。
【図１１Ｂ】定義詳細画面の一例を示す。
【図１２】実施例２に係る特徴管理テーブルの構成を示す。
【図１３】実施例２に係る特徴抽出処理の流れを示す。
【図１４】実施例２に係る特徴検索の流れを示す。
【図１５】実施例１の概要を示す。
【発明を実施するための形態】
【０００８】
以下の説明では、「インターフェース部」は、１以上のインターフェースデバイスでよい。当該１以上のインターフェースデバイスは、下記のうちのいずれでもよい。
・Ｉ／Ｏ（Input/Output）デバイスと遠隔の表示用計算機とのうちの少なくとも１つに対するＩ／Ｏインターフェースデバイス。表示用計算機に対するＩ／Ｏインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも１つのＩ／Ｏデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・１以上の通信インターフェースデバイス。１以上の通信インターフェースデバイスは、１以上の同種の通信インターフェースデバイス（例えば１以上のＮＩＣ（Network Interface Card））であってもよいし２以上の異種の通信インターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。
【０００９】
また、以下の説明では、「メモリ部」は、１以上のメモリであり、典型的には主記憶デバイスでよい。メモリ部における少なくとも１つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
【００１０】
また、以下の説明では、「ＰＤＥＶ部」は、１以上のＰＤＥＶであり、典型的には補助記憶デバイスでよい。「ＰＤＥＶ」は、物理的な記憶デバイス（Physical storage DEVice）を意味し、典型的には、不揮発性の記憶デバイス、例えばＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）である。
【００１１】
また、以下の説明では、「記憶部」は、メモリ部とＰＤＥＶ部の少なくとも一部とのうちの少なくとも１つ（典型的には少なくともメモリ部）である。
【００１２】
また、以下の説明では、「プロセッサ部」は、１以上のプロセッサである。少なくとも１つのプロセッサは、典型的には、ＣＰＵ（Central Processing Unit）のようなマイクロプロセッサであるが、ＧＰＵ（Graphics Processing Unit）のような他種のプロセッサでもよい。少なくとも１つのプロセッサとしてのプロセッサは、シングルコアでもよいしマルチコアでもよい。少なくとも１つのプロセッサは、処理の一部又は全部を行うハードウェア回路（例えばＦＰＧＡ（Field-Programmable Gate Array）又はＡＳＩＣ（Application Specific Integrated Circuit））といった広義のプロセッサでもよい。
【００１３】
また、以下の説明では、「ｘｘｘテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「ｘｘｘテーブル」を「ｘｘｘ情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、１つのテーブルは、２以上のテーブルに分割されてもよいし、２以上のテーブルの全部又は一部が１つのテーブルであってもよい。
【００１４】
また、以下の説明では、「ｋｋｋ部」（インターフェース部、記憶部及びプロセッサ部を除く）の表現にて機能を説明することがあるが、機能は、１以上のコンピュータプログラムがプロセッサ部によって実行されることで実現されてもよいし、１以上のハードウェア回路（例えばＦＰＧＡ又はＡＳＩＣ）によって実現されてもよい。プログラムがプロセッサ部によって実行されることで機能が実現される場合、定められた処理が、適宜に記憶部及び／又はインターフェース部等を用いながら行われるため、機能はプロセッサ部の少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサ部あるいはそのプロセッサ部を有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体（例えば非一時的な記録媒体）であってもよい。各機能の説明は一例であり、複数の機能が１つの機能にまとめられたり、１つの機能が複数の機能に分割されたりしてもよい。
【００１５】
また、以下の説明では、「検索装置」は、１以上の計算機で構成されてよい。具体的には、例えば、計算機が表示デバイスを有していて計算機が自分の表示デバイスに情報を表示する場合、当該計算機が検索装置でよい。また、例えば、第１計算機（例えばサーバ）が表示用情報を遠隔の第２計算機（表示用計算機（例えばクライアント））に送信し表示用計算機がその情報を表示する場合（第１計算機が第２計算機に情報を表示する場合）、第１計算機と第２計算機とのうちの少なくとも第１計算機が検索装置でよい。つまり、「情報を表示する」ことは、計算機が有する表示デバイスに情報を表示することであってもよいし、計算機が表示用計算機に表示用情報を送信することであってもよい（後者の場合は表示用計算機によって表示用情報が表示される）。また、検索装置としての機能を発揮するためのソフトウェア（コンピュータプログラム）が計算機で実行されることでソフトウェアディファインドの検索装置が実現されてもよい。
【００１６】
以下、図面を参照して、本発明の幾つかの実施例を説明する。
【実施例１】
【００１７】
図１５は、本実施例の概要を示す。
【００１８】
検索装置１０１が、ユーザが使用する入出力コンソール１６０（表示用計算機の一例）から検索要求を受け、当該検索要求に応答して検索を行い、検索の結果としての情報を入出力コンソール１６０に表示するようになっている。
【００１９】
具体的には、例えば、検索装置１０１は、加工処理検索部１１１と、検索結果表示部１１２とを有する。加工処理検索部１１１は、データ加工処理定義（又はその加工処理特徴）が指定された検索要求を入出力コンソール１６０から受けて、それぞれが分析について登録済の１以上のデータ加工処理定義１２１にそれぞれ対応した１以上の加工処理特徴１２２から、指定されたデータ加工処理定義の加工処理特徴（又は指定された加工処理特徴）に類似する加工処理特徴１２２を検索する。検索結果表示部１１２は、類似する加工処理特徴１２２を有するデータ加工処理定義１２１に関する情報が関連付いた検索結果１５００を表示する。ユーザは、様々な分析要素の各々について正しいキーを入力できるほど十分に分析の中身を理解していなくても、行いたい分析に関するデータ加工処理定義（又は、当該データ加工処理定義の加工処理特徴）さえ指定できれば、行いたい分析に類似する分析に関する情報の提示を受けることができる。すなわち、ユーザは、分析の検索の際に、分析の目的や手法をカテゴライズしなくて済む。また、データ加工処理定義１２１は、分析の目的や手法をベースに作成されるとは限らない。故に、分析の目的や手法といった観点をキーに検索する方法ではヒットしない分析が見つかる可能性もある。以上のことから、例えば、データ準備作業に費やす時間の削減と、行いたい分析に類似する分析に関する情報が得られる確率の向上とのうちの少なくとも１つが期待できる。なお、加工処理特徴は、分析を区別する特徴のため、本実施例では、いずれのデータ加工処理も、データクレンジングのように多くの分析に共通のデータ加工処理（つまり汎用的なデータ加工処理）ではないものとする。また、データ加工処理定義１２１は、データ加工処理を示す定義（例えば定義ファイル）である。以下、冗長な表現を避けるために、類似する加工処理特徴１２２を有する（類似する加工処理特徴１２２が関連付けられている）データ加工処理定義１２１を「類似するデータ加工処理定義１２１」と言い、類似するデータ加工処理定義１２１に関連付けられているデータ傾向１２３を、「類似するデータ傾向１２３」と言うことがある（「データ傾向」については後述する）。
【００２０】
検索装置１０１は、管理情報１３０を保持する。管理情報１３０は、登録済の１以上のデータ加工処理定義１２１を含む。具体的には、例えば、管理情報１３０は、１以上のエントリユニット１２０で構成される。エントリユニット１２０は、複数のデータセットのグループであり、データ加工処理定義１２１と、当該データ加工処理定義１２１に関連付けられた加工処理特徴１２２及びデータ傾向１２３のうちの少なくとも１つとで構成される。具体的には、例えば、エントリユニット１２０において、データ加工処理定義１２１に、当該データ加工処理定義１２１が示すデータ加工処理で使用されるデータのデータ傾向１２３が関連付けられている。「データ傾向」は、データ加工処理において使用されるデータの統計量（例えば、「JIS Z 8101-1:2015 統計
−用語と記号− 第１部:確率及び一般統計用語（日本規格協会）の「１一般統計用語」」に記載されるような統計量など）であり、具体例として、データにおけるデータセット（例えば値）の数、欠損値量、及び、分布などを挙げることができる。また、エントリユニット１２０において、データ加工処理定義１２１に、当該データ加工処理定義１２１の特徴を示す加工処理特徴１２２が関連付けられている。加工処理特徴１２２がデータ加工処理定義１２１に関連付けられていれば、検索の際に、当該データ加工処理定義１２１について加工処理特徴１２２を算出する必要が無く、故に、高速な検索が期待できる。また、データ傾向１２３がデータ加工処理定義１２１に関連付けられていれば、類似する加工処理特徴１２２（典型的には、過去の類似する分析のデータ加工処理の特徴）に関し、当該加工処理特徴１２２を有する分析（データ加工処理）で使用したデータの傾向もわかるので、過去の類似する分析として適切な分析をユーザが見つけ易くなり、結果として、分析の品質及び効率の少なくとも１つの向上が期待できる。なお、「データセット」とは、アプリケーションプログラムのようなプログラムから見た１つの論理的な電子データの塊であり、例えば、レコード、ファイル、キーバリューペア及びタプルのうちのいずれでもよい。本実施例では、例えば、データ加工処理定義１２１は、ファイルである。また、加工処理特徴が抽出されないデータ加工処理定義１２１を含んだエントリユニット１２０には、加工処理特徴１２２は含まれない。
【００２１】
検索結果１５００には、類似するデータ傾向を示す情報が関連付けられる。入出力コンソール１６０において、検索結果画面（検索結果１５００を表示する画面）には、一致度の上位ｎ件（ｎは自然数）の加工処理特徴１２２の各々について、当該加工処理特徴１２２を有するデータ加工処理定義１２１のファイル名（例えば“001.etl”）と、当該データ加工処理定義１２１に関連付けられているデータ傾向１２３とが表示される。ユーザは、検索結果を見て、類似するデータ傾向が、行いたい分析に則したデータ傾向であるかを評価することができる。表示されるデータ傾向から、ユーザは、類似するデータ加工処理定義１２１が、行いたい分析に類似する分析のデータ加工処理定義１２１であるか否かを判断したり、分析に必要なデータセットがデータに含まれているか否か（例えば、性別で分けた分析をしたいため男性に関するデータセットと女性に関するデータセットの両方があるか否か）を判断したりすることができる。
【００２２】
以下、本実施例を詳細に説明する。
【００２３】
図１は、検索装置１０１の構成を示す。
【００２４】
検索装置１０１は、インターフェース部１５１、メモリ部１５２、ＰＤＥＶ部１５３、及び、それらに接続されたプロセッサ部１５４を有する。
【００２５】
インターフェース部１５１に、通信ネットワーク（例えばインターネット）１７０経由で、入出力コンソール１６０が接続される。入出力コンソール１６０は、表示用計算機の一例であり、例えば、デスクトップ型、ノート型或いはタブレット型のパーソナルコンピュータである。入出力コンソール１６０は、入力デバイス１６１（例えば、キーボード及びポインティングデバイス）と表示デバイス１６２（例えば、液晶ディスプレイ）とを有する。
【００２６】
ＰＤＥＶ部１５３は、管理情報１３０を格納する。管理情報１３０は、特徴管理テーブル１８１及び傾向管理テーブル１８２を含む。管理情報１３０の少なくとも一部が、検索装置１０１の外部の記憶装置に格納されてもよい。
【００２７】
メモリ部１５２は、１以上のコンピュータプログラムを格納する。当該１以上のコンピュータプログラムの少なくとも１つがプロセッサ部１５４により実行されることにより、特徴抽出部１９１、データ登録部１９２、加工処理検索部１１１及び検索結果表示部１１２といった機能が実現される。特徴抽出部１９１は、指定されたデータ加工処理定義の加工処理特徴を当該指定されたデータ加工処理定義から自動抽出する。これにより、ユーザは、検索キーとなる加工処理定義を指定しなくとも、データ加工処理定義を指定すれば、検索キーとなる加工処理特徴が取得されることになる。データ登録部１９２は、データ加工処理定義１２１、加工処理特徴１２２及びデータ傾向１２３を管理情報１３０に登録する。加工処理検索部１１１及び検索結果表示部１１２については、上述の通りである。
【００２８】
図２は、データ登録処理の流れを示す。
【００２９】
データ登録部１９２が、入出力コンソール１６０から、データ加工処理定義１２１と、当該データ加工処理定義１２１が示すデータ加工処理で利用されたデータのデータ傾向１２３との入力を受ける（Ｓ２０１）。
【００３０】
データ登録部１９２が、特徴抽出部１９１を呼び出し、特徴抽出部１９１が、特徴抽出処理を行う（Ｓ２０２）。
【００３１】
データ登録部１９２が、データ加工処理定義１２１とデータ傾向１２３を紐付ける（関連付ける）データ加工処理ＩＤを付与し、データ加工処理定義１２１に、データ加工処理ＩＤとデータ傾向１２３を（Ｓ２０２の結果が抽出成功であれば、当該加工処理特徴１２２も）関連付ける（Ｓ２０３）。Ｓ２０３で、データ加工処理定義１２１、データ加工処理ＩＤ、及びデータ傾向１２３が（Ｓ２０２の結果が抽出成功であれば、当該加工処理特徴１２２も）登録される。
【００３２】
データ登録部１９２は、処理結果を表示する（Ｓ２０４）。ここで言う「処理結果」は、例えば、加工処理特徴１２２の抽出の有無と、登録の成否と、登録されたデータセット群（１以上のデータセット）に関する情報とを含む。
【００３３】
図３は、データ登録画面の一例を示す。
【００３４】
データ登録画面３００は、ＧＵＩ（Graphical User Interface）のようなユーザインターフェース画面である。データ登録画面３００は、例えばデータ登録部１９２により表示されてよい。データ登録画面３００は、ＵＩ（User Interface）３０１、３０２及び３０３を有する。
【００３５】
ＵＩ３０１は、登録対象のデータ加工処理定義の入力用のＵＩである。ＵＩ３０１を用いて、データ加工処理定義が指定（例えば、データ加工処理定義のファイル名を含むファイルパスが入力）される。
【００３６】
ＵＩ３０２は、登録対象のデータ加工処理定義が示すデータ加工処理において使用されるデータのデータ傾向の入力用のＵＩである。ＵＩ３０２によれば、データ傾向は、データにおけるデータ項目と、各データ項目についての標本数、標本欠損数及び標本平均である。
【００３７】
ＵＩ３０３は、データ登録処理の開始の指示用のＵＩである。ＵＩ３０３（例えばボタン）が操作されると、ＵＩ３０１を用いて指定されたデータ加工処理定義とＵＩ３０２を用いて入力されたデータ傾向との登録のためのデータ登録処理（図２）が開始される。
【００３８】
図４は、分析の一例を模式的に示す。
【００３９】
分析は、データ加工処理を含む。データ加工処理実行エンジン（C、Java（登録商標）、Python等の実行エンジン、ＤＢＭＳ（DataBase Management System）、又は、ＥＴＬ（Extract/Transform/Load）ツール）４００が、当該分析に対応したデータ加工処理定義１２１を読み込み、当該定義１２１が示すデータ加工処理を実行する。データ加工処理実行エンジン４００は、検索装置１０１とは別の装置で実行されてもよいし、検索装置１０１で実行されてもよい。データ加工処理は、データセットの結合処理と、データセットの集約処理とのうちの少なくとも１つを含む。
【００４０】
図示の具体例は、次の通りである。入力データは、テーブルＡ〜Ｃを含み、出力データは、テーブルＤを含む。データ加工処理は、テーブルＡ〜Ｃ内のあるカラム（データ項目）をキーとして結合する結合処理と、結合処理により得られたテーブル内のあるカラムを集約キー及び集約対象としてある手法により集約する集約処理とを含む。集約処理の結果として、テーブルＤが出力される。
【００４１】
入力データと出力データの両方又は片方のデータにおける少なくとも１つのデータセットは、テーブルのような構造化データに代えて、非構造化データ（例えば、ＸＭＬ（eXtensible Markup Language）ファイル、又は、ＪＳＯＮ（JavaScript Object Notation）ファイル）でもよいし（JavaScriptは登録商標）、非構造化データ（例えば、センサデータ、画像データ又は音声データ）でもよい。入力データと出力データの両方又は片方のデータに関し、データセット数は問わない。結合処理や集約処理の前後に、異常データの除外や数値計算などの他の処理が入っていてもよい。
【００４２】
図５は、データ加工処理定義１２１の一例の構成を示す。
【００４３】
データ加工処理定義１２１は、データ加工処理（例えば図４参照）の内容をテキストで定義したファイルである。図示の例によれば、データ加工処理定義１２１は、ＸＭＬファイルであるが、ＸＭＬファイルに代えて、例えば、C、Java（登録商標）、Python言語などのプログラミング言語やSQL文、XML形式、JSON形式などの形式で記述されたデータセットでもよい。
【００４４】
データ加工処理定義１２１は、各処理を表す識別子と、該当処理を行うために必要な設定、各処理の順序などの記述を含む。処理を表す識別子として、例えば、<component_type>“A”は、入力Ａを意味し、<component_type>“Groupby”は、集約処理を意味し、<component_type>“Join”は、結合処理を意味する。なお、集約処理に関して、処理を行うために必要な集約キー、集約対象、集約方法は、それぞれ<key>、<target>及び<method>として定義されている。
【００４５】
図６は、特徴管理テーブル１８１の構成を示す。
【００４６】
特徴管理テーブル１８１は、データ加工処理毎にレコードを有する。各レコードが、データ加工処理ＩＤ６０１、定義名６０２、集約キー６０３、集約対象６０４及び集約方法６０５といった情報を格納する。集約キー６０３、集約対象６０４及び集約方法６０５の組合せが、加工処理特徴１２２の一例に相当する。以下、１つのデータ加工処理を例に取る（図６において「対象加工処理」）。
【００４７】
データ加工処理ＩＤ６０１は、対象加工処理に対してデータ登録処理において付与されたＩＤを示す。定義名６０２は、対象加工処理に対応したデータ加工処理定義１２１のファイル名を示す。集約キー６０３は、対象加工処理（集約処理）において使用されるキーとしてのデータ項目（項目名（カラム名））を示す。集約対象６０４は、対象加工処理（集約処理）において集約される値が属するデータ項目を示す。集約方法６０５は、集約方法を示す。
【００４８】
図示の例によれば、例えば次の通りである。例えば、１番目のレコードは、売上明細テーブルから商品毎の売上金額の合計を分析（算出）することを意味する。つまり、データ加工処理実行エンジン４００は、データ項目［商品］をキーに、データ項目［商品］に属する全ての売上金額の合計を算出する。２番目のレコードは、同じ売上明細テーブルから性別毎の売上金額の平均を分析することを意味する。このように、分析種別ごとに分類できるケースがあるため、集約処理の集約キー、集約対象及び集約方法の組合せを加工処理特徴１２２の一例とすることができる。
【００４９】
図７は、傾向管理テーブル１８２の構成を示す。
【００５０】
傾向管理テーブル１８２は、データ加工処理毎にレコードを有する。各レコードが、データ加工処理ＩＤ７０１、データ項目７０２、標本数７０３、標本欠損数７０４及び標本平均７０５といった情報を格納する。データ項目７０２、標本数７０３、標本欠損数７０４及び標本平均７０５の組合せが、データ傾向１２３の一例に相当する。以下、１つのデータ加工処理を例に取る（図７において「対象加工処理」）。
【００５１】
データ加工処理ＩＤ７０１は、対象加工処理に対してデータ登録処理において付与されたＩＤを示す。データ項目７０２、標本数７０３、標本欠損数７０４及び標本平均７０５の組合せが、対象加工処理に属するデータ項目毎に存在する。データ項目７０２は、データ項目を示す。標本数７０３、標本欠損数７０４及び標本平均７０５は、当該データ項目についての標本数、標本欠損数及び標本平均を示す。
【００５２】
図６及び図７によれば、図１５に示したエントリユニット１２０は、同一のデータ加工処理ＩＤに紐づけられた複数のデータセットである。エントリユニット１２０における構成要素は下記の通りである。
・データ加工処理定義１２１は、定義名６０２から特定されるデータ加工処理定義である。
・加工処理特徴１２２は、集約キー６０３、集約対象６０４及び集約方法６０５の組合せである。
・データ傾向１２３は、データ加工処理ＩＤに紐づいたデータ項目毎のデータ項目７０２、標本数７０３、標本欠損数７０４及び標本平均７０５の組合せである。
【００５３】
図８は、特徴抽出処理（図２のＳ２０２、又は、図９のＳ９０２）の流れを示す。
【００５４】
特徴抽出部１９１が、指定されたデータ加工処理定義を取得する（Ｓ８０１）。ここで、「指定されたデータ加工処理定義」とは、図２のデータ登録処理のために指定されたデータ加工処理定義でもよいし、後述の図９の検索処理のために指定されたデータ加工処理定義でもよい。
【００５５】
特徴抽出部１９１が、Ｓ８０１で取得されたデータ加工処理定義に加工処理特徴が存在するか否か、具体的には、<component_type>が“Groupby”である<component>があるか否かを判断する（Ｓ８０２）。
【００５６】
Ｓ８０２の判断結果が偽の場合（Ｓ８０２：Ｎｏ）、特徴抽出部１９１が、抽出失敗を結果として返す（Ｓ８０３）。
【００５７】
Ｓ８０２の判断結果が真の場合（Ｓ８０２：Ｙｅｓ）、特徴抽出部１９１が、データ加工処理定義から加工処理特徴を抽出、具体的には、<component_type>が“Groupby”である<component>内の<key>、<target>及び<method>でそれぞれ指定された値を取得し、取得した値を、それぞれ、集約キー６０３、集約対象６０４及び集約方法６０５とする（Ｓ８０４）。そして、特徴抽出部１９１が、抽出した加工処理特徴（集約キー６０３、集約対象６０４及び集約方法６０５）と抽出成功とを結果として返す（Ｓ８０５）。
【００５８】
図９は、検索処理の流れを示す。
【００５９】
加工処理検索部１１１が、データ加工処理定義が指定された検索要求を受け付ける（Ｓ９０１）。
【００６０】
加工処理検索部１１１が、特徴抽出部１９１を呼び出し、特徴抽出部１９１が、特徴抽出処理を行う（Ｓ９０２）。Ｓ９０２の結果が抽出失敗の場合、検索結果表示部１１２が、特徴を抽出できず検索ができなかったことを検索結果として表示する（Ｓ９０５）。
【００６１】
Ｓ９０２の結果が抽出成功の場合、加工処理検索部１１１が、特徴検索を行う（Ｓ９０３）。すなわち、加工処理検索部１１１が、抽出された加工処理特徴をキーに、特徴管理テーブル１８１から、当該加工処理特徴に類似する（例えば、当該加工処理特徴との一致度が所定度合以上である）加工処理特徴を検索する特徴検索を行う。加工処理検索部１１１が、類似するデータ加工処理定義とそれに紐付くデータ傾向とが関連付いた検索結果を作成する（Ｓ９０４）。当該検索結果は、類似するデータ加工処理定義のデータ加工処理ＩＤも関連付けられる。検索結果表示部１１２が、Ｓ９０４で作成された検索結果を表示する（Ｓ９０５）。
【００６２】
図１０は、特徴検索（図９のＳ９０３）の流れを示す。
【００６３】
加工処理検索部１１１が、Ｓ９０２の特徴抽出処理において抽出された加工処理特徴を取得する（Ｓ１００１）。Ｓ１００１で取得された加工処理特徴を、図１０の説明において「キー特徴」と呼ぶ。
【００６４】
加工処理検索部１１１が、特徴管理テーブル１８１のレコード毎にＳ１００２及びＳ１００３を行う。以下、１つのレコードを例に取る（図１０の説明において「対象レコード」）。
【００６５】
加工処理検索部１１１が、対象レコードが示す加工処理特徴がキー特徴に類似する（例えば、対象レコードが示す加工処理特徴のキー特徴との一致度が所定度合以上か）か否かを判断する。具体的には、例えば、加工処理検索部１１１が、対象レコードが示す加工処理特徴を構成する複数の要素（集約キー６０３、集約対象６０４及び集約方法６０５）と、キー特徴を構成する複数の要素のうち、ｍ個（ｍは自然数、例えばｍ＝２）以上の要素が互いに一致するか否かを判断する（Ｓ１００２）。
【００６６】
Ｓ１００２の判断結果が偽の場合（Ｓ１００２：Ｎｏ）、対象レコードが示す加工処理特徴は、キー特徴に類似しない加工処理特徴である。
【００６７】
Ｓ１００２の判断結果が真の場合（Ｓ１００２：Ｙｅｓ）、対象レコードが示す加工処理特徴は、キー特徴に類似する加工処理特徴である。加工処理検索部１１１が、当該加工処理特徴に関連付いているデータ加工処理ＩＤを出力する（Ｓ１００３）。当該データ加工処理ＩＤが、検索結果に関連付けられることになる。
【００６８】
図１１Ａは、検索画面の一例を示す。
【００６９】
検索画面１１００は、ＧＵＩのようなユーザインターフェース画面である。検索画面１１００は、第１プレーン１１３１と第２プレーン１１３２とを有する。第１プレーン１１３１を含んだ画面と、第２プレーン１１３２を含んだ画面とに分離していてもよい。
【００７０】
第１プレーン１１３１の表示は、例えば加工処理検索部１１１により制御される。第１プレーン１１３１は、検索キーとするデータ加工処理定義の指定と検索実行の指示とを受け付けるプレーンである。具体的には、例えば、第１プレーン１１３１は、ＵＩ１１０１及び１１０２を有する。ＵＩ１１０１は、今回の分析に対応したデータ加工処理定義の入力用のＵＩである。ＵＩ１１０２は、検索処理の開始の指示用のＵＩである。ＵＩ１１０２（例えばボタン）が操作されると、ＵＩ１１０１を用いて指定されたデータ加工処理定義をキーとして指定された検索要求が検索装置１０１へ発行され、当該検索要求に応答して検索処理（図９）が開始される。
【００７１】
第２プレーン１１３２の表示は、例えば検索結果表示部１１２により制御される。第２プレーン１１３２は、検索結果が表示されるプレーンである。具体的には、例えば、第２プレーン１１３２には、検索結果に関連付けられた１以上の検索結果モジュール１１０５の各々について、ＵＩ１１０６〜１１０７が表示される。１つの検索結果モジュール１１０５は、Ｓ１１０３で取得されたデータ加工処理ＩＤに対応する。ＵＩ１１０６は、データ加工処理ＩＤに紐づけられているデータ加工処理定義１２１の定義名を表示するＵＩである。ＵＩ１１０７は、データ加工処理ＩＤに紐づけられているデータ傾向（データ項目７０２、標本数７０３、標本欠損数７０４及び標本平均７０５の組合せ）を表示するＵＩである。ＵＩ１１０８は、ＵＩ１１０６に表示された定義名に対応するデータ加工処理定義１２１の詳細を表示することの指示用のＵＩである。ＵＩ１１０８（例えばボタン）が操作されると、データ加工処理定義１２１の詳細を表示する定義詳細画面（図１１Ｂ）が、例えば検索結果表示部１１２により表示される。
【００７２】
検索結果に関連付けられた１以上の検索結果モジュール１１０５の各々には、当該検索結果モジュール１１０５に対応する類似した分析についてのデータ傾向が含まれている。このため、ユーザにとって、検索結果において提示されているデータ加工処理が、行いたい分析に類似するか否かを判断し易い。
【００７３】
図１１Ｂは、定義詳細画面の一例を示す。
【００７４】
定義詳細画面１１１０は、データ加工処理定義１２１の詳細として、データ加工処理定義１２１が示すデータ加工処理を模式的に示す。また、定義詳細画面１１１０は、データ加工処理について、当該データ加工処理の加工処理特徴の詳細を表示する。詳細は、例えば、加工処理特徴を構成する複数の要素の各々について、当該要素の要素名（例えば“集約キー）”と、当該要素の値（例えば“［商品］”）とを含む。
【００７５】
検索結果に加えて、類似するデータ加工処理の詳細が表示されることで、ユーザにとって、検索結果において提示されているデータ加工処理が、行いたい分析に類似するか否かを一層判断し易い。
【実施例２】
【００７６】
実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略又は簡略する。
【００７７】
図１２は、実施例２に係る特徴管理テーブルの構成を示す。
【００７８】
実施例２に係る特徴管理テーブル１２８１が有する各レコードは、上述した集約キー６０３、集約対象６０４及び集約方法６０５に代えて、結合テーブルの組合せ１２０３といった情報を格納する。すなわち、本実施例では、データ加工処理として、集約処理に代えて又は加えて、結合処理が採用される。
【００７９】
結合テーブルの組合せ１２０３の具体例は、次の通りである。売上明細テーブルから商品毎の売上金額の合計を分析する場合、データ加工処理は、POSデータと商品マスタの結合である（１番目のレコード参照）。また、売上明細テーブルから店舗毎の売上金額の合計を分析する場合、データ加工処理は、POSデータと店舗マスタの結合である（２番目のレコード参照）。このように、分析種別ごとに分類できるケースがあるため、結合テーブルの組合せが、加工処理特徴の一例として採用される。
【００８０】
図１３は、実施例２に係る特徴抽出処理の流れを示す。
【００８１】
特徴抽出部１９１が、Ｓ８０１と同様、指定されたデータ加工処理定義を取得する（Ｓ１３０１）。
【００８２】
特徴抽出部１９１が、Ｓ１３０１で取得されたデータ加工処理定義に加工処理特徴が存在するか否か、具体的には、<component_type>が“Join”である<component>があるか否かを判断する（Ｓ１３０２）。Ｓ１３０２の判断結果が偽の場合（Ｓ１３０２：Ｎｏ）、特徴抽出部１９１が、Ｓ８０３と同様、抽出失敗を結果として返す（Ｓ１３０３）。
【００８３】
Ｓ１３０２の判断結果が真の場合（Ｓ１３０２：Ｙｅｓ）、特徴抽出部１９１が、<component_type>が“Join”である<component>内の<target_right>, <target_left>で指定された値をすべて取得する（Ｓ１３０４）。特徴抽出部１９１が、取得した値の中で重複する値がある場合は、ユニークになるように重複値を除外し、結合テーブル組み合わせとして加工処理特徴を抽出する（Ｓ１３０５）。そして、特徴抽出部１９１が、抽出した加工処理特徴（結合テーブルの組合せ１２０３）と抽出成功とを結果として返す（Ｓ１３０６）。
【００８４】
図１４は、実施例２に係る特徴検索の流れを示す。
【００８５】
加工処理検索部１１１が、図１３の特徴抽出処理において抽出された加工処理特徴を取得する（Ｓ１４０１）。Ｓ１４０１で取得された加工処理特徴を、図１４の説明において「キー特徴」と呼ぶ。
【００８６】
加工処理検索部１１１が、特徴管理テーブル１８１のレコード毎にＳ１４０２及びＳ１４０３を行う。以下、１つのレコードを例に取る（図１４の説明において「対象レコード」）。
【００８７】
加工処理検索部１１１が、対象レコードが示す加工処理特徴がキー特徴に類似するか否かを判断する。具体的には、例えば、加工処理検索部１１１が、キー特徴と対象レコードが示す結合テーブルの組合せ１２０３とが一致するか否かを判断する（Ｓ１４０２）。
【００８８】
Ｓ１４０２の判断結果が真の場合（Ｓ１４０２：Ｙｅｓ）、加工処理検索部１１１が、当該加工処理特徴に関連付いているデータ加工処理ＩＤを出力する（Ｓ１４０３）。
【００８９】
以上、幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【符号の説明】
【００９０】
１０１…検索装置
【図１】
2019159608.tif 000003
【図２】
2019159608.tif 000004
【図３】
2019159608.tif 000005
【図４】
2019159608.tif 000006
【図５】
2019159608.tif 000007
【図６】
2019159608.tif 000008
【図７】
2019159608.tif 000009
【図８】
2019159608.tif 000010
【図９】
2019159608.tif 000011
【図１０】
2019159608.tif 000012
【図１１Ａ】
2019159608.tif 000013
【図１１Ｂ】
2019159608.tif 000014
【図１２】
2019159608.tif 000015
【図１３】
2019159608.tif 000016
【図１４】
2019159608.tif 000017
【図１５】
2019159608.tif 000018
【手続補正書】
【提出日】令和1年7月26日(2019.7.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
指定されたデータ加工処理定義がある場合に当該データ加工処理定義に加工処理特徴が存在するか否かを判断し、当該判断の結果が真の場合に、当該データ加工処理定義から当該加工処理特徴を抽出する特徴抽出部と、
前記データ加工処理定義は、データ加工処理の内容を定義したデータセットであり、当該データ加工処理に対する入力データの定義と、当該入力データを用いて当該データ加工処理が行われた結果である出力データの定義とを含み、
データ登録処理のために指定されたデータ加工処理定義と、当該データ加工処理定義が示すデータ加工処理で利用された入力データのデータ傾向との入力を受け、当該データ加工処理定義と、当該データ加工処理定義に関連付けられたデータ傾向とを登録し、当該データ加工処理定義から加工処理特徴が抽出された場合には、当該データ加工処理定義に関連付けられた当該抽出された加工処理特徴を登録するデータ登録部と、
検索処理のために指定されたデータ加工処理定義の入力を受け付け、当該データ加工処理定義から加工処理特徴が抽出された場合に、それぞれが分析について登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴から、当該抽出された加工処理特徴に類似する加工処理特徴を検索する加工処理検索部と、
前記類似する加工処理特徴を有するデータ加工処理定義と当該データ加工処理定義に関連付いているデータ傾向とを表す情報を含んだ検索結果を表示する検索結果表示部と
を有する検索装置。
【請求項２】
下記（ａ）及び（ｂ）の各々が、データ加工処理に含まれる集約処理の集約キー、集約対象及び集約方法の組合せを含む、
（ａ）前記指定されたデータ加工処理定義の加工処理特徴、又は、前記指定された加工処理特徴、
（ｂ）前記登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴のうちの少なくとも１つ、
請求項１に記載の検索装置。
【請求項３】
下記（ａ）及び（ｂ）の各々が、データ加工処理に含まれる結合処理において結合されるデータ項目の組合せを含む、
（ａ）前記指定されたデータ加工処理定義の加工処理特徴、又は、前記指定された加工処理特徴、
（ｂ）前記登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴のうちの少なくとも１つ、
請求項１に記載の検索装置。
【請求項４】
前記少なくとも１つのデータ加工処理定義に関連付けられているデータ傾向は、当該データ加工処理定義が示すデータ加工処理において使用されるデータの統計量である、
請求項１に記載の検索装置。
【請求項５】
インターフェース部、記憶部及びプロセッサ部を備えた検索装置において、前記記憶部に格納されている１以上のコンピュータプログラムを前記プロセッサ部が実行することにより、
（Ａ）前記検索装置が、データ登録処理のために指定されたデータ加工処理定義と、当該データ加工処理定義が示すデータ加工処理で利用された入力データのデータ傾向との入力を受け付けた場合、
（ａ１）前記検索装置が、当該データ加工処理定義に加工処理特徴が存在するか否かを判断し、当該判断の結果が真の場合に、当該データ加工処理定義から当該加工処理特徴を抽出し、
前記データ加工処理定義は、データ加工処理の内容を定義したデータセットであり、当該データ加工処理に対する入力データの定義と、当該入力データを用いて当該データ加工処理が行われた結果である出力データの定義とを含み、
（ａ２）前記検索装置が、当該データ加工処理定義と、当該データ加工処理定義に関連付けられたデータ傾向とを登録し、当該データ加工処理定義から加工処理特徴が抽出された場合には、当該データ加工処理定義に関連付けられた当該抽出された加工処理特徴を前記記憶部に登録し、
（Ｂ）前記検索装置が、検索処理のために指定されたデータ加工処理定義の入力を受け付けた場合、
（ｂ１）前記検索装置が、当該データ加工処理定義に加工処理特徴が存在するか否かを判断し、当該判断の結果が真の場合に、当該データ加工処理定義から当該加工処理特徴を抽出し、
（ｂ２）前記検索装置が、当該データ加工処理定義から加工処理特徴が抽出された場合に、それぞれが分析について登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴から、当該抽出された加工処理特徴に類似する加工処理特徴を検索し、
（ｂ３）前記検索装置が、前記類似する加工処理特徴を有するデータ加工処理定義と当該データ加工処理定義に関連付いているデータ傾向とを表す情報を含んだ検索結果を、前記インターフェース部に接続されている表示デバイスに表示する、
検索方法。
【請求項６】
（Ａ）データ登録処理のために指定されたデータ加工処理定義と、当該データ加工処理定義が示すデータ加工処理で利用された入力データのデータ傾向との入力を受け付けた場合、
（ａ１）当該データ加工処理定義に加工処理特徴が存在するか否かを判断し、当該判断の結果が真の場合に、当該データ加工処理定義から当該加工処理特徴を抽出し、
前記データ加工処理定義は、データ加工処理の内容を定義したデータセットであり、当該データ加工処理に対する入力データの定義と、当該入力データを用いて当該データ加工処理が行われた結果である出力データの定義とを含み、
（ａ２）当該データ加工処理定義と、当該データ加工処理定義に関連付けられたデータ傾向とを登録し、当該データ加工処理定義から加工処理特徴が抽出された場合には、当該データ加工処理定義に関連付けられた当該抽出された加工処理特徴を登録し、
（Ｂ）検索処理のために指定されたデータ加工処理定義の入力を受け付けた場合、
（ｂ１）当該データ加工処理定義に加工処理特徴が存在するか否かを判断し、当該判断の結果が真の場合に、当該データ加工処理定義から当該加工処理特徴を抽出し、
（ｂ２）当該データ加工処理定義から加工処理特徴が抽出された場合に、それぞれが分析について登録済の１以上のデータ加工処理定義にそれぞれ対応した１以上の加工処理特徴から、当該抽出された加工処理特徴に類似する加工処理特徴を検索し、
（ｂ３）前記類似する加工処理特徴を有するデータ加工処理定義と当該データ加工処理定義に関連付いているデータ傾向とを表す情報を含んだ検索結果を表示する、
ことを計算機に実行させるコンピュータプログラム。