(57)【特許請求の範囲】
【請求項１】
楽曲データ及び映像データを用いて再生手段により再生される演奏曲に関するユーザの歌唱情報を処理する歌唱情報処理システムであって、
複数のユーザ識別情報と複数のユニット識別情報とが対応付けられた、ユーザ分類情報を記憶した記憶手段と、
特定ユーザのユーザ識別情報に基づき、前記記憶手段に記憶された前記ユーザ分類情報に応じて当該特定ユーザに対応する本人ユニット識別情報を取得する、ユニット情報取得手段と、
所定の時間範囲内における前記演奏曲に関する前記特定ユーザの選曲操作に基づく当該特定ユーザの少なくとも１つの歌唱履歴情報を取得する本人履歴取得手段と、
前記本人履歴取得手段により取得された前記特定ユーザの前記少なくとも１つの歌唱履歴情報に基づき、前記複数のユニット識別情報の中から当該特定ユーザに対応付ける第１ユニット識別情報を決定する第１ユニット決定手段と、
前記ユニット情報取得手段により取得された前記本人ユニット識別情報で表されるユニットに対し、所定の類似相関を備えたユニットに係わる少なくとも１つの第２ユニット識別情報を決定する第２ユニット決定手段と、
前記特定ユーザに関して前記第１ユニット決定手段により決定された前記第１ユニット識別情報と、当該特定ユーザに関して前記第２ユニット決定手段により決定された前記第２ユニット識別情報、又は、前記特定ユーザに関して前記ユニット情報取得手段により取得された前記本人ユニット識別情報とが、一致するかどうかを判定する第１判定手段と、
前記第１判定手段により、前記第１ユニット識別情報と前記第２ユニット識別情報又は前記本人ユニット識別情報とが一致しないと判定された場合には、前記第１ユニット識別情報に対応した前記特定ユーザの前記少なくとも１つの歌唱履歴情報に対し、分析用処理における適用対象外とするための識別子を付与する第１識別子付与手段と
を有することを特徴とする歌唱情報処理システム。
【請求項２】
楽曲データ及び映像データを用いて再生手段により再生される演奏曲に関するユーザの歌唱情報を処理する歌唱情報処理システムであって、
複数のユーザ識別情報と複数のユニット識別情報とが対応付けられた、ユーザ分類情報を記憶した記憶手段と、
特定ユーザのユーザ識別情報に基づき、前記記憶手段に記憶された前記ユーザ分類情報に応じて当該特定ユーザに対応する本人ユニット識別情報を取得する、ユニット情報取得手段と、
所定の時間範囲内における前記演奏曲に関する前記特定ユーザの選曲操作に基づく当該特定ユーザの少なくとも１つの歌唱履歴情報を取得する本人履歴取得手段と、
前記本人履歴取得手段により取得された前記特定ユーザの前記少なくとも１つの歌唱履歴情報に基づき、前記複数のユニット識別情報の中から当該特定ユーザに対応付ける第１ユニット識別情報を決定する第１ユニット決定手段と、
前記ユニット情報取得手段により取得された前記本人ユニット識別情報で表されるユニットに対し、所定の類似相関を備えたユニットに係わる少なくとも１つの第２ユニット識別情報を決定する第２ユニット決定手段と、
前記所定の時間範囲内における前記演奏曲に関する前記特定ユーザに同伴した少なくとも１人の同伴ユーザの選曲操作に基づく当該同伴ユーザの少なくとも１つの歌唱履歴情報を取得する同伴ユーザ履歴取得手段と、
前記同伴ユーザ履歴取得手段により取得された前記同伴ユーザの前記少なくとも１つの歌唱履歴情報に基づき、前記複数のユニット識別情報の中から当該少なくとも１人の同伴ユーザに対応付ける少なくとも１つの第３ユニット識別情報を決定する第３ユニット決定手段と、
前記第３ユニット決定手段により決定された前記第３ユニット識別情報で表されるユニットに対し、所定の類似相関を備えたユニットに係わる少なくとも１つの第４ユニット識別情報を決定する第４ユニット決定手段と、
前記特定ユーザに関して前記第１ユニット決定手段により決定された前記第１ユニット識別情報と、当該特定ユーザに関して前記第２ユニット決定手段により決定された前記第２ユニット識別情報、又は、前記特定ユーザに関して前記ユニット情報取得手段により取得された前記本人ユニット識別情報とが、一致するかどうかを判定する第１判定手段と、
前記第１判定手段により前記第１ユニット識別情報と前記第２ユニット識別情報又は前記本人ユニット識別情報とが一致しないと判定された場合に、前記同伴ユーザに関して前記第３ユニット決定手段により決定された前記第３ユニット識別情報、又は、当該同伴ユーザに関して前記第４ユニット決定手段により決定された前記第４ユニット識別情報と、前記特定ユーザに関して前記第１ユニット決定手段により決定された前記第１ユニット識別情報と、が、一致するかどうかを判定する第２判定手段と、
前記第２判定手段により、前記第３ユニット識別情報又は前記第４ユニット識別情報と前記第１ユニット識別情報とが一致すると判定された場合には、前記第１ユニット識別情報に対応した前記特定ユーザの前記少なくとも１つの歌唱履歴情報に対し、分析用処理における適用対象外とするための識別子を付与可能な第２識別子付与手段と
を有することを特徴とする歌唱情報処理システム。
【請求項３】
前記第２判定手段により前記第３ユニット識別情報又は前記第４ユニット識別情報と前記第１ユニット識別情報とが一致すると判定された場合に、当該同伴ユーザに係わる前記第３ユニット識別情報及び前記第４ユニット識別情報のうちの少なくとも１つと、前記特定ユーザに係わる前記本人ユニット識別情報及び前記第２ユニット識別情報のうちの少なくとも１つとが、共通であるかどうかを判定する第３判定手段を有し、
前記第２識別子付与手段は、
前記第３判定手段により、前記第３ユニット識別情報及び前記第４ユニット識別情報のうちの少なくとも１つと、前記本人ユニット識別情報及び前記第２ユニット識別情報のうちの少なくとも１つとが、共通であると判定された場合には、前記第１ユニット識別情報に対応した前記特定ユーザの前記少なくとも１つの歌唱履歴情報に対する前記識別子の付与を中止する
ことを特徴とする請求項２記載の歌唱情報処理システム。
【請求項４】
前記特定ユーザの複数の前記歌唱履歴情報のうち、前記識別子が付与されていないものをクラスタリングし、当該特定ユーザの前記ユーザ識別情報を前記複数のユニット識別情報のいずれかに対応付ける、クラスタリング手段を有する
ことを特徴とする請求項１乃至請求項３のいずれか１項記載の歌唱情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏曲に関するユーザの歌唱情報を処理する歌唱情報処理システムに関する。
【背景技術】
【０００２】
従来、演奏曲の再生を行う楽曲再生装置を利用するユーザに対して広告情報の提供を行う技術が、例えば特許文献１に開示されている。
【０００３】
この従来技術では、カラオケ装置のＣＰＵが、予め設定された設定時間を読み出して、タイマーによるカウントを開始させる。このとき、予約されている曲があれば、ＣＰＵは、その曲に対応する音声データ及び映像データをＨＤＤより読み出して、音源及び映像コントロール部へ送出し、音声及び映像をスピーカ及びＴＶより出力させる。そして、その楽曲の演奏が終了したら、ＣＰＵは、上記読み出された設定時間とタイマーのカウント値とを比較する。そして、そのカウント値が設定時間を越えていた場合には、ＣＰＵは、ＨＤＤより広告などサービス情報を読み出して、映像コントロール部へ送出し、ＴＶに当該広告などサービス情報を表示させる。これにより、１つの演奏曲の再生終了後、次の演奏曲の再生開始までの間に、利用者に対して、広告などのサービス情報の提供が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−１０２８９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、上記従来技術のような、曲と曲との間の単なる広告の提供にとどまらず、ユーザの歌唱履歴情報を手がかりに嗜好を推測して、ユーザの属性分析を行うことが考えられつつある。
【０００６】
ところで、一般に、ユーザが、演奏曲データを用いた演奏曲の再生サービスを受ける場合、ひとりで来場する場合もあるが、他の同伴者が連れ立って複数名で来場する場合もある。例えば同伴者が自分の嗜好を知られたくない者であった場合や同伴者が目上の人物であった場合等においては、ユーザは自らの本来の嗜好とは異なる演奏曲を意図的に選曲して歌唱する可能性がある。このような歌唱を行ったときの歌唱履歴は、ユーザ本来の嗜好とあまり関係なくなるため、このような歌唱履歴をユーザの属性分析に利用してしまうと、精度低下を引き起こすおそれがある。
【０００７】
本発明の目的は、ユーザの属性分析における精度低下を防止することができる歌唱情報処理システムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、第１の発明は、楽曲データ及び映像データを用いて再生手段により再生される演奏曲に関するユーザの歌唱情報を処理する歌唱情報処理システムであって、複数のユーザ識別情報と複数のユニット識別情報とが対応付けられた、ユーザ分類情報を記憶した記憶手段と、特定ユーザのユーザ識別情報に基づき、前記記憶手段に記憶された前記ユーザ分類情報に応じて当該特定ユーザに対応する本人ユニット識別情報を取得する、ユニット情報取得手段と、所定の時間範囲内における前記演奏曲に関する前記特定ユーザの選曲操作に基づく当該特定ユーザの少なくとも１つの歌唱履歴情報を取得する本人履歴取得手段と、前記本人履歴取得手段により取得された前記特定ユーザの前記少なくとも１つの歌唱履歴情報に基づき、前記複数のユニット識別情報の中から当該特定ユーザに対応付ける第１ユニット識別情報を決定する第１ユニット決定手段と、前記ユニット情報取得手段により取得された前記本人ユニット識別情報で表されるユニットに対し、所定の類似相関を備えたユニットに係わる少なくとも１つの第２ユニット識別情報を決定する第２ユニット決定手段と、前記特定ユーザに関して前記第１ユニット決定手段により決定された前記第１ユニット識別情報と、当該特定ユーザに関して前記第２ユニット決定手段により決定された前記第２ユニット識別情報、又は、前記特定ユーザに関して前記ユニット情報取得手段により取得された前記本人ユニット識別情報とが、一致するかどうかを判定する第１判定手段と、前記第１判定手段により、前記第１ユニット識別情報と前記第２ユニット識別情報又は前記本人ユニット識別情報とが一致しないと判定された場合には、前記第１ユニット識別情報に対応した前記特定ユーザの前記少なくとも１つの歌唱履歴情報に対し、分析用処理における適用対象外とするための識別子を付与する第１識別子付与手段とを有することを特徴とする。
【０００９】
一般に、演奏曲を再生しつつ歌唱を行うサービスを受けるユーザは、自らが好む演奏曲を再生して歌唱を行う。したがって、各ユーザがどのような演奏曲を選曲して歌唱したかを表す歌唱履歴は、各ユーザの嗜好を反映したものとなる。本願第１発明においては、このような歌唱履歴に基づく各ユーザの嗜好を表すために、ユーザ識別情報を、嗜好を表すユニットのユニット識別情報に対応付けている。すなわち、記憶手段には、複数のユーザ識別情報と複数のユニット識別情報とが対応付けられた、ユーザ分類情報が記憶されている。これにより、各ユーザの嗜好は、ユーザ分類情報において当該ユーザのユーザ識別情報に対応付けられているユニット識別情報によって表すことができる。上記したように、歌唱履歴を数多く積み重ねるほど、当該歌唱履歴はユーザの嗜好を正確に反映したものとなり、ユーザ識別情報とユニット識別情報との対応付けもより正確なものとなる。
【００１０】
一方、一般に、ユーザが、演奏曲データを用いた演奏曲の再生サービスを受ける場合、ひとりで来場する場合もあるが、他の同伴者が連れ立って複数名で来場する場合もある。例えば同伴者が自分の嗜好を知られたくない者であった場合や同伴者が目上の人物であった場合等においては、ユーザは自らの本来の嗜好とは異なる演奏曲を意図的に選曲して歌唱する可能性がある。このような歌唱を行ったときの歌唱履歴は、ユーザ本来の嗜好とあまり関係なくなるため、上記のようなユニット識別情報との対応付けは行うべきではない。
【００１１】
本願第１発明の歌唱情報処理システムにおいては、所定の時間範囲内における特定のユーザの歌唱履歴情報を本人履歴取得手段が取得した後、その歌唱履歴情報に基づき第１ユニット決定手段が当該特定ユーザに対応付けられる第１ユニット識別情報を決定する。その一方で、記憶手段に記憶された上記分類情報に基づき、当該特定ユーザのユーザ識別情報に対応付けられた本人ユニット識別情報をユニット情報取得手段が取得しておく。上述したように、この本人ユニット識別情報は、当該特定ユーザの本来の嗜好を正確に表したものとなっている。さらに、本願第１発明では、本人ユニット識別情報で表されるユニットに類似したユニットの少なくとも１つの第２ユニット識別情報が、第２ユニット決定手段によって決定される。したがって、この第２ユニット識別情報は、上記特定ユーザの本来の嗜好に比較的近い嗜好を表すものとなっている。
【００１２】
そして、第１判定手段が、前述のようにして同伴者（以下適宜、同伴ユーザという）が存在する条件における特定ユーザの歌唱履歴に対応した第１ユニット識別情報が、前述のようにして取得され当該特定ユーザの本来の嗜好に対応している本人ユニット識別情報、若しくは、これに近い上記第２ユニット識別情報と一致するかどうかを判定する。これにより、第１判定手段が一致しないと判定した場合には、上記特定ユーザが、本来の嗜好とは異なる嗜好の演奏曲を意図的に選曲し歌唱を行った、とみなすことができる。この場合、第１識別子付与手段が、当該第１ユニット識別情報に対応した特定ユーザの歌唱履歴情報に、所定の識別子を付与する。これにより、特定ユーザの歌唱履歴情報のうち、上記本来の嗜好とは異なる選曲を行ったときのデータを、それ以降の当該特定ユーザの属性分析等に利用しないようにすることができる。この結果、特定ユーザの属性分析における精度低下を防止することができる。
【００１３】
上記目的を達成するために、第２の発明は、楽曲データ及び映像データを用いて再生手段により再生される演奏曲に関するユーザの歌唱情報を処理する歌唱情報処理システムであって、複数のユーザ識別情報と複数のユニット識別情報とが対応付けられた、ユーザ分類情報を記憶した記憶手段と、特定ユーザのユーザ識別情報に基づき、前記記憶手段に記憶された前記ユーザ分類情報に応じて当該特定ユーザに対応する本人ユニット識別情報を取得する、ユニット情報取得手段と、所定の時間範囲内における前記演奏曲に関する前記特定ユーザの選曲操作に基づく当該特定ユーザの少なくとも１つの歌唱履歴情報を取得する本人履歴取得手段と、前記本人履歴取得手段により取得された前記特定ユーザの前記少なくとも１つの歌唱履歴情報に基づき、前記複数のユニット識別情報の中から当該特定ユーザに対応付ける第１ユニット識別情報を決定する第１ユニット決定手段と、前記ユニット情報取得手段により取得された前記本人ユニット識別情報で表されるユニットに対し、所定の類似相関を備えたユニットに係わる少なくとも１つの第２ユニット識別情報を決定する第２ユニット決定手段と、前記所定の時間範囲内における前記演奏曲に関する前記特定ユーザに同伴した少なくとも１人の同伴ユーザの選曲操作に基づく当該同伴ユーザの少なくとも１つの歌唱履歴情報を取得する同伴ユーザ履歴取得手段と、前記同伴ユーザ履歴取得手段により取得された前記同伴ユーザの前記少なくとも１つの歌唱履歴情報に基づき、前記複数のユニット識別情報の中から当該少なくとも１人の同伴ユーザに対応付ける少なくとも１つの第３ユニット識別情報を決定する第３ユニット決定手段と、前記第３ユニット決定手段により決定された前記第３ユニット識別情報で表されるユニットに対し、所定の類似相関を備えたユニットに係わる少なくとも１つの第４ユニット識別情報を決定する第４ユニット決定手段と、前記特定ユーザに関して前記第１ユニット決定手段により決定された前記第１ユニット識別情報と、当該特定ユーザに関して前記第２ユニット決定手段により決定された前記第２ユニット識別情報、又は、前記特定ユーザに関して前記ユニット情報取得手段により取得された前記本人ユニット識別情報とが、一致するかどうかを判定する第１判定手段と、前記第１判定手段により前記第１ユニット識別情報と前記第２ユニット識別情報又は前記本人ユニット識別情報とが一致しないと判定された場合に、前記同伴ユーザに関して前記第３ユニット決定手段により決定された前記第３ユニット識別情報、又は、当該同伴ユーザに関して前記第４ユニット決定手段により決定された前記第４ユニット識別情報と、前記特定ユーザに関して前記第１ユニット決定手段により決定された前記第１ユニット識別情報と、が、一致するかどうかを判定する第２判定手段と、前記第２判定手段により、前記第３ユニット識別情報又は前記第４ユニット識別情報と前記第１ユニット識別情報とが一致すると判定された場合には、前記第１ユニット識別情報に対応した前記特定ユーザの前記少なくとも１つの歌唱履歴情報に対し、分析用処理における適用対象外とするための識別子を付与可能な第２識別子付与手段とを有することを特徴とする。
【００１４】
ユーザが他の同伴ユーザと連れ立って来場し、自らの本来の嗜好とは異なる演奏曲を意図的に選曲した場合に、当該他の同伴ユーザの影響を受けて、当該他の同伴ユーザの嗜好に沿った、あるいはその嗜好に近い演奏曲を選曲して歌唱する可能性があり得る。
【００１５】
そこで、本願第２発明の歌唱情報処理システムにおいては、所定の時間範囲内における特定のユーザの歌唱履歴情報を本人履歴取得手段が取得した後、その歌唱履歴情報に基づき第１ユニット決定手段が当該特定ユーザに対応付けられる第１ユニット識別情報を決定する。また第２ユニット決定手段が当該特定ユーザの本来の嗜好に近い第２ユニット識別情報を決定する。
【００１６】
さらに、所定の時間範囲内における同伴ユーザの歌唱履歴情報を同伴ユーザ履歴取得手段が取得した後、その歌唱履歴情報に基づき第３ユニット決定手段が当該同伴ユーザに対応付けられる第３ユニット識別情報を決定する。また、第３ユニット識別情報で表されるユニットに類似したユニットの少なくとも１つの第４ユニット識別情報が、第４ユニット決定手段によって決定される。第３ユニット識別情報は上記同伴ユーザの上記特定ユーザに同伴したときの嗜好を表し、第４ユニット識別情報は当該嗜好に比較的近い嗜好を表している。
【００１７】
そして、本願第２発明の歌唱情報処理システムにおいては、上記同様、まず、第１判定手段が、上記第１ユニット識別情報が、本来の嗜好に対応している本人ユニット識別情報又はこれに近い第２ユニット識別情報と一致するかどうかを判定する。そして、第１判定手段が一致しないと判定した場合には、さらに第２判定手段が、上記第１ユニット識別情報が、特定ユーザと同伴したときの同伴ユーザの嗜好に対応している第３ユニット識別情報又はこれに近い第４ユニット識別情報と一致するかどうかを判定する。
【００１８】
これにより、第２判定手段が一致すると判定した場合には、上記特定ユーザが、同伴ユーザの嗜好の影響を受けることで、本来の嗜好とは異なる嗜好の演奏曲を意図的に選曲し歌唱を行った、とみなすことができる。そしてこの場合、第２識別子付与手段が、当該第１ユニット識別情報に対応した特定ユーザの歌唱履歴情報に、所定の識別子を付与する。これにより、特定ユーザの歌唱履歴情報のうち、上記本来の嗜好とは異なる選曲を行ったときのデータを、それ以降の当該特定ユーザの属性分析等に利用しないようにすることができる。この結果、特定ユーザの属性分析における精度低下を防止することができる。
【００１９】
第３の発明は、上記第２発明において、前記第２判定手段により前記第３ユニット識別情報又は前記第４ユニット識別情報と前記第１ユニット識別情報とが一致すると判定された場合に、当該同伴ユーザに係わる前記第３ユニット識別情報及び前記第４ユニット識別情報のうちの少なくとも１つと、前記特定ユーザに係わる前記本人ユニット識別情報及び前記第２ユニット識別情報のうちの少なくとも１つとが、共通であるかどうかを判定する第３判定手段を有し、前記第２識別子付与手段は、前記第３判定手段により、前記第３ユニット識別情報及び前記第４ユニット識別情報のうちの少なくとも１つと、前記本人ユニット識別情報及び前記第２ユニット識別情報のうちの少なくとも１つとが、共通であると判定された場合には、前記第１ユニット識別情報に対応した前記特定ユーザの前記少なくとも１つの歌唱履歴情報に対する前記識別子の付与を中止することを特徴とする。
【００２０】
特定ユーザが、上記のようにして同伴ユーザの影響を受けて自らの嗜好に対応しない選曲を行った場合であっても、もともとの当該同伴ユーザの嗜好が特定ユーザの嗜好と比較的近かったという場合も考えられる。この場合は、特定ユーザは本来の嗜好から外れてはいても比較的近い嗜好の歌唱を行ったことになり、言い換えれば、嗜好の範囲が拡がった、あるいは嗜好の範囲がわずかに変化した、こととなる。したがって、この場合は、当該特定ユーザの嗜好の微妙な変化を反映させるために、当該歌唱履歴を含めてユニット識別情報との対応付けを行った方がよい。
【００２１】
そこで、本願第３発明の歌唱情報処理システムにおいては、前述のようにして第２判定手段が第３ユニット識別情報又は第４ユニット識別情報と第１ユニット識別情報とが一致すると判定した場合に、第３判定手段が、対応する同伴ユーザの嗜好がもともと上記特定ユーザの嗜好と比較的近かったかどうかを判定する。具体的には、第３ユニット識別情報及び第４ユニット識別情報のうちの少なくとも１つと、本人ユニット識別情報及び第２ユニット識別情報のうちの少なくとも１つとが、共通であったかどうかを判定する。これにより、上記のような特定ユーザの嗜好の微妙な変化を確実に反映させた形で、それ以降の当該特定ユーザの属性分析を行うことができる。この結果、特定ユーザの属性分析における精度を向上することができる。
【００２２】
第４の発明は、上記第１乃至第３発明のいずれかにおいて、前記特定ユーザの複数の前記歌唱履歴情報のうち、前記識別子が付与されていないものをクラスタリングし、当該特定ユーザの前記ユーザ識別情報を前記複数のユニット識別情報のいずれかに対応付ける、クラスタリング手段を有することを特徴とする。
【００２３】
上記第１〜第３発明の手法によって属性分析等に用いるべきでない歌唱履歴情報を使用せずにクラスタリングを行うことで、特定ユーザの嗜好を確実に反映させた、高精度なクラスタリングを行うことができる。
【発明の効果】
【００２４】
本発明によれば、ユーザの属性分析における精度低下を防止することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施の形態の歌唱情報処理システムの全体構成を表すシステム構成図である。
【図２】歌唱履歴データベースの記憶内容の一例を概念的に表す表である。
【図３】利用履歴データベースの記憶内容の一例を概念的に表す表である。
【図４】ユーザ別嗜好データベースの記憶内容の一例を概念的に表す表である。
【図５】嗜好別代表ベクトルデータベースの記憶内容の一例を概念的に表す表である。
【図６】計算用ＰＣ端末の制御部が実行する、歌唱履歴判別処理に関する制御手順を表すフローチャートである。
【図７】ステップＳ１００の詳細手順を表すフローチャートである。
【図８】ステップＳ２００の詳細手順を表すフローチャートである。
【図９】ステップＳ３００の詳細手順を表すフローチャートである。
【図１０】ステップＳ４００の詳細手順を表すフローチャートである。
【図１１】ステップＳ５００の詳細手順を表すフローチャートである。
【図１２】ステップＳ６００の詳細手順を表すフローチャートである。
【図１３】計算用ＰＣ端末の制御部が実行する、クラスタリングに関する制御手順を表すフローチャートである。
【図１４】同伴ユーザの来場時のユニット又はその近傍のユニットと特定ユーザの来場時のユニットとが一致した場合に、適用対象外とする変形例において、ステップＳ１００の詳細手順を表すフローチャートである。
【図１５】ステップＳ４００′の詳細手順を表すフローチャートである。
【図１６】ステップＳ７００の詳細手順を表すフローチャートである。
【図１７】ステップＳ８００の詳細手順を表すフローチャートである。
【図１８】ステップＳ５００′の詳細手順を表すフローチャートである。
【図１９】ステップＳ９００の詳細手順を表すフローチャートである。
【図２０】特定ユーザと同伴ユーザの嗜好がもともと近かった場合には、分析用処理における適用対象外としない変形例において、ステップＳ１００の詳細手順を表すフローチャートである。
【図２１】ステップＳ９００′の詳細手順を表すフローチャートである。
【図２２】ステップＳ１１００の詳細手順を表すフローチャートである。
【発明を実施するための形態】
【００２６】
以下、本発明の一実施の形態を図面を参照しつつ説明する。
【００２７】
図１を用いて、本実施形態の歌唱情報処理システムの全体構成を説明する。
【００２８】
図１において、歌唱情報処理システム１は、演奏曲の再生を行うカラオケ装置１００を利用するユーザの演奏曲に関する歌唱情報を処理するシステムである。この歌唱情報処理システム１は、カラオケ店舗等のカラオケルームＫＲにそれぞれに設置された、カラオケ装置１００及びリモコン２００と、ＤＢサーバ３００と、計算用ＰＣ端末４００とを有している。
【００２９】
なお、カラオケ装置１００とリモコン２００とは、例えば無線又は有線のＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）等のネットワークＮＷ１を介し、互いに情報送受信可能に接続されている。また、カラオケ装置１００やリモコン２００と、ＤＢサーバ３００と、計算用ＰＣ端末４００とは、上記ネットワークＮＷ１と、例えば通信ネットワーク等のネットワークＮＷ２とを介し、互いに情報送受信可能に接続されている。
【００３０】
カラオケ装置１００は、演奏曲データを用いて、演奏曲の再生サービスを提供する楽曲再生装置である。このカラオケ装置１００は、制御部１０１と、再生手段としての再生部１０２と、表示部１０３と、音声出力部１０４と、操作部１０５と、通信制御部１０６と、大容量記憶装置１０７と備えている。
【００３１】
制御部１０１は、図示しないＣＰＵ及びＲＡＭ、ＲＯＭ等のメモリを備えている。この制御部１０１は、ＲＡＭの一時記憶機能を利用しつつ、ＲＯＭや大容量記憶装置１０７に予め記憶された各種プログラムを実行する。これにより、カラオケ装置１００全体の制御を行う。
【００３２】
大容量記憶装置１０７は、例えばＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）などから構成される。この大容量記憶装置１０７には、複数の演奏曲データ、及び、予め図示しない広告配信サーバより出力された複数の広告情報等の各種情報が記憶されている。なお、演奏曲データには、楽曲データとしてのＭｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ（ＭＩＤＩ；登録商標）データ、及び、映像データ等が含まれている。また、広告情報は、特定の商品等を広告する動画情報や静止画情報である。
【００３３】
再生部１０２は、上記大容量記憶装置１０７に記憶された演奏曲データを用いて演奏曲を再生する。またこれと共に、再生部１０２は、上記大容量記憶装置１０７に記憶された広告情報を再生する。
【００３４】
表示部１０３は、例えば液晶ディスプレイなどから構成される。この表示部１０３は、上記再生部１０２によって再生された演奏曲や広告情報に係わる動画や静止画の映像を表示する。
【００３５】
音声出力部１０４は、例えばアンプやスピーカなどから構成される。この音声出力部１０４は、上記再生部１０２によって再生された演奏曲や広告情報に係わる音声、及び、図示しないマイクにより入力されたユーザの歌唱音声等を出力する。
【００３６】
操作部１０５は、複数のキーやスイッチなどから構成される。ユーザは、この操作部１０５又は後述のリモコン２００の操作部２０５を用いて、演奏曲に関する選曲操作等の各種操作を行うことができる。
【００３７】
通信制御部１０６は、リモコン２００、ＤＢサーバ３００、計算用ＰＣ端末４００との間で、上記ネットワークＮＷ１,ＮＷ２を介し行われる情報通信の制御を行う。
【００３８】
リモコン２００は、ユーザが演奏曲に関する選曲操作、言い換えれば、演奏曲の予約等の各種操作を行うための操作端末である。このリモコン２００は、制御部２０１と、表示部２０３と、操作部２０５と、通信制御部２０６と、記憶装置２０７とを備えている。
【００３９】
制御部２０１は、図示しないＣＰＵ及びＲＡＭ、ＲＯＭ等のメモリを備えている。この制御部２０１は、ＲＡＭの一時記憶機能を利用しつつ、ＲＯＭや記憶装置２０７に予め記憶された各種プログラムを実行する。これにより、リモコン２００全体の制御を行う。
【００４０】
表示部２０３は、例えば液晶ディスプレイなどから構成され、各種表示を行う。
【００４１】
操作部２０５は、複数のキーやスイッチなどから構成される。ユーザは、この操作部２０５又は上記カラオケ装置１００の操作部１０５を用いて、演奏曲に関する選曲操作等の各種操作を行うことができる。
【００４２】
通信制御部２０６は、カラオケ装置１００、ＤＢサーバ３００、計算用ＰＣ端末４００との間で、上記ネットワークＮＷ１,ＮＷ２を介し行われる情報通信の制御を行う。
【００４３】
記憶装置２０７は、例えば不揮発性メモリなどから構成され、各種情報を記憶する。
【００４４】
ＤＢサーバ３００は、制御部３０１と、通信制御部３０２と、記憶部３１０とを有している。
【００４５】
制御部３０１は、図示しないＣＰＵ及びＲＡＭ、ＲＯＭ等のメモリを備えている。この制御部３０１は、ＲＡＭの一時記憶機能を利用しつつ、ＲＯＭや記憶部３１０に予め記憶された各種プログラムを実行する。これにより、ＤＢサーバ３００全体の制御を行う。
【００４６】
通信制御部３０２は、カラオケ装置１００、リモコン２００、計算用ＰＣ端末４００との間で、上記ネットワークＮＷ１,ＮＷ２を介し行われる情報通信の制御を行う。
【００４７】
記憶部３１０は、例えばＨＤＤ等で構成されている。この記憶部３１０は、ＯＳ記憶エリア３１１と、ＲＤＢＭＳ記憶エリア３１２と、データベース記憶エリア３１３とを備えている。
【００４８】
ＯＳ記憶エリア３１１には、所定のＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）が記憶されている。ＯＳは、コンピュータシステム全体を管理するソウトウェアである。
【００４９】
ＲＤＢＭＳ記憶エリア３１２には、所定のＲｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ（ＲＤＢＭＳ）が記憶されている。ＲＤＢＭＳは、いわゆるリレーショナルデータベースを管理するソフトウェアである。
【００５０】
データベース記憶エリア３１３には、会員データベース（図示せず）、歌唱履歴データベース３１３１（後述の図２参照）、利用履歴データベース３１３２（後述の図３参照）、記憶手段としてのユーザ別嗜好データベース３１３３（後述の図４参照）、及び、嗜好別代表ベクトルデータベース３１３４（後述の図５参照）が記憶されている。なお、歌唱履歴データベース３１３１及び利用履歴データベース３１３２は、それぞれ、カラオケ装置１００ごとに別個に設けられ、データベース記憶エリア３１３に記憶されている。
【００５１】
会員データベースには、カラオケ装置１００による演奏曲の再生サービスに係わる会員として登録されたユーザの会員情報が記憶されている。ユーザの会員情報には、当該ユーザのユーザ識別情報であるユーザＩＤ、性別、生年月日等が含まれている。
【００５２】
計算用ＰＣ端末４００には、ディスプレイ４２０、キーボード４２１、及びマウス４２２が接続されている。また、計算用ＰＣ端末４００は、制御部４０１と、通信制御部４０２と、出力制御部４０３と、入力制御部４０４と、記憶部４１０とを有している。
【００５３】
制御部４０１は、図示しないＣＰＵ及びＲＡＭ、ＲＯＭ等のメモリを備えている。この制御部４０１は、ＲＡＭの一時記憶機能を利用しつつ、ＲＯＭや記憶部４１０に予め記憶された各種プログラムを実行する。これにより、計算用ＰＣ端末４００全体の制御を行う。
【００５４】
通信制御部４０２は、カラオケ装置１００、リモコン２００、ＤＢサーバ３００との間で、上記ネットワークＮＷ１,ＮＷ２を介し行われる情報通信の制御を行う。
【００５５】
出力制御部４０３は、上記ディスプレイ４２０への映像信号の出力に関する制御を行う。入力制御部４０４は、上記キーボード４２１やマウス４２２を介した情報の入力に関する制御を行う。
【００５６】
記憶部４１０は、例えばＨＤＤ等で構成されている。この記憶部４１０は、所定のＯＳが記憶されたＯＳ記憶エリア４１１と、歌唱履歴判別プログラム及び嗜好分類プログラムが記憶されたプログラム記憶エリア４１２とを備えている。
【００５７】
図２に、上記歌唱履歴データベース３１３１の記憶内容の一例を示す。
【００５８】
図２に示すように、歌唱履歴データベース３１３１には、予め定められたカラオケ装置１００の再生部１０２により再生される演奏曲に関するユーザの選曲操作に基づく当該ユーザの歌唱履歴情報と、対象外フラグとが対応付けられて記憶されている。なお、前述したように、歌唱履歴データベース３１３１は、カラオケ装置１００ごとに別個に設けられている。すなわち、１つの歌唱履歴データベース３１３１には、予め定められた１つのカラオケ装置１００を利用したユーザの歌唱履歴情報等が記憶されている。
【００５９】
ユーザの歌唱履歴情報には、上記選曲操作を行ったユーザのユーザＩＤと、選曲された演奏曲の曲識別情報である曲ＩＤと、選曲された演奏曲の歌手識別情報である歌手ＩＤと、選曲された演奏曲が歌唱された時刻情報である歌唱日時と、が含まれている。
【００６０】
なお、ユーザの歌唱履歴情報としては、上記に限られず、例えば選曲された演奏曲の曲ジャンル識別情報であるジャンルＩＤ等、上記以外の情報を含めるようにしてもよい。
【００６１】
対象外フラグは、分析用処理における適用対象外であるか否かを表すフラグである。なお、この対象外フラグは、言い換えれば、本来の嗜好とは異なる演奏曲を意図的に選曲して歌唱したとみなされたか否かを表している（詳細は後述）。「０」は、分析用処理における適用対象である（本来の嗜好と同様又はほぼ同様の演奏曲を意図的に選曲し歌唱を行ったとみなされた）ことを表している。「１」は、分析用処理における適用対象外である（本来の嗜好とは異なる演奏曲を意図的に選曲して歌唱したとみなされた）ことを表している。なお、対象外フラグの初期値は「０」として記憶されている。
【００６２】
ここで、一般に、カラオケ装置１００による演奏曲の再生サービスを受けるユーザは、自らが好む演奏曲を再生して歌唱を行う。したがって、この歌唱履歴データベース３１３１に記憶された、各ユーザがどのような演奏曲を選曲して歌唱したかを表す歌唱履歴は、各ユーザの嗜好を反映した情報となっている。
【００６３】
図３に、上記利用履歴データベース３１３２の記憶内容の一例を示す。
【００６４】
図３に示すように、利用履歴データベース３１３２には、予め定められたカラオケ装置１００に関する複数のユーザの利用履歴情報が記憶されている。なお、前述したように、利用履歴データベース３１３２は、カラオケ装置１００ごとに別個に設けられている。すなわち、１つの利用履歴データベース３１３２には、予め定められた１つのカラオケ装置１００を利用したユーザの利用履歴情報等が記憶されている。
【００６５】
ユーザの利用履歴情報には、カラオケ装置１００を利用した、例えば図示しない認証サーバの制御部が実行する所定のユーザ認証処理を経て、リモコン２００の表示部２０３におけるユーザ固有の閲覧画面であるマイページにアクセス可能となった、ユーザのユーザＩＤと、利用開始日時と、利用終了日時と、が含まれている。
【００６６】
利用開始日時は、当該ユーザがカラオケ装置１００の利用を開始した際の、例えば当該ユーザが上記マイページにログインした際の、時刻情報である。利用終了日時は、当該ユーザがカラオケ装置１００の利用を終了した際の、例えば当該登録ユーザが上記マイページからログアウトした際の、時刻情報である。
【００６７】
図４に、上記ユーザ別嗜好データベース３１３３の記憶内容の一例を示す。
【００６８】
図４に示すように、ユーザ別嗜好データベース３１３３には、計算用ＰＣ端末４００の制御部４０１によって実行されたクラスタリングによって、複数のユーザのユーザＩＤと、互いに嗜好の異なる複数のユニットのユニット識別情報であるユニットＩＤと、が対応付けられたユーザ分類情報が記憶されている。
【００６９】
本実施形態においては、上記歌唱履歴データベース３１３１に記憶された歌唱履歴に基づく各ユーザの嗜好を表すために、ユーザのユーザＩＤを、嗜好を表すユニットのユニットＩＤに対応付けている。これにより、各ユーザの嗜好は、ユーザ分類情報において当該ユーザのユーザＩＤに対応付けられているユニットＩＤによって表すことができる。また、歌唱履歴を数多く積み重ねるほど、当該歌唱履歴はユーザの嗜好を正確に反映したものとなり、ユーザＩＤとユニットＩＤとの対応付けもより正確なものとなる。
【００７０】
一方、一般に、ユーザが、カラオケ装置１００による演奏曲の再生サービスを受ける場合、１人で来場する場合もあるが、他の同伴者が連れ立って複数名で来場する場合もある。例えば同伴者が自分の嗜好を知られたくない者であった場合や同伴者が目上の人物であった場合等においては、ユーザは自らの本来の嗜好とは異なる演奏曲を意図的に選曲して歌唱する可能性がある。このような歌唱を行ったときの歌唱履歴は、ユーザ本来の嗜好とあまり関係なくなるため、上記のようなユニットＩＤとの対応付けは行うべきではない。
【００７１】
このため、本実施形態においては、上記歌唱履歴データベース３１３１に記憶された複数のユーザの歌唱履歴情報のうち、対応する対象外フラグが「０」のままである歌唱履歴情報（本来の嗜好とは異なる演奏曲を意図的に選曲して歌唱したとみなされなかった際の歌唱履歴情報）が使用されて、適宜のタイミングでクラスタリングが実行される。そして、そのクラスタリング結果に対応し、各ユーザのユーザＩＤに対して、複数のユニットのいずれかのユニットのユニットＩＤ、すなわち、当該各ユーザの本来の嗜好を正確に表したユニットのユニットＩＤ（各請求項記載の本人ユニット識別情報に相当。以下適宜、「本人ユニットＩＤ」と称する）がそれぞれ対応付けられ、ユーザ分類情報として、ユーザ別嗜好データベース３１３３に記憶されるようになっている（詳細は後述）。
【００７２】
図５に、上記嗜好別代表ベクトルデータベース３１３４の記憶内容の一例を示す。
【００７３】
図５に示すように、嗜好別代表ベクトルデータベース３１３４には、複数のユニットのユニットＩＤと、当該ユニットの嗜好を代表する代表ベクトルとが対応付けられて記憶されている。
【００７４】
各ユニットの代表ベクトルは、それぞれ、予め定められた複数の歌手ＩＤをベクトルの構成要素としている。すなわち、各ユニットの代表ベクトルの要素（図５に示す表の列）は、歌手ＩＤの種類の数だけ存在する。この例では、各要素の値を「０」又は「１」で表している。
【００７５】
図５に示す例では、例えば、ユニットＩＤ「１」で表されるユニットの代表ベクトルは、（１，１，１，０，１，０，０，１，０，・・・）となっている。
【００７６】
上記構成である本実施形態の特徴は、処理対象とする１人のユーザの所定の時間範囲内（後述）における歌唱履歴情報に基づく嗜好を表すユニットのユニットＩＤと、当該特定ユーザの本来の嗜好に比較的近い嗜好を表すユニットのユニットＩＤ、又は、当該特定ユーザの本来の嗜好を表すユニットのユニットＩＤとが一致しなかった場合に、上記歌唱履歴データベース３１３１に記憶された複数のユーザの歌唱履歴情報のうち、上記所定の時間範囲内における上記処理対象とする１人のユーザの歌唱履歴情報に対応する、上記対象外フラグを、分析用処理における適用対象外であることを表す１とすることにある。以下、その詳細を説明する。
【００７７】
図６を用いて、計算用ＰＣ端末４００の記憶部４１０のプログラム記憶エリア４１２に記憶された歌唱履歴判別プログラムに基づいて制御部４０１が実行する、歌唱履歴判別処理に関する制御手順を説明する。
【００７８】
図６において、例えば予め定められた歌唱履歴判別プログラムを実行するタイミングになることによって、図中「ＳＴＡＲＴ」位置で表されるように、このフローが開始される。
【００７９】
まずステップＳ１０で、制御部４０１は、ＤＢサーバ３００の上記会員データベースのレコードをカウントするための変数ｎの値を１に設定する。
【００８０】
その後、ステップＳ２０で、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記会員データベースにアクセスする。そして、処理対象とする１人のユーザ（各請求項記載の特定ユーザに相当。以下適宜、「特定ユーザ」と称する）のユーザＩＤとして、会員データベースに記憶されたｎ件目のレコードに含まれるユーザＩＤを取得する。
【００８１】
そして、ステップＳ１００に移り、制御部４０１は、上記ステップＳ２０でユーザＩＤが取得された特定ユーザを処理対象とし、所定の総合処理を実行する。なお、このステップＳ１００の詳細内容は、後述の図７で説明する。ステップＳ１００が終了したら、ステップＳ３０に移る。
【００８２】
ステップＳ３０では、制御部４０１は、上記変数ｎの値に１を加え、ステップＳ４０に移る。
【００８３】
ステップＳ４０では、制御部４０１は、上記変数ｎの値が上記会員データベースのレコード数よりも大きくなったかどうか、言い換えれば、会員データベースに記憶されたレコードに含まれるすべてのユーザＩＤが上記ステップＳ２０で取得されたかどうかを判定する。変数ｎの値が会員データベースのレコード数よりも大きくなるまでは、言い換えれば、会員データベースに上記ステップＳ２０でユーザＩＤが取得されていないレコードが存在する間は、ステップＳ４０の判定が満たされず、上記ステップＳ２０に戻り同様の手順を繰り返す。そして、変数ｎの値が会員データベースのレコード数よりも大きくなったら、言い換えれば、会員データベースに記憶されたレコードに含まれるすべてのユーザＩＤが上記ステップＳ２０で取得されたら、ステップＳ４０の判定が満たされて、このフローを終了する。
【００８４】
図７を用いて、上記図６のステップＳ１００の詳細手順を説明する。
【００８５】
図７において、まずステップＳ１１０で、制御部４０１は、後述のステップＳ６００を行うか否かを表すイレギュラーフラグＦｉを０に初期化する。
【００８６】
その後、ステップＳ２００で、制御部４０１は、所定の本来ユニット取得決定処理を実行する。このステップＳ２００の詳細手順を、図８を用いて説明する。
【００８７】
図８において、まずステップＳ２１０で、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記ユーザ別嗜好データベース３１３３（図４参照）にアクセスする。そして、ユーザ別嗜好データベース３１３３に記憶されたユーザ分類情報において、上記図６のステップＳ２０で取得されたユーザＩＤに対応付けられたユニットＩＤを、上記特定ユーザの本来の嗜好を表すユニットのユニットＩＤすなわち上記本人ユニットＩＤとして取得する。これは実質的には、上記ステップＳ２０で取得された特定ユーザのユーザＩＤに基づき、ユーザ別嗜好データベース３１３３に記憶されたユーザ分類情報に応じて、当該特定ユーザに対応する本人ユニットＩＤを取得することに相当する。すなわち、このステップＳ２１０の手順が、各請求項記載のユニット情報取得手段として機能する。
【００８８】
その後、ステップＳ３００に移り、制御部４０１は、所定の本来近傍ユニット決定処理を実行する。このステップＳ３００の詳細手順を、図９を用いて説明する。
【００８９】
図９において、まずステップＳ３１０で、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記嗜好別代表ベクトルデータベース３１３４（図５参照）にアクセスする。そして、上記図８のステップＳ２１０で取得された本人ユニットＩＤに対応付けられた代表ベクトルを取得する。そして、その取得した代表ベクトルの値をＶ１とする。
【００９０】
その後、ステップＳ３２０で、制御部４０１は、上記ステップＳ３１０でアクセスされた嗜好別代表ベクトルデータベース３１３４から、上記ステップＳ３１０で代表ベクトルが取得されたレコード以外のすべてのレコードを取得し、例えば当該制御部４０１のＲＡＭ等のメモリに存在する所定の代表ベクトルバッファに格納する。
【００９１】
そして、ステップＳ３３０に移り、制御部４０１は、上記代表ベクトルバッファのレコードをカウントするための変数ｉの値を１に設定する。
【００９２】
その後、ステップＳ３４０で、制御部４０１は、上記代表ベクトルバッファに記憶されたｉ件目のレコードに含まれる代表ベクトルを取得する。そして、その取得した代表ベクトルの値をＶ２とする。
【００９３】
そして、ステップＳ３５０に移り、制御部４０１は、公知の適宜の手法により、上記Ｖ１と上記Ｖ２との相関（類似性の度合い）を表す指標である相関係数を算出する。
【００９４】
その後、ステップＳ３６０で、制御部４０１は、上記代表ベクトルバッファに記憶されたｉ件目のレコードに含まれるユニットＩＤと、上記ステップＳ３５０で算出された相関係数の値とを対応付けて、例えば当該制御部４０１のＲＡＭ等のメモリに存在する所定の相関値バッファに格納する。
【００９５】
そして、ステップＳ３７０に移り、制御部４０１は、上記変数ｉの値に１を加え、ステップＳ３８０に移る。
【００９６】
ステップＳ３８０では、制御部４０１は、上記変数ｉの値が上記代表ベクトルバッファのレコード数よりも大きくなったかどうか、言い換えれば、代表ベクトルバッファに記憶されたレコードに含まれるすべてのユニットＩＤに対して、相関係数が対応付けられたかを判定する。変数ｉの値が代表ベクトルバッファのレコード数よりも大きくなるまでは、言い換えれば、代表ベクトルバッファに記憶されたレコードに含まれるすべてのユニットＩＤに対して、相関係数が対応付けられるまでは、ステップＳ３８０の判定が満たされず、上記ステップＳ３４０に戻り同様の手順を繰り返す。そして、変数ｉの値が代表ベクトルバッファのレコード数よりも大きくなったら、言い換えれば、代表ベクトルバッファに記憶されたレコードに含まれるすべてのユニットＩＤに対して、相関係数が対応付けられたら、ステップＳ３８０の判定が満たされて、ステップＳ３９０に移る。
【００９７】
ステップＳ３９０では、制御部４０１は、上記相関値バッファに記憶されたレコードに含まれる複数のユニットＩＤのうち、対応する相関係数の値が大きい上位所定数のユニットＩＤ、言い換えれば、上記ステップＳ２１０で取得された本人ユニットＩＤで表されるユニットに対する類似相関が強い上位所定数のユニットのユニットＩＤを取得する。そして、その取得した所定数のユニットＩＤを、それぞれ、上記特定ユーザの本来の嗜好に比較的近い嗜好を表すユニットのユニットＩＤ（各請求項記載の第２ユニット識別情報に相当。以下適宜、「第２ユニットＩＤ」と称する）として、例えば当該制御部４０１のＲＡＭ等のメモリに存在する所定の本来近傍嗜好バッファに格納する。これは実質的には、上記ステップＳ２１０で取得された本人ユニットＩＤで表されるユニットに対し、所定の類似相関を備えたユニットに係わる第２ユニットＩＤを決定することに相当する。すなわち、このステップＳ３９０の手順が、各請求項記載の第２ユニット決定手段として機能する。その後、このルーチンを終了する。
【００９８】
図８に戻り、上記のようにしてステップＳ３００が終了したら、ステップＳ２００に関するルーチンを終了する。
【００９９】
図７に戻り、上記のようにしてステップＳ２００が終了したら、ステップＳ４００に移る。ステップＳ４００では、制御部４０１は、所定の来場時ユニット決定処理を実行する。このステップＳ４００の詳細手順を、図１０を用いて説明する。
【０１００】
図１０において、まずステップＳ４０５で、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記利用履歴データベース３１３２（図３参照）にアクセスする。そして、利用履歴データベース３１３２に記憶された複数のユーザの利用履歴情報のうち、上記図６のステップＳ２０でユーザＩＤが取得された特定ユーザの利用履歴情報に含まれる利用開始日時を取得する。
【０１０１】
その後、ステップＳ４１０で、制御部４０１は、上記ステップＳ４０５でアクセスされた利用履歴データベース３１３２に記憶された複数のユーザの利用履歴情報のうち、上記図６のステップＳ２０でユーザＩＤが取得された特定ユーザの利用履歴情報に含まれる利用終了日時を取得する。
【０１０２】
そして、ステップＳ４１５に移り、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記歌唱履歴データベース３１３１（図２参照）にアクセスする。なお、このステップＳ４１５でアクセスされる歌唱履歴データベース３１３１は、上記ステップＳ４０５でアクセスされた利用履歴データベース３１３２と同じカラオケ装置１００に関する歌唱履歴データベース３１３１である。そして、歌唱履歴データベース３１３１に記憶された複数のユーザの複数の歌唱履歴情報のうち、当該歌唱履歴情報に含まれる歌唱日時が、上記ステップＳ４０５で取得された利用開始日時から、上記ステップＳ４１０で取得された利用終了日時までの時間範囲内に含まれる、上記図６のステップＳ２０でユーザＩＤが取得された特定ユーザの歌唱履歴情報を取得する。なお、上記ステップＳ４０５で取得された利用開始日時から、上記ステップＳ４１０で取得された利用終了日時までの時間範囲は、各請求項記載の所定の時間範囲に相当する。したがって、このステップＳ４１５では、所定の時間範囲（この例では上記特定ユーザに係わる利用開始日時から利用終了日時までの時間範囲）内における当該特定ユーザの歌唱履歴情報が取得される。すなわち、このステップＳ４１５の手順が、各請求項記載の本人履歴取得手段として機能する。
【０１０３】
その後、ステップＳ４２０で、制御部４０１は、上記ステップＳ４１５で取得された特定ユーザの歌唱履歴情報を用いて、当該特定ユーザに係わる歌唱ベクトルを生成する。具体的には、ベクトルの構成要素を、上記嗜好別代表ベクトルデータベース３１３４（図５参照）に記憶された代表ベクトルと同様の複数の歌手ＩＤとし、各要素の値を、当該要素に対応する歌手ＩＤが上記取得された特定ユーザの歌唱履歴情報中に、１回でも出現すれば「１」、１回も出現しなければ「０」として、当該特定ユーザに係わる歌唱ベクトルを生成する。そして、その生成した歌唱ベクトルを、上記図６のステップＳ２０で取得されたユーザＩＤと対応付けて、例えば当該制御部４０１のＲＡＭ等のメモリに存在する所定の歌唱ベクトルバッファに格納する。
【０１０４】
なお、特定ユーザに係わる歌唱ベクトルを、上記以外の方法で求めるようにしてもよい。例えば、各要素の値を、当該要素に対応する歌手ＩＤが上記取得された特定ユーザの歌唱履歴情報中に出現する回数として、当該特定ユーザに係わる歌唱ベクトルを生成するようにしてもよい。あるいは、各要素に対応する歌手ＩＤが上記取得された特定ユーザの歌唱履歴情報中に出現する回数によって生成したベクトルの長さを１に正規化したベクトルを、当該特定ユーザに係わる特徴ベクトルとして生成するようにしてもよい。また、特定ユーザと共にカラオケ装置１００の再生サービスを受けた同伴者（以下適宜、「同伴ユーザ」と称する）に係わる歌唱ベクトルに関しても生成するようにしてもよい（後述の（１）及び（２）の変形例参照）。
【０１０５】
そして、ステップＳ４２５に移り、制御部４０１は、上記歌唱ベクトルバッファに記憶されたレコードに含まれる歌唱ベクトルを取得する。そして、その取得した歌唱ベクトルの値をＶ３とする。
【０１０６】
その後、ステップＳ４３０で、制御部４０１は、上記嗜好別代表ベクトルデータベース３１３４のレコードをカウントするための変数ｊの値を１に設定する。
【０１０７】
そして、ステップＳ４３５に移り、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記嗜好別代表ベクトルデータベース３１３４（図５参照）にアクセスする。そして、嗜好別代表ベクトルデータベース３１３４に記憶されたｊ件目のレコードに含まれる代表ベクトルを取得する。そして、その取得した代表ベクトルの値をＶ４とする。
【０１０８】
その後、ステップＳ４４０で、制御部４０１は、公知の適宜の手法により、上記Ｖ３と上記Ｖ４とのユークリッド距離を算出する。
【０１０９】
そして、ステップＳ４４５に移り、制御部４０１は、上記嗜好別代表ベクトルデータベース３１３４に記憶されたｊ件目のレコードに含まれるユニットＩＤと、上記ステップＳ４４０で算出されたユークリッド距離の値とを対応付けて、例えば当該制御部４０１のＲＡＭ等のメモリに存在する所定の距離値バッファに格納する。
【０１１０】
その後、ステップＳ４５０で、制御部４０１は、上記変数ｊの値に１を加え、ステップＳ４５５に移る。
【０１１１】
ステップＳ４５５では、制御部４０１は、上記変数ｊの値が上記嗜好別代表ベクトルデータベース３１３４のレコード数よりも大きくなったかどうか、言い換えれば、嗜好別代表ベクトルデータベース３１３４に記憶されたレコードに含まれるすべてのユニットＩＤに対して、ユークリッド距離が対応付けられたかを判定する。変数ｊの値が嗜好別代表ベクトルデータベース３１３４のレコード数よりも大きくなるまでは、言い換えれば、嗜好別代表ベクトルデータベース３１３４に記憶されたレコードに含まれるすべてのユニットＩＤに対して、ユークリッド距離が対応付けられるまでは、ステップＳ４５５の判定が満たされず、上記ステップＳ４３５に戻り同様の手順を繰り返す。そして、変数ｊの値が嗜好別代表ベクトルデータベース３１３４のレコード数よりも大きくなったら、言い換えれば、嗜好別代表ベクトルデータベース３１３４に記憶されたレコードに含まれるすべてのユニットＩＤに対して、ユークリッド距離が対応付けられたら、ステップＳ４５５の判定が満たされて、ステップＳ４６０に移る。
【０１１２】
ステップＳ４６０では、制御部４０１は、上記距離値バッファに記憶されたレコードに含まれる複数のユニットＩＤのうち、対応するユークリッド距離が最も小さいユニットＩＤを取得する。そして、その取得したユニットＩＤを、上記特定ユーザの上記所定の時間範囲内における嗜好すなわち来場時の嗜好を表すユニットのユニットＩＤ（各請求項記載の第１ユニット識別情報に相当。以下適宜、「第１ユニットＩＤ」と称する）として、当該特定ユーザのユーザＩＤと対応付けて、例えば当該制御部４０１のＲＡＭ等のメモリに存在する所定の来場時嗜好バッファに格納する。これは実質的には、複数のユニットＩＤの中から、上記図６のステップＳ２０でユーザＩＤが取得された特定ユーザに対応付ける第１ユニットＩＤを決定することに相当する。すなわち、このステップＳ４６０の手順が、各請求項記載の第１ユニット決定手段として機能する。その後、このルーチンを終了する。
【０１１３】
図７に戻り、上記のようにしてステップＳ４００が終了したら、ステップＳ５００に移る。ステップＳ５００では、制御部４０１は、所定の第１ユニット判定処理を実行する。このステップＳ５００の詳細手順を、図１１を用いて説明する。
【０１１４】
図１１において、まずステップＳ５１０で、制御部４０１は、上記図６のステップＳ２０でユーザＩＤが取得された特定ユーザに関して上記図１０のステップＳ４６０で上記来場時嗜好バッファに格納された第１ユニットＩＤと、当該特定ユーザに関して上記図９のステップＳ３９０で上記本来近傍嗜好バッファに格納された第２ユニットＩＤ、又は、当該特定ユーザに関して上記図８のステップＳ２１０で取得された本人ユニットＩＤとが、一致するかどうかを判定する。これは言い換えれば、上記特定ユーザが本来の嗜好とは異なる嗜好の演奏曲を意図的に選曲し歌唱を行ったかどうかを判定することに相当する。このステップＳ５１０の手順が、各請求項記載の第１判定手段として機能する。上記特定ユーザに関する第１ユニットＩＤと第２ユニットＩＤ又は本人ユニットＩＤとが一致しない場合には、上記特定ユーザが本来の嗜好とは異なる嗜好の演奏曲を意図的に選曲し歌唱を行ったとみなされ、ステップＳ５１０の判定が満たされず、ステップＳ５２０に移る。
【０１１５】
ステップＳ５２０では、制御部４０１は、上記イレギュラーフラグＦｉを、後述の図７のステップＳ６００を行うことを表す１として、このルーチンを終了する。
【０１１６】
一方、ステップＳ５１０において、上記特定ユーザに関する第１ユニットＩＤと第２ユニットＩＤ又は本人ユニットＩＤとが一致していた場合には、上記特定ユーザが本来の嗜好と同様又はほぼ同様の演奏曲を意図的に選曲し歌唱を行ったとみなされ、ステップＳ５１０の判定が満たされて、このルーチンを終了する。
【０１１７】
図７に戻り、上記のようにしてステップＳ５００が終了したら、ステップＳ１２０に移る。ステップＳ１２０では、制御部４０１は、上記イレギュラーフラグＦｉが１となっているかどうかを判定する。Ｆｉ＝１となっている場合には、ステップＳ１２０の判定が満たされて、ステップＳ６００に移る。
【０１１８】
ステップＳ６００では、制御部４０１は、所定のフラグ追加処理を実行する。このステップＳ６００の詳細手順を、図１２を用いて説明する。
【０１１９】
図１２において、まずステップＳ６０５で、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記利用履歴データベース３１３２（図３参照）にアクセスする。そして、利用履歴データベース３１３２に記憶された複数のユーザの利用履歴情報のうち、上記図６のステップＳ２０でユーザＩＤが取得された特定ユーザの利用履歴情報に含まれる利用開始日時を取得する。
【０１２０】
その後、ステップＳ６１０で、制御部４０１は、上記ステップＳ６０５でアクセスされた利用履歴データベース３１３２に記憶された複数のユーザの利用履歴情報のうち、上記図６のステップＳ２０でユーザＩＤが取得された特定ユーザの利用履歴情報に含まれる利用終了日時を取得する。
【０１２１】
そして、ステップＳ６１５に移り、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記歌唱履歴データベース３１３１（図２参照）にアクセスする。なお、このステップＳ６１５でアクセスされる歌唱履歴データベース３１３１は、上記ステップＳ６０５でアクセスされた利用履歴データベース３１３２と同じカラオケ装置１００に関する歌唱履歴データベース３１３１である。そして、歌唱履歴データベース３１３１に記憶された複数のユーザの複数の歌唱履歴情報のうち、当該歌唱履歴情報に含まれる歌唱日時が、上記ステップＳ６０５で取得された利用開始日時から、上記ステップＳ６１０で取得された利用終了日時までの時間範囲内に含まれる、上記図６のステップＳ２０でユーザＩＤが取得された特定ユーザの歌唱履歴情報に対応する、前述の対象外フラグを、分析用処理における適用対象外であることを表す１とする。なお、歌唱履歴情報に対応する対象外フラグを１とすることは、分析用処理における適用対象外とするための識別子を付与することに相当する。すなわち、このステップＳ６１５の手順が、各請求項記載の第１識別子付与手段として機能する。その後、このルーチンを終了する。
【０１２２】
図７に戻り、上記のようにしてステップＳ６００が終了したら、ステップＳ１００に関するルーチンを終了する。
【０１２３】
一方、ステップＳ１２０において、Ｆｉ＝０のままである場合には、ステップＳ１２０の判定が満たされず、このルーチンを終了する。
【０１２４】
図１３を用いて、計算用ＰＣ端末４００の記憶部４１０のプログラム記憶エリア４１２に記憶された嗜好分類プログラムに基づいて制御部４０１が実行する、クラスタリングに関する制御手順を説明する。なお、クラスタリングとは、例えば公知のＫ−ｍｅａｎｓ法やＳｅｌｆ  Ｏｒｇａｎｉｚｉｎｇ  Ｍａｐｓ（ＳＯＭ）法などのクラスタリング手法を用いて、複数のデータを外的基準なしに自動的に分類する手法、又は、そのアルゴリズムである。
【０１２５】
図１３において、例えば予め定められた嗜好分類プログラムを実行するタイミングになることによって、図中「ＳＴＡＲＴ」位置で表されるように、このフローが開始される。
【０１２６】
まずステップＳ１０１０で、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記歌唱履歴データベース３１３１（図２参照）にアクセスする。そして、歌唱履歴データベース３１３１に記憶された複数のユーザの複数の歌唱履歴情報のうち、対応する上記対象外フラグが１となっていない（＝識別子が付与されていない）歌唱履歴情報を取得する。
【０１２７】
その後、ステップＳ１０２０で、制御部４０１は、上記ステップＳ１０１０で取得された歌唱履歴情報を用いて、各ユーザごとに、前述の歌唱ベクトルを生成する。そして、各ユーザごとに生成した歌唱ベクトルを、当該ユーザのユーザＩＤと対応付ける。
【０１２８】
そして、ステップＳ１０３０に移り、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記嗜好別代表ベクトルデータベース３１３４（図５参照）にアクセスする。そして、嗜好別代表ベクトルデータベース３１３４に各ユニットＩＤごとに記憶された前述の代表ベクトルを用いて、上記ステップＳ１０２０で各ユーザのユーザＩＤに対応付けられた各歌唱ベクトルを、例えば公知のＫ−ｍｅａｎｓ法やＳＯＭ法などのクラスタリング手法によりクラスタリングする。そして、このクラスタリングの結果に対応して、各ユーザ言い換えれば各特定ユーザのユーザＩＤを、複数のユニットＩＤのいずれかに対応付け、前述のユーザ分類情報を生成する。
【０１２９】
その後、ステップＳ１０４０で、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００のユーザ別嗜好データベース３１３３（図４参照）にアクセスする。そして、ユーザ別嗜好データベース３１３３に対し、上記ステップＳ１０３０で生成されたユーザ分類情報を記憶させる。なお、ユーザ別嗜好データベース３１３３に既にユーザ分類情報が記憶されている場合には、新たに生成されたユーザ分類情報に更新する。その後、このフローを終了する。
【０１３０】
なお、上記において、ステップＳ１０２０及びステップＳ１０３０の手順が、各請求項記載のクラスタリング手段として機能する。
【０１３１】
また、上記ネットワークＮＷ２，ＮＷ１を介しＤＢサーバ３００からカラオケ装置１００やリモコン２００に対し、上記クラスタリングの結果に対応したユーザ分類情報を出力することで、カラオケ装置１００やリモコン２００において、各ユーザに対して、当該ユーザが分類されるユニットに応じた広告、言い換えれば、当該ユーザの嗜好に応じた広告を提供することが可能となる。あるいは、ＤＢサーバ３００から図示しないＷＥＢサーバに対し、上記クラスタリングの結果に対応したユーザ分類情報を出力することで、各ユーザが所有するＰＣ端末や携帯電話等の各情報端末において、当該ユーザの嗜好に応じた広告を提供することが可能となる。
【０１３２】
以上説明したように、本実施形態においては、上記歌唱履歴データベース３１３１（図２を参照）に記憶された、所定の時間範囲（上記の例では歌唱日時が利用開始日時から利用終了日時までの時間範囲）内における特定のユーザの歌唱履歴情報を取得した後、その歌唱履歴情報に基づき当該特定ユーザに対応付けられる第１ユニットＩＤを決定する（図１０のステップＳ４６０を参照）。その一方で、上記ユーザ別嗜好データベース３１３３に記憶された上記ユーザ分類情報に基づき、当該特定ユーザのユーザＩＤに対応付けられた本人ユニットＩＤを取得しておく（図８のステップＳ２１０を参照）。さらに、本実施形態では、本人ユニットＩＤで表されるユニットに類似したユニットの第２ユニットＩＤが決定される（図９のステップＳ３９０を参照）。
【０１３３】
そして、前述のようにして同伴ユーザが存在する条件における特定ユーザの歌唱履歴に対応した第１ユニットＩＤが、前述のようにして取得され当該特定ユーザの本来の嗜好に対応している本人ユニットＩＤ、若しくは、これに近い上記第２ユニットＩＤと一致するかどうかを判定する（図１１のステップＳ５１０を参照）。これにより、第１ユニットＩＤが、本人ユニットＩＤ若しくは第２ユニットＩＤと一致しないと判定された場合には、上記特定ユーザが、本来の嗜好とは異なる嗜好の演奏曲を意図的に選曲し歌唱を行った、とみなすことができる。この場合、上記歌唱履歴データベース３１３１に記憶された、当該第１ユニットＩＤに対応した特定ユーザの歌唱履歴情報に所定の識別子を付与する（上記の例では当該歌唱履歴情報に対応する上記対象外フラグを１とする。図１２のステップＳ６１５を参照）。これにより、上記歌唱履歴データベース３１３１に記憶された特定ユーザの歌唱履歴情報のうち、上記本来の嗜好とは異なる選曲を行ったときのデータを、それ以降の当該特定ユーザの属性分析等に利用しないようにすることができる。この結果、特定ユーザの属性分析における精度低下を防止することができる。
【０１３４】
また、本実施形態では特に、ＤＢサーバ３００の上記歌唱履歴データベース３１３１（図２参照）に記憶された上記特定のユーザの複数の歌唱履歴情報のうち、対応する上記対象外フラグが１となっていない歌唱履歴情報をクラスタリングし、当該特定のユーザのユーザＩＤを複数のユニットＩＤのいずれかに対応付ける（図１３のステップＳ１０２０及びステップＳ１０３０を参照）。上述したような手法によって属性分析等に用いるべきでない歌唱履歴情報を使用せずにクラスタリングを行うことで、特定ユーザの嗜好を確実に反映させた、高精度なクラスタリングを行うことができる。
【０１３５】
なお、本発明は、上記実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。以下、そのような変形例を説明する。
【０１３６】
（１）同伴ユーザの来場時のユニット又はその近傍のユニットと特定ユーザの来場時のユニットとが一致した場合に、適用対象外とする場合
上記実施形態においては、特定ユーザの来場時の嗜好に対応するユニットが、当該特定ユーザ本来の嗜好に対応するユニット、若しくは、当該特定ユーザ本来の嗜好に近い嗜好のユニットに近いユニットと一致しないと判定された場合に、当該特定ユーザの歌唱履歴情報に対応する対象外フラグを１としていたが、これに限られない。すなわち、上記のような場合に、さらに、特定ユーザの来場時の嗜好に対応するユニットが、同伴ユーザの来場時の嗜好に対応するユニット、若しくは、同伴ユーザの来場時の嗜好に対応する嗜好の近傍の嗜好に対応するユニットと一致するかどうかを判定し、一致すると判定された場合に、当該特定ユーザの歌唱履歴情報に対応する対象外フラグを１とするようにしてもよい。
【０１３７】
本変形例において、計算用ＰＣ端末４００の記憶部４１０のプログラム記憶エリア４１２に記憶された歌唱履歴判別プログラムに基づいて制御部４０１が実行する、歌唱履歴判別処理に関する制御手順は、前述の図６と同様である。以下、本変形例におけるステップＳ１００の詳細手順を、図１４を用いて説明する。なお、この図１４は、前述の図７に対応する図である。図７と同等の手順には同符号を付し説明を適宜省略する。
【０１３８】
図１４において、まずステップＳ１１０に代えて設けたステップＳ１１０′で、制御部４０１は、上記イレギュラーフラグＦｉを０に初期化すると共に、所定の判定終了フラグＦｆを０に初期化する。
【０１３９】
その後のステップＳ２００は、前述の図７と同様（ステップＳ２００の詳細手順は前述の図８参照）である。すなわち、前述の図８に示すステップＳ２１０の手順が、本変形例におけるユニット情報取得手段として機能する。また、ステップＳ２００の詳細手順におけるステップＳ３００は、前述の図８と同様（ステップＳ３００の詳細手順は前述の図９参照）である。すなわち、前述の図９に示すステップＳ３９０の手順が、本変形例における第２ユニット決定手段として機能する。ステップＳ２００が終了したら、ステップＳ４００に代えてステップＳ４００′に移る。
【０１４０】
ステップＳ４００′では、制御部４０１は、所定の来場時ユニット決定処理を実行する。このステップＳ４００′の詳細手順を、図１５を用いて説明する。なお、図１５は、前述の図１０に対応する図である。図１０と同等の手順には同符号を付し説明を適宜省略する。
【０１４１】
図１５において、ステップＳ４０５及びステップＳ４１０は、前述の図１０と同様である。ステップＳ４１０が終了したら、新たに設けたステップＳ４１２に移る。
【０１４２】
ステップＳ４１２では、制御部４０１は、前述のステップＳ４０５でアクセスされた利用履歴データベース３１３２に記憶された複数のユーザの利用履歴情報のうち、前述の図６のステップＳ２０でユーザＩＤが取得された特定ユーザに同伴した少なくとも１人の同伴ユーザの利用履歴情報に含まれるユーザＩＤを取得する。
【０１４３】
その後、ステップＳ４１５に代えて設けたステップＳ４１５′で、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記歌唱履歴データベース３１３１（図２参照）にアクセスする。なお、このステップＳ４１５′でアクセスされる歌唱履歴データベース３１３１は、前述のステップＳ４０５でアクセスされた利用履歴データベース３１３２と同じカラオケ装置１００に関する歌唱履歴データベース３１３１である。そして、歌唱履歴データベース３１３１に記憶された複数のユーザの複数の歌唱履歴情報のうち、当該歌唱履歴情報に含まれる歌唱日時が、前述のステップＳ４０５で取得された利用開始日時から、前述のステップＳ４１０で取得された利用終了日時までの時間範囲内に含まれる、前述の図６のステップＳ２０でユーザＩＤが取得された特定ユーザ、及び、上記ステップＳ４１２でユーザＩＤが取得された少なくとも１人の上記同伴ユーザの歌唱履歴情報を取得する。なお、このステップＳ４１５では、所定の時間範囲（この例では上記特定ユーザに係わる利用開始日時から利用終了日時までの時間範囲）内における当該特定ユーザ及び当該同伴ユーザの歌唱履歴情報が取得される。すなわち、このステップＳ４１５′の手順が、各請求項記載の本人履歴取得手段として機能すると共に、同伴ユーザ履歴取得手段として機能する。
【０１４４】
そして、ステップＳ４２０に代えて設けたステップＳ４２０′に移り、制御部４０１は、上記ステップＳ４１５′で取得された特定ユーザ及び少なくとも１人の同伴ユーザの歌唱履歴情報を用いて、当該特定ユーザ及び当該少なくとも１人の同伴ユーザに係わる歌唱ベクトルをそれぞれ生成する。なお、歌唱ベクトルの生成手法は、前述のステップＳ４２０において説明した手法と同様である。そして、生成した上記特定ユーザに係わる歌唱ベクトルを、前述の図６のステップＳ２０で取得されたユーザＩＤと対応付けると共に、生成した上記少なくとも１人の同伴ユーザに係わる歌唱ベクトルを、上記ステップＳ４１２で取得された少なくとも１人のユーザＩＤとそれぞれ対応付けて、前述の歌唱ベクトルバッファに格納する。
【０１４５】
その後、新たに設けたステップＳ４２２で、制御部４０１は、上記歌唱ベクトルバッファのレコードをカウントするための変数ｋの値を１に設定する。
【０１４６】
そして、ステップＳ４２５に代えて設けたステップＳ４２５′に移り、制御部４０１は、上記歌唱ベクトルバッファに記憶されたｋ番目のレコードに含まれる歌唱ベクトルを取得する。なお、ｋ番目のレコードが上記特定ユーザに係わるレコードであった場合には、当該特定ユーザに係わる歌唱ベクトルが取得され、ｋ番目のレコードが上記同伴ユーザに係わるレコードであった場合には、当該同伴ユーザに係わる歌唱ベクトルが取得される。そして、その取得した歌唱ベクトルの値をＶ３とする。
【０１４７】
その後のステップＳ４３０〜ステップＳ４５５は、前述の図１０と同様である。ステップＳ４５５において、変数ｊの値が嗜好別代表ベクトルデータベース３１３４のレコード数よりも大きくなったら、ステップＳ４５５の判定が満たされて、ステップＳ４６０に代えて設けたステップＳ４６０′に移る。
【０１４８】
ステップＳ４６０′では、制御部４０１は、前述の距離値バッファに記憶されたレコードに含まれる複数のユニットＩＤのうち、対応するユークリッド距離が最も小さいユニットＩＤを取得する。そして、その取得したユニットＩＤを、上記特定ユーザ又は上記同伴ユーザの上記所定の時間範囲内における嗜好すなわち来場時の嗜好を表すユニットのユニットＩＤとして、当該特定ユーザ又は当該同伴ユーザのユーザＩＤと対応付けて、前述の来場時嗜好バッファに格納する。具体的には、上記ステップＳ４２５で特定ユーザに係わる歌唱ベクトルが取得されていた場合には、このステップＳ４６０′では、制御部４０１は、前述のステップＳ４６０と同様、上記取得したユニットＩＤを、上記特定ユーザの来場時の嗜好を表すユニットのユニットＩＤすなわち第１ユニットＩＤとして、来場時嗜好バッファに格納する。一方、上記ステップＳ４２５で同伴ユーザに係わる歌唱ベクトルが取得されていた場合には、このステップＳ４６０′では、制御部４０１は、上記取得したユニットＩＤを、上記同伴ユーザの上記特定ユーザに同伴したときの嗜好を表すユニットのユニットＩＤ（各請求項記載の第３ユニット識別情報に相当。以下適宜、「第３ユニットＩＤ」と称する）として、来場時嗜好バッファに格納する。これは実質的には、複数のユニットＩＤの中から、上記ステップＳ４１２でユーザＩＤが取得された同伴ユーザに対応付ける第３ユニットＩＤを決定することに相当する。すなわち、このステップＳ４６０′の手順が、各請求項記載の第１ユニット決定手段として機能すると共に、第３ユニット決定手段としても機能する。
【０１４９】
そして、新たに設けたステップＳ４６５に移り、制御部４０１は、上記変数ｋの値に１を加え、ステップＳ４７０に移る。
【０１５０】
ステップＳ４７０では、制御部４０１は、上記変数ｋの値が上記歌唱ベクトルバッファのレコード数よりも大きくなったかどうか、言い換えれば、歌唱ベクトルバッファに記憶されたレコードに含まれるすべてのユーザＩＤに対して、第１ユニットＩＤ又は第３ユニットＩＤが対応付けられたかを判定する。変数ｋの値が歌唱ベクトルバッファのレコード数よりも大きくなるまでは、言い換えれば、歌唱ベクトルバッファに記憶されたレコードに含まれるすべてのユーザＩＤに対して、第１ユニットＩＤ又は第３ユニットＩＤが対応付けられるまでは、ステップＳ４７０の判定が満たされず、上記ステップＳ４２５′に戻り同様の手順を繰り返す。そして、変数ｋの値が歌唱ベクトルバッファのレコード数よりも大きくなったら、言い換えれば、歌唱ベクトルバッファに記憶されたレコードに含まれるすべてのユーザＩＤに対して、第１ユニットＩＤ又は第３ユニットＩＤが対応付けられたら、ステップＳ４７０の判定が満たされて、このルーチンを終了する。
【０１５１】
図１４に戻り、上記のようにしてステップＳ４００′が終了したら、新たに設けたステップＳ７００に移る。ステップＳ７００では、制御部４０１は、所定の同伴者決定処理を実行する。このステップＳ７００の詳細手順を、図１６を用いて説明する。
【０１５２】
図１６において、まずステップＳ７１０で、制御部４０１は、上記来場時嗜好バッファから、前述の図６のステップＳ２０でユーザＩＤが取得された特定ユーザ以外のユーザすなわち上記同伴ユーザに係わるレコードを取得し、例えば当該制御部４０１のＲＡＭ等のメモリに存在する所定の同伴者来場時嗜好バッファに格納する。
【０１５３】
その後、ステップＳ７２０で、制御部４０１は、上記同伴者来場時嗜好バッファのレコードをカウントするための変数ｍの値を１に設定する。
【０１５４】
そして、ステップＳ７３０に移り、制御部４０１は、上記同伴者来場時嗜好バッファに記憶されたｍ件目のレコードに含まれるユニットＩＤすなわち第３ユニットＩＤを取得する。
【０１５５】
その後、ステップＳ８００で、制御部４０１は、所定の来場時近傍ユニット決定処理を実行する。このステップＳ８００の詳細手順を、図１７を用いて説明する。なお、図１７は、前述の図９に対応する図である。図９と同等の手順には同符号を付し説明を適宜省略する。
【０１５６】
図１７において、まずステップＳ３１０に代えて設けたステップＳ３１０′で、制御部４０１は、上記ネットワークＮＷ２を介しＤＢサーバ３００の上記嗜好別代表ベクトルデータベース３１３４（図５参照）にアクセスする。そして、上記図１６のステップＳ７３０で取得された第３ユニットＩＤに対応付けられた代表ベクトルを取得する。そして、その取得した代表ベクトルの値をＶ１とする。
【０１５７】
そして、ステップＳ３２０に代えて設けたステップＳ３２０′に移り、制御部４０１は、上記ステップＳ３１０′でアクセスされた嗜好別代表ベクトルデータベース３１３４から、上記ステップＳ３１０′で代表ベクトルが取得されたレコード以外のすべてのレコードを取得し、前述の代表ベクトルバッファに格納する。
【０１５８】
その後のステップＳ３３０〜ステップＳ３８０は、前述の９と同様である。ステップＳ８０において、変数ｉの値が代表ベクトルバッファのレコード数よりも大きくなったら、ステップＳ３８０の判定が満たされて、ステップＳ３９０に代えて設けたステップＳ３９０′に移る。
【０１５９】
ステップＳ３９０′では、制御部４０１は、前述の相関値バッファに記憶されたレコードに含まれる複数のユニットＩＤのうち、対応する相関係数の値が大きい上位所定数のユニットＩＤ、言い換えれば、上記ステップＳ７３０で取得された第３ユニットＩＤで表されるユニットに対する類似相関が強い上位所定数のユニットのユニットＩＤを取得する。そして、その取得した所定数のユニットＩＤを、それぞれ、上記同伴ユーザの上記特定ユーザに同伴したときの嗜好に比較的近い嗜好を表すユニットのユニットＩＤ（各請求項記載の第４ユニット識別情報に相当。以下適宜、「第４ユニットＩＤ」と称する）として、例えば当該制御部４０１のＲＡＭ等のメモリに存在する所定の来場時近傍嗜好バッファに格納する。これは実質的には、上記ステップＳ７３０で取得された第３ユニットＩＤで表されるユニットに対し、所定の類似相関を備えたユニットに係わる第４ユニットＩＤを決定することに相当する。すなわち、このステップＳ３９０′の手順が、各請求項記載の第４ユニット決定手段として機能する。その後、このルーチンを終了する。
【０１６０】
図１６に戻り、上記のようにしてステップＳ８００が終了したら、ステップＳ７４０に移る。ステップＳ７４０では、制御部４０１は、上記来場時近傍嗜好バッファに格納された所定数の第４ユニットＩＤを、上記同伴者来場時嗜好バッファに記憶されたｍ件目のレコードに含まれるユーザＩＤと対応付けて、例えば当該制御部４０１のＲＡＭ等のメモリに存在する所定の同伴者来場時近傍嗜好バッファに格納する。
【０１６１】
その後、ステップＳ７５０で、制御部４０１は、上記変数ｍの値に１を加え、ステップＳ７６０に移る。
【０１６２】
ステップＳ７６０では、制御部４０１は、上記変数ｍの値が上記同伴者来場時嗜好バッファのレコード数よりも大きくなったかどうか、言い換えれば、同伴者来場時嗜好バッファに記憶されたレコードに含まれるすべてのユーザＩＤに対して、第４ユニットＩＤが対応付けられたかを判定する。変数ｍの値が同伴者来場時嗜好バッファのレコード数よりも大きくなるまでは、言い換えれば、同伴者来場時嗜好バッファに記憶されたレコードに含まれるすべてのユーザＩＤに対して、第４ユニットＩＤが対応付けられるまでは、ステップＳ７６０の判定が満たされず、上記ステップＳ７３０に戻り同様の手順を繰り返す。そして、変数ｍの値が同伴者来場時嗜好バッファのレコード数よりも大きくなったら、言い換えれば、同伴者来場時嗜好バッファに記憶されたレコードに含まれるすべてのユーザＩＤに対して、第４ユニットＩＤが対応付けられたら、ステップＳ７６０の判定が満たされて、このルーチンを終了する。
【０１６３】
図１４に戻り、上記のようにしてステップＳ７００が終了したら、ステップＳ５００に代えて設けたステップＳ５００′に移る。ステップＳ５００′では、制御部４０１は、所定の第１ユニット判定処理を実行する。このステップＳ５００′の詳細手順を、図１８を用いて説明する。なお、図１８は、前述の図１１に対応する図である。図１１と同等の手順には同符号を付し説明を適宜省略する。
【０１６４】
図１８において、ステップＳ５１０は、前述の図１１とほぼ同様であり、制御部４０１は、前述の図６のステップＳ２０でユーザＩＤが取得された特定ユーザに関して上記図１５のステップＳ４６０′で上記来場時嗜好バッファに格納された第１ユニットＩＤと、当該特定ユーザに関して前述の図９のステップＳ３９０で前述の本来近傍嗜好バッファに格納された第２ユニットＩＤ、又は、当該特定ユーザに関して前述の図８のステップＳ２１０で取得された本人ユニットＩＤとが、一致するかどうかを判定する。上記特定ユーザに関する第１ユニットＩＤと第２ユニットＩＤ又は本人ユニットＩＤとが一致する場合には、上記特定ユーザが本来の嗜好と同様又はほぼ同様の演奏曲を意図的に選曲し歌唱を行ったとみなされ、ステップＳ５１０の判定が満たされて、新たに設けたステップＳ５１５に移る。
【０１６５】
ステップＳ５１５では、制御部４０１は、上記判定終了フラグＦｆを１として、このルーチンを終了する。
【０１６６】
一方、ステップＳ５１０において、上記特定ユーザに関する第１ユニットＩＤと第２ユニットＩＤ又は本人ユニットＩＤとが一致しなかった場合には、ステップＳ５１０の判定が満たされず、このルーチンを終了する。
【０１６７】
図１４に戻り、上記のようにしてステップＳ５００′が終了したら、新たに設けたステップＳ１１５に移る。ステップＳ１１５では、制御部４０１は、上記判定終了フラグＦｆが０のままであるかどうかを判定する。Ｆｆ＝１となっている場合には、ステップＳ１１５の判定が満たされず、新たに設けたステップＳ９００に移る。
【０１６８】
ステップＳ９００では、制御部４０１は、所定の第２ユニット判定処理を実行する。このステップＳ９００の詳細手順を、図１９を用いて説明する。
【０１６９】
図１９において、まずステップＳ９１０で、制御部４０１は、上記変数ｍを１に設定する。
【０１７０】
その後、ステップＳ９２０で、制御部４０１は、上記同伴者来場時嗜好バッファに記憶されたｍ件目のレコードに含まれるユーザＩＤを取得する。
【０１７１】
そして、ステップＳ９３０に移り、制御部４０１は、上記同伴者来場時嗜好バッファから、上記図１６のステップＳ７３０で取得された上記同伴ユーザのユーザＩＤに対応付けられたユニットＩＤすなわち第３ユニットＩＤを取得する。
【０１７２】
その後、ステップＳ９４０で、制御部４０１は、上記ステップＳ９３０でユーザＩＤが取得された同伴ユーザに関して上記図１５のステップＳ４６０′で上記来場時嗜好バッファに格納された第３ユニットＩＤ、又は、当該同伴ユーザに関して上記図１６のステップＳ７４０で上記同伴者来場時近傍嗜好バッファに格納された第４ユニットＩＤと、前述の図６のステップＳ２０でユーザＩＤが取得された特定ユーザに関して上記図１５のステップＳ４６０′で上記来場時嗜好バッファに格納された第１ユニットＩＤとが、一致するかどうかを判定する。これは言い換えれば、上記特定ユーザが上記同伴ユーザの嗜好の影響を受けることで、本来の嗜好とは異なる嗜好の演奏曲を意図的に選曲し歌唱を行ったかどうかを判定することに相当する。このステップＳ９４０の手順が、各請求項記載の第２判定手段として機能する。上記同伴ユーザに関する第３ユニットＩＤ又は第４ユニットＩＤと上記特定ユーザに関する第１ユニットＩＤとが一致する場合には、上記特定ユーザが上記同伴ユーザの嗜好の影響を受けることで、本来の嗜好とは異なる嗜好の演奏曲を意図的に選曲し歌唱を行ったとみなされ、ステップＳ９４０の判定が満たされず、ステップＳ９５０に移る。
【０１７３】
ステップＳ９５０では、制御部４０１は、上記イレギュラーフラグＦｉを１として、このルーチンを終了する。
【０１７４】
一方、ステップＳ９４０において、上記同伴ユーザに関する第３ユニットＩＤ又は第４ユニットＩＤと上記特定ユーザに関する第１ユニットＩＤとが一致しなかった場合には、ステップＳ９４０の判定が満たされず、ステップＳ９６０に移る。
【０１７５】
ステップＳ９６０では、制御部４０１は、上記変数ｍの値に１を加え、ステップＳ９７０に移る。
【０１７６】
ステップＳ９７０では、制御部４０１は、上記変数ｍの値が上記同伴者来場時嗜好バッファのレコード数よりも大きくなったかどうかを判定する。変数ｍの値が同伴者来場時嗜好バッファのレコード数よりも大きくなるまでは、ステップＳ９７０の判定が満たされず、上記ステップＳ９２０に戻り同様の手順を繰り返す。そして、変数ｍの値が同伴者来場時嗜好バッファのレコード数よりも大きくなったら、ステップＳ９７０の判定が満たされて、このルーチンを終了する。
【０１７７】
図１４に戻り、上記のようにしてステップＳ９００が終了したら、ステップＳ１２０に移る。ステップＳ１２０は、前述の図７と同様であり、上記イレギュラーフラグＦｉが１となっているかどうかを判定する。Ｆｉ＝１となっている場合には、ステップＳ１２０の判定が満たされて、ステップＳ６００に移る。ステップＳ６００の詳細手順は、前述の図１２とほぼ同様である。なお、本変形例においては、前述の図１２に示すステップＳ６１５の手順が、各請求項記載の第２識別子付与手段として機能する。ステップＳ６００が終了したら、ステップＳ１００に関するルーチンを終了する。
【０１７８】
一方、ステップＳ１１５においてＦｆ＝０のままであるため、ステップＳ１１５の判定が満たされた場合、及び、ステップＳ１２０においてＦｉ＝０のままであるため、ステップＳ１２０の判定が満たされなかった場合には、ステップＳ１００に関するルーチンを終了する。
【０１７９】
本変形例において、計算用ＰＣ端末４００の記憶部４１０のプログラム記憶エリア４１２に記憶された嗜好分類プログラムに基づいて制御部４０１が実行する、クラスタリングに関する制御手順は、前述の図１３と同様であるので、説明を省略する。
【０１８０】
ここで、ユーザが他の同伴ユーザと連れ立って来場し、自らの本来の嗜好とは異なる演奏曲を意図的に選曲した場合に、当該他の同伴ユーザの影響を受けて、当該他の同伴ユーザの嗜好に沿った、あるいはその嗜好に近い演奏曲を選曲して歌唱する可能性があり得る。
【０１８１】
そこで本変形例においては、上記実施形態と同様の手法により、特定ユーザに対応付けられる第１ユニットＩＤを決定すると共に、当該特定ユーザの本来の嗜好に近い第２ユニットＩＤを決定する。さらに、本変形例においては、所定の時間範囲（上記の例では歌唱日時が利用開始日時から利用終了日時までの時間範囲）内における同伴ユーザの歌唱履歴情報を取得した後、その歌唱履歴情報に基づき当該同伴ユーザに対応付けられる第３ユニットＩＤを決定する（図１５のステップＳ４６０′を参照）。また、本変形例では、第３ユニットＩＤで表されるユニットに類似したユニットの第４ユニットＩＤが決定される（図１６のステップＳ７４０を参照）。
【０１８２】
そして、本変形例においては、上記実施形態と同様、まず、上記第１ユニットＩＤが、本来の嗜好に対応している本人ユニットＩＤ又はこれに近い第２ユニットＩＤと一致するかどうかを判定する。そして、第１ユニットＩＤが、本人ユニットＩＤ若しくは第２ユニットＩＤと一致しないと判定された場合には、さらに、上記第１ユニットＩＤが、特定ユーザと同伴したときの同伴ユーザの嗜好に対応している第３ユニットＩＤ又はこれに近い第４ユニットＩＤと一致するかどうかを判定する（図１９のステップＳ９４０を参照）。これにより、第１ユニットＩＤが、第３ユニットＩＤ又は第４ユニットＩＤと一致すると判定された場合には、上記特定ユーザが、同伴ユーザの嗜好の影響を受けることで、本来の嗜好とは異なる嗜好の演奏曲を意図的に選曲し歌唱を行った、とみなすことができる。そしてこの場合、上記歌唱履歴データベース３１３１（図２を参照）に記憶された、当該第１ユニットＩＤに対応した特定ユーザの歌唱履歴情報に所定の識別子を付与する（上記の例では当該歌唱履歴情報に対応する上記対象外フラグを１とする）。以上の結果、上記実施形態と同様の効果を得る。
【０１８３】
（２）特定ユーザと同伴ユーザの嗜好がもともと近かった場合には、分析用処理における適用対象外としない場合
上記（１）の変形例においては、特定ユーザの来場時の嗜好に対応するユニットが、同伴ユーザの来場時の嗜好に対応するユニット、若しくは、同伴ユーザの来場時の嗜好に対応する嗜好の近傍の嗜好に対応するユニットと一致すると判定された場合に、当該特定ユーザの歌唱履歴情報に対応する対象外フラグを１としていたが、これに限られない。すなわち、上記のような場合に、さらに、同伴ユーザの嗜好が、もともと特定ユーザの嗜好と比較的近かったかどうかを判定し、比較的近かったと判定された場合には、当該特定ユーザの歌唱履歴情報に対応する対象外フラグを１としないようにしてもよい。
【０１８４】
本変形例において、計算用ＰＣ端末４００の記憶部４１０のプログラム記憶エリア４１２に記憶された歌唱履歴判別プログラムに基づいて制御部４０１が実行する、歌唱履歴判別処理に関する制御手順は、前述の図６と同様である。以下、本変形例におけるステップＳ１００の詳細手順を、図２０を用いて説明する。なお、この図２０は、前述の図７及び図１４に対応する図である。図１４と同等の手順には同符号を付し説明を適宜省略する。
【０１８５】
図２０において、ステップＳ１１０′、ステップＳ２００、ステップＳ４００′、ステップＳ７００、ステップＳ５００′、及びステップＳ１１５は、前述の図１４と同様である。ステップＳ１１５において、Ｆｆ＝１となっている場合には、ステップＳ１１５の判定が満たされず、ステップＳ９００に代えて設けたステップＳ９００′に移る。
【０１８６】
ステップＳ９００′では、制御部４０１は、所定の第２ユニット判定処理を実行する。このステップＳ９００′の詳細手順を、図２１を用いて説明する。なお、この図２１は、前述の図１９に対応する図である。図１９と同等の手順には同符号を付し説明を適宜省略する。
【０１８７】
図２１において、ステップＳ９１０〜ステップＳ９４０は、前述と同様である。ステップＳ９４０において、上記同伴ユーザに関する第３ユニットＩＤ又は第４ユニットＩＤと上記特定ユーザに関する第１ユニットＩＤとが一致しない場合には、ステップＳ９４０の判定が満たされず、ステップＳ９６０に移る。
【０１８８】
その後のステップＳ９６０及びステップＳ９７０は、前述の図１９と同様であるので説明を省略する。
【０１８９】
一方、ステップＳ９４０において、上記同伴ユーザに関する第３ユニットＩＤ又は第４ユニットＩＤと上記特定ユーザに関する第１ユニットＩＤとが一致する場合には、ステップＳ９４０の判定が満たされて、新たに設けたステップＳ９８０に移る。
【０１９０】
ステップＳ９８０では、制御部４０１は、上記判定終了フラグＦｆを１として、このルーチンを終了する。
【０１９１】
図２０に戻り、上記のようにしてステップＳ９００′が終了したら、新たに設けたステップＳ１１７に移る。ステップＳ１１７は、前述のステップＳ１１５と同様であり、制御部４０１は、上記判定終了フラグＦｆが０のままであるかどうかを判定する。Ｆｆ＝１となっている場合には、ステップＳ１１７の判定が満たされず、新たに設けたステップＳ１１００に移る。
【０１９２】
ステップＳ１１００では、制御部４０１は、所定の第３ユニット判定処理を実行する。このステップＳ１１００の詳細手順を、図２２を用いて説明する。
【０１９３】
図２２において、まずステップＳ１１１０で、制御部４０１は、上記変数ｍを１に設定する。
【０１９４】
その後、ステップＳ１１２０で、制御部４０１は、前述の同伴者来場時嗜好バッファに記憶されたｍ件目のレコードに含まれるユーザＩＤを取得する。
【０１９５】
そして、ステップＳ１１３０に移り、制御部４０１は、上記同伴者来場時嗜好バッファから、前述の図１６のステップＳ７３０で取得された上記同伴ユーザのユーザＩＤに対応付けられたユニットＩＤすなわち第３ユニットＩＤを取得する。
【０１９６】
その後、ステップＳ１１４０で、制御部４０１は、上記ステップＳ１１３０でユーザＩＤが取得された同伴ユーザに関して前述の図１５のステップＳ４６０′で上記来場時嗜好バッファに格納された第３ユニットＩＤ、及び、当該同伴ユーザに関して前述の図１６のステップＳ７４０で前述の同伴者来場時近傍嗜好バッファに格納された第４ユニットＩＤのうち少なくとも１つと、前述の図６のステップＳ２０でユーザＩＤが取得された特定ユーザに関して前述の図８のステップＳ２１０で取得された本人ユニットＩＤ、及び、当該特定ユーザに関して前述の図１７のステップＳ３９０′で前述の来場時近傍嗜好バッファに格納された第２ユニットＩＤのうち少なくとも１つとが、共通であるかどうかを判定する。これは言い換えれば、対応する上記同伴ユーザの嗜好がもともと上記特定ユーザの嗜好と比較的近かったかどうかを判定することに相当する。このステップＳ１１４０の手順が、各請求項記載の第３判定手段として機能する。上記同伴ユーザに係わる第３ユニットＩＤ及び第４ユニットＩＤのうち少なくとも１つと、上記特定ユーザに係わる本人ユニットＩＤ及び第２ユニットＩＤのうち少なくとも１つとが、共通でなかった場合には、ステップＳ１１４０の判定が満たされず、ステップＳ１１５０に移る。
【０１９７】
ステップＳ１１５０では、制御部４０１は、上記イレギュラーフラグＦｉを１として、このルーチンを終了する。
【０１９８】
一方、ステップＳ１１４０において、上記同伴ユーザに係わる第３ユニットＩＤ及び第４ユニットＩＤのうち少なくとも１つと、上記特定ユーザに係わる本人ユニットＩＤ及び第２ユニットＩＤのうち少なくとも１つとが、共通であった場合には、対応する上記同伴ユーザの嗜好がもともと上記特定ユーザの嗜好と比較的近かったとみなされ、ステップＳ１１４０の判定が満たされて、ステップＳ１１６０に移る。
【０１９９】
ステップＳ１１６０では、制御部４０１は、上記変数ｍの値に１を加え、ステップＳ１１７０に移る。
【０２００】
ステップＳ１１７０では、制御部４０１は、上記変数ｍの値が上記同伴者来場時嗜好バッファのレコード数よりも大きくなったかどうかを判定する。変数ｍの値が同伴者来場時嗜好バッファのレコード数よりも大きくなるまでは、ステップＳ１１７０の判定が満たされず、上記ステップＳ１１２０に戻り同様の手順を繰り返す。そして、変数ｍの値が同伴者来場時嗜好バッファのレコード数よりも大きくなったら、ステップＳ１１７０の判定が満たされて、このルーチンを終了する。
【０２０１】
図２０に戻り、上記のようにしてステップＳ１１００が終了したら、ステップＳ１２０に移る。一方、ステップＳ１１５においてＦｆ＝０のままであるため、ステップＳ１１５の判定が満たされた場合、及び、ステップＳ１１７においてＦｆ＝０のままであるため、ステップＳ１１７の判定が満たされた場合には、ステップＳ１２０に移る。ステップＳ１２０は、前述の図７や図１４と同様であり、上記イレギュラーフラグＦｉが１となっているかどうかを判定する。Ｆｉ＝１となっている場合には、ステップＳ１２０の判定が満たされて、ステップＳ６００に移る。ステップＳ６００の詳細手順は、前述の図１２とほぼ同様である。ステップＳ６００が終了したら、ステップＳ１００に関するルーチンを終了する。
【０２０２】
一方、ステップＳ１２０において、Ｆｉ＝０のままである場合には、ステップＳ１２０の判定が満たされず、このルーチンを終了する。
【０２０３】
以上のように、ステップＳ１１４０の判定が満たされた場合には、上記ステップＳ１１５０で上記イレギュラーフラグＦｉが１とされないので、ステップＳ１２０の判定が満たされず、ステップＳ６００の手順が行われない。したがって、この場合には、前述の図１２のステップＳ６１５で、制御部４０１は、上記歌唱履歴データベース３１３１に記憶された、前述の図６のステップＳ２０でユーザＩＤが取得された特定ユーザの歌唱履歴情報に対応する、前述の対象外フラグを１としない。これは言い換えれば、上記特定ユーザの歌唱履歴情報に対応する、対象外フラグを１にすることを中止すること、すなわち、上記特定ユーザの歌唱履歴情報に対する識別子の付与を中止することに相当する。
【０２０４】
本変形例において、計算用ＰＣ端末４００の記憶部４１０のプログラム記憶エリア４１２に記憶された嗜好分類プログラムに基づいて制御部４０１が実行する、クラスタリングに関する制御手順は、前述の図１３と同様であるので、説明を省略する。
【０２０５】
以上説明したように、本変形例においては、前述のようにして第３ユニットＩＤ又は第４ユニットＩＤと第１ユニットＩＤとが一致すると判定された場合に、対応する同伴ユーザの嗜好がもともと上記特定ユーザの嗜好と比較的近かったかどうかを判定する。具体的には、第３ユニットＩＤ及び第４ユニットＩＤのうちの少なくとも１つと、本人ユニットＩＤ及び第２ユニットＩＤのうちの少なくとも１つとが、共通であったかどうかを判定する（図２２のステップＳ１１４０を参照）。これにより、上記のような特定ユーザの嗜好の微妙な変化を確実に反映させた形で、それ以降の当該特定ユーザの属性分析を行うことができる。この結果、特定ユーザの属性分析における精度を向上することができる。
【０２０６】
なお、以上においては、本人ユニットＩＤに係わる代表ベクトルと各ユニットＩＤに係わる代表ベクトルとの相関係数を算出して、対応する相関係数の値が大きい上位所定数のユニットＩＤを、第２ユニットＩＤに決定していたが、これに限られない。例えば、あるしきい値以上の相関係数の値に対応するユニットＩＤを、第２ユニットＩＤに決定するようにしてもよい。あるいは、相関係数に代えて、各ユニットＩＤに係わる各代表ベクトル間の差分二乗和を用いるようにしてもよい。この場合も、前述の実施形態や各変形例と同様の効果を得る。
【０２０７】
また、図６〜図２１に示すフローチャートは本発明を上記フローに示す手順に限定するものではなく、発明の趣旨及び技術的思想を逸脱しない範囲内で手順の追加・削除又は順番の変更等をしてもよい。
【０２０８】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。
【０２０９】
その他、一々例示はしないが、本発明は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【符号の説明】
【０２１０】
１                歌唱情報処理システム
１００            カラオケ装置
１０２            再生部（再生手段）
２００            リモコン
３００            ＤＢサーバ
４００            計算用ＰＣ端末
４０１            制御部
３１３１          歌唱履歴データベース
３１３２          利用履歴データベース
３１３３          ユーザ別嗜好データベース（記憶手段）
３１３４          嗜好別代表ベクトルデータベース
【図１】
0005423986.tif 000002
【図２】
0005423986.tif 000003
【図３】
0005423986.tif 000004
【図４】
0005423986.tif 000005
【図５】
0005423986.tif 000006
【図６】
0005423986.tif 000007
【図７】
0005423986.tif 000008
【図８】
0005423986.tif 000009
【図９】
0005423986.tif 000010
【図１０】
0005423986.tif 000011
【図１１】
0005423986.tif 000012
【図１２】
0005423986.tif 000013
【図１３】
0005423986.tif 000014
【図１４】
0005423986.tif 000015
【図１５】
0005423986.tif 000016
【図１６】
0005423986.tif 000017
【図１７】
0005423986.tif 000018
【図１８】
0005423986.tif 000019
【図１９】
0005423986.tif 000020
【図２０】
0005423986.tif 000021
【図２１】
0005423986.tif 000022
【図２２】
0005423986.tif 000023