(57)【要約】【課題】従来の技術では、ユーザ間の類似度を精度良く算出することができない。【解決手段】ユーザ情報処理装置１は、ユーザ識別情報と、コンテンツの再生位置を示す位置情報と、位置情報に対応するユーザの状態情報とを関連付けた反応データを読み込んで、位置情報を所定の開始位置と所定の終了位置を持つ各フレームに対応させ、フレームごとに複数のユーザの反応データを集計した反応データ集計値を算出する反応データ集計手段１８と、１つ以上のフレームをグループ化してブロック情報を生成するブロック情報生成手段１９と、反応データの位置情報をブロックに対応させて、ユーザ識別情報ごとに、ブロックごとに複数の反応データを集約した集約データを計算する集約データ計算手段１２と、一のユーザ及び他のユーザの集約データを用いて、一のユーザと他のユーザとの類似度を計算する類似度計算手段１３と、を有する。【選択図】図７
2011128790.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
ユーザを識別するためのユーザ識別情報と、コンテンツの再生位置を示す位置情報と、その位置情報に対応する前記ユーザの状態情報とを関連付けた反応データを読み込んで、前記位置情報を所定の開始位置と所定の終了位置を持つ各フレームに対応させると共に、前記フレームごとに複数のユーザの前記反応データを集計した反応データ集計値を算出する反応データ集計手段、
前記反応データ集計値の分布情報を用いて、１つ以上の前記フレームをグループ化し、各グループの先頭のフレームの前記開始位置と末尾のフレーム前記終了位置との間にある前記位置情報を同一のブロックに対応させるためのブロック情報を生成するブロック情報生成手段、
前記ブロック情報に基づいて、前記反応データの前記位置情報をブロックに対応させて、前記ユーザ識別情報ごとに、前記ブロックごとに複数の前記反応データを集約した集約データを計算する集約データ計算手段、
一のユーザの前記集約データと、他のユーザの前記集約データとを用いて、一のユーザと他のユーザとの類似度を計算する類似度計算手段、
として機能させるためのユーザ情報処理プログラム。
【請求項２】
前記ブロック情報生成手段は、前記反応データ集計値が所定値以下のフレームの前のフレームと後のフレームが、異なるブロックに対応するように制御して前記ブロック情報を生成する、
請求項１に記載のユーザ情報処理プログラム。
【請求項３】
前記ブロック情報生成手段は、前記反応データ集計値が所定値以下 のフレームが所定個数以上連続する区間を検出し、その区間の前のフレームと後のフレームが、異なるブロックに対応するように制御して前記ブロック情報を生成する、
請求項１に記載のユーザ情報処理プログラム。
【請求項４】
前記ブロック情報生成手段は、前記反応データ集計値が第１の所定値以下のフレームが所定個数以上連続する区間を検出し、その区間において、前記反応データ集計値が前記第１の所定値よりも小さい第２の所定値以下のフレームが存在する場合に、その区間の前のフレームと後のフレームが、異なるブロックに対応するように制御して前記ブロック情報を生成する、
請求項１に記載のユーザ情報処理プログラム。
【請求項５】
前記ブロック情報生成手段は、前記反応データ集計値が極小となる極小フレームを検出し、その極小フレームの前のフレームと後のフレームが、異なるブロックに対応するように制御して前記ブロック情報を生成する、
請求項１から４のいずれかに記載のユーザ情報処理プログラム。
【請求項６】
前記ブロック情報生成手段は、前記反応データ集計値が極小となる極小フレーム、および前記反応データ集計値が極大となる極大フレームを検出し、検出された一の極小フレームと、前記一の極小フレームの両側にある直近の２つの前記極大フレームとの距離を算出し、少なくとも一方 の距離が所定値以上である場合に、前記一の極小フレームの前のフレームと後のフレームが、異なるブロックに対応するように制御して前記ブロック情報を生成する、
請求項１から５のいずれかに記載のユーザ情報処理プログラム。
【請求項７】
前記ブロック情報生成手段は、前記反応データ集計値が極小となる極小フレーム、および前記反応データ集計値が極大となる極大フレームを検出し、検出された一の極小フレームの極小値と、前記一の極小フレームの両側にある直近の２つの前記極大フレームの極大値との差分を算出し、少なくとも一方の差分が所定値以上である場合に、前記一の極小フレームの前のフレームと後のフレームが、異なるブロックに対応するように制御して前記ブロック情報を生成する、
請求項１から６のいずれかに記載のユーザ情報処理プログラム。
【請求項８】
前記ブロック情報生成手段は、前記反応データ集計値が極小となる極小フレーム、および前記反応データ集計値が極大となる極大フレームを検出し、検出された一の極小フレームの極小値と、前記一の極小フレームの両側にある直近の２つの前記極大フレームの極大値との比率を算出し、少なくとも一方の比率が所定値以上である場合に、前記一の極小フレームの前のフレームと後のフレームが、異なるブロックに対応するように制御して前記ブロック情報を生成する、
請求項１から７のいずれかに記載のユーザ情報処理プログラム。
【請求項９】
前記反応データ集計手段は、前記フレームごとにユーザ反応データの存在するユーザ数を集計した値を前記反応データ集計値とする、
請求項１から８のいずれかに記載のユーザ情報処理プログラム。
【請求項１０】
前記反応データ集計手段は、前記フレームごとにユーザ反応データの反応度合いを加算した値を前記反応データ集計値とする、
請求項１から８のいずれかに記載のユーザ情報処理プログラム。
【請求項１１】
前記反応データ集計手段は、複数種類の前記状態情報を含む前記反応データを読み込んで、前記状態情報の種類ごとに前記反応データ集計値を算出し、
前記ブロック情報生成手段は、前記状態情報の種類ごとに前記ブロック情報を生成す る、
請求項１から１０のいずれかに記載のユーザ情報処理プログラム。
【請求項１２】
前記ブロック情報生成手段は、一の種類の前記状態情報の前記反応データ集計値を対象として、隣接するフレームの一方が所定値未満であり、隣接するフレームのもう一方が所定値以上であるフレームを中間フレームとして検出し、前記中間フレームの前のフレームと後のフレームが、異なるブロックに対応するように制御して、前記一の種類以外の他の種類の前記状態情報に対応する前記ブロック情報を生成する、
請求項１１に記載のユーザ情報処理プログラム。
【請求項１３】
前記類似度計算手段は、一のユーザの前記集約データで構成された一のベクトルデータと、他のユーザの前記集約データで構成された他のベクトルデータとを用いて、前記類似度を計算する、
請求項１から１２のいずれかに記載のユーザ情報処理プログラム。
【請求項１４】
前記類似度計算手段は、前記集約データ計算手段で計算された前記集約データに多変量解析手法を適用して、前記集約データの次元数よりも少ない次元数を持つ低次元ベクトルを算出すると共に、一のユーザの前記低次元ベクトルである一のベクトルデータと、他のユーザの前記低次元ベクトルである他のベクトルデータとを用いて、前記類似度を計算する、
請求項１から１２のいずれかに記載のユーザ情報処理プログラム。
【請求項１５】
前記類似度計算手段は、
前記一のベクトルデータと、前記他のベクトルデータが共に正の値であるベクトル要素の数を用いて、
または、前記一のベクトルデータと、前記他のベクトルデータとの内 積を用いて、
または、前記一のベクトルデータと、前記他のベクトルデータとの相関係数を用いて、
または、前記一のベクトルデータと、前記他のベクトルデータとの距離を用いて、
前記類似度を計算する、
請求項１３または１４に記載のユーザ情報処理プログラム。
【請求項１６】
前記類似度計算手段は、
前記一のベクトルデータと、前記他のベクトルデータが共に正の値であるベクトル要素の数と、
前記一のベクトルデータと、前記他のベクトルデータとの内 積と、
前記一のベクトルデータと、前記他のベクトルデータとの相関係数と、
前記一のベクトルデータと、前記他のベクトルデータとの距離と、
のうちの１つ以上を用いて 複数の値を算出し、算出されたそれぞれの値に所定の重み係数を乗算した値を加算して、前記類似度を計算する、
請求項１３または１４に記載のユーザ情報処理プログラム。
【請求項１７】
前記類似度計算手段は更に、前記類似度が所定値以上である他のユーザ、または前記類似度が大きい順に所定数を超えない数の他のユーザを一のユーザに対して選択する、
請求項１から１６のいずれかに記載のユーザ情報処理プログラム。
【請求項１８】
前記類似度計算手段は更に、一のユーザが希望する条件と合致するユーザ属性を持つ他のユーザを対象として、前記類似度が所定値以上である他のユーザ、または前記類似度が大きい順に所定数を超えない数の他のユーザを一のユーザに対して選択する、
請求項１から１７のいずれかに記載のユーザ情報処理プログラム。
【請求項１９】
ユーザを識別するためのユーザ識別情報と、コンテンツの再生位置を示す位置情報と、その位置情報に対応する前記ユーザの状態情報とを関連付けた反応データを読み込んで、前記位置情報を所定の開始位置と所定の終了位置を持つ各フレームに対応させると共に、前記フレームごとに複数のユーザの前記反応データを集計した反応データ集計値を算出する反応データ集計手段と、
前記反応データ集計値の分布情報を用いて、１つ以上の前記フレームをグループ化し、各グループの先頭のフレームの前記開始位置と末尾のフレーム前記終了位置との間にある前記位置情報を同一のブロックに対応させるためのブロック情報を生成するブロック情報生成手段と、
前記ブロック情報に基づいて、前記反応データの前記位置情報をブロックに対応させて、前記ユーザ識別情報ごとに、前記ブロックごとに複数の前記反応データを集約した集約データを計算する集約データ計算手段と、
一のユーザの前記集約データと、他のユーザの前記集約データとを用いて、一のユーザと他のユーザとの類似度を計算する類似度計算手段と、
を備えるユーザ情報処理装置。
【請求項２０】
ユーザを識別するためのユーザ識別情報と、コンテンツの再生位置を示す位置情報と、その位置情報に対応する前記ユーザの状態情報とを関連付けた反応データを読み込んで、前記位置情報を所定の開始位置と所定の終了位置を持つ各フレームに対応させると共に、前記フレームごとに複数のユーザの前記反応データを集計した反応データ集計値を算出するステップと、
前記反応データ集計値の分布情報を用いて、１つ以上の前記フレームをグループ化し、各グループの先頭のフレームの前記開始位置と末尾のフレーム前記終了位置との間にある前記位置情報を同一のブロックに対応させるためのブロック情報を生成するステップと、
前記ブロック情報に基づいて、前記反応データの前記位置情報をブロックに対応させて、前記ユーザ識別情報ごとに、前記ブロックごとに複数の前記反応データを集約した集約データを計算するステップと、
一のユーザの前記集約データと、他のユーザの前記集約データとを用いて、一のユーザと他のユーザとの類似度を計算するステップと、
を含むユーザ情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツに係るユーザの反応情報を処理する技術に関するものであり、特にコンテンツに対する興味の似たユーザ同士を特定する技術に関するものである。
【背景技術】
【０００２】
近年、コンピュータ技術やネットワーク技術の進展を背景に、大量のコンテンツが制作され、流通している。また、ネットワークを介したユーザ間のコミュニケーションも盛んになっている。このためユーザの所望のコンテンツを検索する技術や、ユーザ間のコミュニケーションを促進する技術へのニーズが高まっている。コンテンツに対するユーザの興味や嗜好を把握するために、コンテンツに対するユーザの反応情報を収集することは有効であり、このような技術が開発されている。
【０００３】
例えば特許文献１には、コンテンツ再生中のユーザの表情、視線パターン、目の瞳孔直径、瞬き、体温、心拍数などの情報を計測し、それらのセンシングデータを収集するシステムが開示されている。
【０００４】
特許文献２には、コンテンツ視聴中のユーザの顔画像などから感情データを生成するシステムが開示されている。また特許文献２には、そのような感情データを使ってユーザ同士のマッチングを行う技術も開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１４２９７５号公報
【特許文献２】特開２００７−３６８７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、コンテンツに対するユーザの反応や、ユーザが抱く感情は、一般的には人によってそれぞれ異なる。例えば、同じ映画の同じシーンを見たとしても、あるユーザは、「楽しい」と感じ、別のユーザは「腹立たしい」と感じることがある。このような反応の違いは、ユーザの興味や価値観の違いに基づいて生じることが多い。すなわち、コンテンツ再生時にユーザが無意識で示す反応や、ユーザが自然に抱く感情には、そのユーザの個性（興味、嗜好、センス、考え方、価値観など）が顕著に現れるものであり、コンテンツ再生時のユーザの反応情報を収集して分析することにより、ユーザの個性を的確に捕えることが可能になる。ユーザの個性を的確に把握できれば、これを基にして、ユーザ同士のマッチングを精度良く行うことができる。このためには、複数のユーザの反応情報を収集して分析する必要がある。
【０００７】
上記の特許文献１では、複数のユーザの反応情報を収集しているが、それらの活用方法は必ずしも十分には考慮されていなかった。特に、複数のユーザ間の違いを利用した処理は行われていなかった。
【０００８】
上記の特許文献２では、コンテンツ再生時のユーザの反応情報を使って、ユーザ同士のマッチングの程度（類似度）を算出している。しかしながら、十分な精度で類似度を算出できない場合があった。また、サンプルの取り方によっては、必要以上に処理量が多くなる場合があった。
【０００９】
そこで本発明は、コンテンツ再生時のユーザの反応情報を用いて、ユーザ間の類似度を精度良く算出することを目的とする。また、ユーザ間の類似度を効率よく算出することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明のユーザ情報処理プログラムは、コンピュータを、ユーザを識別するためのユーザ識別情報と、コンテンツの再生位置を示す位置情報と、その位置情報に対応する前記ユーザの状態情報とを関連付けた反応データを読み込んで、前記位置情報を所定の開始位置と所定の終了位置を持つ各フレームに対応させると共に、前記フレームごとに複数のユーザの前記反応データを集計した反応データ集計値を算出する反応データ集計手段、前記反応データ集計値の分布情報を用いて、１つ以上の前記フレームをグループ化し、各グループの先頭のフレームの前記開始位置と末尾のフレーム前記終了位置との間にある前記位置情報を同一のブロックに対応させるためのブロック情報を生成するブロック情報生成手段、前記ブロック情報に基づいて、前記反応データの前記位置情報をブロックに対応させて、前記ユーザ識別情報ごとに、前記ブロックごとに複数の前記反応データを集約した集約データを計算する集約データ計算手段、一のユーザの前記集約データと、他のユーザの前記集約データとを用いて、一のユーザと他のユーザとの類似度を計算する類似度計算手段、として機能させる。
【００１１】
本発明のユーザ情報処理装置は、ユーザを識別するためのユーザ識別情報と、コンテンツの再生位置を示す位置情報と、その位置情報に対応する前記ユーザの状態情報とを関連付けた反応データを読み込んで、前記位置情報を所定の開始位置と所定の終了位置を持つ各フレームに対応させると共に、前記フレームごとに複数のユーザの前記反応データを集計した反応データ集計値を算出する反応データ集計手段と、前記反応データ集計値の分布情報を用いて、１つ以上の前記フレームをグループ化し、各グループの先頭のフレームの前記開始位置と末尾のフレーム前記終了位置との間にある前記位置情報を同一のブロックに対応させるためのブロック情報を生成するブロック情報生成手段と、前記ブロック情報に基づいて、前記反応データの前記位置情報をブロックに対応させて、前記ユーザ識別情報ごとに、前記ブロックごとに複数の前記反応データを集約した集約データを計算する集約データ計算手段と、一のユーザの前記集約データと、他のユーザの前記集約データとを用いて、一のユーザと他のユーザとの類似度を計算する類似度計算手段と、を有する。
【００１２】
本発明のユーザ情報処理方法は、ユーザを識別するためのユーザ識別情報と、コンテンツの再生位置を示す位置情報と、その位置情報に対応する前記ユーザの状態情報とを関連付けた反応データを読み込んで、前記位置情報を所定の開始位置と所定の終了位置を持つ各フレームに対応させると共に、前記フレームごとに複数のユーザの前記反応データを集計した反応データ集計値を算出するステップと、前記反応データ集計値の分布情報を用いて、１つ以上の前記フレームをグループ化し、各グループの先頭のフレームの前記開始位置と末尾のフレーム前記終了位置との間にある前記位置情報を同一のブロックに対応させるためのブロック情報を生成するステップと、前記ブロック情報に基づいて、前記反応データの前記位置情報をブロックに対応させて、前記ユーザ識別情報ごとに、前記ブロックごとに複数の前記反応データを集約した集約データを計算するステップと、一のユーザの前記集約データと、他のユーザの前記集約データとを用いて、一のユーザと他のユーザとの類似度を計算するステップと、を含む。
【発明の効果】
【００１３】
本発明のユーザ情報処理プログラム、ユーザ情報処理装置、及び、ユーザ情報処理方法によれば、コンテンツ再生に係るユーザの状態を利用して、ユーザ間の類似度を精度良く、かつ少ない処理量で効率的に計算することができる。このため他のユーザの情報を希望する一のユーザに対して、類似するユーザの情報を十分な精度で選択して提供することが出来る。
【００１４】
また、コンテンツの再生位置をブロックに対応させるためのブロック情報をあらかじめ準備しておく必要がないため、どのようなコンテンツもユーザ間類似度の計算に利用することが可能になる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例１におけるシステム全体の構成を示す図である。
【図２】本発明の各実施例おける再生装置の構成を示す図である。
【図３】本発明の各実施例における再生装置の動作を説明するためのフローチャートである。
【図４】本発明の各実施例におけるユーザ反応データのデータ形式を示す図である。
【図５】本発明の各実施例におけるユーザ反応データの作成処理を説明するためのフローチャートである。
【図６】本発明の各実施例におけるユーザ反応データの補正処理を説明するための図である。
【図７】本発明の各実施例におけるユーザ情報処理装置の構成を示す図である。
【図８】本発明の各実施例におけるユーザ反応データの変化の様子を示す模式図である。
【図９】本発明の各実施例における反応データ集計値の算出方法を説明するための模式図である。
【図１０】本発明の各実施例における反応データ集計値の算出方法を説明するための模式図である。
【図１１】本発明の各実施例におけるブロック情報の生成方法を説明するための模式図である。
【図１２】本発明の各実施例におけるブロック情報の生成方法を説明するための模式図である。
【図１３】本発明の各実施例におけるブロック情報の生成方法を説明するための模式図である。
【図１４】本発明の各実施例におけるブロック情報の生成方法を説明するための模式図である。
【図１５】本発明の各実施例におけるブロック情報の生成方法を説明するための模式図である。
【図１６】本発明の各実施例におけるブロック情報の生成方法を説明するための模式図である。
【図１７】本発明の各実施例におけるブロック情報の生成方法を説明するための模式図である。
【図１８】本発明の各実施例におけるブロック情報のデータ形式を説明する図である。
【図１９】本発明の各実施例における集約データ計算手段の動作を説明するためのフローチャートである。
【図２０】本発明の各実施例における集約データ計算手段の集約データ格納部のデータ形式を説明する図である。
【図２１】本発明の各実施例における類似度計算手段の動作を説明するためのフローチャートである。
【図２２】本発明の実施例２におけるシステム全体の構成を示す図である。
【発明を実施するための形態】
【実施例１】
【００１６】
本発明の実施例１におけるシステム全体の構成を図１に示す。ユーザ情報処理装置１と、１つ以上の再生装置２（２ａ〜２ｎ）がネットワーク３を介して接続されている。図１ではユーザ情報処理装置１は１つであるが、複数のユーザ情報処理装置１（１ａ〜１ｎ）を用意し、各々のユーザ情報処理装置１の間で、データ交換を行って処理をするようにしてもよい。
【００１７】
次に、再生装置２の構成を図２に示す。再生装置２は、コンテンツを再生するコンテンツ再生手段２１と、ユーザの状態を認識するユーザ状態認識手段２２と、コンテンツ再生位置とユーザ状態とを関連付けたユーザ反応データを作成するユーザ反応データ作成手段２３と、ユーザ情報処理装置１との間でデータの送受信を行う送受信手段２４と、再生装置２全体の制御を行う制御手段２５と、ユーザ属性データを格納するユーザ属性格納手段２６と、により構成されている。また再生装置２には、表示装置２７、スピーカ等の音声出力装置２８、キーボード、マウス、トラックボール、リモコン等の入力装置２９、ユーザの状態を認識するためのセンサ装置３０が接続されている。
【００１８】
再生装置２は、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスクドライブ、ネットワークインタフェース等を備える一般的なコンピュータを用いて、ソフトウェア（プログラム）処理を実行する形態により実現することも可能である。
【００１９】
再生装置２の動作を図３のフローチャートを用いて説明する。
【００２０】
まずステップＳ１００では、制御手段２５がユーザの認証を行なう。再生装置２を使用するユーザには、ユーザ情報処理装置１でユーザを一意に識別可能なユーザ識別情報（ユーザＩＤ）があらかじめ割当られている。ユーザはあらかじめ登録されたユーザＩＤ、パスワードを入力装置２９を用いて再生装置２に入力し、この情報を用いて制御手段２５はユーザを認証する。
【００２１】
ただし、ユーザ情報処理装置１において、ユーザを識別する処理を行なわず、再生装置２を識別する処理を行なう場合には、ステップＳ１００のユーザ認証処理を省略する。また後述するように、ユーザ状態認識手段２２においてユーザの個人識別を行なう場合にもステップＳ１００を省略してよい。
【００２２】
次にステップＳ１１０では、入力装置２９を介したユーザの指示に従って、コンテンツ再生手段２１が、コンテンツを再生する。本実施例におけるコンテンツは、動画、音声、音楽等の時間情報を伴うコンテンツである。コンテンツは再生装置２に格納されていてもよいし、ネットワーク３を介して外部から供給されてもよい。また放送受信手段（図示せず）を用いて放送コンテンツを受信してもよい。またコンテンツが格納されたディスク、可搬型メモリ等をメディアドライブ装置（図示せず）に装着し、メディアドライブ装置を介してコンテンツを読み取るようにしてもよい。
【００２３】
次にステップＳ１２０では、ユーザ状態認識手段２２が、センサ装置３０の出力を用いて、コンテンツ再生中（視聴中）のユーザの状態を認識する。
【００２４】
センサ装置３０は、ユーザの状態を検知し、ユーザに係る信号／データを出力する。出力する信号／データは、ユーザの顔を撮影した画像データ、ユーザの発する音声の音声データ、表示装置２７または音声出力装置２８とユーザとの間の距離データ、ユーザの姿勢に関するデータ、心拍数、血圧などの生体データなどである。またセンサ装置３０は、上記の内の一部（例えば、ユーザの発する音声のみ）を検知し出力するようにしてもよい。
【００２５】
ユーザ状態認識手段２２が認識するユーザの感情等の状態は、１種類または複数種類である。
【００２６】
１種類の状態を認識する場合、例えば、ユーザのコンテンツに対する注目度を認識する。例えば、ユーザの顔画像から視線方向を検出し、それが表示装置２７に向いている場合は、注目度が高い、そうでない場合は注目度が低いと認識する。また、ユーザの発する音声の音声データからユーザの声の大きさや興奮の程度を認識し、それを注目度としてもよい。ユーザの音声を利用する方法は、スポーツ・コンテンツやお笑い系コンテンツなどで特に有効である。また、表示装置２７または音声出力装置２８とユーザとの距離が近ければ注目度が高い、距離が遠ければ注目度が低いと認識してもよい。また、心拍数や血圧が上昇する場合に注目度が高いとしてもよい。また、机、椅子、床などにかかるユーザの体重分布を計測し、表示装置２７または音声出力装置２８に近い側に体重がかかっている場合に注目度が高く、そうでない場合に注目度が低いと認識してもよい。
【００２７】
また１種類の状態を認識する別の例として、ユーザの「笑い」を認識するようにしてもよい。ユーザの「笑い」を認識する方法として、公知の技術を用いることができる。例えば、ユーザの顔画像から「笑い」の表情を認識する場合、特開２００４−４６５９１号公報に記載の技術を用いることができる。また、音声から笑い等の感情を認識する場合、特開平９−２０６２９１号公報に記載の技術を用いることができる。
【００２８】
複数種類の状態を認識する場合、「喜び／笑い」、「怒り／不満」、「悲しみ」、「平常」、「無関心」など複数種類の状態を認識する。センサ装置３０の出力である画像、音声、生体情報などから、このようなユーザの状態を認識するために公知の技術を用いることができる。また、音声認識技術を用いて、ユーザが発する特定の単語やフレーズを認識してもよい。例えば、「へぇー」、「面白い」、「いいね」、「ちょ〜うける」、「ふざけるな」、「くだらない」、「またかよ」等の単語やフレーズである。また、ユーザの舌打ちや涙などを認識するようにしてもよい。更に、センサ装置３０の出力する音声データを用いてユーザの状態を認識する場合、音声出力装置２８で発生させたコンテンツ再生音の成分をキャンセルする処理を行なって、センサ装置３０の出力を利用するようにしてもよい。このようにすると、ユーザの音声をより精度良く認識できる。
【００２９】
１台の再生装置２を使って、同時に複数のユーザがコンテンツを視聴する場合の処理としては、以下の方法を用いることができる。
【００３０】
第１の方法は、ユーザ状態認識手段２２で、ユーザの個人識別を行なった上で、個々のユーザ毎に状態を認識する方法である。例えば、ユーザの顔画像や音声データを使って個人識別を行なう。この場合はステップＳ１００のユーザ認証処理は省略できる。
【００３１】
第２の方法は、個人識別を行なわず、複数のユーザの状態を合わせて、ステップＳ１００で認証した１人のユーザの状態として扱う方法である。例えば、「ユーザＡ」と「ユーザＢ」の２人が視聴していて、「再生位置＝５分」で「ユーザＡ」が笑い、「再生位置＝１０分」で「ユーザＢ」が「ふざけるな」、「くだらない」等の不満を表した場合、１人のユーザが「再生位置＝５分」で笑い、「再生位置＝１０分」で不満を表したとして処理する。
【００３２】
またユーザ状態認識手段２２は、コンテンツ再生時のユーザの状態を認識するだけでなく、コンテンツ再生前およびコンテンツ再生後のユーザの状態を認識して、ユーザ反応データ作成手段２３における処理で利用するようにしてもよい。
【００３３】
再生装置２の別の一例として、センサ装置３０を使用しない構成を用いてもよい。この場合、制御手段２５が、コンテンツ再生中にユーザの感情に関する選択肢を表示装置２７に表示し、入力装置２９を介してユーザからの反応を取得し、その情報をユーザ状態認識手段２２に転送する。例えば、「面白い」、「腹立たしい」、「悲しい」、などの選択肢が表示装置２７に表示され、入力装置２９を用いて、ユーザがその中からその時の自分の気持ちに近いものを選ぶと、それがユーザ状態認識手段２２に伝えられる。
【００３４】
更に別の一例として、コンテンツ再生に係るユーザ操作情報を用いてユーザ状態を認識してもよい。すなわち、ユーザが入力装置２９を用いて入力する、「再生開始」、「再生停止」、「一時停止」、「巻き戻し」、「早送り」、「チャネル切換え」、「音量変更」などの操作情報を制御手段２５が収集し、ユーザ状態認識手段２２に転送する。ユーザ状態認識手段２２は、これらの情報をもとに注目度を判定する。例えば、「巻き戻し」操作を行なって、コンテンツの同じ位置を繰り返し再生した場合は、その再生位置の注目度が高いと判定する。また、「早送り」操作を行なった箇所は、注目度が低いと判定する。
【００３５】
次にステップＳ１３０では、ユーザ反応データ作成手段２３が、コンテンツ再生位置とユーザ状態とを関連付けたユーザ反応データ（ユーザ履歴）を作成する。コンテンツ再生位置は通常、コンテンツ先頭からの相対時間で表す。ただし、放送日時が決まっているテレビ番組やネットのライブ配信などのコンテンツでは、受信日時を再生位置として用いてもよい。
【００３６】
ユーザ反応データの形式を図４に示す。
【００３７】
図４（Ａ）は、再生装置２を使用するユーザが１人であり、１種類の状態を認識する場合のユーザ反応データの形式の一例を示す図である。ユーザＩＤと、認識するユーザ状態の種類と、コンテンツＩＤと再生位置と反応度合いとを対応させたテーブルが記録されている。コンテンツＩＤは、ユーザ情報処理装置１でコンテンツを一意に識別可能な数値または文字列であり、コンテンツ制作者や販売事業者によってあらかじめ付与されている場合はそれを用いればよい。そうでない場合は、コンテンツのタイトル等を用いてコンテンツＩＤを生成する。放送番組であれば、放送局名、放送日時等を組み合わせてコンテンツＩＤを生成してもよい。再生位置はそのコンテンツの先頭からの経過時間を「時間：分：秒」の形式で表したものであり、例えば「００：０３：１０」は、先頭から「３分１０秒」を表している。この例では、一定の時間間隔（１０秒）ごとの反応度合いを記録している。記録する時間間隔は、もちろん１０秒とは異なった間隔、例えば１秒や５秒であってもよい。反応度合いは、最小「０．０」、最大「１．０」の数値であり、数値が大きいほど、その状態（感情等）の程度が強いことを示している。例えば、音声で「笑い」を認識する場合、笑い声の大きさにより反応度合いを算出する。なお、ユーザ情報処理装置１でユーザを識別する処理を行なわずに、再生装置２を識別する処理を行なう場合は、ユーザＩＤの代わりに再生装置２を識別する再生装置ＩＤを含めてユーザ反応データを作成する。
【００３８】
図４（Ｂ）は、同様に再生装置２を使用するユーザが１人であり、１種類の状態を認識する場合のユーザ反応データの形式の別の一例を示す図である。ユーザＩＤと、認識対象の状態と、コンテンツＩＤと再生位置を対応させたテーブルが記録されている。この例では、再生装置２を使用するユーザのユーザＩＤが「Ｕ５５１０」であり、ユーザの「注目度」を認識していることを示している。図４（Ｂ）では、ユーザの反応度合いが所定値以上の箇所のみを記録しており、反応度合いそのものは省略している。すなわち、再生位置が記録されている箇所で、ユーザの注目度が高いことを示している。この例では、「Ｃ００１」コンテンツに対して、「３分１０秒」と「５分２１秒」の２カ所でユーザの注目度が高まったことになる。なお、一般的にはユーザの注目度が高い状態はある程度の時間持続するが、この例では、注目度が高い状態の最初の再生位置（時間）を記録している。その時間から一定の時間が経過して再び注目度が高くなった再生位置をテーブルの次の行に追加している。図４（Ｂ）の形式により、ユーザ反応データのデータ容量を少なくして、効率的に処理することが可能である。
【００３９】
図４（Ｃ）は、再生装置２を複数のユーザが利用し、ユーザの複数種類の状態（感情等）を認識する場合の例である。ユーザＩＤと、コンテンツＩＤと、再生位置と、ユーザ状態の種類とを関連付けて記録する。この例のテーブルの１行目では、「Ｃ００２」のコンテンツの再生位置「４分２６秒」でユーザ「Ｕ５５１０」の「笑い」を認識したことを示している。図４（Ｃ）では、反応度合いが反応の種類に応じて決められた所定値以上の箇所のみのデータを作成し、反応度合いはデータに含めずに省略している。
【００４０】
ユーザ反応データの別の一例を図４（Ｄ）に示す。図４（Ｃ）との違いは、状態の先頭再生位置に加えて、状態の末尾再生位置を記録していることと、反応度合いを記録している点である。反応の先頭再生位置は、その状態が最初に認識された再生位置である。反応の末尾再生位置は、同一の状態と見なせる最後の再生位置である。なお一般的には、状態の先頭から状態の末尾までの間で、反応度合いは変化するが、その区間の平均値、または最大値を記録すればよい。
【００４１】
図４（Ａ）〜（Ｄ）に示した形式はあくまでも一例であり、この他にも例えば、図４（Ａ）と同様に一定の時間間隔で、ユーザＩＤと、コンテンツＩＤと、ユーザ状態の種類と、反応度合いとを関連付けて記録するようにしてもよい。
【００４２】
以上の説明では、コンテンツ再生中のユーザの状態を認識するものとしたが、更にコンテンツの再生前、またはコンテンツ再生後のユーザの状態を認識してユーザ反応データを作成するようにしてもよい。コンテンツ再生中にユーザが同じように笑った場合でも、コンテンツ再生前にユーザが怒ったり、悲しんでいた場合は、コンテンツ再生前に既にユーザが笑っていた場合よりも、笑いの度合いを大きくする、といった処理を行なう。コンテンツ再生前のユーザの状態種類と、コンテンツ再生後の最初のユーザ状態の種類が正反対である場合には、コンテンツ再生後の最初のユーザの状態の反応の度合いを強くする。また、コンテンツ再生中の最後の状態と、コンテンツ再生後の状態が同じであり、コンテンツ再生後の状態が長時間持続する場合には、コンテンツ再生中の最後の状態の反応の度合いを強くする。
【００４３】
このような処理を行なう場合のユーザ反応データ作成の処理を図５のフローチャートで説明する。
【００４４】
まずステップＳ２００では、ユーザ状態認識手段２２が、コンテンツ再生前に所定の時間ユーザ状態を認識し、結果を保持しておく。
【００４５】
次にステップＳ２１０では、ユーザ状態認識手段２２が、コンテンツ再生中のユーザ状態を認識し、結果を保持しておく。
【００４６】
次にステップＳ２２０では、ユーザ状態認識手段２２が、コンテンツ再生後も引き続き所定の時間ユーザ状態を認識し、結果を保持しておく。
【００４７】
次にステップＳ２３０では、コンテンツ再生後に所定の時間が経過した後に、ユーザ反応データ作成手段２３が、補正前のユーザ反応データを作成する。
【００４８】
次にステップＳ２４０では、ユーザ反応データ作成手段２３が、補正前のユーザ反応データを対象として、コンテンツ再生中のデータの中に、再生前と同じ種類のデータが存在するか否か判定する。「ＹＥＳ」であれば、該当データをマークしてステップＳ２５０に進み、「ＮＯ」であればステップＳ２６０に進む。なお、この際に、再生前にある状態が認識された時間（マイナスの再生位置）、あるいは再生開始の時間から所定時間（例えば１０分）以内のデータを処理対象にしてもよい。
【００４９】
ステップＳ２５０では、ユーザ反応データ作成手段２３が、ステップＳ２４０でマークされたデータを対象にして、反応度合いの数値を減少させる。コンテンツ再生前から同じ種類の状態（感情等）であれば、そのコンテンツの影響力は実際には、補正前の数値として現れたものより小さいためである。反応度合いの変更の方法としてはいくつかの方法がある。
【００５０】
第１の方法は、補正前の数値に「１」より小さい係数を乗算する方法である。例えば、係数が「０．８」で、補正前の数値が「０．５」である場合、補正後の数値は「０．４」となる。
【００５１】
第２の方法は、補正前の数値から所定値を減算する方法である。
【００５２】
第３の方法は、再生前の数値に所定係数を乗算した値を、補正前の反応度合いから減算する方法である。例えば、再生前の数値が「０．５」であり、所定係数が「０．２」で、補正前の反応度合いが「０．７」である場合、「０．７−０．５×０．２＝０．６」となり、補正後の数値は「０．６」となる。
【００５３】
次にＳ２６０では、ユーザ反応データ作成手段２３が、補正前のユーザ反応データを対象として、コンテンツ中のデータの中に、再生前と異なる種類のデータが存在するか否か判定する。「ＹＥＳ」であれば、該当データをマークしてステップＳ２７０に進み、「ＮＯ」であればステップＳ２８０に進む。なお、この際に、再生前にある状態が認識された時間（マイナスの再生位置）、あるいは再生開始の時間から所定時間（例えば１０分）以内のデータを処理対象にしてもよい。
【００５４】
ステップＳ２７０では、ユーザ反応データ作成手段２３が、ステップＳ２６０でマークされたデータを対象にして、反応度合いの数値を増加させる。コンテンツ再生前とは異なる種類の状態（感情等）であれば、そのコンテンツの影響力は実際には、補正前の数値として現れたものより大きいためである。反応度合いの変更の方法としてはいくつかの方法がある。
【００５５】
第１の方法は、補正前の数値に「１」より大きい係数を乗算する方法である。例えば、係数が「１．２」で、補正前の数値が「０．５」である場合、補正後の数値は「０．６」となる。
【００５６】
第２の方法は、補正前の数値に所定値を加算する方法である。
【００５７】
第３の方法は、再生前の数値に所定係数を乗算した値を、補正前の反応度合いに加算する方法である。例えば、再生前の数値が「０．５」であり、所定係数が「０．２」で、補正前の反応度合いが「０．７」である場合、「０．７＋０．５×０．２＝０．８」となり、補正後の数値は「０．８」となる。
【００５８】
また、これら第１〜第３の方法において、再生前のユーザ状態の種類と、再生中のユーザ状態の種類の組合せに応じて、加算値や、乗算の係数を適宜変えるようにしてもよい。例えば、再生前に「リラックス」で、再生中に「笑い」の場合より、再生前に「怒り」で、再生中に「笑い」の場合の方が、２つの状態の性質の違いが大きいので、後者の加算値や乗算係数をより大きなものにしてもよい。
【００５９】
次にＳ２８０では、ユーザ反応データ作成手段２３が、補正前のユーザ反応データを対象として、コンテンツ再生中のデータの中に、再生後と同じ種類のデータが存在するか否か判定する。「ＹＥＳ」であれば、該当データをマークしてステップＳ２９０に進み、「ＮＯ」であればステップＳ３００に進む。なお、この際に、再生後にある状態が認識された時間、あるいは再生終了の時間より所定時間（例えば１０分）だけ前の範囲にあるデータを処理対象にしてもよい。
【００６０】
ステップＳ２９０では、ユーザ反応データ作成手段２３が、ステップＳ２８０でマークされたデータを対象にして、反応度合いの数値を増加させる。
【００６１】
次にステップＳ３００では、補正前のユーザ反応データから、コンテンツ再生前および再生後のデータを削除する。
【００６２】
以上の処理により、補正後のユーザ反応データが作成される。補正後のデータは、コンテンツに対するユーザの反応をより精度良く表したものである。補正前と補正後のユーザ反応データの一例を図６に示す。
【００６３】
図６（Ａ）は、ステップＳ２３０で作成された、補正前のユーザ反応データを示している。図６（Ａ）の１行目では、状態の先頭再生位置および状態の末尾再生位置の値がマイナスとなっている。これはコンテンツ再生前という意味である。例えば「−００：０２:２０」は、コンテンツ再生の２分２０秒前の時間を示している。また５行目の再生位置の値には「＃（シャープ）」記号が付加されているが、これはコンテンツ再生終了後の時間の意味である。例えば、「＃００：０５：２０」はコンテンツの再生が終了してから５分２０秒後の時間を示している。
【００６４】
図６（Ｂ）は、補正後のユーザ反応データを示している。補正後のユーザ反応データからは、コンテンツ再生前およびコンテンツ再生後の行は削除されている。補正後の１行目は、補正前の２行目に対応するが、反応度合いが「０．８０」から「０．６４」に減少している。これは、補正前の１行目に示したように、コンテンツ再生前に同じ「笑い」のデータが存在した為である。また、補正後の３行目は、補正前の４行目に対応するが、反応度合いが「０．７３」から「０．８５」に増加している。これは、補正前の５行目に示したように、コンテンツ再生後にも同じ「悲しみ」という状態が持続している為である。また、補正後の４行目は、補正前の７行目に対応するが、反応度合いが「０．８」から「１．０」に増加している。これは、補正前の６行目に示したように、コンテンツ再生前の状態が「怒り」であり、これと性質の異なる状態（「笑い」）がコンテンツ再生中に認識された為である。このような補正処理を行なう場合には、補正後のデータをユーザ反応データとして利用する。
【００６５】
以上がステップＳ１３０およびユーザ反応データ作成手段２３の詳細な説明である。
【００６６】
図３のフローチャートの説明に戻ると、次にステップＳ１４０において、制御手段２５が、ステップＳ１３０で作成されたユーザ反応データと、ユーザ属性格納手段２６に格納されているユーザ属性データを送受信手段２４を介してユーザ情報処理装置１に送信する。ユーザ属性格納手段２６には、ユーザＩＤと対応させて、他のユーザに自己紹介するための情報、および他のユーザがコンタクトをとるための情報が格納されている。例えば、ユーザの年齢、性別、血液型、星座、容姿に関する情報、趣味、好きなアーティスト、住所、電話番号、メールアドレス等であるが、これらに限定される訳ではない。また、紹介を希望する他のユーザに関する条件、例えば、年齢層、性別、血液型、星座、容姿、趣味、好きなアーティスト、地域などの情報を合わせて格納し、ユーザ属性データとしてユーザ情報処理装置１に送信してもよい。
【００６７】
以上が再生装置２の動作の説明である。
【００６８】
次にユーザ情報処理装置１について説明する。ユーザ情報処理装置１の構成を図７に示す。再生装置２で作成されたユーザ反応データを格納するユーザ反応データ格納手段１１と、集約データ計算手段１２と、類似度計算手段１３と、再生装置２との間でデータの送受信を行なう送受信手段１４と、ユーザ情報処理装置１全体の制御を行なう制御手段１５と、ユーザ属性データを格納するユーザ属性格納手段１６と、反応データ集計手段１８と、ブロック情報生成手段１９と、により構成されている。またユーザ情報処理装置１には、表示装置４１、キーボード、マウス、トラックボール、リモコン等の入力装置４２が接続されている。
【００６９】
ユーザ情報処理装置１は、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスクドライブ、ネットワークインタフェース等を備える一般的なコンピュータを用いて、ソフトウェア（プログラム）処理を実行する形態により実現することも可能である。
【００７０】
ユーザ属性格納手段１６は、送受信手段１４を介して、各々の再生装置２（２ａ〜２ｎ）からユーザ属性データを受信し、それを格納する。ユーザ属性データには、ユーザＩＤと他のユーザに自己紹介するための情報、および他のユーザがコンタクトをとるための情報が含まれている。さらに上述したように、紹介希望の相手の条件に関する情報を含んでいてもよい。
【００７１】
ユーザ反応データ格納手段１１は、送受信手段１４を介して、各々の再生装置２（２ａ〜２ｎ）からユーザ反応データを受信し、それを格納する。図４に示したように、ユーザ反応データは、いくつかの形式を取り得るが、ユーザ反応データ格納手段１１は、それら全てに対応している。以下では、ユーザ反応データが図４（Ｄ）の形式である場合を主に説明するが、他の形式の場合についても同様である。
【００７２】
制御手段１５は、ユーザ反応データがユーザ反応データ格納手段１１に格納された後に、反応データ集計手段１８に対して、動作開始の指示を与える。
【００７３】
反応データ集計手段１８は、ユーザ反応データ格納手段１１に格納されている複数のユーザのユーザ反応データを用いて、ユーザ状態の種類ごとに反応データ集計値を算出する。反応データ集計手段１８は、ユーザ反応データにおける位置情報（コンテンツの再生位置）を所定の時間幅を持つフレームに対応させて処理を行う。図８の例は、あるコンテンツに対する、あるユーザ状態の種類（例えば「笑い」）のユーザ反応データの様子を２人のユーザについて示したものである。グラフの横軸は再生位置であり、再生位置の１秒ごとにフレームが対応している。すなわち、０〜１秒の再生位置がフレーム１、１〜２秒再生位置がフレーム２、２〜３秒の再生位置がフレーム３、というように対応している。フレームの長さはもちろん１秒に限定される訳ではなく、他の長さを用いてもよい。また、全てのフレームの長さが必ずしも同じでなくてもよい。グラフの縦軸は、反応度合いを示している。
【００７４】
ユーザＡは、２秒〜７秒の間で、ある種類の反応を示しており、反応の強さは、その区間一定で「０．２」である。ユーザＢは、４秒から８．５秒まで同じ種類の反応を示している。４〜６秒の間は直線的に反応度合いが強まり、６秒〜８．５秒で最も反応度合いが強く、「０．４」となっている。
【００７５】
反応データ集計手段１８における反応データ集計値の算出方法として、以下の方法を用いることができる。
【００７６】
集計値算出の第１の方法は、反応を示したユーザ数をフレームごとに集計する方法である。図８の例で示したユーザ反応データに対しては、図９に示すような反応データ集計値を算出する。図９において、フレーム１〜２の集計値は、反応を示したユーザが１人もいないため「０」、フレーム３〜４の集計値は、ユーザＡのみ反応したので「１」、フレーム５〜８の集計値は、ユーザＡとユーザＢが反応したので「２」となる。またフレーム９（再生位置８〜９秒）では、ユーザＢが反応しているが、フレーム時間幅の１秒ではなく、０．５秒しか反応していないので、フレーム時間幅に対する反応時間の割合である「０．５」を集計値としている。また、図９の例では、反応度合いの値に関わらず、「０」を超える反応度合いを全て「反応有り」として処理しているが、反応度合いが所定のしきい値以上である場合のみ「反応有り」とみなしてもよい。例えば、しきい値として「０．１」を用いてもよい。第１の方法は簡便な方法であり、処理量が少なくて済む。
【００７７】
集計値算出の第２の方法は、反応度合いの値をフレームごとに加算して集計する方法である。図８の例で示したユーザ反応データに対しては、図１０に示すような反応データ集計値を算出する。図１０において、フレーム１〜２の集計値は、どのユーザの反応も存在しないため「０」、フレーム３〜４の集計値は、ユーザＡの反応度合い「０．２」がそのまま集計値となる。フレーム５の区間（４〜５秒）において、ユーザＢの反応度合いは変化しているが、この区間のユーザＢの反応度合いの平均値は「０．１」であるため、この値とユーザＡの反応度合い「０．２」を加算した値「０．３」が集計値となる。フレーム６においても、ユーザＢの反応度合いの平均値が「０．３」になるため、ユーザＡの反応度合い「０．２」を加算した値「０．５」が集計値となる。このように、フレーム区間の途中で反応度合いが変化している場合は、反応度合いの平均値（図８のグラフ上の面積に相当）を用いればよい。フレーム７では、ユーザＡの「０．２」とユーザＢの「０．４」を加算した値「０．６」が集計値となる。フレーム８では、ユーザＢしか反応していないので、「０．４」となる。フレーム９では、ユーザＢが反応しているが、フレーム時間幅の１秒ではなく、０．５秒しか反応していないので、フレーム時間幅に対する反応時間の割合「０．５」を反応度合い「０．４」に乗じた値「０．２」を集計値としている。このように、フレーム区間の一部しか反応していない場合は、その時間割合を反応度合いに乗じた値を用いればよい。この値は、図８においてフレーム区間におけるグラフの面積に相当する。
【００７８】
反応データ集計手段１８は、以上のように反応データ集計値を算出した後に、制御手段１５に対して処理終了を通知する。
【００７９】
制御手段１５は、反応データ集計手段１８からの通知を受けると、ブロック情報生成手段１９に対して、動作開始の指示を与える。
【００８０】
ブロック情報生成手段１９は、反応データ集計手段１８で算出された反応データ集計値を用いて、コンテンツの再生位置をブロックに対応させるためのブロック情報をユーザ状態の種類ごとに生成する。本実施例においてブロックとは、１つ以上のフレームをグループ化したものであり、ユーザ反応データにおいて、再生位置が多少異なるデータでも同じ再生位置のデータとして扱うために用いる。本実施例では、ブロックは１つ以上のフレームにより構成される。
【００８１】
ブロック情報は、以下に説明する方法により生成される。
【００８２】
ブロック情報生成の第１の方法は、反応データ集計値が所定値以下になる箇所を分割点として、その前のフレームと後のフレームが別々のブロックになるようにブロックを生成する方法である。図１１は、この方法を説明するための模式図である。図１０と同様にフレームの時間幅を１秒とした例である。図１１の点線は、所定のしきい値を示しており、反応データ集計値がこれ以下のフレームをブロックの分割点とする。再生位置０〜２秒に対応するフレーム１〜２と、再生位置６〜８秒に対応するフレーム７〜８と、再生位置１０〜１１秒に対応するフレーム１１が、ブロックの分割点となる。そして、分割点の前後のフレームが別々のブロックに属するようにブロックを生成する。この例では、フレーム３〜６（再生位置２〜６秒）がブロック１、フレーム９〜１０（再生位置８〜１０秒）がブロック２、フレーム１２（再生位置１１〜１２秒）がブロック３に対応する。なお、しきい値として「０」を用いてもよい。また図の例では、分割箇所のフレームは、どのブロックにも対応していないが、いずれかのブロックに対応させるようにしてもよい。例えば、分割箇所のフレームをその直前のブロックに対応させるようにして、フレーム７〜８をブロック１に含ませてもよい。
【００８３】
ブロック情報生成の第２の方法は、反応データ集計値が所定値以下になるフレームが所定個数以上連続する箇所を分割点として、その前のフレームと後のフレームが別々のブロックになるようにブロックを生成する方法である。図１２は、この方法を説明するための模式図である。図１２の点線は、所定のしきい値を示しており、反応データ集計値がこれ以下のフレームが２個以上連続している箇所をブロックの分割点とする。再生位置０〜２秒に対応するフレーム１〜２と、再生位置６〜８秒に対応するフレーム７〜８は、ブロックの分割点になるが、再生位置１０〜１１秒に対応するフレーム１１は、ブロックの分割点にはならない。そして、分割点の前後のフレームが別々のブロックに属するようにブロックを生成する。この例では、フレーム３〜６（再生位置２〜６秒）がブロック１、フレーム９〜１２（再生位置８〜１２秒）がブロック２に対応する。なお、しきい値として「０」を用いてもよい。
【００８４】
ブロック情報生成の第３の方法は、反応データ集計値が極小となる箇所を検出し、それを分割点として、その前のフレームと後のフレームが別々のブロックになるようにブロックを生成する方法である。図１３は、この方法を説明するための模式図である。フレームｋが極小フレームか否かを判定するには、フレームｋの反応データ集計値をＳ[ｋ]として、（Ｓ[ｋ−１]≧Ｓ[ｋ]∩Ｓ[ｋ＋１]≧Ｓ[ｋ]）という条件を満たすかを判定し、条件を満たせば極小フレームとする。図１３の例では、フレーム８とフレーム１０が極小フレームであり、分割点となる。そして、分割点の前後のフレームが別々のブロックに属するようにブロックを生成する。この例では、フレーム３〜７（再生位置２〜７秒）がブロック１、フレーム９（再生位置８〜９秒）がブロック２、フレーム１１〜１２（再生時間１０〜１２秒）がブロック３に対応する。なお、図１３の例では、極小フレームは、いずれのブロックにも対応しないが、いずれかのブロックに対応させてもよい。例えば、極小フレームをその直前のブロックに含ませるようにして、フレーム８をブロック１に対応させ、フレーム１０をブロック２に対応させてもよい。
【００８５】
ブロック情報生成の第４の方法は、反応データ集計値が所定値以下で、かつ極小となる箇所を検出し、それを分割点として、その前のフレームと後のフレームが別々のブロックになるようにブロックを生成する方法である。図１４は、この方法を説明するための模式図である。図１４の点線は、所定のしきい値を示している。図１４の例では、フレーム８は、極小フレームであり、かつしきい値以下であるため分割点になるが、フレーム１０は、極小フレームではあるが、しきい値より大きいため、分割点とならない。そして、分割点の前後のフレームが別々のブロックに属するようにブロックを生成する。この例では、フレーム３〜７（再生位置２〜７秒）がブロック１、フレーム９〜１２（再生時間８〜１２秒）がブロック２に対応する。なお、図１４の例では、極小フレームは、いずれのブロックにも対応しないが、いずれかのブロックに対応させてもよい。例えば、極小フレームをその直前のブロックに含ませるようにして、フレーム８をブロック１に対応させてもよい。
【００８６】
ブロック情報生成の第５の方法は、反応データ集計値が極小となるフレーム（箇所）、および極大となるフレーム（箇所）を検出し、ある極小フレームと、その極小フレームの両側にある極大フレームとの距離（フレーム差、時間差）を算出し、その２つの距離のうちの少なくとも一方の距離が所定値以上である場合に、その極小フレームを分割点として、その前のフレームと後のフレームが別々のブロックになるようにブロックを生成する方法である。図１５は、この方法を説明するための模式図である。図１５の例では、フレーム４、７、１０が極小フレームであり、フレーム２、５、９、１１が極大フレームである。フレームｋが極大フレームか否かを判定するには、フレームｋの反応データ集計値をＳ[ｋ]として、（Ｓ[ｋ−１]≦Ｓ[ｋ]∩Ｓ[ｋ＋１]≦Ｓ[ｋ]）という条件を満たすかを判定し、条件を満たせば極大フレームとする。極小フレーム４の両側の極大フレームは２および５であり、それらとの距離（フレームの差）は、４−２＝２および５−４＝１である。ここで、極大フレームと極小フレーム間の少なくとも一方の距離が２以上の箇所を分割点にするという条件を設定すると、前者はこの条件を満たすので、フレーム４は分割点になる。同様に、極小フレーム７について判定を行うと、両側の極大フレームが５および９なので、極小フレームと極大フレームの間の距離は共に２となり、この条件を満たす。極小フレーム１０については、両側の極大フレームが９および１１となって、距離が１になるため、この条件を満たさず、分割点にならない。この例では、フレーム４とフレーム７が分割点になり、分割点の前後のフレームが異なるブロックに属するようにブロックを生成する（フレーム１〜３がブロック１、フレーム５〜６がブロック２、フレーム８〜１２がブロック３となる）。図１５の例では、極小フレームは、いずれのブロックにも対応しないが、いずれかのブロックに対応させてもよい。例えば、極小フレームをその直前のブロックに含ませるようにして、フレーム４をブロック１に対応させてもよい。また、極小フレームの両側にある極大フレームとの２つの距離の両方ともが所定値以上である場合に、その極小フレームを分割点とするようにしてもよい。例えば、極大フレームと極小フレーム間の両方の距離が２以上の箇所を分割点にしてもよい。この条件を図１５に示したデータに適用すると、フレーム４は分割点ではなくなり、フレーム７のみが分割点となる。そして、フレーム１〜６をブロック１、フレーム８〜１２をブロック２に対応させることになる。更に、分割点とする条件として、極小フレームの極小値が所定値以下であることを加えてもよい。
【００８７】
ブロック情報生成の第６の方法は、反応データ集計値が極小となるフレーム（箇所）、および極大となるフレーム（箇所）を検出し、ある極小フレームの極小値と、その極小フレームの両側にある極大フレームの極大値との差を算出し、その２つの差のうちの少なくとも一方が所定値以上である場合に、その極小フレームを分割点として、その前のフレームと後のフレームが別々のブロックになるようにブロックを生成する方法である。図１６は、この方法を説明するための模式図である。図１６の例では、フレーム４、７、１０が極小フレームであり、フレーム２、５、９、１１が極大フレームである。また、極大値と極小値との差が図１６のしきい値以上である場合に、極小フレームを分割点にする。極小フレーム４の両側の極大フレームは２および５であり、フレーム４と２の差はしきい値未満であるが、フレーム４と５の差はしきい値以上であるため、フレーム４は分割点になる。同様に、極小フレーム７について判定を行うと、両側の極大フレームが５および９であり、フレーム７と５の差、フレーム７と９との差は、両方ともしきい値以上なので、フレーム７は分割点になる。極小フレーム１０については、両側の極大フレームが９および１１となり、これらとの差がいずれもしきい値未満なので、分割点にならない。この例では、フレーム４とフレーム７が分割点になり、分割点の前後のフレームが異なるブロックに属するようにブロックを生成する（フレーム１〜３がブロック１、フレーム５〜６がブロック２、フレーム８〜１２がブロック３となる）。図１６の例では、極小フレームは、いずれのブロックにも対応しないが、いずれかのブロックに対応させてもよい。例えば、極小フレームをその直前のブロックに含ませるようにして、フレーム４をブロック１に対応させてもよい。また、極小フレームの両側にある極大フレームの極大値と極小値との２つの差が両方とも所定値以上である場合に、その極小フレームを分割点とするようにしてもよい。この条件を図１６に示したデータに適用すると、フレーム４は分割点ではなくなり、フレーム７のみが分割点となる。そして、フレーム１〜６をブロック１、フレーム８〜１２をブロック２に対応させることになる。更に、分割点とする条件として、極小フレームの極小値が所定値以下であることを加えてもよい。
【００８８】
ブロック情報生成の第７の方法は、ブロック情報生成の第６の方法における極大値と極小値との差の代わりに、極大値と極小値との比率を用いる方法である。すなわち、反応データ集計値が極小となるフレーム（箇所）、および極大となるフレーム（箇所）を検出し、ある極小フレームの極小値に対する、その極小フレームの両側にある極大フレームの極大値の比率を算出し、その２つの比率のうちの少なくとも一方が所定値以上である場合に、その極小フレームを分割点として、その前のフレームと後のフレームが別々のブロックになるようにブロックを生成する方法である。この比率として、極大値÷極小値を算出して用いるが、極小値が０の場合は、比率を無限大、またはあらかじめ設定した値 にする。また、極小フレームの極小値と、極小フレームの両側にある極大フレームの極大値との２つの比率が両方とも所定値以上である場合に、分割点とするようにしてもよい。更に、分割点とする条件として、極小フレームの極小値が所定値以下であることを加えてもよい。なお、以上の説明では、極大値÷極小値を比率として用いたが、極小値÷極大値を比率として用いてもよい。この場合は、比率が所定値以下である場合に、該当する極小フレームを分割点とする。
【００８９】
ブロック情報生成の第８の方法は、一の種類のユーザ状態（例えば、「悲しみ」）の反応データ集計値が、所定値未満から所定以上に変化する箇所、または所定値以上から所定値未満に変化する箇所を中間点として検出し、一の種類以外のあるユーザ状態（例えば「笑い」）のブロック情報を生成する際に、検出した中間点の前後のフレームが別々のブロックになるように、ブロックを生成する方法である。図１７は、ユーザ状態が「笑い」（実線）と「悲しみ」（破線）である２種類の反応データ集計値の様子を示したものである。「悲しみ」の集計値が所定値未満から所定値以上に変化する箇所（図のＡ点）、および所定値以上から所定値未満に変化する箇所（図のＢ点）を中間点として検出する。中間点（中間フレーム）においては、隣接する２つのフレームの一方の集計値が所定値未満であり、もう一方の集計値が所定値以上になっている。そして、ユーザ状態が「笑い」であるブロック情報を生成する際に、検出した中間フレームを分割点として、その前後のフレームが別々のブロックとなるように、ブロック１、ブロック２、ブロック３を生成している。
【００９０】
更に、上記のブロック情報生成の第１〜第８の方法を適宜組合せてもよい。この場合、各々の方法における分割点の条件をＡＮＤ論理（論理積）で組み合わせる。例えば、第１の方法と第６の方法を組合せて、極小フレームの極小値と、その極小フレームの両側にある極大フレームの極大値との差を算出し、その２つの差のうちの少なくとも一方が第１の所定値以上であり、かつ極小値が第２の所定値以下である場合に、分割点とするようにしてもよい。また、第５の方法と第６の方法を組合せてもよい。すなわち、反応データ集計値の極小フレームの両側にある極大フレームとの距離のうちの少なくとも一方の距離が所定値以上であり、かつ極大値と極小値との２つの差の少なくとも一方の差が所定値以上である場合に、その極小フレームを分割点としてもよい。また、第５の方法と第７の方法を組合せてもよい。すなわち、反応データ集計値の極小フレームの両側にある極大フレームとの距離のうちの少なくとも一方の距離が所定値以上であり、かつ極大値と極小値との２つの比率の少なくとも一方の比率が所定値以上である場合に、その極小フレームを分割点としてもよい。
【００９１】
以上の処理により、フレーム番号とブロックが対応したブロック情報が得られる。ブロック情報生成手段１９は、その結果を図１８に示す形式で格納する。フレーム番号は、それぞれ再生位置に対応しているので、フレーム番号を再生位置に換算した後に、コンテンツＩＤと、ユーザ状態の種類と、ブロック先頭の再生位置と、ブロック末尾の再生位置と、ブロック番号とを対応させて格納する。図１８において、ユーザ状態の種類ごとに、異なる数のブロックが設定されている。コンテンツ「Ｃ００１」の場合、「笑い」に対して「Ｎｆ」個、「怒り」に対して「Ｎｇ」個、「悲しみ」に対して「１」個のブロックが設定されている。コンテンツ「Ｃ００１」では、合計「Ｎｆ＋Ｎｇ＋１」個のブロックが作成される。ブロック番号は、コンテンツごとに１から始まる続き番号である。なお、ユーザ反応データ格納手段１１に格納されたユーザ反応データにおいて、情報の種類が１種類のみである場合は、図１８の「ユーザ状態の種類」を省略できる。
【００９２】
ブロック情報生成手段１９は、ブロック情報の格納を終了すると、動作終了を制御手段１５に通知する。
【００９３】
制御手段１５は、ブロック情報生成手段１９からの通知を受けると、集約データ計算手段１２に対して、動作開始の指示を与える。
【００９４】
次に、図１９のフローチャートを用いて、集約データ計算手段１２の動作を説明する。集約データ計算手段１２は、ブロック情報生成手段１９に格納されたブロック情報を参照しながら、ユーザ反応データ格納手段１１に格納されているユーザ反応データから集約データを計算する。
【００９５】
まずステップＳ５００において、集約データ計算手段１２は、計算過程で集約データを一時的に保持するためのバッファを初期化する。このバッファは、ユーザＩＤ（以下では「Ｕ」と表記）と、コンテンツＩＤ（以下では「Ｃ」と表記）と、ブロック番号（以下では「Ｂ」と表記）の３つの引数を指定して、値の読み書きが可能なものである。以下では、「Ｐ(Ｕ, Ｃ, Ｂ)」という表記で、その値を表わす。またこのバッファは、必要に応じて記憶領域を自動的に拡張する機能を持つ。初期状態では、全てのユーザ、全てのコンテンツ、全てのブロック番号に対して、バッファの値は「０」である。
【００９６】
次にステップＳ５１０において、集約データ計算手段１２は、ユーザ反応データ格納手段１１を参照し、ユーザ反応データに記録されているユーザＩＤの中から、まだ処理を行っていないユーザＩＤを１つ選ぶ。このユーザＩＤを以下では、「Ｕｘ」と表記する。
【００９７】
次にステップＳ５２０において、集約データ計算手段１２は、ユーザ反応データ格納手段１１を参照し、ユーザＵｘに関してまだ処理を行っていないコンテンツＩＤを１つ選ぶ。このコンテンツＩＤを以下では、「Ｃｘ」と表記する。
【００９８】
次にステップＳ５３０において、集約データ計算手段１２は、ユーザ反応データ格納手段１１を参照し、ユーザＵｘがコンテンツＣｘを利用した際のユーザ状態の中から、まだ処理に使用していないユーザ状態を１つ選ぶ。このユーザ状態を以下では、「Ｍｘ」と表記する。
【００９９】
次にステップＳ５４０において、集約データ計算手段１２は、ユーザ反応データ格納手段１１を参照し、ユーザがＵｘで、コンテンツがＣｘで、ユーザ状態がＭｘである条件を満たすユーザ反応データの中から、まだ処理していないデータを１つ選ぶ。図４（Ｄ）に示す形式の場合であれば、テーブルの１行を読み出す。この選択したユーザ反応データを以下では「Ｒｘ」と表記する。
【０１００】
次にステップＳ５５０において、集約データ計算手段１２は、ブロック情報生成手段１９のブロック情報を参照しながら、Ｃｘ、Ｍｘ、Ｒｘの再生位置を用いて、Ｒｘに対応するブロックを判定する。
【０１０１】
具体的には、ブロック情報のコンテンツＩＤが「Ｃｘ」であり、「Ｒｘの再生位置」が「ブロック先頭再生位置」以上かつ「ブロック末尾再生位置」未満であり、ブロック情報の中の状態の種類が「Ｍｘ」であるブロック番号を判定する。また、Ｒｘに対応するブロック番号は、１つだけではなく複数存在する場合がある。例えば、ユーザ反応データが図４（Ｄ)に示すように状態区間の情報、すなわち「状態の先頭再生位置」と「状態の末尾再生位置」の情報を持っており、状態区間が複数のブロックにまたがっている場合である。このステップで判定されたブロック番号を「Ｂｘ」とする。
【０１０２】
次にステップＳ５６０において、集約データ計算手段１２は、ユーザ反応データＲｘにおける反応度合い（以下では「Ｄｘ」と表記する）を下記の数式（１）に示すように加算して、その時点での集計データ（集約値）であるＰ（Ｃｘ，Ｕｘ，Ｂｘ）を更新する。ユーザ反応データＲｘの中に、反応度合いが存在しない場合には、所定の数値をＰ（Ｃｘ，Ｕｘ，Ｂｘ）に加算する。例えば、「１．０」や「０．７」といった所定の数値を加算すればよい。ステップＳ５５０で判定されたブロック番号が複数存在する場合は、ステップＳ５６０の処理を該当する全てのブロック番号に対して行う。
【数１】
2011128790.tif 000003
【０１０３】
次にステップＳ５７０において、集約データ計算手段１２は、ユーザ反応データ格納手段１１を参照し、ユーザがＵｘで、コンテンツがＣｘで、ユーザ状態がＭｘである全てのユーザ反応データを処理したか否か判定する。未処理のデータが存在する場合はステップＳ５４０に進み、未処理のデータが存在しない場合はステップＳ５８０に進む。
【０１０４】
次にステップＳ５８０において、集約データ計算手段１２は、ユーザ反応データ格納手段１１を参照し、ユーザＵｘがコンテンツＣｘを利用した際のユーザ状態の中から、まだ処理していないユーザ状態があるか否か判定する。未処理のユーザ状態が存在する場合はステップＳ５３０に進み、未処理のユーザ状態が存在しない場合はステップＳ５９０に進む。
【０１０５】
次にステップＳ５９０において、集約データ計算手段１２は、ユーザ反応データ格納手段１１を参照し、ユーザＵｘに関してまだ処理を行っていないコンテンツがあるか否か判定する。未処理のコンテンツが存在する場合はステップＳ５２０に進み、未処理のコンテンツが存在しない場合はステップＳ６００に進む。
【０１０６】
次にステップＳ６００において、集約データ計算手段１２は、ユーザ反応データ格納手段１１を参照し、ユーザ反応データに記録されているユーザＩＤの中から、まだ処理を行っていないユーザがいるか否か判定する。未処理のユーザが存在する場合はステップＳ５１０に進み、未処理のユーザが存在しない場合はステップＳ６１０に進む。
【０１０７】
次にステップＳ６１０において、集約データ計算手段１２は、バッファ「Ｐ(Ｕ, Ｃ, Ｂ)」の全てのデータを集約データ計算手段１２の集約データ格納部３３（図示せず）に格納する。
【０１０８】
本実施例では以上の処理の結果、ユーザが反応を示したブロックの集約値は正の値（０より大きな値）となる。またユーザが反応していないブロックの集約値は、初期状態の「０」になっている。またユーザが利用していないコンテンツのブロックは、全て初期状態の「０」になっている。
【０１０９】
集約データ計算手段１２の集約データ格納部３３には、図２０に示す形式でデータが格納される。ユーザＩＤと、コンテンツＩＤと、ブロック番号と、グローバルブロック番号と、バッファ「Ｐ(Ｕ, Ｃ, Ｂ)」の値である集約値とが関連づけられて格納されている。図２０の例では、Ｋ個のユーザＩＤと、Ｌ個のコンテンツＩＤが格納されている様子を示している。以下の説明では、このように集約データ格納部にＫ個のユーザＩＤと、Ｌ個のコンテンツＩＤおよび統合コンテンツＩＤが格納されているものとする。
【０１１０】
ブロック番号は、コンテンツ毎に付けられた１から始まる通し番号である。グローバルブロック番号は、集約データ格納部３３に格納されている全てのコンテンツの全てのブロックを一意に識別できる番号である。具体的には、最初のコンテンツに対して、そのコンテンツのブロック番号と同じ１〜Ｎ１までの番号をグローバルブロック番号として付与し、２番目のコンテンツに対しては、Ｎ１＋１〜Ｎ１＋Ｎ２までの番号をグローバルブロック番号として付与する（ただし、Ｎ２は２番目のコンテンツのブロック数）。このような処理を全てのコンテンツに対して行う。本実施例では、１からＮｚまでのグローバルブロック番号があるものとする。コンテンツＩＤとブロック番号の組み合わせで、全てのコンテンツのブロックを特定することもできるが、グローバルブロック番号を用いることにより、１種類の番号で、全てのコンテンツのブロックを特定できる。なお、集約データ格納部３３に、ユーザＩＤと、グローバルブロック番号と、集約値とを格納するようにして、コンテンツＩＤとブロック番号の格納を省略してもよい。
【０１１１】
集約データ計算手段１２は、以上のように集約データを計算して格納した後に、制御手段１５に対して処理終了を通知する。
【０１１２】
本実施例においては、類似度計算手段１３が、集約データ計算手段１２の集約データ格納部３３に格納された集約データを用いて、ユーザ間の類似度を計算する。この理由を以下に説明する。
【０１１３】
本発明と異なる方法として、ユーザ反応データそのものを使って、ユーザ間の類似度を計算することも考えられる。例えば、従来技術の特許文献２においては、図４（Ａ）の形式のユーザ反応データをそのまま用いて、ユーザ間の類似度を算出していると解釈できる。しかしながら、この方法には、ユーザの反応を計測する時間間隔を適切に設定することが難しいという問題がある。
【０１１４】
ユーザの反応を短い時間間隔で計測し、それを類似度計算に用いると、データ量が増えるので、ユーザ間の類似度計算の処理量も増える。一般的には、収集したサンプルの大半は、ユーザが反応を示さないデータ（ゼロデータ）になる。更に、２人のユーザがほぼ同時に反応を示した場合であっても、異なる位置（時間）での反応扱いになることが多く、実際よりも類似度が低い値で計算される傾向がある。
【０１１５】
ユーザの反応を長い時間間隔で計測し、それを類似度計算に用いると、計算量は少なくて済む。しかし、ユーザが反応しても、サンプル点とサンプル点の間の位置になってしまい、類似度に反映されない可能性が出てくる。またそれを回避するために、反応を時間方向に積分する処理を入れると、本来時間的に区別すべき反応も同じ時間の反応として処理してしまうので、類似度の精度が低くなる場合がある。すなわち、従来技術のように、ユーザ反応データをそのまま使って類似度を計算する方法では、ユーザ間の類似度を精度良く、かつ少ない計算量で効率的に計算することが難しい。
【０１１６】
本発明では、反応データ集計手段１８と、ブロック情報生成手段１９と、集約データ計算手段１２を組み合わせた処理により、ユーザ反応データから集約データを計算し、集約データを用いてユーザ間の類似度を計算するので、ユーザ間の類似度を精度良く、かつ少ない計算量で効率的に計算することが可能である。また本発明は、ユーザ反応データからブロック情報を生成しているため、あらかじめコンテンツごとのブロック情報を用意しておく必要がない。このため、コンテンツの種類が非常に多い場合であっても、容易に対応できるという優れた特徴を有している。
【０１１７】
次にユーザ情報処理装置１が再生装置２に対して提供する類似ユーザ情報を作成する方法について説明する。あるユーザ（一のユーザ）が利用する再生装置２において、一のユーザが入力装置２９を操作して、類似ユーザ情報の取得を指示すると、制御手段２５はステップＳ１００と同様のユーザ認証処理を行った後、送受信手段２４を介して、類似ユーザ情報リクエストとユーザＩＤとをユーザ情報処理装置１に送信する。なお、ユーザ情報処理装置１において、ユーザを識別する処理を行なわず、再生装置２を識別する処理を行なう場合には、ユーザＩＤの代わりに、再生装置２を識別する情報を送信すればよい。ユーザ情報処理装置１の送受信手段１４は、この類似ユーザ情報リクエストとユーザＩＤとを受信し、類似度計算手段１３に通知することにより、類似度計算手段１３が一のユーザに対する類似ユーザ情報を作成する。
【０１１８】
類似度計算手段１３の動作を図２１のフローチャートを用いて説明する。
【０１１９】
まずステップＳ７００において、類似度計算手段１３は、類似ユーザ情報リクエストを発行したユーザ（一のユーザ）のユーザＩＤ（一のユーザＩＤ）に対応する集約データを集約データ計算手段１２の集約データ格納部３３から読み出す。以下では一のユーザＩＤをＵａとする。Ｕａの集約値をグローバルブロック番号に対応させて読み出し、ベクトル形式のデータとして保持する。以下ではこのベクトルをＶａ［ｉ］（ｉはグローバルブロック番号で、ｉ＝１〜Ｎｚ）で表わす。
【０１２０】
次にステップＳ７１０において、類似度計算手段１３は、集約データ格納部３３を参照しながら、Ｕａ以外のユーザＩＤの内から、まだ処理を行っていないユーザＩＤを１つ選択する。このユーザＩＤをＵｂとする。
【０１２１】
次にステップＳ７２０において、類似度計算手段１３は、Ｕｂの集約データを集約データ格納部３３から読み出す。Ｕｂの集約値をグローバルブロック番号に対応させて読み出し、ベクトル形式のデータとして保持する。以下ではこのベクトルをＶｂ［ｉ］（ｉはグローバルブロック番号で、ｉ＝１〜Ｎｚ）で表わす。
【０１２２】
次にステップＳ７３０において、類似度計算手段１３は、ＶａとＶｂを用いて、ユーザＵａとユーザＵｂとの類似度Ｓａｂを計算し、ＵｂとＳａｂを対応させた結果をバッファＱに格納する。類似度の計算方法としては以下に示す種々の方法を用いることができる。以下ではＳａｂの値が大きいほど、ユーザ間の類似度が高いと判断できる。
【０１２３】
第１の計算方法は、下記の数式（２）に従って、ＶａとＶｂが共に正の値（０より大きな値）となるベクトル要素の数をカウントする方法である。コンテンツの同じブロックに対して反応を示すユーザは類似性が高いという判断に基づく処理である。
【数２】
2011128790.tif 000004
【０１２４】
第２の計算方法は、下記の数式（３）に従って、ＶａとＶｂのコサイン尺度（２つのベクトルのコサイン角度）を計算する方法である。数 式（３）の分子は、ＶａとＶｂの内積であり、分母はＶａのノルムとＶｂのノルムの積である。
【数３】
2011128790.tif 000005
【０１２５】
第３の計算方法は、下記の数式（４）に従って、ＶａとＶｂの相関係数を計算する方法である。数式（４）において、Ｖａｍは、Ｖａ［ｉ］（ｉ＝１〜Ｎｚ）の平均値、Ｖｂｍは、Ｖｂ［ｉ］（ｉ＝１〜Ｎｚ）の平均値である。なお、数式（４）では、ｉ＝１〜Ｎｚの全てのグローバルブロックの集約値を用いて、相関係数を計算しているが、一部のグローバルブロックの集約値のみを用いて相関係数を計算してもよい。例えば、ＶａとＶｂが共に正の値となるグローバルブロックの集合を作成し、この集合を対象としてＶａの平均値ＶａｍとＶｂの平均値Ｖｂｍをそれぞれ計算した後、数式（４）の各々のΣで示されている加算演算を前記集合を対象として行い、相関係数を計算してもよい。
【数４】
2011128790.tif 000006
【０１２６】
第４の計算方法は、下記の数式（５）に従って、ＶａとＶｂの距離を計算し、これを用いて類似度を計算する方法である。広義の意味では、距離も類似度の内に入るが、距離が小さいほど類似性が高くなる。Ｓａｂの値が大きいほど類似性が高くなるようにした方が都合がよいので、数式（５）を用いる。ここでαは定数である。なお、ここではユークリッド距離を用いているが、マハラノビス距離を用いてもよい。また、ＶａとＶｂの差の２乗の代わりに、ＶａとＶｂの差の絶対値を計算して用いてもよい。
【数５】
2011128790.tif 000007
【０１２７】
第５の計算方法は、下記の数式（６）に従って、ＶａとＶｂの距離を計算し、これを用いて類似度を計算する方法である。β、γ、λは定数であり、γは通常１未満である。なお、ここではユークリッド距離を用いているが、マハラノビス距離を用いてもよい。また、ＶａとＶｂの差の２乗の代わりに、ＶａとＶｂの差の絶対値を計算して用いてもよい。
【数６】
2011128790.tif 000008
【０１２８】
第６の計算方法は、下記の数式（７）に従って、ＶａとＶｂの内積と、Ｖａ、Ｖｂそれぞれの２乗和を用いて計算する方法である。
【数７】
2011128790.tif 000009
【０１２９】
さらに、上記第１〜第６の計算方法を組合せて類似度Ｓａｂを計算してもよい。例えば、第２の計算方法と、第４の計算方法を組合せて、下記の数式（８）に従って計算してもよい。ここで、μ、νは定数である。
【数８】
2011128790.tif 000010
【０１３０】
以上が類似度Ｓａｂの計算方法の説明である。
【０１３１】
次にステップＳ７４０において、類似度計算手段１３は、集約データ格納部３３を参照しながら、Ｕａ以外のユーザＩＤで、まだ処理を行っていないユーザＩＤがあるか否か判定する。未処理のユーザＩＤが存在する場合はステップＳ７１０に進み、未処理のユーザＩＤが存在しなければ、ステップＳ７５０に進む。
【０１３２】
次にステップＳ７５０において、類似度計算手段１３は、一のユーザを除く他のユーザのユーザＩＤと類似度Ｓａｂとがそれぞれ記憶されているバッファＱを参照し、類似度の高いユーザを以下の方法で選ぶ。
【０１３３】
第１の選択方法は、類似度Ｓａｂが所定値以上のユーザを選ぶ方法である。また、所定値以上のユーザの人数が多すぎる場合や、人数が少なすぎる場合には、所定値を変更してユーザを選択し直してもよい。
【０１３４】
第２の選択方法は、類似度Ｓａｂを大きい順に並べた場合の上位から所定の人数を超えない人数だけ選択する方法である。バッファＱに所定数より多いユーザが存在する場合は、Ｓａｂの大きい順に所定数だけユーザを選択し、そうでない場合は、バッファＱに存在する全てのユーザを選択する。
【０１３５】
また、第１の選択方法と第２の選択方法を組合せてもよい。例えば、類似度Ｓａｂが所定値以上のユーザを候補として、その中から類似度の高い順に所定の人数を超えない人数だけ選択してもよい。すなわち、類似度Ｓａｂが所定値以上のユーザの人数が所定の人数よりも多い場合は、Ｓａｂの大きい順に所定の人数を選択し、そうでない場合は、Ｓａｂが所定値以上の全てのユーザを選択する。更に、ユーザ属性格納手段１６に格納されているユーザ属性データの中に、一のユーザが紹介を希望する他のユーザに関する条件が含まれている場合には、それに合致するユーザを対象にして、第１の選択方法、または第２の選択方法、または第１の選択方法と第２の選択方法を組合せた方法などにより、類似度の高いユーザを選択しても良い。
【０１３６】
次にステップＳ７６０において、類似度計算手段１３は、ステップＳ７５０で選択されたユーザのユーザＩＤに対応するユーザ属性データをユーザ属性格納手段１６から読み出し、送受信手段１４を介して、一のユーザの利用する再生装置２に送信する。
【０１３７】
また上記とは別の方法として、類似度計算手段１３において特開２００５−７１１２６号公報などに記載の方法をベースに更に変形して用いてもよい。すなわち、ユーザＩＤを行列の行または列に対応させ、グローバルブロック番号をもう一方の列または行に対応させ、行列要素が集約値である行列を形成する。そして、この行列に対して数量化３類や主成分分析などの多変量解析手法を適用し、グローバルブロック数Ｎｚよりも小さな次元を持つ低次元ベクトル（スコアベクトル）を形成し、一のユーザの低次元ベクトルと他のユーザの低次元ベクトルの類似度を上記のステップＳ７３０と同様に計算して、類似度の高いユーザを選択してもよい。これにより、ユーザ間の類似度をさらに精度よく計算することができる。また、計算量をさらに削減することができる。
【０１３８】
以上が類似度計算手段１３の動作の説明である。
【０１３９】
再生装置２の制御手段２５は、ユーザ情報処理装置１から類似ユーザの属性情報を送受信手段２４を介して受信し、表示装置２７にその情報を表示させる。これにより、一のユーザは自分とコンテンツに対する興味、嗜好、センスが類似するユーザの情報を知ることができ、そのユーザとコンタクトを取ることも可能になる。
【０１４０】
また、一のユーザに対して、類似ユーザの情報を提供するだけでなく、他の情報を提供してもよい。例えば、ユーザ情報処理装置１が、コンテンツＩＤに対応させてコンテンツのタイトル、制作者、ジャンル、制作年、説明文等のコンテンツ属性情報を格納すると共に、ユーザ反応データ格納手段１１の中から、類似ユーザの利用頻度が高く、かつ一のユーザの利用頻度が少ない（または利用していない）コンテンツのコンテンツＩＤを選択し、選択したコンテンツＩＤに対応するコンテンツ属性情報を一のユーザに対して提供してもよい。
【実施例２】
【０１４１】
実施例２のシステム全体の構成を図２２に示す。実施例１では、ユーザ情報処理装置１と再生装置２が別々の装置であったが、実施例２においては、この２つの装置の機能を併せ持つ統合装置５を用いる。複数の統合装置５がネットワーク３を介して、ピアツーピアでお互いに接続可能なシステムである。統合装置５は、ユーザ情報処理部５１と、再生部５２で構成されている。ユーザ情報処理部５１の構成および動作は、実施例１におけるユーザ情報処理装置１と同様である。また再生部５２の構成および動作は、実施例１における再生装置２と同様である。
【符号の説明】
【０１４２】
１  ユーザ情報処理装置
２（２ａ〜２ｎ）  再生装置
３  ネットワーク
５（５ａ〜５ｎ）  統合装置
１１  ユーザ反応データ格納手段
１２  集約データ計算手段
１３  類似度計算手段
１４  送受信手段
１５  制御手段
１６  ユーザ属性格納手段
１８  反応データ集計手段
１９  ブロック情報生成手段
２１  コンテンツ再生手段
２２  ユーザ状態認識手段
２３  ユーザ反応データ作成手段
２４  送受信手段
２５  制御手段
２６  ユーザ属性格納手段
２７  表示装置
２８  音声出力装置
２９  入力装置
３０  センサ装置
３３  集約データ格納部
４１  表示装置
４２  入力装置
【図１】
2011128790.tif 000011
【図２】
2011128790.tif 000012
【図３】
2011128790.tif 000013
【図４】
2011128790.tif 000014
【図５】
2011128790.tif 000015
【図６】
2011128790.tif 000016
【図７】
2011128790.tif 000017
【図８】
2011128790.tif 000018
【図９】
2011128790.tif 000019
【図１０】
2011128790.tif 000020
【図１１】
2011128790.tif 000021
【図１２】
2011128790.tif 000022
【図１３】
2011128790.tif 000023
【図１４】
2011128790.tif 000024
【図１５】
2011128790.tif 000025
【図１６】
2011128790.tif 000026
【図１７】
2011128790.tif 000027
【図１８】
2011128790.tif 000028
【図１９】
2011128790.tif 000029
【図２０】
2011128790.tif 000030
【図２１】
2011128790.tif 000031
【図２２】
2011128790.tif 000032