(57)【要約】      （修正有）【課題】データの質を保ちつつ、少ないデータから、それよりもデータサイズが大きいデータを生成することを可能とする。【解決手段】データ生成装置１０において、データ選択部１１は、第１のデータセット２０に含まれるデータを選択する。類似語検索部１２は、検索語に対してそれに類似する語句を返却する類似語検索モデルを用いて、データ選択部１１が選択したデータに類似する類似語を検索する。データ追加部１３は、検索された類似語を、第２のデータセット３０に追加する。第２のデータセットは、第１のデータセットに含まれるデータを含み、かつ第１のデータセットよりもデータサイズが拡大されたデータセットである。【選択図】図１
2018055224.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータセットに含まれるデータを選択するデータ選択部と、
検索語に対して該検索語に類似する語句を返却する類似語検索モデルを用いて、前記データ選択部が選択したデータに類似する類似語を検索する類似語検索部と、
前記検索された類似語を、前記第１のデータセットに含まれるデータを含み、かつ前記第１のデータセットよりもデータサイズが拡大された第２のデータセットに追加するデータ追加部とを備えるデータ生成装置。
【請求項２】
前記類似語検索モデルは、前記検索語に類似する複数の語句と、各語句の検索語への類似の度合いを示すスコアとを返却するものである請求項１に記載のデータ生成装置。
【請求項３】
前記検索された類似語のうち、前記第２のデータセットに追加される類似語を特定する類似語特定部を更に備え、
前記データ追加部は、前記類似語特定部で特定された類似語を前記第２のデータセットに追加する請求項２に記載のデータ生成装置。
【請求項４】
前記類似語特定部は、前記スコアが所定の基準を満たす類似語を前記第２のデータセットに追加される類似語として特定する請求項３に記載のデータ生成装置。
【請求項５】
前記類似語特定部は、前記類似語を前記スコアが高いものから順に並べた場合に、前記スコアが最上位から所定の順位までの間の類似語を、前記第２のデータセットに追加される類似語として特定する請求項４に記載のデータ生成装置。
【請求項６】
前記第１のデータセットが、複数のデータ項目から成るデータの組を複数有しており、
前記データ選択部は、複数のデータの組を１つずつ選択し、該選択したデータの組について、前記複数のデータ項目のデータを順次に１つずつ選択する請求項１から５何れか１項に記載のデータ生成装置。
【請求項７】
前記データ選択部は、前記第２のデータセットのデータサイズが指定されたデータサイズとなるまで、前記データの組の選択を繰り返し実施する請求項６に記載のデータ生成装置。
【請求項８】
前記類似語検索モデルは、自然言語のコーパスを機械学習することで生成されたものである請求項１から７何れか１項に記載のデータ生成装置。
【請求項９】
コンピュータを用いて実施されるデータ生成方法であって、
第１のデータセットに含まれるデータを選択するステップと、
検索語に対して該検索語に類似する語句を返却する類似語検索モデルを用いて、前記データ選択部が選択したデータに類似する類似語を検索するステップと、
前記検索された類似語を、前記第１のデータセットに含まれるデータを含み、かつ前記第１のデータセットよりもデータサイズが拡大された第２のデータセットに追加するステップとを有するデータ生成方法。
【請求項１０】
コンピュータに、
第１のデータセットに含まれるデータを選択するステップと、
検索語に対して該検索語に類似する語句を返却する類似語検索モデルを用いて、前記選択されたデータに類似する類似語を検索するステップと、
前記検索された類似語を、前記第１のデータセットに含まれるデータを含み、かつ前記第１のデータセットよりもデータサイズが拡大された第２のデータセットに追加するステップとを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ生成装置、方法、及びプログラムに関し、更に詳しくは、アプリケーションやサービスの性能検証などに用いられ得るデータを生成するデータ生成装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
機械学習などの統計処理分野や、データベースなどのシステム開発分野において、速度及び精度などの性能評価や負荷テストを行う場合、テスト用のデータ（テストデータ）が用いられることがある。テストデータを用いて実施したテストの結果は、どのようなテストデータが用いられたかに応じて変わる。このため、目的に沿った内容や大きさのテストデータを用意する必要がある。所望の内容や大きさのテストデータが手元にあるとは限らないため、テスト検証や分析検証を行うにあたり、検証者はテストデータの用意に苦労することが想定される。
【０００３】
テストデータを用意する方法としては、下記の方法が考えられる。第１の方法は、調査団体又は調査会社などの組織からデータセットを購入し、その提供を受け、又はダウンロードする方法である。第２の方法は、インターネット上に無料で公開されているデータセットをダウンロードする方法である。第３の方法は、独自に（例えば自社内で）データを集計してデータセットを作成する方法である。第４の方法は、データを生成するツールを購入し、又は作成して、データセットを生成する方法である。
【０００４】
しかしながら、第１の方法は、データセットの購入に掛かるコストや、著作物を取り扱うリスク、或いは、ダウンロードに対するネットワークコストが必要であるという問題がある。また、目的に適したサイズのデータセットが提供されているとは限らないという問題もある。第２の方法は、データサイズがまばらで、目的に適したサイズ及び変数のデータを見つけることが難しいという問題がある。また、この方法も、ダウンロードに際してネットワークコストが発生するという問題がある。
【０００５】
第３の方法は、必要とする大きさのデータセットを用意できない場合があるという問題がある。加えて、個人情報又は社内情報の流出のリスクが伴うという問題もある。第４の方法は、データセットを生成するツールの購入コスト、又はツールを作成する場合にその作成に伴うコストが発生するという問題がある。
【０００６】
テストデータを生成する方法として、マスキングを用いたデータ生成方法がある。しかしながら、このデータ生成方法では、実際の個人情報が利用されるため、ミスや処理端末の紛失などに起因して個人情報漏洩のリスクがあるという課題がある。また、乱数を用いてランダムテキストを入力するデータ生成方法もあるが、この方法についても、データの質及び量が不十分であるなどの課題がある。
【０００７】
ここで、特許文献１は、ソフトウェア生産支援システムにおけるテストデータ作成方法を開示する。特許文献１では、使用頻度が高く、かつデータ項目間の関連性が高いデータを格納した標準テストデータファイルが用いられる。特許文献１に記載の方法は、テストデータのレコードレイアウトを定義するレコード仕様書に従って、標準データ項目名をキーにして、標準テストデータファイルからデータを抽出し、テストデータを生成する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平７−３６７３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１では、使用頻度が高く、かつデータ項目間の関連性が高いデータを含むテストデータが生成できる。しかしながら、特許文献１では、データが特定の傾向を有する既存のデータセットに基づいて、その傾向をある程度維持したまま、データサイズを拡大したテストデータを生成することはできない。既存のデータセットから、データの質をある程度保ちつつ、データサイズを拡大したテストデータを生成することが要望される。
【００１０】
本発明は、上記事情に鑑み、データの質を保ちつつ、少ないデータから、それよりもデータサイズが大きいデータを生成することが可能なデータ生成装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、第１のデータセットに含まれるデータを選択するデータ選択部と、検索語に対して該検索語に類似する語句を返却する類似語検索モデルを用いて、前記データ選択部が選択したデータに類似する類似語を検索する類似語検索部と、前記検索された類似語を、前記第１のデータセットに含まれるデータを含み、かつ前記第１のデータセットよりもデータサイズが拡大された第２のデータセットに追加するデータ追加部とを備えるデータ生成装置を提供する。
【００１２】
本発明は、また、コンピュータを用いて実施されるデータ生成方法であって、第１のデータセットに含まれるデータを選択するステップと、検索語に対して該検索語に類似する語句を返却する類似語検索モデルを用いて、前記データ選択部が選択したデータに類似する類似語を検索するステップと、前記検索された類似語を、前記第１のデータセットに含まれるデータを含み、かつ前記第１のデータセットよりもデータサイズが拡大された第２のデータセットに追加するステップとを有するデータ生成方法を提供する。
【００１３】
さらに、本発明は、コンピュータに、第１のデータセットに含まれるデータを選択するステップと、検索語に対して該検索語に類似する語句を返却する類似語検索モデルを用いて、前記データ選択部が選択したデータに類似する類似語を検索するステップと、前記検索された類似語を、前記第１のデータセットに含まれるデータを含み、かつ前記第１のデータセットよりもデータサイズが拡大された第２のデータセットに追加するステップとを実行させるためのプログラムを提供する。
【発明の効果】
【００１４】
本発明のデータ生成装置、方法、及びプログラムは、データの質を保ちつつ、あるデータセットから、それよりもデータサイズが大きいデータセットを生成することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明のデータ生成装置を示すブロック図。
【図２】本発明の一実施形態に係るデータ生成装置を示すブロック図。
【図３】データ交換部を示すブロック図。
【図４】オリジナルデータの一例を示す図。
【図５】拡大テストデータに類似語が追加された状態を示す図。
【図６】拡大テストデータを示す図。
【図７】類似語検索モデル生成の手順を示すフローチャート。
【図８】拡大テストデータ生成の手順を示すフローチャート。
【図９】オリジナルデータと拡大テストデータの具体例を示す図。
【発明を実施するための形態】
【００１６】
本発明の実施の形態の説明に先立って、本発明の概要を説明する。前述のように、テストデータを用いたテストの実施にあたり、検証者は、所望の内容や大きさのテストデータの用意に苦労することが想定される。特に、分析に用いられるデータセットのうち、ビッグデータ分析分野で利用されるデータセットには、データサイズが巨大なデータセットが必要とされるが、データサイズが巨大なデータセットの入手は容易ではない。本発明者は、金銭的及び通信量的にコストの少ない方法で、ビッグデータ分析分野にも用いられる得るデータセットを用意できないかを考え、本発明に至った。
【００１７】
図１は、本発明のデータ生成装置を示す。データ生成装置１０は、データ選択部１１、類似語検索部１２、及びデータ追加部１３を有する。データ生成装置１０は、第１のデータセット２０から、第２のデータセット３０を生成する。第２のデータセット３０は、第１のデータセット２０に対してデータが追加されることで、データサイズが拡大されたデータセットである。
【００１８】
データ選択部１１は、第１のデータセット２０に含まれるデータを選択する。類似語検索部１２は、検索語に対して、それに類似する語句を返却する類似語検索モデルを用いて、データ選択部１１が選択したデータに類似するデータ（類似語）を検索する。データ追加部１３は、検索された類似語を、第２のデータセット３０に追加する。データ追加部１３が第２のデータセット３０にデータを追加していくことで、第２のデータセット３０のデータサイズが拡大される。
【００１９】
データ生成装置１０では、元の第１のデータセット２０に含まれるデータに類似する語句が検索され、元のデータに類似する語句が、第２のデータセット３０に追加される。第２のデータセット３０に追加されるデータは、第１のデータセット２０に含まれるデータに類似しているため、拡大された第２のデータセット３０におけるデータの傾向と、第１のデータセット２０におけるデータの傾向とは、似た傾向になると考えられる。従って、本発明では、データの質を保ちつつ、第１のデータセット２０から、それよりもデータサイズが拡大された第２のデータセット３０を生成することができる。類似語の検索とその追加を繰り返し実施することで、第２のデータセット３０のデータサイズを、所望のデータサイズまで拡大することができる。
【００２０】
以下、図面を参照しつつ、本発明の実施の形態を詳細に説明する。図２は、本発明の一実施形態に係るデータ生成装置を示す。データ生成装置１００は、クライアント部１１０、アプリケーション部２００、及び出力部３００を有する。データ生成装置１００は、オリジナルデータ４００から、それよりもデータサイズが拡大された拡大データ４１０を生成する。拡大データ４１０は、例えば統計処理分野やシステム開発分野においてテストデータとして使用される。拡大データ（以下、拡大テストデータとも呼ぶ）４１０には、オリジナルデータ４００に存在していたデータと、アプリケーション部２００が追加したデータとが含まれる。
【００２１】
クライアント部１１０は、ハードウェアとしては、例えばユーザが使用するユーザ端末で構成される。ユーザ端末は、典型的には、プロセッサ、及びメモリなどを有するコンピュータ装置である。ユーザ端末は、携帯端末装置や、インターネット接続機能付き携帯電話機などであってもよい。ユーザは、クライアント部１１０を用いて、オリジナルデータ４００をアプリケーション部２００に入力し、拡大テストデータ４１０の生成をリクエストする。また、ユーザは、クライアント部１１０を用いて拡大テストデータ４１０の目標サイズをアプリケーション部２００に入力する。
【００２２】
アプリケーション部２００は、クライアント部１１０から受け取ったリクエストに対してサービスを提供するアプリケーションである。アプリケーション部２００は、リクエスト受付部２１０及びデータ交換部２２０を有する。アプリケーション部２００は、ハードウェアとしては、例えばサーバで構成される。アプリケーション部２００内の各部の機能は、サーバに含まれるプロセッサがプログラムに従って動作することで実現される。
【００２３】
リクエスト受付部２１０は、例えばネットワークを通じてクライアント部１１０と通信する。リクエスト受付部２１０は、クライアント部１１０からオリジナルデータ４００を受け取る。オリジナルデータ４００は、複数の変数（データ項目）から成るデータの組を少なくとも１つ有する。オリジナルデータ４００のデータサイズは、例えば数キロバイト程度であってもよい。リクエスト受付部２１０は、クライアント部１１０から、拡大テストデータの生成要求、及びその目標サイズなども受け付ける。
【００２４】
データ交換部２２０は、リクエスト受付部２１０が受け取ったデータに基づいて、拡大テストデータ４１０を生成する。出力部３００は、拡大テストデータ４１０を出力する。出力部３００は、例えばインターネットなどのネットワークを通じて、ユーザ端末に拡大テストデータ４１０を出力する。あるいは、出力部３００は、例えば図示しない記憶装置に拡大テストデータ４１０を出力する。
【００２５】
図３は、データ交換部２２０を示す。データ交換部２２０は、変数指定部２２１、変数追加部２２２、類似語検索部２２３、及び類似語特定部２２４を有する。データ交換部２２０は、図１のデータ生成装置１０に対応する。変数指定部２２１は図１のデータ選択部１１に対応し、変数追加部２２２はデータ追加部１３に対応し、類似語検索部２２３は類似語検索部１２に対応する。また、オリジナルデータ４００は図１の第１のデータセット２０に対応し、拡大テストデータ４１０は第２のデータセット３０に対応する。
【００２６】
変数指定部２２１は、オリジナルデータ４００に含まれる変数のうち、類似語（類語、同義語、他）を検索する対象の変数（その値）を指定する。変数指定部２２１は、例えば、オリジナルデータ４００に含まれる複数のデータの組を１つ選択し、選択したデータの組について、複数の変数を１つずつ順次に指定（選択）する。類似語検索部２２３は、変数指定部２２１が指定した変数の値（語句）に類似する語句を検索する。
【００２７】
本実施形態では、類似語検索部２２３は、データ交換部２２０へ類似語を提供するための類似語検索モデル２３０を用いて類似語を検索する。類似語検索モデル２３０は、検索語に対して、それに類似する語句を返却する。例えば、類似語検索部２３０は、検索語が指定されると、検索語に類似する複数の語句と、各語句の検索語への類似の度合いを示すスコアとを返却する。
【００２８】
類似語検索部２２３の構築にはモデル生成部２３２が用いられる。モデル生成部２３２は、アプリケーション部２００（図２を参照）の一部であってもよいし、アプリケーション部２００とは別のアプリケーションであってもよい。モデル生成部２３２は、日本語コーパス２３１を訓練データとしてこれを機械学習することで類似語検索モデル２３０を構築する。日本語コーパス２３１には、例えばWikipedia日本語版など自然言語のテキストデータで用いられる。
【００２９】
ここで、類似語の検索には、形態素解析アルゴリズムのうち類似語を抽出する技術を用いることができる。別の言い方をすれば、類似語検索モデル２３０は、形態素解析アルゴリズムのうち類似語を抽出するものに基づいて構築されたものであってもよい。一般に、形態素解析処理を行う場合、Wikipedia日本語版など自然言語のテキストデータがコーパスとして利用され、出現単語の特徴が学習される。本実施形態では、モデル生成部２３２は、日本語コーパス２３１における出現単語の特徴を学習し、類似語検索モデル２３０を構築する。
【００３０】
一般に、類似語検索や類似語抽出は、「Ｒ」や「Ｐｙｔｈｏｎ」といった言語、「ＭｅＣａｂ」や「ＣｈａＳｅｎ」といった形態素解析エンジンや統計分析ソフトウェア、及び「ＷｏｒｄＮｅｔ」などのシソーラスを組み合わせることで実現できる。昨今、機械学習は普及してきており、これらの機械学習ライブラリは広く提供されている。本実施形態では、処理性能の観点から、大量データを高速に処理できるオープンソースソフトウェア「Ａｐａｃｈｅ  Ｓｐａｒｋ」の機械学習ライブラリ「ＭＬｌｉｂ」に含まれる「Ｗｏｒｄ２Ｖｅｃ」を類似語検索モデルに利用するものとする。
【００３１】
類似語特定部２２４は、類似語検索部２２３で検索された類似語の中から、拡大テストデータ４１０に追加データとして追加される変数の値（追加語句）を特定する。例えば、類似語検索部２２３は、類似語検索の結果として、複数の語句を、その類似度を示すスコアと共に出力しており、類似語特定部２２４は、それら複数の語句のうち、スコアが所定の基準を満たす語句を、追加語句として特定する。
【００３２】
変数追加部２２２は、類似語特定部２２４で追加語句として特定された語句を、変数指定部２２１が指定した変数の値として拡大テストデータ４１０に追加する。変数指定部２２１が行う変数の指定（データの組の選択）、類似語検索部２２３が行う類似語の検索、類似語特定部２２４が行う追加される類似語の特定、及び変数追加部２２２が行う類似語の追加は、拡大テストデータ４１０のデータサイズが指定されたデータサイズとなるまで、繰り返し実施される。
【００３３】
図４は、オリジナルデータ４００の一例を示す。この例では、オリジナルデータ４００は、変数１から変数６の６つの変数（データ項目)を有している。オリジナルデータ４００は、変数１から変数６の各データから成るデータの組を、複数有している。例えばあるデータの組において、変数１の値は「１Ａ」であり、変数２の値は「２Ａ」であり、変数３の値は「３Ａ」であり、変数４の値は「４Ａ」であり、変数５の値は「５Ａ」であり、変数６の値は「６Ａ」である。図４において、“行”はデータの組に対応し、“列”は変数に対応する。
【００３４】
変数指定部２２１は、オリジナルデータ４００のデータの組のうちの１つを選択し、選択した組について変数を１つずつ順次に選択して、その値を類似語検索部２２３に渡す。例えば、変数指定部２２１は、オリジナルデータ４００の１行目の組を選択する。変数指定部２２１は、まず「変数１」を選択し、そのデータ「１Ａ」を類似語検索部２２３に渡す。次いで、変数指定部２２１は、「変数２」を選択して、そのデータ「２Ａ」を類似語検索部２２３に渡す。以下、同様に、「変数３」〜「変数６」を順次に選択して、データ「３Ａ」〜「６Ａ」を順次に類似語検索部２２３に渡す。
【００３５】
類似語検索部２２３は、データ「１Ａ」に類似する語句の検索結果として、類似語「１Ａ＿１」を含む複数の類似語を出力する。類似語特定部２２４は、類似語検索部２２３で検索された類似語の中から、追加語句を特定する。類似語特定部２２４は、例えば検索された類似語をスコアが高いものから順に並べた場合に、スコアが最上位から所定の順位までの間の類似語を追加語句として特定する。ここでは、類似語特定部２２４は、最上位の類似語のみを追加語句として特定するものとする。
【００３６】
変数追加部２２２は、類似語特定部２２４で追加語句として特定された類似語を、拡大テストデータ４１０に追加する。図５は、拡大テストデータ４１０に類似語「１Ａ＿１」が追加された状態を示している。類似語「１Ａ＿１」が追加されると、変数指定部部２２１は、次の変数である「変数２」を選択し、そのデータ「２Ａ」を類似語検索部２２３に渡す。類似語検索部２２３はデータ「２Ａ」に類似する語句を検索し、類似語特定部２２４は類似語「２Ａ＿１」を追加語句として特定する。変数追加部２２２は、類似語「２Ａ＿１」を拡大テストデータ４１０に追加する。以下、同様な手順でデータ「３Ａ」〜「６Ａ」に類似する類似語「３Ａ＿１」〜「６Ａ＿１」が追加語句として特定され、拡大テストデータ４１０に追加される。
【００３７】
変数指定部２２１は、選択した行の各変数を選択し終えると、別の行を選択する。変数指定部２２１は、例えば、オリジナルデータ４００の１行目の組に次いで、２行目の組を選択する。類似語検索部２２３は、「１Ｂ」〜「６Ｂ」の各データに類似する類似語を検索し、類似語特定部２２４は類似語「１Ｂ＿１」〜「６Ｂ＿１」を追加語句として特定し、変数追加部２２２は、それら追加語句を拡大テストデータ４１０に追加する。
【００３８】
引き続き、変数指定部２２１は、例えばオリジナルデータ４００の３行目の組を選択する。類似語検索部２２３は、「１Ｃ」〜「６Ｃ」の各データに類似する類似語を検索し、類似語特定部２２４は類似語「１Ｃ＿１」〜「６Ｃ＿１」を追加語句として特定し、変数追加部２２２は、それら追加語句を拡大テストデータ４１０に追加する。
【００３９】
図６は、拡大テストデータ４１０を示す。拡大テストデータ４１０は、オリジナルデータ４００が有していたデータに、それらに類似するデータ（追加語句）が追加されたデータである。上記したデータの組（行）の選択は、拡大テストデータ４１０のデータサイズが所望のデータサイズになるまで繰り返し実施される。追加されるデータは、オリジナルデータ４００に含まれる各データに類似しているため、オリジナルデータ４００におけるデータの傾向は、拡大テストデータ４１０において追加されたデータにも引き継がれていると考えられる。
【００４０】
なお、上記では、変数指定部２２１が、データの各組について全ての変数を順次に選択することとしたが、これには限定されない。変数指定部２２１は、オリジナルデータ４００に含まれる変数のうち、特定の変数については、選択の対象から除外してもよい。例えば、変数指定部２２１は、類似語検索に基づくデータの追加に適さない変数、例えば数値、性別、及び都道府県などの変数については、選択の対象から除外し、これら変数については類似語検索を実施させないこととしてもよい。選択の対象から除外された変数については、例えば乱数などを用いて変数の値を決定することとしてもよい。
【００４１】
以下、動作手順を説明する。まず、類似語検索モデルの生成の手順を説明する。図７は、類似語検索モデル生成の手順を示す。モデル生成部２３２（図３を参照）には、類似語を検索する際の訓練データとして日本語コーパス２３１が与えられる（ステップＡ１）。モデル生成部２３２は、日本語コーパス２３１における出現単語の特徴を学習し、類似語検索モデル２３０を構築する（ステップＡ２）。この類似語検索モデル２３０の構築は、拡大テストデータの生成前に一度だけ実施すればよい。
【００４２】
次いで、拡大テストデータ生成の手順を説明する。図８は、拡大テストデータ生成の手順を示す。データ交換部２２０には、クライアント部１１０及びリクエスト受付部２１０（図２を参照）を通じてオリジナルデータ４００が与えられる（ステップＢ１）。クライアント部１１０は、例えばＷｅｂブラウザなどを通じて、リクエスト受付部２１０へ拡大テストデータの生成を要求する。アプリケーション部２００は、要求を受理すると、オリジナルデータ４００を確認し、データの型及び変数を特定する。データの型及び変数は、ユーザがアプリケーション部２００に対して与えてもよい。
【００４３】
アプリケーション部２００は、オリジナルデータ４００のデータサイズと、ユーザが指定したデータサイズとに基づいて、オリジナルデータ４００からどれくらいデータを増やすのかを決定する（ステップＢ２）。アプリケーション部２００は、ステップＢ２では、例えばオリジナルデータ４００に対して何組分（何行分）のデータを追加すればよいかを決定する。
【００４４】
変数指定部２２１は、類似語検索を用いて増加させる変数を指定する（ステップＢ３）。類似語検索部２２３は、指定された変数に類似する語句を検索する（ステップＢ４）。類似語特定部２２４は、検索された類似語のうち、拡大テストデータ４１０に追加するものを特定する。変数追加部２２２は、特定された類似語を、新たな変数として拡大テストデータ４１０に追加する（ステップＢ５）。
【００４５】
変数の指定から類似語の追加までの処理は、例えば、指定する変数（データ項目）を変化させながらオリジナルデータ４００の行単位で実施される。例えば、類似語特定部２２４において、検索された類似語のうち、スコアが上位３位までの類似語が追加語句として特定される場合、オリジナルデータ４００の１行のデータに対して、３行分のデータが拡大テストデータ４１０に追加される。
【００４６】
データ変換部２２０は、拡大テストデータ４１０のデータサイズが目標サイズに達したか否かを判断する（ステップＢ６）。ステップＢ６では、例えば拡大テストデータ４１０に、ステップＢ２で決定された追加行数分のデータが追加されたか否かが判断される。データサイズが目標サイズに到達していないと判断された場合、処理はステップＢ３に戻り、データサイズが目標サイズに到達するまで、変数の指定、類似語の検索、及び類似語の追加が繰り返し実施される。ステップＢ６でデータサイズが目標サイズに到達したと判断されると、出力部３００は、拡大テストデータ４１０を出力する（ステップＢ７）。
【００４７】
図９は、オリジナルデータ４００と拡大テストデータ４１０の具体例を示す。オリジナルデータ４００は、製品系データであり、データ項目として、製造元、製品名、ＯＳ、用途、価格、ＣＰＵ（Central Processing Unit）（そのコア数）、及びメモリ容量（ギガバイト）を有している。
【００４８】
変数指定部２２１は、データ項目「製造元」のデータ「Ａ社」を指定し、類似語検索部２２３は、類似語検索モデル２３０を用いて「Ａ社」に類似する類似語を検索する。類似語特定部２２４は、類似語検索部２２３が「Ａ社」の類似語として検索した語句のうち、スコアが上位の「Ｂ社」を追加語句として特定し、変数追加部２２２は、拡大テストデータ４１０のデータ項目「製造元」に「Ｂ社」を追加する。
【００４９】
上記と同様な処理が、データ項目「製品名」のデータ「サーバＣ」、データ項目「ＯＳ」のデータ「Ubuntu」、データ項目「用途」のデータ「業務用」、データ項目「価格」のデータ「２００，０００円」、データ項目「ＣＰＵ（コア）」のデータ「１２コア」、及びデータ項目「メモリ（ＧＢ）」のデータ「１６ＧＢ」にも実施される。類似語検索では、例えば「１２コア」などの単位が付与された数値は語句とみなして類似語が検索されるものとする。類似語検索の結果、「サーバＤ」、「Windows（登録商標）」、「家庭用」、「１６０，０００円」、「４コア」、及び「８ＧＢ」の各データが拡大テストデータ４１０に追加される。
【００５０】
なお、オリジナルデータ４００のデータに空欄（NULL）がある場合、その空欄の割合は拡大テストデータ４１０へ踏襲されることが好ましい。前述のように、データ項目に、性別や都道府県など、類似語検索に基づくデータの追加が適していないものが含まれる場合、そのようなデータ項目は、類似語検索の対象から除外されてもよい。
【００５１】
本実施形態では、オリジナルデータ４００に含まれるデータに類似する類似語を検索し、オリジナルデータ４００に対して検索された類似語を追加した拡大テストデータ４１０を生成する。拡大テストデータ４１０は、追加された類似語の分だけデータサイズが大きく、従って、オリジナルデータ４００よりもデータサイズが大きい。拡大テストデータ４１０において追加されたデータは、オリジナルデータ４００のデータに類似しているため、本実施形態では、データの質をある程度保ちつつ、データサイズが小さいデータセットから、データサイズが拡大されたデータセットを得ることが可能である。
【００５２】
特許文献１との比較では、特許文献１では、テストデータの生成に、使用頻度が高く、かつデータ項目間の関連性が高いデータを格納した標準テストデータファイルが用いられる。特許文献１では、レコード仕様書に従って標準テストデータファイルからデータを抽出しテストデータを生成しているため、データサイズが小さいオリジナルデータ４００から、それと似たデータ特性を有し、かつそれよりもデータサイズが大きい拡大テストデータ４１０を生成することはできない。
【００５３】
本実施形態では、類似語検索に、日本語コーパス２３１における出現単語の特徴を学習させることで構築された類似語検索モデル２３０が用いられる。拡大テストデータ４１０には、類似語検索モデル２３０を用いて検索された類似語が、追加のデータとして含まれる。類似語検索に、日本語コーパス２３１を学習することで得られた類似語検索モデル２３０を用いることで、特許文献１と比較して、客観的な視点で選定された語句を拡大テストデータ４１０に加えることができる。このため、例えば拡大テストデータ４１０を性能評価などのテストに用いた場合に、正確な性能評価を得ることができることが期待できる。
【００５４】
本実施形態において、拡大テストデータ４１０において追加されるデータの質は、類似語検索モデル２３０の構築において学習させる日本語コーパス２３１のテキストの内容や量に依存する。類似語検索モデル２３０の構築に、Wikipedia日本語版などの膨大なコーパスを用いることで、類似語検索の精度を上げることが可能である。その場合、一般的なデータ生成ツールでは作成できない精度のデータセットを提供することが可能である。
【００５５】
本実施形態では、データサイズが小さいオリジナルのデータセット（オリジナルデータ４００）データから、所望のサイズのデータセット（拡大テストデータ４１０）を生成できる。このため、データセットを生成するツールの購入コスト、公開されているデータセットを検索する時間的負担、或いは社内秘情報や他者が権利を持つ著作物を取り扱うリスクなどを解消することが可能である。また、拡大テストデータ４１０のデータサイズをビッグデータ相当のデータセットサイズとすることもでき、増加する情報量を活用するために普及しつつあるビッグデータ分析分野において、それに対応したデータサイズのテストデータが提供可能である。
【００５６】
なお、上記実施形態では、類似語の検索モデルに「Ｗｏｒｄ２Ｖｅｃ」を利用する例について説明したが、検索モデルはこれには限定されない。類似語検索に用いられるモデルは、「Ｗｏｒｄ２Ｖｅｃ」には限定されず、他の方法で作成されたモデルが類似語検索モデルとして用いられてもよい。類似語検索は、日本語以外の言語でも利用されており、上記実施形態は、日本語以外の言語のデータに対しても、同様に適用可能である。
【００５７】
上記実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、例えばフレキシブルディスク、磁気テープ、又はハードディスクなどの磁気記録媒体、例えば光磁気ディスクなどの光磁気記録媒体、ＣＤ（compact disc）、又はＤＶＤ（digital versatile disk）などの光ディスク媒体、及び、マスクＲＯＭ（read only memory）、ＰＲＯＭ（programmable ROM）、ＥＰＲＯＭ（erasable PROM）、フラッシュＲＯＭ、又はＲＡＭ（random access memory）などの半導体メモリを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）を用いてコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバなどの有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００５８】
以上、本発明の実施形態を詳細に説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で上記実施形態に対して変更や修正を加えたものも、本発明に含まれる。
【符号の説明】
【００５９】
１０：データ生成装置
１１：データ選択部
１２：類似語検索部
１３：データ追加部
２０：第１のデータセット
３０：第２のデータセット
１００：データ生成装置
１１０：クライアント部
２００：アプリケーション部
２１０：リクエスト受付部
２２０：データ交換部
２２１：変数指定部
２２２：変数追加部
２２３：類似語検索部
２２４：類似語特定部
２３０：類似語検索モデル
２３１；日本語コーパス
２３２：モデル生成部
３００：出力部
４００：オリジナルデータ
４１０：拡大データ
【図１】
2018055224.tif 000003
【図２】
2018055224.tif 000004
【図３】
2018055224.tif 000005
【図４】
2018055224.tif 000006
【図５】
2018055224.tif 000007
【図６】
2018055224.tif 000008
【図７】
2018055224.tif 000009
【図８】
2018055224.tif 000010
【図９】
2018055224.tif 000011