説明

コンテンツ分類装置、コンテンツ分類方法およびコンテンツ分類プログラム

【課題】多数のコンテンツを、指標化された特徴量に基づいて複数のグループに分類する際に、グループ間のコンテンツ数の偏りを小さくする。
【解決手段】複数のコンテンツを所定数のグループへとグループ分けするコンテンツ分類装置において、分類対象のコンテンツそれぞれにおける指標化された特徴量を取得し、複数のコンテンツが所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出し、その代表値が近いグループ同士を1のグループへと結合する結合処理を行なうグループ作成部を備え、グループ作成部は、結合処理を、グループ数が所定数となるまで繰り返す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多数のコンテンツを、指標化された特徴量に基づいて複数のグループに分類するコンテンツ分類装置、コンテンツ分類方法およびコンテンツ分類プログラムに関する。
【背景技術】
【0002】
近年、画像、音楽、映像等のデジタルコンテンツを、ハードディスクドライブ等の大容量記憶装置に格納し、利用することが広く行なわれている。それに伴って、多数のコンテンツの中から所望のコンテンツを選び出す検索技術や、コンテンツを自動的に分類・整理する技術に対する要望が高まっており、種々の技術が開発されている。
【0003】
例えば、特許文献1には、音響信号を解析して得られる特徴量を基に、それぞれの楽曲データを印象空間と呼ばれる座標軸上に配置することで、楽曲データの検索を行なう装置が開示されている。
【0004】
特許文献1に記載された技術によれば、楽曲データの特徴量を印象空間上の点に変換し、その点からのユークリッド距離が近い楽曲を順次候補曲とすることで、ユーザの所望する楽曲のグループを得ることができる。また、ある楽曲をグループの中心とし、その楽曲からユークリッド距離が近い楽曲を順次候補曲とすることで、楽曲の類似検索を行なうこともできる。なお、楽曲データの特徴量を収集するための技術としては、例えば、特許文献2が挙げられる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−278547号公報
【特許文献2】特開平6−290574号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、大容量記憶装置に格納された多数のコンテンツを、特徴量にしたがって複数のグループに分類し、その分類されたグループ単位で再生を行ないたいという要求がある。例えば、コンテンツとして楽曲データを想定した場合、カフェなどで、多種多様の楽曲の中から、ゆったりとした曲調の楽曲を選んで再生し続けたいといった状況である。
【0007】
特徴量にしたがって楽曲の分類を行なう場合、ある座標上の1点からユークリッド距離が所定値以内の楽曲をグループ化するといった、文献1に記載の方法を取ると、印象座標軸上に楽曲が密な空間と疎な空間とが存在するため、各々のグループに属する楽曲数に大きな偏りが生じる場合がある。例えば、あるグループには1曲しか楽曲が分類されていないが、別のグループでは30曲の楽曲が分類されている、といったことが起こり得る。このグループ間の要素数の不均衡は、クラスタの平均を用い、与えられたクラスタ数K個に分類するK平均法のような従来のアルゴリズムを用いた場合にも、同様に起こり得る。
【0008】
そこで本発明は、多数のコンテンツを、指標化された特徴量に基づいて複数のグループに分類する際に、グループ間のコンテンツ数の偏りを小さくすることを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本発明の第1の態様であるコンテンツ分類装置は、複数のコンテンツを所定数のグループへとグループ分けするコンテンツ分類装置において、分類対象のコンテンツそれぞれにおける指標化された特徴量を取得し、前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出し、その代表値が近いグループ同士を1のグループへと結合する結合処理を行なうグループ作成部を備え、前記グループ作成部は、前記結合処理を、グループ数が前記所定数となるまで繰り返すことを特徴とする。
ここで、前記特徴量は、分類対象のコンテンツそれぞれにおける指標化された特徴量ベクトルであり、前記グループの代表値は、前記グループに属するコンテンツの特徴量ベクトルの重心とすることができる。
このとき、前記グループ作成部は、未結合のグループの内の、前記重心の距離が近いグループ同士を結合することができる。
また、前記グループ作成部は、未結合のグループが1つ残っている場合には、前記代表値に基づいていずれかの結合済のグループと結合させることができる。
また、作成グループ数の候補を、前記分類対象のコンテンツ数に基づいて算出し、候補となった作成グループ数の選択を受け付けるグループ数設定部をさらに備え、前記所定数は、前記グループ数設定部が受け付けた作成グループ数とすることができる。
あるいは、作成グループ数の指定を受け付けるグループ数設定部をさらに備え、前記所定数は、指定された前記作成グループ数よりも多い数とするようにしてもよい。
このとき、前記グループ作成部は、グループ数が前記所定数となった後、前記所定数と作成グループ数との差に相当する数のグループを選択し、選択されたグループに属する各コンテンツを、選択されなかったグループのいずれかに振り分けることができる。
上記課題を解決するため、本発明の第2の態様であるコンテンツ分類方法は、複数のコンテンツを所定数のグループへとグループ分けするコンテンツ分類方法において、分類対象のコンテンツそれぞれにおける指標化された特徴量を取得するステップと、前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出するステップと、前記代表値が近いグループ同士を1のグループへと結合する結合処理を行なうグループ作成ステップと、を有し、前記グループステップにおいて、前記結合処理を、グループ数が前記所定数となるまで繰り返すことを特徴とする。
上記課題を解決するため、本発明の第3の態様であるコンテンツ分類プログラムは、複数のコンテンツを所定数のグループへとグループ分けする処理をコンピュータに実行させるコンテンツ分類プログラムにおいて、コンピュータに、分類対象のコンテンツそれぞれにおける指標化された特徴量を取得するステップと、前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出するステップと、前記代表値が近いグループ同士を1のグループへと結合する結合処理を行なうグループ作成ステップと、を実行させ、前記グループステップは、前記結合処理を、グループ数が前記所定数となるまで繰り返すステップであることを特徴とする。
【発明の効果】
【0010】
本発明によれば、複数のコンテンツを、指標化された特徴量に基づいて複数のグループに分類する際に、グループ間のコンテンツ数の偏りを小さくすることができる。
【図面の簡単な説明】
【0011】
【図1】本発明の第1実施形態に係る楽曲分類装置の構成を示すブロック図である。
【図2】楽曲分類装置と外部記憶装置と再生装置とが回線により接続された状態を示す図である。
【図3】特徴量ベクトル格納部の格納形態の一例を示す図である。
【図4】グループ格納部の格納形態の一例を示す図である。
【図5】楽曲分類装置の動作について説明するフローチャートである。
【図6】作成する楽曲グループ数の選択を受け付けるための画面例である。
【図7】楽曲分類の概要を説明するための図である。
【図8】第1実施形態における楽曲分類処理の詳細な手順について説明するフローチャートである。
【図9】代表値である重心の算出処理について説明する図である。
【図10】未結合の楽曲グループの結合処理を説明する図である。
【図11】楽曲グループ間の距離算出の別例を説明する図である。
【図12】本発明の第2実施形態に係る楽曲分類装置の構成を示すブロック図である。
【図13】第2実施形態における楽曲グループ作成処理の詳細な手順について説明するフローチャートである。
【図14】楽曲グループの分解処理について説明するフローチャートである。
【図15】楽曲グループの分解処理について説明する図である。
【発明を実施するための形態】
【0012】
本発明の実施の形態について図面を参照して詳細に説明する。本実施形態では、複数のグループに分類するコンテンツとして楽曲データを例に説明するが、本発明は、楽曲データに限られず、映像データ、画像データ、ソフトウェア、その他のコンテンツを分類対象とすることができる。
<第1実施形態>
【0013】
まず、本発明の第1実施形態について説明する。図1は、本発明のコンテンツ分類装置の第1実施形態である楽曲分類装置の構成を示すブロック図である。本図に示すように、楽曲分類装置100は、ユーザインタフェース部110、楽曲グループ数設定部120、楽曲グループ作成部130、格納部140を備えて構成される。
【0014】
楽曲分類装置100は、CPU、メモリ、インタフェース、入出力装置等を備えたパーソナルコンピュータ等の一般的な情報処理装置を用いて構成することができる。すなわち、情報処理装置は、上述の各機能ブロックを実現するためのコンピュータプログラムを実行することにより、楽曲分類装置100として機能することができる。ただし、楽曲分類装置100は、専用のハードウェアを用いて構成するようにしてもよい。
【0015】
楽曲分類装置100は、例えば、図2に示すように外部記憶装置200、再生装置300と回線40を介して接続され、使用される。外部記憶装置200には、楽曲データ格納部210が構成され、多数の楽曲データが格納されている。楽曲データ格納部210は、データベース機能を備えており、デジタルコンテンツである楽曲データ本体と、その識別子である楽曲IDを管理している。楽曲分類装置100は、楽曲データ格納部210に楽曲データが格納された楽曲を分類対象とする。
【0016】
再生装置300は、外部記憶装置200の楽曲データ格納部210に格納された楽曲データを再生することができる音響装置である。回線40は、バスやATAPI、LAN等の通信回線である。再生装置300は、楽曲分類装置100によって生成された分類情報にしたがって、外部記憶装置200に格納された楽曲データから、どの楽曲データを再生するかを決定して再生する。なお、楽曲分類装置100、外部記憶装置200、再生装置300は、それぞれ独立した機器として構成してもよいし、これらの機能をまとめた機器として構成してもよい。
【0017】
図1において、格納部140は、ハードディスクやメモリ等の高速アクセスが可能な記憶領域であり、特徴量ベクトル格納部141と楽曲グループ格納部142とが構成されている。
【0018】
特徴量ベクトル格納部141は、外部記憶装置200の楽曲データ格納部210に格納された楽曲データ毎の特徴量ベクトルを格納する。特徴量ベクトルは、楽曲の特徴を示す複数の項目について、それぞれの項目を指標化した値を要素とするベクトルである。
【0019】
楽曲の特徴を示す項目は、例えば、平均音圧、低域平均音圧、テンポ、拍子等とすることができる。これらの項目の値は、人為的に設定したり、外部からデータを取得してもよいし、あるいは、特許文献2に記載されたような方法で楽曲の音響信号に基づいて数値化することもできる。各項目の値は、音圧、テンポ等の値をそのまま用いるのではなく、所定の範囲に正規化されるように指標化して特徴量ベクトル格納部141に格納することが望ましい。また、特徴量は、楽曲から受ける印象や、楽器編成、ジャンル等を数値化したものであってもよい。
【0020】
図3は、特徴量ベクトル格納部141の格納形態の一例を示している。本図の例では、楽曲IDと複数の項目を有する特徴量ベクトルとが対応付けられている。また、楽曲IDにより、分類対象の楽曲が、外部記憶装置200の楽曲データ格納部210に格納された楽曲データと関連付けられている。
【0021】
楽曲グループ格納部142は、楽曲グループを識別する識別子である楽曲グループIDと、その楽曲グループに属する1つ以上の楽曲の楽曲IDとを対応付けて格納する。図4は、楽曲グループ格納部142の格納形態の一例を示す図である。本図の例では、楽曲グループIDが「Group1」である楽曲グループに、「楽曲ID1」「楽曲ID3」の楽曲が属しており、楽曲グループIDが「Group2」である楽曲グループに、「楽曲ID2」「楽曲ID4」「楽曲ID6」の楽曲が属していることを示している。なお、楽曲グループ格納部142は、グループ作成処理において随時更新される。また、楽曲グループ格納部142は、楽曲分類処理においてその楽曲グループが結合済か否かを示す結合済フラグを有している。
【0022】
ユーザインタフェース部110は、マウス、キーボード、モニタ等の入出力装置を介して、ユーザからの操作を受け付けたり、ユーザに情報を提供する機能部である。
【0023】
楽曲グループ数設定部120は、ユーザインタフェース部110を介したユーザからの操作に基づいて、作成する楽曲グループ数を設定する。第1実施形態においては、分類対象の楽曲数に応じて、作成可能な楽曲グループ数の候補をユーザに提示し、ユーザが候補の楽曲グループ数の中から選択することで、作成する楽曲グループ数が設定される。すなわち、第1実施形態においては、作成される楽曲グループ数に一定の制約が課せられている。
【0024】
楽曲グループ作成部130は、特徴量ベクトル格納部141に特徴量ベクトルが格納された楽曲を、楽曲グループ数設定部120が設定した数の楽曲グループに分類する。このとき、各楽曲グループには、ほぼ同じ数の楽曲が含まれるように分類処理を行なう。
【0025】
楽曲グループ作成部130は、距離算出部131、楽曲グループ結合部132、代表値算出部133を備えている。代表値算出部133は、楽曲グループの代表値を算出する。ここでは、代表値は、特徴量ベクトルの項目毎に、楽曲グループに属している楽曲の指標値を平均して得られる重心を用いるものとする。距離算出部131は、楽曲グループ間で代表値同士の距離を算出する。代表値として重心を用いた場合は、両重心が示す座標間のユークリッド距離を算出する。楽曲グループ結合部132は、距離が近い2つの楽曲グループ同士を結合して新たな楽曲グループを作成する。
【0026】
次に、第1実施形態における楽曲分類装置100の動作について図5のフローチャートを参照して説明する。まず、楽曲グループ数設定部120が、格納部140の特徴量ベクトル格納部141を参照して、分類対象の楽曲数を取得する(S11)。分類対象の楽曲数は、特徴量ベクトル格納部141に格納されている楽曲IDの数をカウントすることにより取得することができる。
【0027】
そして、取得した楽曲数に基づいて作成可能なグループ数を算出する(S12)。第1実施形態においては、距離の近い未結合の2つの楽曲グループ同士を結合していくため、分類対象の楽曲数をNとすると、作成可能な楽曲グループ数Gnは、[数1]で求められる値となる。ここで、nは0以上の整数である。
【数1】

【0028】
具体的な数値例を示すと、分類対象の楽曲数Nを40とすると、楽曲グループ数Gnの取り得る値は、[数1]より、Gn={40,20,10,5,2,1,0}となる。
【0029】
作成可能な楽曲グループ数を算出すると、楽曲グループ数設定部120は、ユーザインタフェース部110を介して、ユーザから楽曲グループ数の指定を受け付ける(S13)。楽曲グループ数の指定は、算出された作成可能な楽曲グループ数をユーザに提示して、その中から選択を受け付けるようにする。
【0030】
図6(a)は、作成可能なグループ数を提示して、選択を受け付けるための画面例を示している。ここでは、楽曲グループ作成数として意味を持たない1と0とを除いて提示している。ユーザは、本画面において希望する楽曲グループ数にチェックを入力することで、作成する楽曲グループ数を指定することができる。
【0031】
なお、作成する楽曲グループ数の選択に代えて、楽曲グループに含める最小楽曲数の選択をユーザから受け付けることで、間接的に楽曲グループ数の指定を受け付けるようにしてもよい。第1実施形態において、各楽曲グループに分類される最小の数gnは、楽曲グループ数をGn、分類対象の楽曲数をNとすると、[数2]で求めることができる。
【数2】

【0032】
すなわち、各楽曲グループに分類される最小の楽曲数gnは、2の冪乗であるので、2の冪乗の値のみが選択可能であるようにユーザに提示する。このとき、分類対象の楽曲数の半数以下である最小楽曲数を候補として提示するようにする。図6(b)は、各楽曲グループに分類される最小の楽曲数の候補を提示して、選択を受け付けるための画面例を示している。本画面で、各楽曲グループに分類される最小の楽曲数gnが選択されると、楽曲グループ数設定部120は、[数3]にしたがって、作成する楽曲グループ数Gnを設定する。
【数3】

【0033】
グループ数の指定を受け付けると、楽曲グループ作成部130が、特徴量ベクトル格納部141に格納された特徴量ベクトルに基づいて、指定された楽曲グループ数に楽曲を分類する(S14)。
【0034】
ここで、楽曲分類の概要について具体例を用いて説明する。図7は、楽曲分類の概要を説明するための図であり、8つの楽曲を2つの楽曲グループに分類する場合を例にしている。説明を簡単にするため、特徴量ベクトルは、項目が2つの2次元ベクトルであるとする。
【0035】
図7(a)は、分類対象の8つの楽曲について、2次元の特徴量ベクトルを2次元座標空間に配置したものであり、白丸が各楽曲の特徴量ベクトルの座標を示している。まず、楽曲グループ作成部130は、楽曲グループ格納部142に、楽曲と同数の楽曲グループを作成し、それぞれの楽曲グループに1つずつ楽曲に対応した楽曲IDを格納する。この場合、楽曲グループの代表値である重心は、特徴量ベクトルの座標と等しい。
【0036】
次に、楽曲グループ作成部130の楽曲グループ結合部132は、代表値である重心のユークリッド距離の近い楽曲グループ同士でペアを作り、そのペアを結合する処理を行なう。図7(b)は、ユークリッド距離の近い楽曲グループ同士でペアを作成した様子を示したものである。点線枠は、楽曲グループを示したものであり、1つの楽曲グループは1つの楽曲を含んでいる。実線で結ばれたものが、楽曲グループのペアを示している。
【0037】
そして、楽曲グループのペアを、新たな1つの楽曲グループとして結合し、楽曲グループ格納部142を更新する。このとき、結合された2つの楽曲グループは、楽曲グループ格納部142から削除する。図7(c)は、楽曲グループのペアを結合して、新たな1つの楽曲グループとした様子を示している。また、図7(c)の黒丸は、楽曲グループの代表値である重心を示している。
【0038】
次に、楽曲グループ作成部130の楽曲グループ結合部132は、再度、代表値である重心の距離が近い楽曲グループ同士でペアを作り、そのペアを結合する処理を行なう。図8(d)は、重心間のユークリッド距離の近い楽曲グループ同士でペアを作成した様子を示している。楽曲グループの重心である黒丸を結ぶ実線は、楽曲グループのペアを示している。これらのペアを結合して、再び新たな楽曲グループを作成し、結合された2つの楽曲グループを削除して楽曲グループ格納部142を更新する。楽曲グループが結合された結果、楽曲グループ数は2となり、作成する楽曲グループ数と同数になるため、楽曲グループ作成部130は、結合処理を終了する。このとき2つの楽曲グループには、4つずつ同数の楽曲が含まれ、偏りが生じない。
【0039】
以上、楽曲グループ作成部130が8つの楽曲を2つの楽曲グループに分類する処理の概要を、具体例を用いて説明した。このように、本実施形態では、楽曲グループ作成部130が、代表値である重心のユークリッド距離の近い楽曲グループを結合する処理を繰り返して最終的な楽曲グループを作成するので、それぞれの楽曲グループには、[数2]で算出される数以上の楽曲が含められることになる。このため、楽曲グループ間の楽曲数の偏りを小さくすることができる。また、ユークリッド距離の近い2つの楽曲グループ同士を結合していくため、楽曲グループには、特徴量が似た楽曲が集まるようになる。
【0040】
次に、楽曲グループ作成部130が行なうステップ(S14)の楽曲分類処理の詳細な手順について図8のフローチャートを参照して説明する。以下では、N個の楽曲が分類対象であり、作成する楽曲グループ数としてGnが指定されているものとする。
【0041】
楽曲分類処理では、まず初期楽曲グループを作成する(S1411)。初期楽曲グループは、上述のように分類対象の楽曲数Nと同数の楽曲グループを楽曲グループ格納部142に作成し、それぞれの楽曲グループに1つずつ楽曲に対応した楽曲IDを格納する。このため、初期楽曲グループが作成された時点で、楽曲グループ数Mは、楽曲数Nと等しい。
【0042】
そして、楽曲グループ作成部130は、作成された楽曲グループ数Mが、指定された楽曲グループ数Gnと等しくなるまで、以下に説明するグループ結合処理を繰り返し、作成された楽曲グループ数Mが、指定された楽曲グループ数Gnと等しくなると、処理を終了する(S1412)。
【0043】
グループ結合処理では、まず、各楽曲グループの代表値である重心を計算する(S1413)。重心は、楽曲グループに属する楽曲毎の特徴量ベクトルに対して、ベクトル要素毎に平均を算出したものであり、特徴量ベクトルと同一の次元数を有するベクトルである。重心の算出は、代表値算出部133が行なう。
【0044】
代表値算出部133は、楽曲グループ格納部142から、重心を算出する楽曲グループについて、その楽曲グループに属するすべての楽曲IDを取得し、さらに、取得した楽曲IDの特徴量ベクトルを、特徴量ベクトル格納部141からそれぞれ取得して、重心を計算する。j番目の楽曲グループに属する楽曲IDの個数をK、i番目の楽曲IDの特徴量ベクトルをFkとすると、j番目の楽曲グループの重心Gjは、以下の[数4]で求めることができる。
【数4】

【0045】
ここで、ある楽曲グループに、3つの楽曲IDが登録されている場合に、その楽曲グループの重心を求める具体例を示す。特徴量ベクトルは2次元であって、それぞれF1={1,5}、F2={2,1}、F3={6,3}とし、求める重心をG0とする。このとき、重心G0は、[数4]より、G0={1+2+6,5+1+3}/3={9/3,9/3}={3,3}と求められる。図9は、F1、F2、F3、およびG0を、それぞれ2次元座標上に示した図である。本図では、白丸が各特徴量ベクトルの座標位置であり、黒丸が代表値である重心を示している。なお、分類において重視したい項目に重みを付けて重心を求めるようにしてもよい。
【0046】
次に、楽曲グループ作成部130は、ループ処理「ループA」を開始する(S1414)。ループAは、開始値1のループカウンタkが、ループを繰り返す毎に1ずつ増加し、終了値Mになるまで、終端ステップである(S1420)までの処理を繰り返す。終了値Mは、そのループ開始時における楽曲グループ格納部142に格納された楽曲グループの数である。
【0047】
ループA内において、楽曲グループ作成部130は、楽曲グループ格納部142に格納されているk番目の楽曲グループ(以降、「楽曲グループk」と称する)が、既に結合処理済みかどうかを、結合済フラグを参照して判断する(S1415)。結合処理済であるか、既に削除されている場合は(S1415:Yes)、ループAの終端ステップ(S1420)に飛び、次のループに進む。
【0048】
まだ結合処理を行なっていない場合には(S1415:No)、楽曲グループ作成部130の距離算出部131が、他の未結合の楽曲グループを対象に、それぞれの楽曲グループとの距離を計算する(S1416)。楽曲グループとの距離は、上述のように楽曲グループの代表値である重心同士のユークリッド距離とすることができる。ただし、マハラノビスの汎距離等の他の距離を用いるようにしてもよい。
【0049】
楽曲グループkと他の未結合の楽曲グループとの距離をそれぞれ計算すると、楽曲グループ作成部130は、計算された距離のうち最短距離である未結合の楽曲グループを選択し、結合対象として特定する(S1417)。結合対象となった楽曲グループを「楽曲グループs」と称する。
【0050】
次に、楽曲グループ作成部130の楽曲グループ結合部132が、楽曲グループkと、楽曲グループsとを結合し、新しい楽曲グループを作成する(S1418)。新しい楽曲グループには、結合元の2つの楽曲グループに属していたすべての楽曲IDを割り当てる。
【0051】
具体例を示すと、楽曲グループkに属する楽曲IDが、{楽曲IDk1,楽曲IDk2}の2曲で、結合対象となった楽曲グループsに属する楽曲IDが、{楽曲IDs1,楽曲IDs2}の2曲である場合、結合後の新しい楽曲グループに属する楽曲IDは、{楽曲IDs1,楽曲IDs2,楽曲IDk1,楽曲IDk2}の4曲となる。
【0052】
そして、楽曲グループ結合部132は、楽曲グループ格納部142から、楽曲グループkと、楽曲グループsのデータを削除し、新たに作成した楽曲グループのデータを格納する。このとき、新たに作成した楽曲グループに対して、結合済みかどうかを判別する結合済フラグが結合済を示すように更新する。(S1419)。
【0053】
ループAの終端ステップにおいて、楽曲グループ作成部130は、ループカウンタkを1増加させ、ループAを繰り返す(S1420)。このとき、ループカウンタkがMに達していたならば、ループAを終了する。
【0054】
ループAの終了後、楽曲グループ結合部132は、結合済フラグが結合済を示していない楽曲グループを、その楽曲グループから最も近い距離にある楽曲グループと結合させる(S1421)。すなわち、結合対象とならなかった、あるいは結合対象が残っていなかった1つの楽曲グループについて、(S1416)の距離算出処理と、(S1417)の結合対象特定処理と、(S1418)の楽曲グループ結合処理を行なう。このとき、結合対象となる楽曲グループは、結合フラグが結合済を示している楽曲グループであってもよい。
【0055】
図10は、このときの処理を具体的に説明する図である。図10(a)は、3つの楽曲グループを示している。3つの楽曲グループの楽曲グループIDはそれぞれ楽曲グループα、楽曲グループβ、楽曲グループγであり、このうち、楽曲グループαと楽曲グループβは結合処理が行なわれ、楽曲グループγは結合処理を行なっていないものとする。
【0056】
楽曲グループγは結合処理を行なっていないため、楽曲グループαか、楽曲グループβのどちらかと結合させる。そこで、楽曲グループγの重心との距離が近い重心を有する楽曲グループが楽曲グループβであった場合、楽曲グループ結合部132は、楽曲グループγと、楽曲グループβとの結合処理を行なう。図10(b)は、楽曲グループγと楽曲グループβとを結合し、新たに楽曲グループδを作成した結果を示している。
【0057】
この処理により、すべての楽曲グループが他のいずれかの楽曲グループと結合され、新たなM個の楽曲グループが作成されたため、新たな楽曲グループすべての結合済フラグを解除する(S1422)。
【0058】
以上の処理を、楽曲グループ数Mが、指定された楽曲グループ数Gnになるまで繰り返すようにする(S1412)。これにより、N個の楽曲が、偏ることなくGn個のグループに分類されることになる。
【0059】
なお、距離算出部131で算出する楽曲グループ間の距離について、楽曲グループの重心間の距離ではなく、異なる楽曲グループに属する楽曲間の最短距離を、楽曲グループ間の距離としてもよい。図11を参照して、この方法による楽曲グループ間の距離の算出についての具体例を説明する。図11の2つの点線枠は楽曲グループであり、2つの楽曲グループに、それぞれ白丸で示されている2つの楽曲IDが属しているものとする。
【0060】
この場合、異なる楽曲グループに属する楽曲ID間の距離を考えると、4つの距離を算出することができる。すなわち、図中の距離D1,距離D2,距離D3,距離D4である。本例では、これらの4つの距離のうち、距離の最も短いものを、楽曲グループ間の距離とする。例えば、距離D2が最も距離が短い場合、距離D2を求める楽曲グループ間の距離とする。
【0061】
また、特徴量ベクトル格納部141に格納された特徴量ベクトルは、主成分分析などの手法を用いることで、特徴量ベクトルの要素を要約し、特徴量ベクトルの次元数を減らすようにしてもよい。
【0062】
また、作成した楽曲グループから、さらに、決まった曲順で再生を行なうためのプレイリストを作成してもよい。例えば、プレイリストとする楽曲グループを決定し、その楽曲グループに属する楽曲をプレイリストの曲目とし、曲順は、楽曲グループの重心から近い特徴量ベクトルを有する楽曲順に決定するといった処理を行なうことで、プレイリストを作成することができる。もちろん、プレイリストの曲順はランダムに決定してもよい。
【0063】
以上説明したように、第1実施形態の楽曲分類装置100によれば、未結合の2つの楽曲グループ同士を結合していくことで新たな楽曲グループを作成するため、楽曲グループに属する楽曲数の偏りが小さい楽曲グループを作成することができる。このとき、楽曲グループに属する楽曲の特徴量ベクトルに基づいて求められた距離の近い楽曲グループ同士を結合するため、音楽的特徴の似通った楽曲グループを作成することができる。
<第2実施形態>
【0064】
次に、本発明の第2実施形態について説明する。第1実施形態における楽曲分類装置100では、作成できる楽曲グループ数に、[数1]に示したような制約があったが、第2実施形態における楽曲分類装置は、任意の数の楽曲グループを作成でき、なおかつ各楽曲グループに属する楽曲の数も、大きく偏らないように楽曲グループを作成することができる。
【0065】
図12は、本発明の第2実施形態に係る楽曲分類装置の構成を示すブロック図である。第1実施形態と同じブロックについては同じ符号を付し、説明を省略する。本図に示すように第2実施形態に係る楽曲分類装置100aは、ユーザインタフェース部110、楽曲グループ数設定部120a、楽曲グループ作成部130a、格納部140を備えて構成される。
【0066】
楽曲グループ数設定部120aは、ユーザインタフェース部110を介したユーザからの操作に基づいて、作成する楽曲グループ数を設定する。第2実施形態においては、ユーザから任意の楽曲グループ数の指定を受け付けることで、作成する楽曲グループ数が設定される。もちろん、楽曲グループ数は、分類対象の楽曲の数を超えないように設定する。
【0067】
楽曲グループ作成部130aは、第1実施形態の楽曲グループ作成部130と同じブロックである距離算出部131、楽曲グループ結合部132、代表値算出部133に加え、結合した楽曲グループを分解する楽曲グループ分解部134を備えている。
【0068】
次に、第2実施形態における楽曲グループ作成部130aが行なう楽曲分類処理の詳細な手順について図13のフローチャートを参照して説明する。以下では、N個の楽曲が分類対象であり、作成する楽曲グループ数としてIが指定されているものとする。上述のように、楽曲グループ数Iは任意の数とすることができる。このため、図6(a)の楽曲グループ数選択画面に代えて、楽曲グループ数を直接入力する画面を用いてユーザからの指定を受け付けるものとする。
【0069】
第2実施形態においても、楽曲分類処理では、まず初期楽曲グループを作成する(S1431)。初期楽曲グループは、第1実施形態と同様に、分類対象の楽曲数Nと同数の楽曲グループを楽曲グループ格納部142に作成し、それぞれの楽曲グループに1つずつ楽曲に対応した楽曲IDを格納する。
【0070】
ただし、第2実施形態では、楽曲数と作成する楽曲グループ数との制約がないため、初期状態として、楽曲数Nと同数の楽曲グループを作成するのに限られず、楽曲数Nよりも少ない数の楽曲グループを作成するようにしてもよい。この場合、初期状態において、複数の楽曲IDを格納した楽曲グループが作成されることになる。例えば、ユーザが意図的に特定の楽曲を同じ楽曲グループに含めたい場合には、初期状態において同じ楽曲グループにその楽曲の楽曲IDを格納しておけばよい。
【0071】
そして、結合カウンタcに0を設定する(S1432)。ここで、結合カウンタcは、一連の楽曲グループ結合処理を行なった回数を示す変数であり、0以上の整数である。初期状態では、一連の楽曲グループ結合処理はまだ行なわれていないため、0が設定される。
【0072】
次に、楽曲グループ作成部130aは、結合カウンタcが、所定の条件を満たすまで、以下に説明するグループ結合処理を繰り返し、結合カウンタcが、所定の条件を満たすと、(S1445)の楽曲グループ分解処理に進む(S1412)。ここで、所定の条件は、[数5]に示す条件である。
【数5】

【0073】
[数5]において、右辺は、一連の楽曲グループ結合処理をc+1回行なった場合の楽曲グループ数を示している。すなわち、一連の楽曲グループ結合処理をもう一回行なった場合に作成される楽曲グループ数であり、[数5]の条件は、楽曲グループ数Mが、作成する楽曲グループ数Iを下回る1回手前まで一連の楽曲グループ結合処理を繰り返すことを意味している。
【0074】
なお、分類対象の楽曲数Nが100である場合、一連の楽曲グループ結合処理が0回のとき、楽曲グループ数は100となり、一連の楽曲グループ結合処理が1回のとき、楽曲グループ数は50となり、一連の楽曲グループ結合処理が2回のとき、楽曲グループ数は25となり、一連の楽曲グループ結合処理が3回のとき、楽曲グループ数は12となっていく。
【0075】
例えば、作成する楽曲グループ数Iが20であり、分類対象の楽曲数Nが100である場合、右辺は、c=0,1,2の順に、50,25,12となる。c=2、つまり一連の楽曲グループ結合処理を2回行なうと、I=20>12となり、[数5]が成り立つことになる。
【0076】
第2実施形態のグループ結合処理においても、各楽曲グループの代表値である重心を計算し(S1434)、楽曲グループ作成部130aが、ループ処理「ループA」を開始する(S1435)。
【0077】
ループA内において、楽曲グループ作成部130aは、楽曲グループkが既に結合処理済みかどうかを判断する(S1436)。結合処理済であるか、既に削除されている場合は(S1436:Yes)、ループAの終端ステップ(S1441)に飛び、次のループに進む。
【0078】
まだ結合処理を行なっていない場合には(S1436:No)、楽曲グループ作成部130aの距離算出部131が、他の未結合の楽曲グループを対象に、それぞれの楽曲グループとの距離を計算する(S1437)。楽曲グループkと他の未結合の楽曲グループとの距離をそれぞれ計算すると、楽曲グループ作成部130aは、最短距離である未結合の楽曲グループsを選択し、結合対象として特定する(S1438)。
【0079】
次に、楽曲グループ作成部130aの楽曲グループ結合部132が、楽曲グループkと、楽曲グループsとを結合し、新しい楽曲グループを作成する(S1439)そして、楽曲グループ格納部142から、楽曲グループkと、楽曲グループsのデータを削除し、新たに作成した楽曲グループのデータを格納する。このとき、新たに作成した楽曲グループには、結合済みかどうかを判別する結合済フラグが結合済を示すように更新する。(S1440)。
【0080】
ループAの終端ステップにおいて、楽曲グループ作成部130は、ループカウンタkを1増加させ、ループAを繰り返す(S1441)。このとき、ループカウンタkがMに達していたならば、ループAを終了する。ループAの終了後、楽曲グループ結合部132は、結合済フラグが結合済を示していない楽曲グループを、その楽曲グループから最も近い距離にある楽曲グループと結合させる(S1442)。
【0081】
この処理により、すべての楽曲グループが他のいずれかの楽曲グループと結合され、新たなM個の楽曲グループが作成されたため、新たな楽曲グループすべての結合済フラグを解除する(S1443)。そして、結合カウンタcを1増加させて(S1444)、所定条件を満たすか否かの判定(S1433)に戻る。
【0082】
上述のように、結合カウンタcが所定の条件を満たすと(S1412:Yes)、(S1445)の楽曲グループ分解処理に進む。図14のフローチャートを参照して、楽曲グループ作成部130aの楽曲グループ分解部134が行なう楽曲グループ分解処理について説明する。
【0083】
楽曲グループ分解処理は、作成される楽曲グループの数が、指定された楽曲グループ数Iと等しくなるように、必要数の楽曲グループを削除し、削除された楽曲グループに属していた楽曲IDを、他の楽曲グループに再登録する処理である。
【0084】
まず、楽曲グループ分解部134は、一連の楽曲グループ結合処理で作成された楽曲グループ数Mから、指定された作成すべき楽曲グループ数Iを引いて、減少させる楽曲グループ数Lを設定する(S201)。
【0085】
次に、楽曲グループ格納部142に格納されているすべての楽曲グループについて、楽曲グループの代表値である重心を算出し(S202)、算出された重心とその楽曲グループに属する楽曲の特徴量ベクトルとの距離をそれぞれ求め、その平均距離(以下「楽曲平均距離」と称す)を算出する(S203)。
【0086】
楽曲グループの重心の特徴量ベクトルを{g1,…,gx}、楽曲グループに属するK個の楽曲データのうち、k番目の楽曲データの特徴量ベクトルを{fk1,・・・fkx}とすると、楽曲平均距離Dは、[数6]によって求めることができる。なお、[数6]で求められる楽曲平均距離はユークリッド距離であるが、他の距離、例えばマハラノビスの汎距離などを用いてもよい。
【数6】

【0087】
次に、楽曲グループ分解部134は、楽曲平均距離の大きい順に、L個の楽曲グループを選択する(S204)。そして、選択されたL個の楽曲グループに属するそれぞれの楽曲を、選択されたL個以外の楽曲グループのうち、最も距離の近い楽曲グループに移動させる(S205)。すなわち、楽曲グループの移動先は、移動対象の楽曲に対応する特徴量ベクトルと、選択されたL個以外の楽曲グループの代表値である重心との距離をそれぞれ計算し、最も距離の近い楽曲グループとする。
【0088】
なお、選択されたL個の楽曲グループに属する楽曲と、選択されたL個以外の楽曲グループとの距離の計算は、楽曲の移動前にすべて行なうようにしてもよいし、楽曲を移動させる度に、移動先の楽曲グループの代表値である重心を逐次更新するようにしてもよい。
【0089】
選択されたL個の楽曲グループに属する楽曲すべての移動を終えると、楽曲グループ分解部134は、選択されたL個の楽曲グループすべてを、楽曲グループ格納部142から削除して(S206)、楽曲グループ分解処理を終了する。
【0090】
ここで、楽曲グループ分解部134の処理について、作成する楽曲グループ数Iを4、分類対象の楽曲数Nを10、一連の楽曲グループ結合処理で作成された楽曲グループ数Mを5とした場合の例を、図15を参照して説明する。
【0091】
図15(a)は、一連の楽曲グループ結合処理後の状態を示している。図15(a)の白丸は楽曲であり、それぞれ特徴量ベクトルに基づいて配置されている。点線枠は、楽曲グループを示しており、点線枠中のA,B,C,D,Eは、それぞれの楽曲グループの楽曲グループIDを示している。
【0092】
これら5個の楽曲グループから、楽曲平均距離の大きいものを、(M−I)個、すなわち(5−4)=1個選択する。図15(b)は、楽曲グループAが最も楽曲平均距離が大きかったとして、楽曲グループAを分解対象楽曲グループとして選択した様子を示している。
【0093】
次に、楽曲グループAに属している楽曲データを、別の楽曲グループに移動させる。図15(c)は、楽曲グループAに属している2つの楽曲をa1、a2とし、それぞれの楽曲から最も近い重心を有する楽曲グループを矢印で示している。すなわち、楽曲a1は楽曲グループBと、楽曲a2は楽曲グループCと近いことを示している。図15(d)は、楽曲グループAを削除し、楽曲グループBに楽曲a1を、楽曲グループCに楽曲a2を移動させた最終的な楽曲グループを示している。
【0094】
以上説明したように、第2実施形態における楽曲分類装置100aでは、第1実施形態における楽曲分類装置100の楽曲グループ間の楽曲数の偏りが小さくなるという効果に加え、任意の個数の楽曲グループを作成することができるという効果を奏する。
【符号の説明】
【0095】
100…楽曲分類装置、100a…楽曲分類装置、110…ユーザインタフェース部、120…楽曲グループ数設定部、120a…楽曲グループ数設定部、130…楽曲グループ作成部、130a…楽曲グループ作成部、131…距離算出部、132…楽曲グループ結合部、133…代表値算出部、134…楽曲グループ分解部、140…格納部、141…特徴量ベクトル格納部、142…楽曲グループ格納部、200…外部記憶装置、210…楽曲データ格納部、300…再生装置

【特許請求の範囲】
【請求項1】
複数のコンテンツを所定数のグループへとグループ分けするコンテンツ分類装置において、
分類対象のコンテンツそれぞれにおける指標化された特徴量を取得し、前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出し、その代表値が近いグループ同士を1のグループへと結合する結合処理を行なうグループ作成部を備え、
前記グループ作成部は、前記結合処理を、グループ数が前記所定数となるまで繰り返すことを特徴とするコンテンツ分類装置。
【請求項2】
前記特徴量は、分類対象のコンテンツそれぞれにおける指標化された特徴量ベクトルであり、
前記グループの前記代表値は、前記グループに属するコンテンツの特徴量ベクトルの重心であることを特徴とする請求項1に記載のコンテンツ分類装置。
【請求項3】
前記グループ作成部は、
未結合のグループの内の、前記重心の距離が近いグループ同士を結合することを特徴とする請求項2に記載のコンテンツ分類装置。
【請求項4】
前記グループ作成部は、
未結合のグループが1つ残っている場合には、前記代表値に基づいていずれかの結合済のグループと結合させることを特徴とする請求項1〜請求項3のいずれか1項に記載のコンテンツ分類装置。
【請求項5】
作成グループ数の候補を、前記分類対象のコンテンツ数に基づいて算出し、候補となった作成グループ数の選択を受け付けるグループ数設定部をさらに備え、
前記所定数は、前記グループ数設定部が受け付けた作成グループ数であることを特徴とする請求項1〜請求項4のいずれか1項に記載のコンテンツ分類装置。
【請求項6】
作成グループ数の指定を受け付けるグループ数設定部をさらに備え、
前記所定数は、指定された前記作成グループ数よりも多い数であることを特徴とする請求項1〜請求項4のいずれか1項に記載のコンテンツ分類装置。
【請求項7】
前記グループ作成部は、
グループ数が前記所定数となった後、前記所定数と作成グループ数との差に相当する数のグループを選択し、選択されたグループに属する各コンテンツを、選択されなかったグループのいずれかに振り分けることを特徴とする請求項6に記載のコンテンツ分類装置。
【請求項8】
複数のコンテンツを所定数のグループへとグループ分けするコンテンツ分類方法において、
分類対象のコンテンツそれぞれにおける指標化された特徴量を取得するステップと、
前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出するステップと、
前記代表値が近いグループ同士を1のグループへと結合する結合処理を行なうグループ作成ステップと、
を有し、
前記グループステップにおいて、前記結合処理を、グループ数が前記所定数となるまで繰り返すことを特徴とするコンテンツ分類方法。
【請求項9】
複数のコンテンツを所定数のグループへとグループ分けする処理をコンピュータに実行させるコンテンツ分類プログラムにおいて、
コンピュータに、
分類対象のコンテンツそれぞれにおける指標化された特徴量を取得するステップと、
前記複数のコンテンツが前記所定数のグループよりも多い数のグループにグループ分けされている状態から、グループに属するコンテンツの特徴量に基づいて各グループの特徴量の代表値を算出するステップと、
前記代表値が近いグループ同士を1のグループへと結合する結合処理を行なうグループ作成ステップと、
を実行させ、
前記グループステップは、前記結合処理を、グループ数が前記所定数となるまで繰り返すステップであることを特徴とするコンテンツ分類プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate