(57)【要約】【課題】  柔軟な分類条件の設定を可能として、分類条件の作成を簡便にすることのできるデータ分類装置を提供する。【解決手段】  分類対象となったデータ群に含まれるデータを分類するデータ分類装置であって、演算結果値を定める分類式、の入力を受け入れ、データ群に含まれる各データについて、受け入れた分類式を用いて演算結果値を生成し、この生成した演算結果値を、対応するデータに関連づけて記録し、当該記録した演算結果値に基づいて、データの分類処理を行うデータ分類装置である。【選択図】        図１
2007058747.tif 000002
【特許請求の範囲】
【請求項１】
分類対象となったデータ群に含まれるデータを分類するデータ分類装置であって、
演算結果値を定める分類式、の入力を受け入れる手段と、
前記データ群に含まれる各データについて、前記受け入れた分類式を用いて演算結果値を生成する手段と、
当該生成した演算結果値を、対応するデータに関連づけて記録する手段と、
を含み、
前記記録した演算結果値に基づいて、前記データが分類処理されることを特徴とするデータ分類装置。
【請求項２】
請求項１に記載のデータ分類装置であって、
前記演算結果値を生成する手段は、前記受け入れた分類式を用いて対応するデータに係る演算結果値を生成することを特徴とするデータ分類装置。
【請求項３】
コンピュータを用いて、分類対象となったデータ群に含まれるデータを分類するデータ分類方法であって、
演算結果値を定める分類式を用い、前記データ群に含まれる各データに係る演算結果値を生成し、当該生成した演算結果値を、対応するデータに関連づけて記録する工程と、
前記記録した演算結果値に基づいて、前記データを分類処理する工程と、
を含むことを特徴とするデータ分類方法。
【請求項４】
コンピュータに、分類対象となったデータ群に含まれるデータを分類する処理を実行させるプログラムであって、
演算結果値を定める分類式を用い、前記データ群に含まれる各データに係る演算結果値を生成し、当該生成した演算結果値を、対応するデータに関連づけて記録する手順と、
前記記録した演算結果値に基づいて、前記データを分類処理する手順と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータを含むデータ群を分類対象として、与えられた条件で各データを分類するデータ分類装置に関する。
【背景技術】
【０００２】
一般に、データベースに格納されるデータには、複数のデータ要素が含まれる。例えば会社社員のデータであれば、所属や年齢、氏名といったデータ要素が互いに関連づけられて、一つのデータ（社員データ）となり、この社員データがデータベースに蓄積される。
【０００３】
こうしたデータを、分類条件を与えて分類する方法としては従来、分類条件として与えられた数値や文字列と、データ要素そのものとの比較に基づくものがある。また、複数の分類条件を与えて２段階で分類するものも存在する（特許文献１）。
【特許文献１】特開２０００−１４８７８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のデータの分類方法では、年齢のデータ要素が具体的に、「２３」、「３７」といった年齢値で設定されているときに、２０歳台、３０歳台…といった分類をするには、「２０歳以上３０歳未満は２０歳台」、「３０歳以上４０歳未満は３０歳台」…などといった分類条件を列挙して与えなければならず、分類条件の設定が面倒であった。また、想定外のデータ要素があった場合に対応不能になる場合があった。例えば、分類条件の設定者が５０歳台までの分類条件を作成した場合、６０歳台以上の年齢のデータ要素は、分類の対象外となってしまう。
【０００５】
本発明は上記実情に鑑みて為されたもので、柔軟な分類条件の設定を可能として、分類条件の作成を簡便にすることのできるデータ分類装置を提供することをその目的の一つとする。
【課題を解決するための手段】
【０００６】
上記従来例の問題点を解決するための本発明は、分類対象となったデータ群に含まれるデータを分類するデータ分類装置であって、演算結果値を定める分類式、の入力を受け入れる手段と、前記データ群に含まれる各データについて、前記受け入れた分類式を用いて演算結果値を生成する手段と、当該生成した演算結果値を、対応するデータに関連づけて記録する手段と、を含み、前記記録した演算結果値に基づいて、前記データが分類処理されることを特徴としている。ここで、前記演算結果値を生成する手段は、前記受け入れた分類式を用いて対応するデータに係る演算結果値を生成することとしてもよい。
【０００７】
また、上記従来例の問題点を解決するための本発明は、コンピュータを用いて、分類対象となったデータ群に含まれるデータを分類するデータ分類方法であって、演算結果値を定める分類式を用い、前記データ群に含まれる各データに係る演算結果値を生成し、当該生成した演算結果値を、対応するデータに関連づけて記録する工程と、前記記録した演算結果値に基づいて、前記データを分類処理する工程と、を含むことを特徴としている。
【０００８】
また、本発明の一態様に係るプログラムは、コンピュータに、分類対象となったデータ群に含まれるデータを分類する処理を実行させるプログラムであって、演算結果値を定める分類式を用い、前記データ群に含まれる各データに係る演算結果値を生成し、当該生成した演算結果値を、対応するデータに関連づけて記録する手順と、前記記録した演算結果値に基づいて、前記データを分類処理する手順と、をコンピュータに実行させることを特徴としている。
【発明を実施するための最良の形態】
【０００９】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るデータ分類装置は、図１に示すように、制御部１１と、記憶部１２と、ストレージ部１３と、操作部１４と、出力部１５とを含んで構成されている。
【００１０】
制御部１１は、ＣＰＵ等であり、記憶部１２に格納されたプログラムに従って動作する。本実施の形態では、この制御部１１は、分類対象となったデータ群について、ユーザから受け入れた分類式を利用した分類処理を実行する。この制御部１１の具体的な処理の内容例については後に述べる。
【００１１】
記憶部１２は、ＲＡＭやＲＯＭなどの記憶素子を含んで構成される。この記憶部１２は、制御部１１によって実行されるプログラムを保持している。また、この記憶部１２は、制御部１１のワークメモリとしても動作する。
【００１２】
ストレージ部１３は、例えばハードディスク等であり、分類の対象となるデータ群を保持している。このデータ群には、複数のデータエントリが含まれ、各データエントリは、データ要素としての属性値を少なくとも一つ含む。以下では、説明上の具体例として、受信したメーリングリストの電子メールデータ群が分類処理の対象となるものとする。この例では、ストレージ部１３は、図２に示すように、電子メールデータ群として、各データエントリが、番号（Ｓｅｑ）、送信者（Ｆｒｏｍ）、受信者（Ｔｏ）、題名（Ｓｕｂｊ）及び受信日時（Ｄａｔｅ）のデータ要素を含むものとする。
【００１３】
操作部１４は、マウスやキーボード等であり、ユーザの指示操作を受け入れて、制御部１１に出力する。出力部１５は、例えばディスプレイ等であり、制御部１１から入力される指示に従い、情報を表示する。
【００１４】
ここで、制御部１１によって行われる処理について述べる。ユーザは、分類の対象となったデータ群について、出力態様を規定する出力指示を、操作部１４を操作して入力する。この出力指示は、例えば図３に示すように、出力する情報の種別を表すタグ（ｔａｇ）として、出力する画面に関する情報（ｒｏｏｔ）と、分類処理の対象となるデータ群の各データエントリに対する処理内容を表す情報（ｒｅｃｏｒｄ）と、分類項目を表す情報（分類）とを含む。ここで、出力する画面や分類等には、「タイトル」の属性（ｔｉｔｌｅ）が分類処理の際に一時的に生成される。このように一時的に生成され、ストレージ部１３に格納されることのない情報には、その旨を表す表記規則として、先頭に「ｕ」を付している。つまり、ｒｏｏｔのｕ．ｔｉｔｌｅは、出力する画面に関する情報のｔｉｔｌｅ属性であって、一時的に利用される情報であることを示している。図３の例では、「メーリングリスト」とのタイトルが関連づけられている。
【００１５】
なお、出力時に利用する情報として、ここでは、電子メールデータ群のデータエントリに含まれるデータ要素のうち、番号（Ｓｅｑ）と、題名（Ｓｕｂｊ）とを用い、また、分類に係る情報として、番号（Ｓｅｑ）を参照した分類式が設定されている。ここでは、分類式として、
ＩＮＴ($Seq/100)
と記載されているが、ここで$Seqは、データ要素の番号（Ｓｅｑ）の値が表記された欄を特定する情報である。また、INT(X)は、Xを超えない最大の整数値を意味する。さらに、出力する内容（ｒｅｃｏｒｄ）のタイトル（ｕ．ｔｉｔｌｅ）は、題名欄の値$Subjに等しいとして設定されている。
【００１６】
そして、分類項目を表す情報（分類）のタイトル（ｕ．ｔｉｔｌｅ）は、分類式の演算結果を表す値$g.分類１を用いて、この分類式（g.分類１）の演算結果値に１００を乗じた値（$g.分類１*100）と、それに「９９」を加算した値（$g.分類１*100+99）を表す文字列を、「−」記号を挟んで結合したものとして指定されている。ここで、「＆」記号は、文字列の連結を意味する。
【００１７】
制御部１１は、この出力指示の入力が行われると次の処理を開始する。図４に示すように、制御部１１は、ストレージ部１３から、分類対象のデータ群を読み出して、記憶部１２に格納する（Ｓ１）。そして、このデータ群の各データエントリにさらに、出力指示に含まれる、「tag」欄と、「ｇ．」（分類式を意味する）で始まる欄と、「ｕ．」（一時的な情報を意味する）で始まる欄を追加する（属性情報追加；Ｓ２）。本実施の形態では、「ｔａｇ」欄と、「ｇ．分類１」欄、「ｕ．ｔｉｔｌｅ」欄とが追加される。
【００１８】
制御部１１は、データエントリの各「ｔａｇ」欄を、「ｒｅｃｏｒｄ」に設定し、「ｔａｇ」欄をｒｏｏｔとするデータエントリを作成する（初期化処理；Ｓ３）。
【００１９】
制御部１１は、各データエントリについて、「ｔａｇ」欄を参照しながら、出力指示において、当該「ｔａｇ」欄の各文字列に関連づけて設定されている出力態様に従って、データを生成する（分類前処理；Ｓ４）。例えば、最初のデータエントリは「ｒｏｏｔ」であり、このデータエントリについては、「ｕ．ｔｉｔｌｅ」が、「メーリングリスト」として設定されている。そこで、制御部１１は、このデータエントリについて、「ｕ．ｔｉｔｌｅ」に文字列「メーリングリスト」を設定する。また、次のデータエントリは、「ｒｅｃｏｒｄ」であり、このｒｅｃｏｒｄのタグについては、出力態様において「ｇ．分類１」が、
ＩＮＴ($Seq/100)
となっている。この分類式の演算結果値は、番号（Ｓｅｑ）が、０から９９までであれば「０」、１００から１９９までであれば「１」…となり、この演算結果値の値が、「ｇ．分類１」の欄に設定される。また、「ｕ．ｔｉｔｌｅ」は、題名を意味する$Subjそのものが設定される。
【００２０】
こうして、分類対象のデータ群に基づいて、属性情報が追加されたデータエントリが生成される。
【００２１】
次に制御部１１は、「ｇ．分類１」欄をキーとして、属性情報追加後のデータエントリを並べ替える（Ｓ５）。ここでは、「ｇ．分類１」欄に設定される演算結果値は数値であるので、例えば当該数値を昇順に並べ替えればよい。同じ数値であるものについては、別のキー（例えば番号Ｓｅｑ）を用いて並べ替える。
【００２２】
制御部１１は、次に、分類項目を設定する（Ｓ６）。すなわち、まず、「ｔａｇ」が「ｒｅｃｏｒｄ」である最初のデータエントリの直前に、「ｔａｇ」欄を「分類１」とする分類項目名のデータエントリを挿入し、当該最初のデータエントリに係る分類項目を、出力指示に従って設定する。ここでは最初のデータエントリの分類項目は、番号（Ｓｅｑ）が「０」であるデータエントリに対する分類項目であるので、
（g.分類１*100）&"-"&（g.分類１*100+99）
とのｕ．ｔｉｔｌｅの指定に基づき、文字列「０−９９」となる。
【００２３】
以下、制御部１１は、並べ替えた順で、「ｇ．分類１」欄を参照し、最初のデータエントリと、直前の「ｇ．分類１」欄とは異なる値となっているデータエントリを見いだす。この処理はつまり「ｇ．分類１」欄が変化するポイントを見いだすことを意味する。そして、この処理で見いだしたデータエントリの直前に、「ｔａｇ」欄を「分類１」として分類項目名のデータエントリを挿入し、ここで見いだしたデータエントリに係る分類項目の値を設定する。
【００２４】
これにより、番号（Ｓｅｑ）が「０」である（つまり最初の）データエントリの直前には、ｕ．ｔｉｔｌｅに「０−９９」との文字列が設定された分類項目のデータエントリが追加され、さらに、番号（Ｓｅｑ）が「１００」である（つまり、「ｇ．分類１」が「０」から「１」に変化した点の）データエントリの直前には、ｕ．ｔｉｔｌｅに「１００−１９９」との文字列が設定された分類項目のデータエントリが追加される。以下、「ｇ．分類１」が変化する点に関連して、分類項目の「ｕ．ｔｉｔｌｅ」を設定したデータエントリが追加され、これにより記憶部１２に格納されたデータエントリは、図５に示したような  ものとなり、分類処理の対象となったデータ群のデータエントリが、複数の分類項目に分類される。制御部１１は、ここで作成したデータエントリの一覧を、分類結果として出力する（図４の処理Ｓ７）。
【００２５】
本実施の形態によると、演算結果値を提示する分類式により、分類対象となるデータエントリについて前処理が行われ、当該前処理により、分類時に利用されるデータ要素（属性情報）が生成される。そして、このデータ要素を用いて、並べ替え処理で分類を行うことができる。これによると、例えば、年齢のデータ要素が具体的に、「２３」、「３７」といった年齢値で設定されているときに、２０歳台、３０歳台…といった分類をするにしても場合は、前処理において、この年齢値を１０で除した商を超えない最大の整数を生成して分類時に利用するデータ要素とする。このデータ要素は、「２０歳台」の年齢値については「２」、「３０歳台」の年齢値については「３」…などと演算される。さらに分類項目の値を、この生成したデータ要素を用い、当該データ要素を１０倍した数値を表す文字列に、「台歳台」という文字を付したものとする。こうすると、分類項目「２０歳台」に、「２３」の年齢値のデータエントリが分類され、分類項目「３０歳台」に、「３７」の年齢値のデータエントリが分類され…といったように分類が行われる。つまり、分類条件を列挙することなく、分類式を指定することで分類が行われ、柔軟な分類条件の設定を行うことができる。また、「６０歳台」の年齢値についてユーザが想定していない場合も、分類式に基づく演算結果値が得られる限り分類を行うことができる。
【００２６】
なお、データエントリのうち、分類式の演算の結果、演算結果値が得られないデータエントリ（エラーとなる場合）については、当該データエントリを、所定の「その他」の分類項目に分類することとしてもよい。
【００２７】
また、ここまでの説明では、分類条件を一つだけとしているが、複数の分類条件を指定して段階的に分類してもよい。例えば、まず、番号（Ｓｅｑ）で１００番ごとに分類し、次に送信者（Ｆｒｏｍ）で分類してもよい。この例の場合、メールの送信者が同じであっても、番号の百番台の値が異なれば、異なる分類項目に分類される。このような分類をする場合、ユーザは出力指示において、「ｇ．分類１」として番号（Ｓｅｑ）に関する条件を分類式を用いて、
ＩＮＴ($Seq/100)
と設定し、また、「ｇ．分類２」として送信者（Ｆｒｏｍ）を設定する。このようにすると、制御部１１は、まず、既に説明した例と同様にして「ｇ．分類１」において設定された分類式の演算結果を生成して、この演算結果を用いて並べ替えを行う。このように複数の分類が設定されるときには、属性情報が追加されたデータエントリには、図６に示すように、出力指示に設定された「ｇ．分類」の数だけ分類欄が含まれることとなる。
【００２８】
このように複数の分類欄が含まれる場合、属性情報追加後のデータエントリを並べ替える際に、分類項目の順列に従って、まず「ｇ．分類１」について並べ替えを行い、次に、「ｇ．分類１」が共通となっているデータエントリごとに、「ｇ．分類２」について並べ替えを行い、さらに、「ｇ．分類１」と「ｇ．分類２」とが共通となっているデータエントリごとに、「ｇ．分類３」について並べ替えを行い…、というように、複数の分類に優先順位を付して、優先順位順に並べ替えの処理を行うこととすればよい。これにより、例えば１００番ごとに、送信者をキーとした並べ替えを行うことができる。
【００２９】
また、この場合制御部１１は、各データエントリに階層構造を設定してもよい。階層構造を設定する場合、制御部１１は、設定されている分類項目の数ｎだけ、データ値を記憶する領域を記憶部１２内に確保し、それぞれを初期値（例えば数値の「０」）に設定しておく。以下、このデータ値のうち、ｋ番目のものをＮ［ｋ］と表記する。
【００３０】
そして制御部１１は、並べ替え処理の後、各データエントリにアドレス欄を生成し、タグ（ｔａｇ）欄が「ｒｏｏｔ」となっているデータエントリを階層のルートを表す値（例えば「/1」）と設定する。
【００３１】
以下制御部１１は、タグ（ｔａｇ）欄がｒｅｃｏｒｄとなっているデータエントリについて、順次、データエントリを注目エントリとして選択する。そして注目エントリと、直前のデータエントリとにおける、すべての「ｇ．分類」欄が同じであるか否かを調べる。なお、最初のデータエントリについては、この比較を行わない。ここで、当該いずれかの「ｇ．分類」欄が異なっている場合は、当該注目エントリを変化点として、その注目エントリの直前に、分類項目の数ｎと、異なっていた分類項目のうち、順列の最も小さいものを表す値（ｉ−１番目の分類項目までは直前のデータエントリと共通で、ｉ番目の分類項目が、直前のデータエントリのものと異なっていた場合、ｉ）とを用いて、
ｎ−ｉ＋１
だけ、空のデータエントリを挿入する。そしてこの挿入したｎ−ｉ＋１個の各データエントリのうち、ｊ番目のものについて、そのタグ（ｔａｇ）に、ｐ＝ｉ＋ｊ-1番目に指定されている分類項目名の文字列のうち、先頭の「ｇ．」の文字を除いた文字列を設定する。ここではｐ番目の分類に「ｇ．分類ｐ」と設定する例について説明しているので、ここで設定される文字列は、「分類ｐ」となる。また、ここで挿入したｎ−ｉ＋１個の各データエントリのうち、ｐ番目のデータエントリのアドレス欄には、一つ前のデータエントリのアドレス欄が/1/N[1]/…/N[p-1]である場合には/1/N[1]/…/N[p-1]/1を、/1/N[1]/…/N[p-1]/N[p]/…である場合には/1/N[1]/…/N[p-1]/N[p]+1を設定する。
【００３２】
また、制御部１１は、ここで挿入したｎ−ｉ＋１個の各データエントリのうち、ｊ番目の「ｕ．ｔｉｔｌｅ」欄は、それぞれｐ＝ｉ＋ｊ-1番目の分類項目に対応する「ｕ．ｔｉｔｌｅ」の値を設定する。
【００３３】
さらに、注目エントリ以下、タグ（ｔａｇ）欄がｒｅｃｏｒｄとなっているデータエントリについては、次に変化点となる注目エントリが現れるまで、/1/N[1]/N[2]/…/N[n]/y（ｙは、変化点となった注目エントリを「１」として、データエントリを注目エントリとして選択するごとに順次「１」ずつインクリメントした値）をアドレスとして設定する。
【００３４】
この処理により、上述の電子メールデータ群を分類対象として、第１の分類項目として番号（Ｓｅｑ）を１００番ごとに分類し、さらに第２の分類項目として送信者ごとに分類する場合、図７に示すように、アドレス「/1」、タグ「root」、ｕ．ｔｉｔｌｅ「メーリングリスト」とのデータエントリと、アドレス「/1/1」、タグ「分類１」、ｕ．ｔｉｔｌｅ「0-99」のデータエントリと、アドレス「/1/1/1」、タグ「分類２」、ｕ．ｔｉｔｌｅ「送信者Ａ」のデータエントリとを筆頭として、以下、番号が「０」から「９９」番の間であり、送信者が「送信者Ａ」であるデータエントリが順次、アドレス「/1/1/1/1」、「/1/1/1/2」、…と割り当てられる。また、次いで、アドレス「/1/1/2」、タグ「分類２」、ｕ．ｔｉｔｌｅ「送信者Ｂ」のデータエントリが現れ、さらに番号が「０」から「９９」番の間であり、送信者が「送信者Ｂ」であるデータエントリが順次、アドレス「/1/1/2/1」、「/1/1/2/2」、…と割り当てられる。
【００３５】
なお、ここでは出力指示において、分類項目「ｇ．分類２」のタイトル（ｕ．ｔｉｔｌｅ）には、送信者（Ｆｒｏｍ）の値そのものを設定してあるものとする。制御部１１は、ここで作成したデータエントリの一覧を、分類結果として出力する。
【００３６】
このように本実施の形態によると、分類式を用い、当該分類式によって演算される演算結果をキーとして分類を行わせることとして、柔軟な分類条件の設定を可能として、分類条件の作成を簡便にすることができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施の形態に係るデータ分類装置の構成例を表すブロック図である。
【図２】分類処理の対象となるデータ群の例を表す説明図である。
【図３】本発明の実施の形態に係るデータ分類装置においてユーザが設定する出力指示の内容例を表す説明図である。
【図４】本発明の実施の形態に係るデータ分類装置における処理例を表すフローチャート図である。
【図５】本発明の実施の形態に係るデータ分類装置が生成するデータエントリの例を表す説明図である。
【図６】本発明の実施の形態に係るデータ分類装置が生成するデータエントリのもう一つの例を表す説明図である。
【図７】本発明の実施の形態に係るデータ分類装置による分類結果としてのデータエントリの例を表す説明図である。
【符号の説明】
【００３８】
１１  制御部、１２  記憶部、１３  ストレージ部、１４  操作部、１５  出力部。
【図１】
2007058747.tif 000003
【図２】
2007058747.tif 000004
【図３】
2007058747.tif 000005
【図４】
2007058747.tif 000006
【図５】
2007058747.tif 000007
【図６】
2007058747.tif 000008
【図７】
2007058747.tif 000009