(57)【特許請求の範囲】
【請求項１】
複数のコンテンツを所定数のグループへとグループ分けするコンテンツ分類装置において、
分類対象のコンテンツそれぞれにおける指標化された特徴量を取得し、前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出し、その代表値が近いグループ同士を１のグループへと結合する結合処理を行なうグループ作成部、
作成グループ数の指定を受け付けるグループ数設定部、を備え
前記所定数は、指定された前記作成グループ数よりも多い数であり、
前記グループ作成部は、前記結合処理を、グループ数が前記所定数となるまで繰り返し、グループ数が前記所定数となった後、前記所定数と作成グループ数との差に相当する数のグループを選択し、選択されたグループに属する各コンテンツを、選択されなかったグループのいずれかに振り分けることを特徴とするコンテンツ分類装置。
【請求項２】
前記特徴量は、分類対象のコンテンツそれぞれにおける指標化された特徴量ベクトルであり、
前記グループの前記代表値は、前記グループに属するコンテンツの特徴量ベクトルの重心であることを特徴とする請求項１に記載のコンテンツ分類装置。
【請求項３】
前記グループ作成部は、
未結合のグループの内の、前記重心の距離が近いグループ同士を結合することを特徴とする請求項２に記載のコンテンツ分類装置。
【請求項４】
前記グループ作成部は、
未結合のグループが１つ残っている場合には、前記代表値に基づいていずれかの結合済のグループと結合させることを特徴とする請求項１〜請求項３のいずれか１項に記載のコンテンツ分類装置。
【請求項５】
コンピュータを用いて複数のコンテンツを所定数のグループへとグループ分けするコンテンツ分類方法であって、
グループ数設定部が、作成グループ数の指定を受け付けるグループ数設定ステップを実行し、
グループ作成部が、分類対象のコンテンツそれぞれにおける指標化された特徴量を取得し、前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出し、その代表値が近いグループ同士を１のグループへと結合する結合処理を行なうグループ作成ステップを実行し、
前記所定数は、指定された前記作成グループ数よりも多い数であり、
前記グループ作成部が実行するグループ作成ステップは、前記結合処理を、グループ数が前記所定数となるまで繰り返し、グループ数が前記所定数となった後、前記所定数と作成グループ数との差に相当する数のグループを選択し、選択されたグループに属する各コンテンツを、選択されなかったグループのいずれかに振り分けることを特徴とするコンテンツ分類方法。
【請求項６】
複数のコンテンツを所定数のグループへとグループ分けする処理をコンピュータに実行させるコンテンツ分類プログラムにおいて、
コンピュータに、
作成グループ数の指定を受け付けるグループ数設定ステップ、
分類対象のコンテンツそれぞれにおける指標化された特徴量を取得し、前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出し、その代表値が近いグループ同士を１のグループへと結合する結合処理を行なうグループ作成ステップ、
を実行させ、
前記所定数は、指定された前記作成グループ数よりも多い数であり、
前記グループ作成ステップは、前記結合処理を、グループ数が前記所定数となるまで繰り返し、グループ数が前記所定数となった後、前記所定数と作成グループ数との差に相当する数のグループを選択し、選択されたグループに属する各コンテンツを、選択されなかったグループのいずれかに振り分けることを特徴とするコンテンツ分類プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多数のコンテンツを、指標化された特徴量に基づいて複数のグループに分類するコンテンツ分類装置、コンテンツ分類方法およびコンテンツ分類プログラムに関する。
【背景技術】
【０００２】
近年、画像、音楽、映像等のデジタルコンテンツを、ハードディスクドライブ等の大容量記憶装置に格納し、利用することが広く行なわれている。それに伴って、多数のコンテンツの中から所望のコンテンツを選び出す検索技術や、コンテンツを自動的に分類・整理する技術に対する要望が高まっており、種々の技術が開発されている。
【０００３】
例えば、特許文献１には、音響信号を解析して得られる特徴量を基に、それぞれの楽曲データを印象空間と呼ばれる座標軸上に配置することで、楽曲データの検索を行なう装置が開示されている。
【０００４】
特許文献１に記載された技術によれば、楽曲データの特徴量を印象空間上の点に変換し、その点からのユークリッド距離が近い楽曲を順次候補曲とすることで、ユーザの所望する楽曲のグループを得ることができる。また、ある楽曲をグループの中心とし、その楽曲からユークリッド距離が近い楽曲を順次候補曲とすることで、楽曲の類似検索を行なうこともできる。なお、楽曲データの特徴量を収集するための技術としては、例えば、特許文献２が挙げられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２７８５４７号公報
【特許文献２】特開平６−２９０５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、大容量記憶装置に格納された多数のコンテンツを、特徴量にしたがって複数のグループに分類し、その分類されたグループ単位で再生を行ないたいという要求がある。例えば、コンテンツとして楽曲データを想定した場合、カフェなどで、多種多様の楽曲の中から、ゆったりとした曲調の楽曲を選んで再生し続けたいといった状況である。
【０００７】
特徴量にしたがって楽曲の分類を行なう場合、ある座標上の１点からユークリッド距離が所定値以内の楽曲をグループ化するといった、文献１に記載の方法を取ると、印象座標軸上に楽曲が密な空間と疎な空間とが存在するため、各々のグループに属する楽曲数に大きな偏りが生じる場合がある。例えば、あるグループには１曲しか楽曲が分類されていないが、別のグループでは３０曲の楽曲が分類されている、といったことが起こり得る。このグループ間の要素数の不均衡は、クラスタの平均を用い、与えられたクラスタ数Ｋ個に分類するＫ平均法のような従来のアルゴリズムを用いた場合にも、同様に起こり得る。
【０００８】
そこで本発明は、多数のコンテンツを、指標化された特徴量に基づいて複数のグループに分類する際に、グループ間のコンテンツ数の偏りを小さくすることを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の第１の態様であるコンテンツ分類装置は、複数のコンテンツを所定数のグループへとグループ分けするコンテンツ分類装置において、分類対象のコンテンツそれぞれにおける指標化された特徴量を取得し、前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出し、その代表値が近いグループ同士を１のグループへと結合する結合処理を行なうグループ作成部を備え、前記グループ作成部は、前記結合処理を、グループ数が前記所定数となるまで繰り返すことを特徴とする。
ここで、前記特徴量は、分類対象のコンテンツそれぞれにおける指標化された特徴量ベクトルであり、前記グループの代表値は、前記グループに属するコンテンツの特徴量ベクトルの重心とすることができる。
このとき、前記グループ作成部は、未結合のグループの内の、前記重心の距離が近いグループ同士を結合することができる。
また、前記グループ作成部は、未結合のグループが１つ残っている場合には、前記代表値に基づいていずれかの結合済のグループと結合させることができる。
また、作成グループ数の候補を、前記分類対象のコンテンツ数に基づいて算出し、候補となった作成グループ数の選択を受け付けるグループ数設定部をさらに備え、前記所定数は、前記グループ数設定部が受け付けた作成グループ数とすることができる。
あるいは、作成グループ数の指定を受け付けるグループ数設定部をさらに備え、前記所定数は、指定された前記作成グループ数よりも多い数とするようにしてもよい。
このとき、前記グループ作成部は、グループ数が前記所定数となった後、前記所定数と作成グループ数との差に相当する数のグループを選択し、選択されたグループに属する各コンテンツを、選択されなかったグループのいずれかに振り分けることができる。
上記課題を解決するため、本発明の第２の態様であるコンテンツ分類方法は、複数のコンテンツを所定数のグループへとグループ分けするコンテンツ分類方法において、分類対象のコンテンツそれぞれにおける指標化された特徴量を取得するステップと、前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出するステップと、前記代表値が近いグループ同士を１のグループへと結合する結合処理を行なうグループ作成ステップと、を有し、前記グループステップにおいて、前記結合処理を、グループ数が前記所定数となるまで繰り返すことを特徴とする。
上記課題を解決するため、本発明の第３の態様であるコンテンツ分類プログラムは、複数のコンテンツを所定数のグループへとグループ分けする処理をコンピュータに実行させるコンテンツ分類プログラムにおいて、コンピュータに、分類対象のコンテンツそれぞれにおける指標化された特徴量を取得するステップと、前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出するステップと、前記代表値が近いグループ同士を１のグループへと結合する結合処理を行なうグループ作成ステップと、を実行させ、前記グループステップは、前記結合処理を、グループ数が前記所定数となるまで繰り返すステップであることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、複数のコンテンツを、指標化された特徴量に基づいて複数のグループに分類する際に、グループ間のコンテンツ数の偏りを小さくすることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態に係る楽曲分類装置の構成を示すブロック図である。
【図２】楽曲分類装置と外部記憶装置と再生装置とが回線により接続された状態を示す図である。
【図３】特徴量ベクトル格納部の格納形態の一例を示す図である。
【図４】グループ格納部の格納形態の一例を示す図である。
【図５】楽曲分類装置の動作について説明するフローチャートである。
【図６】作成する楽曲グループ数の選択を受け付けるための画面例である。
【図７】楽曲分類の概要を説明するための図である。
【図８】第１実施形態における楽曲分類処理の詳細な手順について説明するフローチャートである。
【図９】代表値である重心の算出処理について説明する図である。
【図１０】未結合の楽曲グループの結合処理を説明する図である。
【図１１】楽曲グループ間の距離算出の別例を説明する図である。
【図１２】本発明の第２実施形態に係る楽曲分類装置の構成を示すブロック図である。
【図１３】第２実施形態における楽曲グループ作成処理の詳細な手順について説明するフローチャートである。
【図１４】楽曲グループの分解処理について説明するフローチャートである。
【図１５】楽曲グループの分解処理について説明する図である。
【発明を実施するための形態】
【００１２】
本発明の実施の形態について図面を参照して詳細に説明する。本実施形態では、複数のグループに分類するコンテンツとして楽曲データを例に説明するが、本発明は、楽曲データに限られず、映像データ、画像データ、ソフトウェア、その他のコンテンツを分類対象とすることができる。
＜第１実施形態＞
【００１３】
まず、本発明の第１実施形態について説明する。図１は、本発明のコンテンツ分類装置の第１実施形態である楽曲分類装置の構成を示すブロック図である。本図に示すように、楽曲分類装置１００は、ユーザインタフェース部１１０、楽曲グループ数設定部１２０、楽曲グループ作成部１３０、格納部１４０を備えて構成される。
【００１４】
楽曲分類装置１００は、ＣＰＵ、メモリ、インタフェース、入出力装置等を備えたパーソナルコンピュータ等の一般的な情報処理装置を用いて構成することができる。すなわち、情報処理装置は、上述の各機能ブロックを実現するためのコンピュータプログラムを実行することにより、楽曲分類装置１００として機能することができる。ただし、楽曲分類装置１００は、専用のハードウェアを用いて構成するようにしてもよい。
【００１５】
楽曲分類装置１００は、例えば、図２に示すように外部記憶装置２００、再生装置３００と回線４０を介して接続され、使用される。外部記憶装置２００には、楽曲データ格納部２１０が構成され、多数の楽曲データが格納されている。楽曲データ格納部２１０は、データベース機能を備えており、デジタルコンテンツである楽曲データ本体と、その識別子である楽曲ＩＤを管理している。楽曲分類装置１００は、楽曲データ格納部２１０に楽曲データが格納された楽曲を分類対象とする。
【００１６】
再生装置３００は、外部記憶装置２００の楽曲データ格納部２１０に格納された楽曲データを再生することができる音響装置である。回線４０は、バスやＡＴＡＰＩ、ＬＡＮ等の通信回線である。再生装置３００は、楽曲分類装置１００によって生成された分類情報にしたがって、外部記憶装置２００に格納された楽曲データから、どの楽曲データを再生するかを決定して再生する。なお、楽曲分類装置１００、外部記憶装置２００、再生装置３００は、それぞれ独立した機器として構成してもよいし、これらの機能をまとめた機器として構成してもよい。
【００１７】
図１において、格納部１４０は、ハードディスクやメモリ等の高速アクセスが可能な記憶領域であり、特徴量ベクトル格納部１４１と楽曲グループ格納部１４２とが構成されている。
【００１８】
特徴量ベクトル格納部１４１は、外部記憶装置２００の楽曲データ格納部２１０に格納された楽曲データ毎の特徴量ベクトルを格納する。特徴量ベクトルは、楽曲の特徴を示す複数の項目について、それぞれの項目を指標化した値を要素とするベクトルである。
【００１９】
楽曲の特徴を示す項目は、例えば、平均音圧、低域平均音圧、テンポ、拍子等とすることができる。これらの項目の値は、人為的に設定したり、外部からデータを取得してもよいし、あるいは、特許文献２に記載されたような方法で楽曲の音響信号に基づいて数値化することもできる。各項目の値は、音圧、テンポ等の値をそのまま用いるのではなく、所定の範囲に正規化されるように指標化して特徴量ベクトル格納部１４１に格納することが望ましい。また、特徴量は、楽曲から受ける印象や、楽器編成、ジャンル等を数値化したものであってもよい。
【００２０】
図３は、特徴量ベクトル格納部１４１の格納形態の一例を示している。本図の例では、楽曲ＩＤと複数の項目を有する特徴量ベクトルとが対応付けられている。また、楽曲ＩＤにより、分類対象の楽曲が、外部記憶装置２００の楽曲データ格納部２１０に格納された楽曲データと関連付けられている。
【００２１】
楽曲グループ格納部１４２は、楽曲グループを識別する識別子である楽曲グループＩＤと、その楽曲グループに属する１つ以上の楽曲の楽曲ＩＤとを対応付けて格納する。図４は、楽曲グループ格納部１４２の格納形態の一例を示す図である。本図の例では、楽曲グループＩＤが「Ｇｒｏｕｐ１」である楽曲グループに、「楽曲ＩＤ１」「楽曲ＩＤ３」の楽曲が属しており、楽曲グループＩＤが「Ｇｒｏｕｐ２」である楽曲グループに、「楽曲ＩＤ２」「楽曲ＩＤ４」「楽曲ＩＤ６」の楽曲が属していることを示している。なお、楽曲グループ格納部１４２は、グループ作成処理において随時更新される。また、楽曲グループ格納部１４２は、楽曲分類処理においてその楽曲グループが結合済か否かを示す結合済フラグを有している。
【００２２】
ユーザインタフェース部１１０は、マウス、キーボード、モニタ等の入出力装置を介して、ユーザからの操作を受け付けたり、ユーザに情報を提供する機能部である。
【００２３】
楽曲グループ数設定部１２０は、ユーザインタフェース部１１０を介したユーザからの操作に基づいて、作成する楽曲グループ数を設定する。第１実施形態においては、分類対象の楽曲数に応じて、作成可能な楽曲グループ数の候補をユーザに提示し、ユーザが候補の楽曲グループ数の中から選択することで、作成する楽曲グループ数が設定される。すなわち、第１実施形態においては、作成される楽曲グループ数に一定の制約が課せられている。
【００２４】
楽曲グループ作成部１３０は、特徴量ベクトル格納部１４１に特徴量ベクトルが格納された楽曲を、楽曲グループ数設定部１２０が設定した数の楽曲グループに分類する。このとき、各楽曲グループには、ほぼ同じ数の楽曲が含まれるように分類処理を行なう。
【００２５】
楽曲グループ作成部１３０は、距離算出部１３１、楽曲グループ結合部１３２、代表値算出部１３３を備えている。代表値算出部１３３は、楽曲グループの代表値を算出する。ここでは、代表値は、特徴量ベクトルの項目毎に、楽曲グループに属している楽曲の指標値を平均して得られる重心を用いるものとする。距離算出部１３１は、楽曲グループ間で代表値同士の距離を算出する。代表値として重心を用いた場合は、両重心が示す座標間のユークリッド距離を算出する。楽曲グループ結合部１３２は、距離が近い２つの楽曲グループ同士を結合して新たな楽曲グループを作成する。
【００２６】
次に、第１実施形態における楽曲分類装置１００の動作について図５のフローチャートを参照して説明する。まず、楽曲グループ数設定部１２０が、格納部１４０の特徴量ベクトル格納部１４１を参照して、分類対象の楽曲数を取得する（Ｓ１１）。分類対象の楽曲数は、特徴量ベクトル格納部１４１に格納されている楽曲ＩＤの数をカウントすることにより取得することができる。
【００２７】
そして、取得した楽曲数に基づいて作成可能なグループ数を算出する（Ｓ１２）。第１実施形態においては、距離の近い未結合の２つの楽曲グループ同士を結合していくため、分類対象の楽曲数をＮとすると、作成可能な楽曲グループ数Ｇｎは、［数１］で求められる値となる。ここで、ｎは０以上の整数である。
【数１】
0005578368.tif 000002
【００２８】
具体的な数値例を示すと、分類対象の楽曲数Ｎを４０とすると、楽曲グループ数Ｇｎの取り得る値は、［数１］より、Ｇｎ＝｛４０，２０，１０，５，２，１，０｝となる。
【００２９】
作成可能な楽曲グループ数を算出すると、楽曲グループ数設定部１２０は、ユーザインタフェース部１１０を介して、ユーザから楽曲グループ数の指定を受け付ける（Ｓ１３）。楽曲グループ数の指定は、算出された作成可能な楽曲グループ数をユーザに提示して、その中から選択を受け付けるようにする。
【００３０】
図６（ａ）は、作成可能なグループ数を提示して、選択を受け付けるための画面例を示している。ここでは、楽曲グループ作成数として意味を持たない１と０とを除いて提示している。ユーザは、本画面において希望する楽曲グループ数にチェックを入力することで、作成する楽曲グループ数を指定することができる。
【００３１】
なお、作成する楽曲グループ数の選択に代えて、楽曲グループに含める最小楽曲数の選択をユーザから受け付けることで、間接的に楽曲グループ数の指定を受け付けるようにしてもよい。第１実施形態において、各楽曲グループに分類される最小の数ｇｎは、楽曲グループ数をＧｎ、分類対象の楽曲数をＮとすると、［数２］で求めることができる。
【数２】
0005578368.tif 000003
【００３２】
すなわち、各楽曲グループに分類される最小の楽曲数ｇｎは、２の冪乗であるので、２の冪乗の値のみが選択可能であるようにユーザに提示する。このとき、分類対象の楽曲数の半数以下である最小楽曲数を候補として提示するようにする。図６（ｂ）は、各楽曲グループに分類される最小の楽曲数の候補を提示して、選択を受け付けるための画面例を示している。本画面で、各楽曲グループに分類される最小の楽曲数ｇｎが選択されると、楽曲グループ数設定部１２０は、［数３］にしたがって、作成する楽曲グループ数Ｇｎを設定する。
【数３】
0005578368.tif 000004
【００３３】
グループ数の指定を受け付けると、楽曲グループ作成部１３０が、特徴量ベクトル格納部１４１に格納された特徴量ベクトルに基づいて、指定された楽曲グループ数に楽曲を分類する（Ｓ１４）。
【００３４】
ここで、楽曲分類の概要について具体例を用いて説明する。図７は、楽曲分類の概要を説明するための図であり、８つの楽曲を２つの楽曲グループに分類する場合を例にしている。説明を簡単にするため、特徴量ベクトルは、項目が２つの２次元ベクトルであるとする。
【００３５】
図７（ａ）は、分類対象の８つの楽曲について、２次元の特徴量ベクトルを２次元座標空間に配置したものであり、白丸が各楽曲の特徴量ベクトルの座標を示している。まず、楽曲グループ作成部１３０は、楽曲グループ格納部１４２に、楽曲と同数の楽曲グループを作成し、それぞれの楽曲グループに１つずつ楽曲に対応した楽曲ＩＤを格納する。この場合、楽曲グループの代表値である重心は、特徴量ベクトルの座標と等しい。
【００３６】
次に、楽曲グループ作成部１３０の楽曲グループ結合部１３２は、代表値である重心のユークリッド距離の近い楽曲グループ同士でペアを作り、そのペアを結合する処理を行なう。図７（ｂ）は、ユークリッド距離の近い楽曲グループ同士でペアを作成した様子を示したものである。点線枠は、楽曲グループを示したものであり、１つの楽曲グループは１つの楽曲を含んでいる。実線で結ばれたものが、楽曲グループのペアを示している。
【００３７】
そして、楽曲グループのペアを、新たな１つの楽曲グループとして結合し、楽曲グループ格納部１４２を更新する。このとき、結合された２つの楽曲グループは、楽曲グループ格納部１４２から削除する。図７（ｃ）は、楽曲グループのペアを結合して、新たな１つの楽曲グループとした様子を示している。また、図７（ｃ）の黒丸は、楽曲グループの代表値である重心を示している。
【００３８】
次に、楽曲グループ作成部１３０の楽曲グループ結合部１３２は、再度、代表値である重心の距離が近い楽曲グループ同士でペアを作り、そのペアを結合する処理を行なう。図８（ｄ）は、重心間のユークリッド距離の近い楽曲グループ同士でペアを作成した様子を示している。楽曲グループの重心である黒丸を結ぶ実線は、楽曲グループのペアを示している。これらのペアを結合して、再び新たな楽曲グループを作成し、結合された２つの楽曲グループを削除して楽曲グループ格納部１４２を更新する。楽曲グループが結合された結果、楽曲グループ数は２となり、作成する楽曲グループ数と同数になるため、楽曲グループ作成部１３０は、結合処理を終了する。このとき２つの楽曲グループには、４つずつ同数の楽曲が含まれ、偏りが生じない。
【００３９】
以上、楽曲グループ作成部１３０が８つの楽曲を２つの楽曲グループに分類する処理の概要を、具体例を用いて説明した。このように、本実施形態では、楽曲グループ作成部１３０が、代表値である重心のユークリッド距離の近い楽曲グループを結合する処理を繰り返して最終的な楽曲グループを作成するので、それぞれの楽曲グループには、［数２］で算出される数以上の楽曲が含められることになる。このため、楽曲グループ間の楽曲数の偏りを小さくすることができる。また、ユークリッド距離の近い２つの楽曲グループ同士を結合していくため、楽曲グループには、特徴量が似た楽曲が集まるようになる。
【００４０】
次に、楽曲グループ作成部１３０が行なうステップ（Ｓ１４）の楽曲分類処理の詳細な手順について図８のフローチャートを参照して説明する。以下では、Ｎ個の楽曲が分類対象であり、作成する楽曲グループ数としてＧｎが指定されているものとする。
【００４１】
楽曲分類処理では、まず初期楽曲グループを作成する（Ｓ１４１１）。初期楽曲グループは、上述のように分類対象の楽曲数Ｎと同数の楽曲グループを楽曲グループ格納部１４２に作成し、それぞれの楽曲グループに１つずつ楽曲に対応した楽曲ＩＤを格納する。このため、初期楽曲グループが作成された時点で、楽曲グループ数Ｍは、楽曲数Ｎと等しい。
【００４２】
そして、楽曲グループ作成部１３０は、作成された楽曲グループ数Ｍが、指定された楽曲グループ数Ｇｎと等しくなるまで、以下に説明するグループ結合処理を繰り返し、作成された楽曲グループ数Ｍが、指定された楽曲グループ数Ｇｎと等しくなると、処理を終了する（Ｓ１４１２）。
【００４３】
グループ結合処理では、まず、各楽曲グループの代表値である重心を計算する（Ｓ１４１３）。重心は、楽曲グループに属する楽曲毎の特徴量ベクトルに対して、ベクトル要素毎に平均を算出したものであり、特徴量ベクトルと同一の次元数を有するベクトルである。重心の算出は、代表値算出部１３３が行なう。
【００４４】
代表値算出部１３３は、楽曲グループ格納部１４２から、重心を算出する楽曲グループについて、その楽曲グループに属するすべての楽曲ＩＤを取得し、さらに、取得した楽曲ＩＤの特徴量ベクトルを、特徴量ベクトル格納部１４１からそれぞれ取得して、重心を計算する。ｊ番目の楽曲グループに属する楽曲ＩＤの個数をＫ、ｉ番目の楽曲ＩＤの特徴量ベクトルをＦｋとすると、ｊ番目の楽曲グループの重心Ｇｊは、以下の［数４］で求めることができる。
【数４】
0005578368.tif 000005
【００４５】
ここで、ある楽曲グループに、３つの楽曲ＩＤが登録されている場合に、その楽曲グループの重心を求める具体例を示す。特徴量ベクトルは２次元であって、それぞれＦ１＝｛１，５｝、Ｆ２＝｛２，１｝、Ｆ３＝｛６，３｝とし、求める重心をＧ０とする。このとき、重心Ｇ０は、［数４］より、Ｇ０＝｛１＋２＋６，５＋１＋３｝／３＝｛９／３，９／３｝＝｛３，３｝と求められる。図９は、Ｆ１、Ｆ２、Ｆ３、およびＧ０を、それぞれ２次元座標上に示した図である。本図では、白丸が各特徴量ベクトルの座標位置であり、黒丸が代表値である重心を示している。なお、分類において重視したい項目に重みを付けて重心を求めるようにしてもよい。
【００４６】
次に、楽曲グループ作成部１３０は、ループ処理「ループＡ」を開始する（Ｓ１４１４）。ループＡは、開始値１のループカウンタｋが、ループを繰り返す毎に１ずつ増加し、終了値Ｍになるまで、終端ステップである（Ｓ１４２０）までの処理を繰り返す。終了値Ｍは、そのループ開始時における楽曲グループ格納部１４２に格納された楽曲グループの数である。
【００４７】
ループＡ内において、楽曲グループ作成部１３０は、楽曲グループ格納部１４２に格納されているｋ番目の楽曲グループ（以降、「楽曲グループｋ」と称する）が、既に結合処理済みかどうかを、結合済フラグを参照して判断する（Ｓ１４１５）。結合処理済であるか、既に削除されている場合は（Ｓ１４１５：Ｙｅｓ）、ループＡの終端ステップ（Ｓ１４２０）に飛び、次のループに進む。
【００４８】
まだ結合処理を行なっていない場合には（Ｓ１４１５：Ｎｏ）、楽曲グループ作成部１３０の距離算出部１３１が、他の未結合の楽曲グループを対象に、それぞれの楽曲グループとの距離を計算する（Ｓ１４１６）。楽曲グループとの距離は、上述のように楽曲グループの代表値である重心同士のユークリッド距離とすることができる。ただし、マハラノビスの汎距離等の他の距離を用いるようにしてもよい。
【００４９】
楽曲グループｋと他の未結合の楽曲グループとの距離をそれぞれ計算すると、楽曲グループ作成部１３０は、計算された距離のうち最短距離である未結合の楽曲グループを選択し、結合対象として特定する（Ｓ１４１７）。結合対象となった楽曲グループを「楽曲グループｓ」と称する。
【００５０】
次に、楽曲グループ作成部１３０の楽曲グループ結合部１３２が、楽曲グループｋと、楽曲グループｓとを結合し、新しい楽曲グループを作成する（Ｓ１４１８）。新しい楽曲グループには、結合元の２つの楽曲グループに属していたすべての楽曲ＩＤを割り当てる。
【００５１】
具体例を示すと、楽曲グループｋに属する楽曲ＩＤが、｛楽曲ＩＤｋ１，楽曲ＩＤｋ２｝の２曲で、結合対象となった楽曲グループｓに属する楽曲ＩＤが、｛楽曲ＩＤｓ１，楽曲ＩＤｓ２｝の２曲である場合、結合後の新しい楽曲グループに属する楽曲ＩＤは、｛楽曲ＩＤｓ１，楽曲ＩＤｓ２，楽曲ＩＤｋ１，楽曲ＩＤｋ２｝の４曲となる。
【００５２】
そして、楽曲グループ結合部１３２は、楽曲グループ格納部１４２から、楽曲グループｋと、楽曲グループｓのデータを削除し、新たに作成した楽曲グループのデータを格納する。このとき、新たに作成した楽曲グループに対して、結合済みかどうかを判別する結合済フラグが結合済を示すように更新する。（Ｓ１４１９）。
【００５３】
ループＡの終端ステップにおいて、楽曲グループ作成部１３０は、ループカウンタｋを１増加させ、ループＡを繰り返す（Ｓ１４２０）。このとき、ループカウンタｋがＭに達していたならば、ループＡを終了する。
【００５４】
ループＡの終了後、楽曲グループ結合部１３２は、結合済フラグが結合済を示していない楽曲グループを、その楽曲グループから最も近い距離にある楽曲グループと結合させる（Ｓ１４２１）。すなわち、結合対象とならなかった、あるいは結合対象が残っていなかった１つの楽曲グループについて、（Ｓ１４１６）の距離算出処理と、（Ｓ１４１７）の結合対象特定処理と、（Ｓ１４１８）の楽曲グループ結合処理を行なう。このとき、結合対象となる楽曲グループは、結合フラグが結合済を示している楽曲グループであってもよい。
【００５５】
図１０は、このときの処理を具体的に説明する図である。図１０（ａ）は、３つの楽曲グループを示している。３つの楽曲グループの楽曲グループＩＤはそれぞれ楽曲グループα、楽曲グループβ、楽曲グループγであり、このうち、楽曲グループαと楽曲グループβは結合処理が行なわれ、楽曲グループγは結合処理を行なっていないものとする。
【００５６】
楽曲グループγは結合処理を行なっていないため、楽曲グループαか、楽曲グループβのどちらかと結合させる。そこで、楽曲グループγの重心との距離が近い重心を有する楽曲グループが楽曲グループβであった場合、楽曲グループ結合部１３２は、楽曲グループγと、楽曲グループβとの結合処理を行なう。図１０（ｂ）は、楽曲グループγと楽曲グループβとを結合し、新たに楽曲グループδを作成した結果を示している。
【００５７】
この処理により、すべての楽曲グループが他のいずれかの楽曲グループと結合され、新たなＭ個の楽曲グループが作成されたため、新たな楽曲グループすべての結合済フラグを解除する（Ｓ１４２２）。
【００５８】
以上の処理を、楽曲グループ数Ｍが、指定された楽曲グループ数Ｇｎになるまで繰り返すようにする（Ｓ１４１２）。これにより、Ｎ個の楽曲が、偏ることなくＧｎ個のグループに分類されることになる。
【００５９】
なお、距離算出部１３１で算出する楽曲グループ間の距離について、楽曲グループの重心間の距離ではなく、異なる楽曲グループに属する楽曲間の最短距離を、楽曲グループ間の距離としてもよい。図１１を参照して、この方法による楽曲グループ間の距離の算出についての具体例を説明する。図１１の２つの点線枠は楽曲グループであり、２つの楽曲グループに、それぞれ白丸で示されている２つの楽曲ＩＤが属しているものとする。
【００６０】
この場合、異なる楽曲グループに属する楽曲ＩＤ間の距離を考えると、４つの距離を算出することができる。すなわち、図中の距離Ｄ１，距離Ｄ２，距離Ｄ３，距離Ｄ４である。本例では、これらの４つの距離のうち、距離の最も短いものを、楽曲グループ間の距離とする。例えば、距離Ｄ２が最も距離が短い場合、距離Ｄ２を求める楽曲グループ間の距離とする。
【００６１】
また、特徴量ベクトル格納部１４１に格納された特徴量ベクトルは、主成分分析などの手法を用いることで、特徴量ベクトルの要素を要約し、特徴量ベクトルの次元数を減らすようにしてもよい。
【００６２】
また、作成した楽曲グループから、さらに、決まった曲順で再生を行なうためのプレイリストを作成してもよい。例えば、プレイリストとする楽曲グループを決定し、その楽曲グループに属する楽曲をプレイリストの曲目とし、曲順は、楽曲グループの重心から近い特徴量ベクトルを有する楽曲順に決定するといった処理を行なうことで、プレイリストを作成することができる。もちろん、プレイリストの曲順はランダムに決定してもよい。
【００６３】
以上説明したように、第１実施形態の楽曲分類装置１００によれば、未結合の２つの楽曲グループ同士を結合していくことで新たな楽曲グループを作成するため、楽曲グループに属する楽曲数の偏りが小さい楽曲グループを作成することができる。このとき、楽曲グループに属する楽曲の特徴量ベクトルに基づいて求められた距離の近い楽曲グループ同士を結合するため、音楽的特徴の似通った楽曲グループを作成することができる。
＜第２実施形態＞
【００６４】
次に、本発明の第２実施形態について説明する。第１実施形態における楽曲分類装置１００では、作成できる楽曲グループ数に、［数１］に示したような制約があったが、第２実施形態における楽曲分類装置は、任意の数の楽曲グループを作成でき、なおかつ各楽曲グループに属する楽曲の数も、大きく偏らないように楽曲グループを作成することができる。
【００６５】
図１２は、本発明の第２実施形態に係る楽曲分類装置の構成を示すブロック図である。第１実施形態と同じブロックについては同じ符号を付し、説明を省略する。本図に示すように第２実施形態に係る楽曲分類装置１００ａは、ユーザインタフェース部１１０、楽曲グループ数設定部１２０ａ、楽曲グループ作成部１３０ａ、格納部１４０を備えて構成される。
【００６６】
楽曲グループ数設定部１２０ａは、ユーザインタフェース部１１０を介したユーザからの操作に基づいて、作成する楽曲グループ数を設定する。第２実施形態においては、ユーザから任意の楽曲グループ数の指定を受け付けることで、作成する楽曲グループ数が設定される。もちろん、楽曲グループ数は、分類対象の楽曲の数を超えないように設定する。
【００６７】
楽曲グループ作成部１３０ａは、第１実施形態の楽曲グループ作成部１３０と同じブロックである距離算出部１３１、楽曲グループ結合部１３２、代表値算出部１３３に加え、結合した楽曲グループを分解する楽曲グループ分解部１３４を備えている。
【００６８】
次に、第２実施形態における楽曲グループ作成部１３０ａが行なう楽曲分類処理の詳細な手順について図１３のフローチャートを参照して説明する。以下では、Ｎ個の楽曲が分類対象であり、作成する楽曲グループ数としてＩが指定されているものとする。上述のように、楽曲グループ数Ｉは任意の数とすることができる。このため、図６（ａ）の楽曲グループ数選択画面に代えて、楽曲グループ数を直接入力する画面を用いてユーザからの指定を受け付けるものとする。
【００６９】
第２実施形態においても、楽曲分類処理では、まず初期楽曲グループを作成する（Ｓ１４３１）。初期楽曲グループは、第１実施形態と同様に、分類対象の楽曲数Ｎと同数の楽曲グループを楽曲グループ格納部１４２に作成し、それぞれの楽曲グループに１つずつ楽曲に対応した楽曲ＩＤを格納する。
【００７０】
ただし、第２実施形態では、楽曲数と作成する楽曲グループ数との制約がないため、初期状態として、楽曲数Ｎと同数の楽曲グループを作成するのに限られず、楽曲数Ｎよりも少ない数の楽曲グループを作成するようにしてもよい。この場合、初期状態において、複数の楽曲ＩＤを格納した楽曲グループが作成されることになる。例えば、ユーザが意図的に特定の楽曲を同じ楽曲グループに含めたい場合には、初期状態において同じ楽曲グループにその楽曲の楽曲ＩＤを格納しておけばよい。
【００７１】
そして、結合カウンタｃに０を設定する（Ｓ１４３２）。ここで、結合カウンタｃは、一連の楽曲グループ結合処理を行なった回数を示す変数であり、０以上の整数である。初期状態では、一連の楽曲グループ結合処理はまだ行なわれていないため、０が設定される。
【００７２】
次に、楽曲グループ作成部１３０ａは、結合カウンタｃが、所定の条件を満たすまで、以下に説明するグループ結合処理を繰り返し、結合カウンタｃが、所定の条件を満たすと、（Ｓ１４４５）の楽曲グループ分解処理に進む（Ｓ１４１２）。ここで、所定の条件は、［数５］に示す条件である。
【数５】
0005578368.tif 000006
【００７３】
［数５］において、右辺は、一連の楽曲グループ結合処理をｃ＋１回行なった場合の楽曲グループ数を示している。すなわち、一連の楽曲グループ結合処理をもう一回行なった場合に作成される楽曲グループ数であり、［数５］の条件は、楽曲グループ数Ｍが、作成する楽曲グループ数Ｉを下回る１回手前まで一連の楽曲グループ結合処理を繰り返すことを意味している。
【００７４】
なお、分類対象の楽曲数Ｎが１００である場合、一連の楽曲グループ結合処理が０回のとき、楽曲グループ数は１００となり、一連の楽曲グループ結合処理が１回のとき、楽曲グループ数は５０となり、一連の楽曲グループ結合処理が２回のとき、楽曲グループ数は２５となり、一連の楽曲グループ結合処理が３回のとき、楽曲グループ数は１２となっていく。
【００７５】
例えば、作成する楽曲グループ数Ｉが２０であり、分類対象の楽曲数Ｎが１００である場合、右辺は、ｃ＝０，１，２の順に、５０，２５，１２となる。ｃ＝２、つまり一連の楽曲グループ結合処理を２回行なうと、Ｉ＝２０＞１２となり、［数５］が成り立つことになる。
【００７６】
第２実施形態のグループ結合処理においても、各楽曲グループの代表値である重心を計算し（Ｓ１４３４）、楽曲グループ作成部１３０ａが、ループ処理「ループＡ」を開始する（Ｓ１４３５）。
【００７７】
ループＡ内において、楽曲グループ作成部１３０ａは、楽曲グループｋが既に結合処理済みかどうかを判断する（Ｓ１４３６）。結合処理済であるか、既に削除されている場合は（Ｓ１４３６：Ｙｅｓ）、ループＡの終端ステップ（Ｓ１４４１）に飛び、次のループに進む。
【００７８】
まだ結合処理を行なっていない場合には（Ｓ１４３６：Ｎｏ）、楽曲グループ作成部１３０ａの距離算出部１３１が、他の未結合の楽曲グループを対象に、それぞれの楽曲グループとの距離を計算する（Ｓ１４３７）。楽曲グループｋと他の未結合の楽曲グループとの距離をそれぞれ計算すると、楽曲グループ作成部１３０ａは、最短距離である未結合の楽曲グループｓを選択し、結合対象として特定する（Ｓ１４３８）。
【００７９】
次に、楽曲グループ作成部１３０ａの楽曲グループ結合部１３２が、楽曲グループｋと、楽曲グループｓとを結合し、新しい楽曲グループを作成する（Ｓ１４３９）そして、楽曲グループ格納部１４２から、楽曲グループｋと、楽曲グループｓのデータを削除し、新たに作成した楽曲グループのデータを格納する。このとき、新たに作成した楽曲グループには、結合済みかどうかを判別する結合済フラグが結合済を示すように更新する。（Ｓ１４４０）。
【００８０】
ループＡの終端ステップにおいて、楽曲グループ作成部１３０は、ループカウンタｋを１増加させ、ループＡを繰り返す（Ｓ１４４１）。このとき、ループカウンタｋがＭに達していたならば、ループＡを終了する。ループＡの終了後、楽曲グループ結合部１３２は、結合済フラグが結合済を示していない楽曲グループを、その楽曲グループから最も近い距離にある楽曲グループと結合させる（Ｓ１４４２）。
【００８１】
この処理により、すべての楽曲グループが他のいずれかの楽曲グループと結合され、新たなＭ個の楽曲グループが作成されたため、新たな楽曲グループすべての結合済フラグを解除する（Ｓ１４４３）。そして、結合カウンタｃを１増加させて（Ｓ１４４４）、所定条件を満たすか否かの判定（Ｓ１４３３）に戻る。
【００８２】
上述のように、結合カウンタｃが所定の条件を満たすと（Ｓ１４１２：Ｙｅｓ）、（Ｓ１４４５）の楽曲グループ分解処理に進む。図１４のフローチャートを参照して、楽曲グループ作成部１３０ａの楽曲グループ分解部１３４が行なう楽曲グループ分解処理について説明する。
【００８３】
楽曲グループ分解処理は、作成される楽曲グループの数が、指定された楽曲グループ数Ｉと等しくなるように、必要数の楽曲グループを削除し、削除された楽曲グループに属していた楽曲ＩＤを、他の楽曲グループに再登録する処理である。
【００８４】
まず、楽曲グループ分解部１３４は、一連の楽曲グループ結合処理で作成された楽曲グループ数Ｍから、指定された作成すべき楽曲グループ数Ｉを引いて、減少させる楽曲グループ数Ｌを設定する（Ｓ２０１）。
【００８５】
次に、楽曲グループ格納部１４２に格納されているすべての楽曲グループについて、楽曲グループの代表値である重心を算出し（Ｓ２０２）、算出された重心とその楽曲グループに属する楽曲の特徴量ベクトルとの距離をそれぞれ求め、その平均距離（以下「楽曲平均距離」と称す）を算出する（Ｓ２０３）。
【００８６】
楽曲グループの重心の特徴量ベクトルを｛ｇ１，…，ｇｘ｝、楽曲グループに属するＫ個の楽曲データのうち、ｋ番目の楽曲データの特徴量ベクトルを｛ｆｋ１，・・・ｆｋｘ｝とすると、楽曲平均距離Ｄは、［数６］によって求めることができる。なお、［数６］で求められる楽曲平均距離はユークリッド距離であるが、他の距離、例えばマハラノビスの汎距離などを用いてもよい。
【数６】
0005578368.tif 000007
【００８７】
次に、楽曲グループ分解部１３４は、楽曲平均距離の大きい順に、Ｌ個の楽曲グループを選択する（Ｓ２０４）。そして、選択されたＬ個の楽曲グループに属するそれぞれの楽曲を、選択されたＬ個以外の楽曲グループのうち、最も距離の近い楽曲グループに移動させる（Ｓ２０５）。すなわち、楽曲グループの移動先は、移動対象の楽曲に対応する特徴量ベクトルと、選択されたＬ個以外の楽曲グループの代表値である重心との距離をそれぞれ計算し、最も距離の近い楽曲グループとする。
【００８８】
なお、選択されたＬ個の楽曲グループに属する楽曲と、選択されたＬ個以外の楽曲グループとの距離の計算は、楽曲の移動前にすべて行なうようにしてもよいし、楽曲を移動させる度に、移動先の楽曲グループの代表値である重心を逐次更新するようにしてもよい。
【００８９】
選択されたＬ個の楽曲グループに属する楽曲すべての移動を終えると、楽曲グループ分解部１３４は、選択されたＬ個の楽曲グループすべてを、楽曲グループ格納部１４２から削除して（Ｓ２０６）、楽曲グループ分解処理を終了する。
【００９０】
ここで、楽曲グループ分解部１３４の処理について、作成する楽曲グループ数Ｉを４、分類対象の楽曲数Ｎを１０、一連の楽曲グループ結合処理で作成された楽曲グループ数Ｍを５とした場合の例を、図１５を参照して説明する。
【００９１】
図１５（ａ）は、一連の楽曲グループ結合処理後の状態を示している。図１５（ａ）の白丸は楽曲であり、それぞれ特徴量ベクトルに基づいて配置されている。点線枠は、楽曲グループを示しており、点線枠中のＡ，Ｂ，Ｃ，Ｄ，Ｅは、それぞれの楽曲グループの楽曲グループＩＤを示している。
【００９２】
これら５個の楽曲グループから、楽曲平均距離の大きいものを、（Ｍ−Ｉ）個、すなわち（５−４）＝１個選択する。図１５（ｂ）は、楽曲グループＡが最も楽曲平均距離が大きかったとして、楽曲グループＡを分解対象楽曲グループとして選択した様子を示している。
【００９３】
次に、楽曲グループＡに属している楽曲データを、別の楽曲グループに移動させる。図１５（ｃ）は、楽曲グループＡに属している２つの楽曲をａ１、ａ２とし、それぞれの楽曲から最も近い重心を有する楽曲グループを矢印で示している。すなわち、楽曲ａ１は楽曲グループＢと、楽曲ａ２は楽曲グループＣと近いことを示している。図１５（ｄ）は、楽曲グループＡを削除し、楽曲グループＢに楽曲ａ１を、楽曲グループＣに楽曲ａ２を移動させた最終的な楽曲グループを示している。
【００９４】
以上説明したように、第２実施形態における楽曲分類装置１００ａでは、第１実施形態における楽曲分類装置１００の楽曲グループ間の楽曲数の偏りが小さくなるという効果に加え、任意の個数の楽曲グループを作成することができるという効果を奏する。
【符号の説明】
【００９５】
１００…楽曲分類装置、１００ａ…楽曲分類装置、１１０…ユーザインタフェース部、１２０…楽曲グループ数設定部、１２０ａ…楽曲グループ数設定部、１３０…楽曲グループ作成部、１３０ａ…楽曲グループ作成部、１３１…距離算出部、１３２…楽曲グループ結合部、１３３…代表値算出部、１３４…楽曲グループ分解部、１４０…格納部、１４１…特徴量ベクトル格納部、１４２…楽曲グループ格納部、２００…外部記憶装置、２１０…楽曲データ格納部、３００…再生装置
【図１】
0005578368.tif 000008
【図２】
0005578368.tif 000009
【図３】
0005578368.tif 000010
【図４】
0005578368.tif 000011
【図５】
0005578368.tif 000012
【図６】
0005578368.tif 000013
【図７】
0005578368.tif 000014
【図８】
0005578368.tif 000015
【図９】
0005578368.tif 000016
【図１０】
0005578368.tif 000017
【図１１】
0005578368.tif 000018
【図１２】
0005578368.tif 000019
【図１３】
0005578368.tif 000020
【図１４】
0005578368.tif 000021
【図１５】
0005578368.tif 000022