(57)【要約】【課題】  ＣＳＶファイルが異常データレコードを含む場合に、異常データレコードが示すデータも含む再現データを生成し得る技術を提供する。【解決手段】  端末装置の制御部は、読み込んだＣＳＶファイルに異常データレコードが含まれている場合に（Ｓ１２でＹＥＳ）、異常データレコードを１組以上の変換データレコードに変換し（Ｓ２０）、１組以上の変換データレコードのなかから特定データレコードを特定し（Ｓ２２、Ｓ２４）、正常データレコードと特定データレコードとを用いて再現データを生成する（Ｓ２８）。【選択図】図２
2017059132.tif 000002
【特許請求の範囲】
【請求項１】
端末装置であって、
Ｌ組（Ｌは２以上の整数）のデータレコードを含むＣＳＶファイルを読み込む読込部と、
前記ＣＳＶファイルに含まれる前記Ｌ組のデータレコードを、カンマによって区切られるデータカラムの数がＭ個（Ｍは１以上の整数）であるＮ組（Ｎは１以上Ｌ以下の整数）の正常データレコードと、前記データカラムの数が前記Ｍ個より多い（Ｌ−Ｎ）組の異常データレコードと、に区分する区分部と、
前記Ｎ組の正常データレコードの各データカラムに含まれる各文字を文字コードに従って数値化し、前記Ｍ個のデータカラムのそれぞれについて、当該データカラムに含まれる１文字当たりの数値を平均した第１平均値を算出する算出部と、
前記（Ｌ−Ｎ）組の異常データレコードのそれぞれについて、当該異常データレコードをＭ個のデータカラムを有する１組以上の変換データレコードに変換する変換部であって、前記１組以上の変換データレコードは、互いにデータカラムの区切りを示すカンマの位置が異なる、前記変換部と、
前記１組以上の変換データレコードのそれぞれについて、各データカラムに含まれる各文字を、前記文字コードに従って数値化し、前記Ｍ個のデータカラムのそれぞれについて、当該データカラムに含まれる１文字当たりの数値の平均値である第２平均値を算出し、算出された前記第２平均値と前記第１平均値とを比較し、その差分を特定する比較部と、
前記１組以上の変換データレコードのうち、データカラムごとの前記差分がもっとも小さい特定データレコードを特定する特定部と、
前記Ｎ組の正常データレコードのそれぞれについて、当該正常データレコードに含まれる前記Ｍ個のデータカラムに含まれる文字列を、前記Ｍ個の対応する入力欄に入力するとともに、（Ｌ−Ｎ）組の特定データレコードのそれぞれについて、当該特定データレコードに含まれる前記Ｍ個のデータカラムに含まれる文字列を、前記Ｍ個の対応する入力欄に入力することによって再現データを生成する生成部と、
を備える端末装置。
【請求項２】
前記再現データを表示装置に表示するとともに、前記再現データに含まれるＬ組のデータのうち、前記（Ｌ−Ｎ）組の特定データレコードによって表されるデータを、前記Ｎ組の正常データレコードによって表されるデータと区別して表示する、表示制御部をさらに備える請求項１に記載の端末装置。
【請求項３】
コンピュータを備えた端末装置のためのコンピュータプログラムであって、
前記コンピュータに、
Ｌ組（Ｌは２以上の整数）のデータレコードを含むＣＳＶファイルを読み込む読込処理と、
前記ＣＳＶファイルに含まれる前記Ｌ組のデータレコードを、カンマによって区切られるデータカラムの数がＭ個（Ｍは１以上の整数）であるＮ組（Ｎは１以上Ｌ以下の整数）の正常データレコードと、前記データカラムの数が前記Ｍ個より多い（Ｌ−Ｎ）組の異常データレコードと、に区分する区分処理と、
前記Ｎ組の正常データレコードの各データカラムに含まれる各文字を文字コードに従って数値化し、前記Ｍ個のデータカラムのそれぞれについて、当該データカラムに含まれる１文字当たりの数値を平均した第１平均値を算出する算出処理と、
前記（Ｌ−Ｎ）組の異常データレコードのそれぞれについて、当該異常データレコードをＭ個のデータカラムを有する１組以上の変換データレコードに変換する変換処理であって、前記１組以上の変換データレコードは、互いにデータカラムの区切りを示すカンマの位置が異なる、前記変換処理と、
前記１組以上の変換データレコードのそれぞれについて、各データカラムに含まれる各文字を、前記文字コードに従って数値化し、前記Ｍ個のデータカラムのそれぞれについて、当該データカラムに含まれる１文字当たりの数値の平均値である第２平均値を算出し、算出された前記第２平均値と前記第１平均値とを比較し、その差分を特定する比較部と、
前記１組以上の変換データレコードのうち、データカラムごとの前記差分がもっとも小さい特定データレコードを特定する特定処理と、
前記Ｎ組の正常データレコードのそれぞれについて、当該正常データレコードに含まれる前記Ｍ個のデータカラムに含まれる文字列を、前記Ｍ個の対応する入力欄に入力するとともに、（Ｌ−Ｎ）組の特定データレコードのそれぞれについて、当該特定データレコードに含まれる前記Ｍ個のデータカラムに含まれる文字列を、前記Ｍ個の対応する入力欄に入力することによって再現データを生成する生成処理と、
を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する技術は、端末装置と、端末装置のためのコンピュータプログラムに関する。
【背景技術】
【０００２】
端末装置において、ユーザアプリケーションを用いて作成されたデータをエクスポートする際に、ＣＳＶファイルに変換することがよく行われている。ＣＳＶファイルとは、１つのデータレコードが複数のデータカラム（即ち項目データ）で構成されている場合に、各データカラムがカンマ（，）によって区切られているファイルを意味する。特許文献１には、ユーザアプリケーションで作成したデータを、使用者が指定したパターンに従ってＣＳＶファイルに変換する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２４２６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
端末装置がＣＳＶファイルを読み込んで、ユーザアプリケーションを用いて作成されたデータを再現する場合がある。この際、ＣＳＶファイルに、データカラムの数が所定の数よりも多い異常データレコードが含まれている場合がある。例えば、データカラム内の文字列（データ）に何らかの理由でカンマが含まれている場合に異常データレコードであると判断される場合がある。特許文献１の技術では、作成されたＣＳＶファイルを読み込んで再現データを生成する際に、ＣＳＶファイルが異常データレコードを含む場合のことは考慮されていない。そのため、従来の技術では、再現データの生成の際、異常データレコードが示すデータは再現対象から除外されてしまい、再現データには含まれなかった。
【０００５】
本明細書では、ＣＳＶファイルが異常データレコードを含む場合に、異常データレコードが示すデータも含む再現データを生成し得る技術を提供する。
【課題を解決するための手段】
【０００６】
本明細書は、以下の端末装置を開示する。端末装置は、読込部と、区分部と、算出部と、変換部と、比較部と、特定部と、生成部とを備える。読込部は、Ｌ組（Ｌは２以上の整数）のデータレコードを含むＣＳＶファイルを読み込む。区分部は、ＣＳＶファイルに含まれるＬ組のデータレコードを、カンマによって区切られるデータカラムの数がＭ個（Ｍは１以上の整数）であるＮ組（Ｎは１以上Ｌ以下の整数）の正常データレコードと、データカラムの数がＭ個より多い（Ｌ−Ｎ）組の異常データレコードとに区分する。算出部は、Ｎ組の正常データレコードの各データカラムに含まれる各文字を文字コードに従って数値化し、Ｍ個のデータカラムのそれぞれについて、当該データカラムに含まれる１文字当たりの数値を平均した第１平均値を算出する。変換部は、（Ｌ−Ｎ）組の異常データレコードのそれぞれについて、当該異常データレコードをＭ個のデータカラムを有する１組以上の変換データレコードに変換する。１組以上の変換データレコードは、互いにデータカラムの区切りを示すカンマの位置が異なる。比較部は、１組以上の変換データレコードのそれぞれについて、各データカラムに含まれる各文字を文字コードに従って数値化し、前記Ｍ個のデータカラムのそれぞれについて、当該データカラムに含まれる１文字当たりの数値の平均値である第２平均値を算出し、算出された前記第２平均値と前記第１平均値とを比較し、その差分を特定する。特定部は、１以上の変換データレコードのうち、差分がもっとも小さい特定データレコードを特定する。生成部は、Ｎ組の正常データレコードのそれぞれについて、当該正常データレコードに含まれるＭ個のデータカラムに含まれる文字列を、Ｍ個の対応する入力欄に入力するとともに、（Ｌ−Ｎ）組の特定データレコードのそれぞれについて、当該特定データレコードに含まれるＭ個のデータカラムに含まれる文字列を、Ｍ個の対応する入力欄に入力することによって再現データを生成する。
【０００７】
この構成によると、端末装置は、読み込んだＣＳＶファイルに異常データレコードが含まれている場合に、異常データレコードを１組以上の変換データレコードに変換し、１組以上の変換データレコードのなかから特定データレコードを特定し、正常データレコードと特定データレコードとを用いて再現データを生成する。ＣＳＶファイルに含まれるＮ個の正常データレコードには、データカラムごとに共通の文字種（例えば、漢字、カタカナ、アルファベット、数字等）の文字列が含まれる可能性が高い。そのため、各データカラムに含まれる各文字を示す数値は、おおよその一定の数値範囲を有する。従って、各データカラムにおいて、第１平均値と第２平均値との差分が小さい場合、各データカラムに本来入力されるべき文字種の文字が含まれている可能性が高い。すなわち、特定データレコードは、１以上の変換データレコードのうち、正常データレコードにもっとも近い特性を有するデータである可能性が高い。そのため、正常データレコードと特定データレコードとを用いて再現データを生成することにより、ＣＳＶファイルに異常データレコードが含まれている場合であっても、当該異常データレコードが示すデータを含む再現データを適切に生成し得る。
【０００８】
なお、上記の端末装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ読取可能記録媒体も、新規で有用である。
【図面の簡単な説明】
【０００９】
【図１】端末装置の構成を模式的に示すブロック図。
【図２】端末装置の制御部が実行するＣＳＶファイル取り込み処理を示すフローチャート。
【図３】元データの具体例を示す図。
【図４】ＣＳＶファイルの具体例を示す図。
【図５】「都道府県」に含まれる各文字に対応する数値の具体例を示す図。
【図６】「色」に含まれる各文字に対応する数値の具体例を示す図。
【図７】「ナンバー」に含まれる各文字に対応する数値の具体例を示す図。
【図８】正常データレコードＲ１、Ｒ３、Ｒ４の各データカラムの数値の第１平均値を示す図。
【図９】異常データレコードＲ２に基づく変換データレコードＴ２１〜Ｔ２３と、各カラムの数値の第２平均値と、第１平均値と第２平均値との差分率の具体例を示す図。
【図１０】異常データレコードＲ５に基づく変換データレコードＴ５１〜Ｔ５６と、各カラムの数値の第２平均値と、第１平均値と第２平均値との差分率の具体例を示す図。
【図１１】再現データの具体例を示す図。
【発明を実施するための形態】
【００１０】
以下に説明する実施例の主要な特徴を列記しておく。なお、以下に示す技術要素は、それぞれ独立した技術要素であって、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。
【００１１】
（特徴１）端末装置は、再現データを表示装置に表示するとともに、再現データに含まれるＬ組のデータのうち、（Ｌ−Ｎ）組の特定データレコードによって表されるデータを、Ｎ組の正常データレコードによって表されるデータと区別して表示するようにしてもよい。
【００１２】
この構成によると、再現データを見たユーザが、特定データレコードによって表されるデータを容易に認識することができる。そのため、データの確認、修正等の作業を容易に行い得る。
【００１３】
（実施例）
（端末装置１０の構成；図１）
図１に示す端末装置１０は、他の端末装置がユーザアプリケーションを用いて作成したＣＳＶファイルを読み込んで、元のデータを再現するための装置である。端末装置１０は、例えばＰＣである。ＣＳＶファイルとは、１つのデータレコードが複数のデータカラム（即ち項目データ）で構成されている場合に、各データカラムがカンマ（，）によって区切られているファイルである。ＣＳＶファイルは、他の端末装置がユーザアプリケーションを用いて作成したデータ（即ち元のデータ）を、他の装置（例えば端末装置１０）によって再現するためにエクスポート（出力）することによって生成されるファイルである。
【００１４】
端末装置１０は、操作部１２と、表示部１４と、外部インターフェース１６と、制御部２０と、メモリ３０と、を備える。以下では、インターフェースのことを単に「Ｉ／Ｆ」と記載する。
【００１５】
操作部１２は、キーボード及びマウスを備える。端末装置１０のユーザは、操作部１２を操作して、様々な指示を端末装置１０に入力することができる。
【００１６】
表示部１４は、様々な情報を表示するためのディスプレイである。
【００１７】
外部Ｉ／Ｆ１６は、外部記録媒体（例えば、ＵＳＢメモリ、ＣＤ−ＲＯＭ等）を読み取るためのインターフェースである。本実施例で端末装置１０が読み取る対象のＣＳＶファイルは、例えば外部記録媒体に記録されている。
【００１８】
制御部２０は、メモリ３０内に記憶されているプログラムに従って、後述のＣＳＶファイル取り込み処理（図２参照）を含む様々な処理を実行する。プログラムは、他の端末装置が元のデータを生成する際に使用したユーザアプリケーションと同様のユーザアプリケーションを含む。ユーザアプリケーションは、他の端末装置が元のデータをエクスポートすることによって生成されたＣＳＶファイルを取り込んで（即ちインポートして）、元のデータの形式に従って再現するためのプログラムを含む。制御部２０が実行するＣＳＶファイル取り込み処理の内容は後で詳しく説明する。
【００１９】
メモリ３０は、制御部２０が後述のＣＳＶファイル取り込み処理（図２参照）を含む様々な処理を実行するためのプログラムを記憶している。
【００２０】
（ＣＳＶファイル取り込み処理；図２）
続いて、図２を参照して、制御部２０が実行するＣＳＶファイル取り込み処理の内容を説明する。
【００２１】
端末装置１０の外部Ｉ／Ｆ１６に、ＣＳＶファイルが記憶された外部記録媒体がセットされた状態で、操作部１２に所定のＣＳＶファイル取り込み処理の開始指示が入力されると、制御部２０は図２のＣＳＶファイル取り込み処理を開始する。
【００２２】
Ｓ１０では、制御部２０は、外部Ｉ／Ｆ１６を介して、取り込み対象のＣＳＶファイルを読み込む。ＣＳＶファイルは、Ｌ組（Ｌは２以上の整数）のデータレコードを含む。各データレコードは、カンマによって区切られた複数個のデータカラム（即ち項目データ）を含む。各データカラムに含まれるデータは、いずれも、他のユーザアプリケーションを用いて作成した元のデータ（以下「元データ」と呼ぶ）において、所定の入力欄に入力されていたデータに対応する。
【００２３】
続くＳ１２では、制御部２０は、読み込まれたＣＳＶファイル中に、異常データレコードが含まれるか否か判断する。読み込まれたＣＳＶファイルに含まれるＬ組のデータレコード中に、データカラムの数が、予め定められた数であるＭ個（Ｍは１以上の整数）のデータレコードのみが含まれている場合、制御部２０はＳ１２でＮＯと判断し、Ｓ２８に進む。一方、読み込まれたＣＳＶファイルに含まれるＬ組のデータレコード中に、データカラムの数が上記のＭ個よりも多いデータレコードが１組でも含まれている場合、制御部２０はＳ１２でＹＥＳと判断し、Ｓ１４に進む。以下では、データカラムの数が予め定められた数であるＭ個であるデータレコードのことを「正常データレコード」と呼び、データカラムの数が上記のＭ個よりも多いデータレコードのことを「異常データレコード」と呼ぶ。異常データレコードは、データカラム内の文字列（データ）に何らかの理由でカンマが含まれたことによって発生する。
【００２４】
Ｓ１４では、制御部２０は、ＣＳＶファイルに含まれるＬ組のデータレコードを、Ｎ組（Ｎは１以上Ｌ以下の整数）の正常データレコードと、（Ｌ−Ｎ）組の異常データレコードとに区分する。
【００２５】
続くＳ１６では、制御部２０は、Ｎ組の正常データレコードの各データカラムについて、第１平均値を算出する。
【００２６】
具体的には、まず、制御部２０は、Ｎ組の正常データレコードのうちの１組目の正常データレコードの１番目のデータカラム（例えば、都道府県名を表すデータが入力されるデータカラム）に含まれるデータを示す各文字を、シフトＪＩＳコードを用いて数値に変換する。例えば、１組目の正常データレコードの１番目のデータカラムに「愛知県」が含まれている場合において、「愛」「知」「県」の各文字を、シフトＪＩＳコードを用いて数値化すると、それぞれ、「34980（＝愛）」、「37485（＝知）」、「36007（＝県）」に変換される（図５参照）。同様に、他の組の正常データレコードについても、１番目のデータカラムに含まれるデータ（例えば都道府県名）を示す各文字を数値に変換する。その後、制御部２０は、Ｎ組分の正常データカラムの１番目のデータカラムに含まれる各文字に対応する数値の平均値（即ち、第１平均値）を算出する（図５参照）。１番目のデータカラムの第１平均値の算出が終了すると、制御部２０は、引き続き、２番目のデータカラム（例えば、色を表すデータが入力されるデータカラム）についても上記と同様の手法で第１平均値を算出する（図６参照）。以後、同様の手法で、Ｍ番目のデータカラムについての第１平均値が算出されるまで同様の処理が繰り返される。このように、Ｓ１６では、制御部２０は、正常データレコードを構成するＭ個のデータカラムのそれぞれについて、当該データカラムに含まれる各文字の１文字当たりの数値を平均した第１平均値を算出する。Ｓ１６の処理の結果、Ｍ個の第１平均値が算出されることになる。
【００２７】
続くＳ１８では、制御部２０は、（Ｌ−Ｎ）組の異常データレコードのうちの１組を特定する。
【００２８】
続くＳ２０では、制御部２０は、Ｓ１８で特定された異常データレコード（以下では対象異常データレコードと呼ぶ）について、当該対象異常データレコードをＭ個のデータカラムを有する１組以上の変換データレコードに変換する。Ｓ２０で生成される１組以上の変換データレコードは、互いにデータカラムの区切りを示すカンマの位置が互いに異なる。例えば、予め定められたデータカラムの数（即ちＭの値）が「３」であるときに、対象異常データレコードが「Ａ，Ｂ，Ｃ，Ｄ」の４個のデータカラムを含んでいる場合、制御部２０は、Ｓ２０で、「ＡＢ，Ｃ，Ｄ」、「Ａ，ＢＣ，Ｄ」、「Ａ，Ｂ，ＣＤ」の３組の変換データレコードを生成する。この例では、３組の変換データレコードはいずれも３個のデータカラムを有しており、データカラムの区切りを示すカンマの位置が互いに異なっている。
【００２９】
続くＳ２２では、制御部２０は、Ｓ２０で生成された１組以上の変換データレコードのそれぞれについて、各データカラムの第２平均値を算出し、第１平均値との差分率を特定する。
【００３０】
具体的には、まず、制御部２０は、１組目の変換データレコードの１番目のデータカラムに含まれるデータを示す各文字を、シフトＪＩＳコードを用いて数値に変換する。次いで、制御部２０は、変換された各文字の数値の平均値（即ち、第２平均値）を算出する。次いで、制御部２０は、１組目の変換データレコードの１番目のデータカラムに含まれるデータを示す各文字を同様に数値化し、各文字の数値の平均値である第２平均値を算出する。同様に、制御部２０は、１組目の変換データレコードのＭ番目のデータカラムについての第２平均値を算出するまでこの処理を繰り返す。１組目の変換データレコードについてＭ個の第２平均値が算出されると、制御部２０は、データカラムごとに、第２平均値と、Ｓ１６で算出された第１平均値とを比較し、差分率を特定する。差分率とは、第２平均値の第１平均値に対する数値割合を意味する。数値が１００に近づくほど第１平均値と第２平均値が近似することを意味する。この結果、１組目の変換データレコードについてＭ個の差分率が特定される。
【００３１】
１組目の変換データレコードについて、Ｍ個の第２平均値の算出及び差分率の特定が行われると、制御部２０は、同様の手法で、２組目以降の変換データレコードについても、Ｍ個の第２平均値の算出及び差分率の特定を行う。このように、Ｓ２２では、制御部２０は、Ｓ２０で生成された１組以上の変換データレコードのそれぞれについて、各データカラムの第２平均値を算出し、第１平均値との差分率を特定する。
【００３２】
続くＳ２４では、制御部２０は、Ｓ２０で生成された１組以上の変換データレコードのうちから、１組の特定データレコードを特定する。具体的には、制御部２０は、各変換データレコードについて算出されたＭ個の差分率を互いに比較し、１００に近い差分率をもっとも多く含む１組の変換データレコードを特定データレコードとして特定する。
【００３３】
続くＳ２６では、制御部２０は、すべての異常データレコードを特定済みであるか否か判断する。Ｓ２６の時点で、（Ｌ−Ｎ）組の異常データレコードのすべてが特定済み（即ち、（Ｌ−Ｎ）組の特定データレコードが特定済み）である場合、制御部２０は、Ｓ２６でＹＥＳと判断し、Ｓ２８に進む。一方、Ｓ２６の時点で、（Ｌ−Ｎ）組の異常データレコードのうち、未特定のものが含まれる場合、制御部２０は、Ｓ２６でＮＯと判断し、Ｓ１８に戻って未特定の異常データレコードのうちから１組の異常データレコードを特定し、Ｓ２０〜Ｓ２４の各処理を再び行う。
【００３４】
Ｓ２８では、制御部２０は、ユーザアプリケーションによって予め定められた形式に従って、再現データを生成する。具体的には、Ｓ２８では、制御部２０は、Ｎ組の正常データレコードのそれぞれについて、当該正常データレコードに含まれるＭ個のデータカラムに含まれるデータ（即ち文字列）を、予め定められたＭ個の対応する入力欄に入力するとともに、（Ｌ−Ｎ）組の特定データレコードのそれぞれについて、当該特定データレコードに含まれるＭ個のデータカラムに含まれるデータを、上記Ｍ個の入力欄に入力する。なお、ＣＳＶファイルに異常データレコードが含まれていなかった場合（即ちＳ１２でＮＯの場合）には、Ｓ２８では、制御部２０は、ＣＳＶファイルに含まれている正常データレコードのみに基づいて再現データを生成する。
【００３５】
続くＳ３０では、制御部２０は、生成された再現データを表示部１４に表示する。この際、制御部２０は、（Ｌ−Ｎ）組の特定データレコードによって表されるデータを、正常データレコードによって表されるデータと区別して表示する。具体的には、Ｓ３０では、制御部２０は、（Ｌ−Ｎ）組の特定データレコードによって表されるデータを、正常データレコードによって表されるデータと異なる背景色で示して表示する。Ｓ３０を終えると、制御部２０は、図２のＣＳＶファイル取り込み処理を終了する。
【００３６】
（具体例；図３〜図１１）
続いて、図３〜図１１を参照して、上記のＣＳＶファイル取り込み処理に従って、ＣＳＶファイルから再現データが生成、表示されるまでのデータ遷移の具体例を説明する。
【００３７】
図３は、他の端末装置がユーザアプリケーションを用いて生成した元データの例を示す。図３の元データは、車両販売業者が、新車の販売実績を管理する目的で、ユーザアプリケーションを用いて生成したデータである。元データは３個の入力欄を有する（即ち、上記のＭの値は「３」である）。この例では、元データは、５組の組合せ情報を含む。各組合せ情報は、車両の登録地の都道府県名を示す情報（例えば「愛知県」等）と、車両の色を示す情報（例えば「ホワイト」等）と、ナンバーを示す情報（例えば「747」等）と、を含む。
【００３８】
図４は、他の端末装置が図３の元データをエクスポートすることによって生成したＣＳＶファイルの例を示す。図４のＣＳＶファイルが、図２のＳ１０において、端末装置１０の制御部２０によって読み込まれる対象ＣＳＶファイルの具体例である。図４に示すように、ＣＳＶファイルは、５組のデータレコードＲ１〜Ｒ５を含む（即ち、上記のＬの値は「５」である）。５組のデータレコードＲ１〜Ｒ５のうち、データレコードＲ１、Ｒ３、Ｒ４は、２個のカンマによって区切られた３個のデータカラムを含む。一方、データレコードＲ２は、３個のカンマによって区切られた４個のデータカラムを含む。データレコードＲ５は、４個のカンマによって区切られた５個のデータカラムを含む。即ち、データレコードＲ１、Ｒ３、Ｒ４は、データカラムの数が予め定められた数である３個である正常データレコードである。一方、データレコードＲ２、Ｒ５は、データカラムの数が３個よりも多い異常データレコードである。
【００３９】
図２のＣＳＶファイル取り込み処理が開始され、Ｓ１０で制御部２０が図４のＣＳＶファイルを読み込むと、制御部２０は、ＣＳＶファイルに異常データレコードが含まれていると判断する（Ｓ１２でＹＥＳ）。さらに制御部２０は、Ｓ１４において、５組のデータレコードＲ１〜Ｒ５を、３組の正常データレコードＲ１、Ｒ３、Ｒ４と、２組の異常データレコードＲ２、Ｒ５とに区分する（即ち、上記のＮの値は「３」である）。
【００４０】
続いて、図２のＳ１６では、制御部２０は、正常データレコードＲ１、Ｒ３、Ｒ４（図４参照）に基づいて、各データカラムの第１平均値を算出する。
【００４１】
１番目のデータカラムは、都道府県名に対応するデータカラムである。図４に示すように、正常データレコードＲ１、Ｒ３、Ｒ４の１番目のデータカラムには、それぞれ、「愛知県」、「神奈川県」、「大阪府」の各文字列が含まれている。制御部２０は、図５に示すように、１番目のデータカラムの各文字をシフトＪＩＳコードに従って数値に変換する。図５に示すように、「愛」は「34980」に変換され、「知」は「37485」に変換され、「県」は「36007」に変換される。以下、「神」「奈」「川」「県」の各文字、「大」「阪」「府」の各文字も同様に数値に変換される。制御部２０は、変換後の各数値を平均し、１番目のデータカラムの第１平均値「36833」を算出する。
【００４２】
２番目のデータカラムは、色に対応するデータカラムである。図４に示すように、正常データレコードＲ１、Ｒ３、Ｒ４の２番目のデータカラムには、それぞれ、「ホワイト」、「レッド」、「シルバー」の各文字列が含まれている。制御部２０は、図６に示すように、２番目のデータカラムの各文字をシフトＪＩＳコードに従って数値に変換する。図６に示すように、「ホ」は「206」に変換され、「ワ」は「220」に変換され、「イ」は「178」に変換され、「ト」は「196」に変換される。以下、「レ」「ッ」「ト」「゛」の各文字、「シ」「ル」「ハ」「゛」「ー」の各文字も同様に数値に変換される。制御部２０は、変換後の各数値を平均し、２番目のデータカラムの第１平均値「201」を算出する。
【００４３】
３番目のデータカラムは、ナンバーに対応するデータカラムである。図４に示すように、正常データレコードＲ１、Ｒ３、Ｒ４の３番目のデータカラムには、それぞれ、「747」、「1111」、「4649」の各文字列が含まれている。制御部２０は、図７に示すように、３番目のデータカラムの各文字をシフトＪＩＳコードに従って数値に変換する。図７に示すように、「7」は「55」に変換され、「4」は「52」に変換され、「7」は「55」に変換される。以下、「1」「1」「1」「1」の各文字、「4」「6」「4」「9」の各文字も同様に数値に変換される。制御部２０は、変換後の各数値を平均し、３番目のデータカラムの第１平均値「52」を算出する。
【００４４】
図２のＳ１６の処理の結果、図８に示すように、１〜３番目のデータカラムに対応する第１平均値「36833」、「201」、「52」が算出される。
【００４５】
続いて、図２のＳ１８では、制御部２０は、異常データレコードＲ２を特定する。上記の通り、異常データレコードＲ２は、「東京都」「スパー」「Ｐ」「7777」の４個のデータカラムを含む（図９参照）。
【００４６】
続いて、図２のＳ２０では、制御部２０は、異常データレコードＲ２を、図９に示す３個のデータカラムを含む３組の変換データレコードＴ２１、Ｔ２２、Ｔ２３に変換する。変換データレコードＴ２１は、「東京都スパー」「Ｐ」「7777」の３個のデータカラムを含む。変換データレコードＴ２２は、「東京都」「スパーＰ」「7777」の３個のデータカラムを含む。変換データレコードＴ２３は、「東京都」「スパー」「Ｐ7777」の３個のデータカラムを含む。
【００４７】
続いて、図２のＳ２２では、制御部２０は、変換データレコードＴ２１〜Ｔ２３のそれぞれについて、各データカラムの第２平均値を算出し、第１平均値との差分率を特定する。
【００４８】
上記の通り、変換データレコードＴ２１の１番目のデータカラムには、「東京都スパー」の文字列が含まれる。制御部２０は、「東」「京」「都」「ス」「ハ」「゜」「ー」の各文字をシフトＪＩＳコードに従って数値化し、各数値を平均して第２平均値「16007」を算出する。次いで、制御部２０は、１番目のデータカラムの第１平均値である「36833」（図８参照）と第２平均値「16007」を比較し、差分率「43.45」を特定する。
【００４９】
制御部２０は、同様に、変換データレコードＴ２１の２番目のデータカラム（「Ｐ」）についても第２平均値（「80」）を算出する。制御部２０は、２番目のデータカラムの第１平均値である「201」（図８参照）と第２平均値「80」を比較し、差分率「39.80」を特定する。
【００５０】
制御部２０は、同様に、変換データレコードＴ２１の３番目のデータカラム（「7777」）についても第２平均値（「55」）を算出する。制御部２０は、２番目のデータカラムの第１平均値である「52」（図８参照）と第２平均値「55」を比較し、差分率「105.77」を特定する。
【００５１】
その後、制御部２０は、変換データレコードＴ２２、Ｔ２３についても同様の処理を行う。変換データレコードＴ２２、Ｔ２３の各データカラムの第２平均値及び第１平均値との差分率は図９に示す通りであるため、詳細な説明は省略する。
【００５２】
続く図２のＳ２４では、制御部２０は、各変換データレコードＴ２１〜Ｔ２３の各データカラムの差分率を比較し、１００に近い差分率をもっとも多く含む変換データレコードＴ２２を特定データレコードとして特定する（図９参照）。
【００５３】
続いて、制御部２０は、図２のＳ１８に戻って（Ｓ２６でＮＯ）、未特定の異常データレコードＲ５を特定する。上記の通り、異常データレコードＲ５は、「東京」「都」「ターコイズ」「ブルー」「7777」の５個のデータカラムを含む（図１０参照）。
【００５４】
２回目のＳ２０では、制御部２０は、異常データレコードＲ５を、図１０に示す３個のデータカラムを含む６組の変換データレコードＴ５１、Ｔ５２、Ｔ５３、Ｔ５４、Ｔ５５、Ｔ５６に変換する。変換データレコードＴ５１は、「東京」「都」「ターコイズブルー7777」の３個のデータカラムを含む。変換データレコードＴ５２は、「東京」「都ターコイズ」「ブルー7777」の３個のデータカラムを含む。変換データレコードＴ５３は、「東京」「都ターコイズブルー」「7777」の３個のデータカラムを含む。変換データレコードＴ５４は、「東京都」「ターコイズ」「ブルー7777」の３個のデータカラムを含む。変換データレコードＴ５５は、「東京都」「ターコイズブルー」「7777」の３個のデータカラムを含む。変換データレコードＴ５６は、「東京都ターコイズ」「ブルー」「7777」の３個のデータカラムを含む。
【００５５】
続いて、２回目のＳ２２では、制御部２０は、変換データレコードＴ５１〜Ｔ５６のそれぞれについて、各データカラムの第２平均値を算出し、第１平均値との差分率を特定する。各データカラムの第２平均値の手法、及び、第１平均値との差分率の特定の手法は、上記と同様であるため、詳しい説明を省略する。この結果、図１０に示すように、変換データレコードＴ５１〜Ｔ５６の各データカラムの第２平均値及び第１平均値との差分率が特定される。
【００５６】
続いて、２回目のＳ２４では、制御部２０は、各変換データレコードＴ５１〜Ｔ５６の各データカラムの差分率を比較し、１００に近い差分率をもっとも多く含む変換データレコードＴ５５を特定データレコードとして特定する（図１０参照）。
【００５７】
続いて、Ｓ２８では、制御部２０は、正常データレコードＲ１、Ｒ３、Ｒ４（図４参照）と、特定データレコードＴ２２、Ｔ５５（図９、図１０参照）とを用いて、再現データを生成する。制御部２０は、各データレコードの各データカラム内の文字列を、所定の入力欄に入力することによって再現データを生成する。
【００５８】
続いて、Ｓ３０では、制御部２０は、再現データを表示部１４に表示させる。図１１に、表示された再現データの例を示す。図１１に示すように、再現データも、図３の元データと同様に５組の組合せ情報を含む。ただし、再現データでは、特定データレコードＴ２２、Ｔ５５に対応する組合せ情報は、正常データレコードＲ１、Ｒ３、Ｒ４に対応する組合せ情報と異なる背景色で示されている。また、特定データレコードＴ２２、Ｔ５５に対応する組合せ情報は、各欄の文字列（データ）内にカンマを含まない態様で再現される。
【００５９】
以上、本実施例の端末装置１０の構成及び動作について説明した。上記の通り、本実施例では、端末装置１０の制御部２０は、図２に示すように、読み込んだＣＳＶファイルに異常データレコード（図４のＲ２、Ｒ５参照）が含まれている場合に、異常データレコードを１以上の変換データレコードに変換し、１以上の変換データレコードのなかから特定データレコード（図９のＴ２２、図１０のＴ５５参照）を特定し、正常データレコードと特定データレコードとを用いて再現データを生成する。ＣＳＶファイルに含まれるＮ個の正常データレコードには、データカラムごとに共通の文字種（例えば、漢字、カタカナ、アルファベット、数字等）の文字列が含まれる可能性が高い。そのため、各データカラムに含まれる各文字を示す数値は、おおよその一定の数値範囲を有する。従って、各データカラムにおいて、第１平均値と第２平均値との差分が小さい場合、各データカラムに本来入力されるべき文字種の文字が含まれている可能性が高い。すなわち、特定データレコードは、１以上の変換データレコードのうち、正常データレコードにもっとも近い特性を有するデータである可能性が高い。そのため、正常データレコードと特定データレコードとを用いて再現データを生成することにより、ＣＳＶファイルに異常データレコードが含まれている場合であっても、当該異常データレコードが示すデータを含む再現データを適切に生成し得る。
【００６０】
また、本実施例では、端末装置１０の制御部２０は、再現データを表示する際に、再現データに含まれる複数個の組合せ情報のうち、特定データレコードによって表される組合せ情報を、正常データレコードによって表される組合せと異なる背景色で区別して表示する（図１１参照）。そのため、再現データを見たユーザが、特定データレコードによって表されるデータを容易に認識することができる。そのため、データの確認、修正等の作業を容易に行い得る。
【００６１】
本実施例と請求項の記載との対応関係を説明しておく。図２のＳ１２の処理が「読込部」が実行する処理の一例である。Ｓ１４の処理が「区分部」が実行する処理の一例である。Ｓ１６の処理が「算出部」が実行する処理の一例である。Ｓ２０の処理が「変換部」が実行する処理の一例である。Ｓ２２、Ｓ２４の処理が「特定部」が実行する処理の一例である。Ｓ２８の処理が「生成部」が実行する処理の一例である。Ｓ３０の処理が「表示制御部」が実行する処理の一例である。シフトＪＩＳコードが「文字コード」の一例である。表示部１４が「表示装置」の一例である。
【００６２】
以上、本発明の実施例について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例を採用してもよい。
【００６３】
（変形例１）第１平均値及び第２平均値の算出の際に用いられる文字コードはシフトＪＩＳコードには限られず、各データカラム内の文字列を構成する各文字を数値化できる文字コードであれば、任意の文字コードを使用してもよい。
【００６４】
（変形例２）上記の実施例では、制御部２０は、第１平均値と第２平均値との差分を差分率によって特定している（図２のＳ２４）。これに限られず、制御部２０は、第１平均値と第２平均値との差分を他の数値によって特定してもよい。
【００６５】
（変形例３）上記の実施例では、制御部２０は、再現データを表示する際に、再現データに含まれる複数個の組合せ情報のうち、特定データレコードによって表される組合せ情報を、正常データレコードによって表される組合せと異なる背景色で区別して表示する（図１１参照）。これに限られず、制御部２０は、再現データを表示する際に、再現データに含まれる複数個の組合せ情報のうち、特定データレコードによって表される組合せ情報を、正常データレコードによって表される組合せと区別して表示できれば、任意の態様で表示を行ってもよい。
【００６６】
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００６７】
１０：制御装置
１２：操作部
１４：表示部
１６：外部Ｉ／Ｆ
２０：制御部
３０：メモリ
【図１】
2017059132.tif 000003
【図２】
2017059132.tif 000004
【図３】
2017059132.tif 000005
【図４】
2017059132.tif 000006
【図５】
2017059132.tif 000007
【図６】
2017059132.tif 000008
【図７】
2017059132.tif 000009
【図８】
2017059132.tif 000010
【図９】
2017059132.tif 000011
【図１０】
2017059132.tif 000012
【図１１】
2017059132.tif 000013