【国等の委託研究の成果に係る記載事項】(出願人による申告)平成28年度、国立研究開発法人科学技術振興機構戦略的創造研究推進事業(ACCEL)委託研究「次世代メディアコンテンツ生態系技術に関する研究開発と全体総括」、産業技術力強化法第17条の適用を受ける特許出願
【文献】
東海 菜摘 他,ユーザの行動に基づいた楽曲推薦システムの提案,情報処理学会 研究報告 音楽情報科学(MUS) 2016−MUS−110 [online],日本,情報処理学会,2016年 2月22日,第1−5ページ
【文献】
平井 辰典 他,楽曲のビート類似度及び潜在トピックの類似度に基づくDJプレイの自動化,情報処理学会 研究報告 音楽情報科学(MUS) 2015−MUS−108 [online],日本,情報処理学会,2015年 8月24日,第1−8ページ
【文献】
佐々木 将人 他,LyricsRadar:歌詞の潜在的意味に基づく歌詞検索インタフェース,情報処理学会 論文誌(ジャーナル)[online],日本,情報処理学会,2016年 5月15日,Vol.57 No.5,第1365−1374ページ
【文献】
渡邉 研斗 他,大規模歌詞データからの潜在的トピック遷移のモデル化,第77回(平成27年)全国大会講演論文集(2) 人工知能と認知科学,2015年 3月17日,第2-371〜2-372ページ
【文献】
菊池 剛 他,多重トピック抽出手法を用いた歌詞に基づく楽曲情景推定手法の検討,電子情報通信学会2011年総合大会講演論文集 情報・システム1,2011年 2月28日,第26ページ
(58)【調査した分野】(Int.Cl.,DB名)
前記トピック番号学習手段において、前記トピック番号の確率分布を作成する際には、前記あるアーティストの前記ある歌詞データに割り当てたトピック番号以外の、全ての前記複数の歌詞データに割り当てたトピック番号が正しいと仮定していることを特徴とする請求項1に記載の歌詞のトピック推定情報生成システム。
前記スイッチ変数の値学習手段において、前記スイッチ変数の値更新演算を行う際には、前記あるアーティストの前記ある歌詞データの前記複数の単語中のある単語に割り当てたスイッチ変数x以外の、全ての単語に割り当てたスイッチ変数の値が正しいと仮定していることを特徴とする請求項1に記載の歌詞のトピック推定情報生成システム。
前記出力手段における、前記複数の歌詞データ毎のトピック番号は、前記トピック番号学習手段において前記トピック番号更新学習演算を予め定めた回数実行して最後に前記複数の歌詞データに割り当てられたトピック番号である請求項1に記載の歌詞のトピック推定情報生成システム。
背景の単語の生起確率を求めたい前記学習に使用しなかったあるアーティストの全ての曲の歌詞データに含まれる単語の確率分布を作成する第3の単語確率分布作成手段と、
前記アーティスト毎の全ての曲の歌詞データに含まれる単語の確率分布を作成する第4の単語確率分布作成手段と、
前記アーティスト毎の全ての曲の歌詞データに含まれる背景の単語の確率分布を作成する第5の単語確率分布作成手段と、
前記第3の単語確率分布作成手段で得た前記ある歌詞データに含まれる単語の確率分布と前記第4の単語確率分布作成手段で得た前記アーティスト毎の前記全ての曲の歌詞データに含まれる単語の確率分布との間の類似度をそれぞれ求める類似度演算手段と、
前記類似度演算手段で求めた前記アーティスト毎の前記類似度を前記第5の単語確率分布作成手段で得た前記アーティスト毎の全ての曲の歌詞データに含まれる背景の単語の確率分布にそれぞれ前記類似度を乗算して得た確率分布を前記アーティスト毎に足し合わせて重みの和が1になるように正規化して、背景の単語の生起確率とする背景の単語の生起確率作成手段とを更に具備することを特徴とする請求項9に記載の歌詞のトピック推定情報生成システム。
歌詞の内容から定まる歌詞の主題、本題またはテーマ等となるトピックを推定するのに確かな情報を得る歌詞のトピック推定情報生成システムであって、複数のアーティストごとに、曲名及び前記歌詞からなる複数の歌詞データを取得する歌詞データ取得手段と、
1からK(正の整数)までの所定の数のトピック番号k(1≦k≦K)を生成するトピック番号生成手段と、
前記複数の歌詞データ中の複数の歌詞を形態素解析エンジンを用いた形態素解析により解析して複数の単語を抽出する解析手段と、
形態素解析により解析して複数の単語を抽出する解析手段と、
最初に前記複数のアーティスト毎の前記複数の歌詞データにランダムまたは任意に前記トピック番号を割り当てた後、あるアーティストaのある歌詞データSar以外の歌詞データでトピック番号kが割り当てられている歌詞データの数Rakと前記ある歌詞データSarを除く前記複数のアーティストの前記複数の歌詞データの中で前記単語vにトピック番号kが割り当てられている回数Nkvとを基に前記ある歌詞データSarのトピック番号がkである確率pを求め、該確率から前記ある歌詞データSarのトピック番号の確率分布を作成し、次に前記トピック番号の確率分布pに対応した出現確率に偏りのある乱数生成器を用いて、前記あるアーティストaの前記ある歌詞データSarに割り当てた前記トピック番号を更新するトピック番号更新演算を行い、前記複数のアーティスト毎の前記複数の歌詞データの全てについて前記トピック番号更新演算を実施するトピック番号更新学習演算を、予め定めた回数実行するトピック番号学習手段と、
前記トピック番号学習手段の学習結果から、前記複数の歌詞データ毎のトピック番号と前記トピック番号毎の単語の確率分布を特定する出力手段とからなる歌詞のトピック推定情報生成システム。
前記トピック番号学習手段において、前記トピック番号の確率分布を作成する際には、前記あるアーティストの前記ある歌詞データに割り当てたトピック番号以外の、全ての前記複数の歌詞データに割り当てたトピック番号が正しいと仮定していることを特徴とする請求項11に記載の歌詞のトピック推定情報生成システム。
【発明の概要】
【発明が解決しようとする課題】
【0005】
図21(A)に示すように、LDA法では歌詞の単語毎にトピックが割り当てられるが、歌詞全体にトピックが割り当てられることがない。また
図21(B)に示すように、LDA法ではアーティスト毎のトピック分布がモデル化されていない。さらに
図21(C)に示すように、LDA法では歌詞中のいわゆる背景語を考慮していないので、各トピックの中でトピックとは無関係な単語の生起確率が高くなる可能性がある。
【0006】
またクラスタリング法では、
図22(A)に示すように、歌詞の中の単語の発生回数や出現の有無に基づいてトピックを定めるが、数学的妥当性が自明でないため、トピックの決定までに試行錯誤が必要になる。また
図22(B)に示すように、単語をクラスタリングするために様々な数学的手法を試行錯誤で用いる必要がある。さらに
図22(C)に示すように、クラスタリング法では歌詞中のいわゆる背景語を考慮していないので、各トピックと関連の低い単語も含めた類似度が計算されることになり、トピックとは無関係な単語の影響で歌詞間の類似度が高くなる可能性がある。
【0007】
このような従来技術では、歌詞の意味解析を行う場合に、単語ごとにひとつのトピックを割り当てるのが一般的であり、歌詞のトピックの解釈が困難であった。また歌詞の数が少ないアーティストも歌詞の数が十分に存在するアーティストと同様の方法で推定器が構築され、意味解析の性能を低下させてしまっていた。
【0008】
本発明の目的は、数学的妥当性を持ってアーティスト毎のトピック分布を求めることができ、従来よりも歌詞のトピックの解釈に有効な情報を提供できる歌詞のトピック推定情報生成システムを提供することにある。
【0009】
本発明のさらなる目的は、トピック中において、歌詞中の背景語を考慮することにより、各トピックの中でトピックとは無関係な単語の生起確率が高くなるのを抑制できる歌詞のトピック推定情報生成システムを提供することにある。
【0010】
本発明を方法発明またはコンピュータプログラムの発明として把握した場合の各発明の目的は、数学的妥当性を持ってアーティスト毎のトピック分布を求めることができ、従来よりも歌詞のトピックの解釈に有効な情報を提供できる歌詞のトピック推定情報生成方法及びプログラムを提供することにある。
【0011】
また本発明を方法発明またはコンピュータプログラムの発明として把握した場合の各発明の目的は、トピック中において、歌詞中の背景語を考慮することにより、各トピックの中でトピックとは無関係な単語の生起確率が高くなるのを抑制できる歌詞のトピック推定情報生成方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0012】
本発明は、歌詞の内容から定まる歌詞の主題、本題またはテーマ等となるトピックを推定するのに確かな情報を得る歌詞のトピック推定情報生成システムであり、歌詞データ取得手段と、トピック番号生成手段と、解析手段と、トピック番号学習手段と出力手段とを備えている。歌詞データ取得手段は、複数のアーティストごとに、曲名及び歌詞からなる複数の歌詞データを取得する。トピック番号生成手段は、1からK(正の整数)までの所定の数のトピック番号kを生成する。解析手段は、複数の歌詞データ中の複数の歌詞を形態素解析エンジンを用いた形態素解析により解析して複数の単語を抽出する。
【0013】
トピック番号学習手段は、複数のアーティスト毎の複数の歌詞データの全てについてトピック番号更新演算を実施するトピック番号更新学習演算を、予め定めた回数実行する。トピック番号更新演算では、最初に複数のアーティスト毎の複数の歌詞データにランダムまたは任意にトピック番号を割り当てた後、あるアーティストaのある歌詞データS
ar以外の歌詞データでトピック番号kが割り当てられている歌詞データの数R
akと、ある歌詞データS
arを除く複数のアーティストの複数の歌詞データの中で各単語vにトピック番号kが割り当てられている回数N
kvを基に、ある歌詞データS
arのトピック番号がkである確率を求め、該確率からある歌詞データS
arのトピック番号の確率分布を作成する。次にトピック番号の確率分布に対応した出現確率に偏りのある乱数生成器を用いて、あるアーティストaのある歌詞データS
arに割り当てたトピック番号を更新するトピック番号更新演算を行う。そして出力手段は、トピック番号学習手段の学習結果から、複数のアーティスト毎に複数の歌詞データ毎のトピック番号とトピック番号毎の単語の確率分布を出力する。
【0014】
なお出力手段における、複数の歌詞データ毎のトピック番号は、トピック番号学習手段においてトピック番号更新学習演算を予め定めた回数実行して、最後に複数の歌詞データに割り当てられたトピック番号とする。このように最後の割り当て結果を出力すると、複数の歌詞データに適したトピック番号を割り当てることができる。
【0015】
なお歌詞データ取得手段では、複数のアーティスト毎に複数の歌詞データを取得し、出力手段では、複数のアーティスト毎の複数の歌詞データのトピック番号と該トピック番号毎の単語の確率分布を特定する。このようにするとアーティスト毎の複数の曲の歌詞のトピックをアーティストの個性を反映したものとして知ることができ、曲を選択する人に、アーティストを基準にした曲の情報を提供することができる。
【0016】
また形態素解析は、文章中から名詞あるいは特定の品詞群を単語として抽出する形態素解析エンジンを用いて実施される。形態素解析エンジンは、現在、種々提案されており、形態素解析エンジを用いれば、曲が膨大な数になっても、単語の抽出を簡単に行える。
【0017】
本発明によれば、任意のトピック数を決めると、トピック番号学習手段により最終的に更新されたアーティスト毎の複数の歌詞データ毎のトピック番号により、複数の歌詞データ毎のトピック番号が特定される。そして複数の歌詞データ毎のトピック番号が判ると、各トピック番号毎の単語の確率分布が判る。そのためトピックと関係のある単語集合及び、無関係な単語集合を人手で規定する必要がない。また生起確率の高い複数の単語が分かると、それらの単語からトピックを把握するのに確かな情報が得られることになり、各歌詞のトピックの尤もらしい意味を求めることができる。
【0018】
トピック番号学習手段においては、トピック番号の確率分布を作成する際には、あるアーティストのある歌詞データに割り当てたトピック番号以外の、全ての歌詞データに割り当てたトピック番号が正しいと仮定するのが好ましい。具体的には、トピック番号学習手段は、まずトピック番号の確率分布を作成する際に、あるアーティストaのある歌詞データS
ar以外の歌詞データでトピック番号kが割り当てられている歌詞データの数R
akを基に、ある歌詞データS
arのトピック番号がkである第1の確率p
1を計算する。次に、ある歌詞データS
arを除く複数のアーティストの複数の歌詞データの中で単語vにトピック番号が割り当てられている回数N
kvを基に、ある歌詞データS
arのトピック番号がkである第2の確率p
2を計算する。さらに第1の確率p
1と第2の確率p
2からある歌詞データS
arのトピック番号がkである確率pを計算する。そして、これらの計算を全てのトピック番号に関して実施して、ある歌詞データS
arのトピック番号kが1〜Kである確率の和が1になるように正規化し、ある歌詞データS
arのトピック番号の確率分布とする。このように計算をすると、トピック番号の確率分布の精度が高くなる。
【0019】
また出力手段は、ある単語vにトピック番号kが割り当てられている回数N
kvから、各トピック番号毎の単語の確率分布を出力するように構成されているのが好ましい。
【0020】
出力手段における、トピック番号kの単語vの生起確率θ
kvは、下記式により求められ、
θ
kv=(N
kv+β)/(N
k+β|V|)
但し、N
kvはある単語vにトピック番号kが割り当てられた回数、N
kはトピック番号kが割り当てられた全単語数、βはスムージング用パラメータ、|V|は単語の種類数である。
【0021】
本発明では、スイッチ変数の値学習手段を更に備えていてもよい。スイッチ変数の値学習手段は、複数のアーティスト毎の複数の歌詞データに含まれる複数の単語の全てについてスイッチ変数の値の更新演算を実施するスイッチ変数の値更新学習演算を、予め定めた回数実行する。ここでスイッチ変数の値更新演算では、複数のアーティスト毎の複数の歌詞データに含まれる複数の単語にランダムまたは任意にスイッチ変数の値を割り当てる。その後、あるアーティストaの複数の歌詞データ中の複数の単語に対して割り当てたスイッチ変数の値から、ある単語v
arjに割り当てたスイッチ変数xの値がトピック語である(x=0)か背景語である(x=1)かの確率を計算してスイッチ変数の値の確率分布λ
aを作成する。次にスイッチ変数の値の確率分布に対応した出現確率に偏りのある乱数生成器を用いて、ある単語に割り当てたスイッチ変数の値を更新する。
【0022】
スイッチ変数の値学習手段による学習は、トピック番号学習手段による学習の前でも後でも行うことができる。スイッチ変数の値学習手段を設けると、ある単語がトピック語であるか背景語であるかを考慮するため、設けない場合よりも、トピック番号の推定精度が高くなる。これはスイッチ変数の値を考慮して複数の歌詞データ毎のトピック番号と複数のトピック番号毎の単語の生起確率が判ると、トピック番号毎の単語の生起確率において、トピックと関係の弱い単語(背景語)の生起確率を低くすることができ、歌詞のトピック番号を推定する際に背景語の影響力を小さくすることができるからである。
【0023】
スイッチ変数は、ある単語が想定されるトピックの主題に関連するものか背景に関連するものを規定する変数である。したがってこの変数を演算により特定すれば、トピックと関係のある単語集合及び、無関係な単語集合を人手で規定する必要がなくなる。
【0024】
スイッチ変数の値学習手段において、スイッチ変数の値更新演算を行う際には、あるアーティストのある歌詞データの複数の単語中のある単語に割り当てたスイッチ変数x以外の、全ての単語に割り当てたスイッチ変数の値が正しいと仮定するのが好ましい。具体的には、スイッチ変数の値学習手段では、次の計算を行う。まず、あるアーティストaの全曲の歌詞データ中で前記スイッチ変数の値として0が割り当てられている単語の数N
aoを基に、単語v
arj のスイッチ変数の値が0である第3の確率p
3を計算する。次に単語v
arjを含む歌詞と同一のトピック番号z
arが割り当てられた全アーティストの全曲の中で単語v
arjにスイッチ変数の値として0が割り当てられている回数Nz
arv
arjを基に、単語v
arjのスイッチ変数の値が0である第4の確率p
4を計算する。そして第3の確率p
3と第4の確率p
4からスイッチ変数が0である第5の確率p
5を計算する。またあるアーティストの複数の歌詞データの中でスイッチ変数の値として1が割り当てられている回数N
a1を基に、単語v
arjのスイッチ変数の値が1である第6の確率p
6を計算する。また複数のアーティストの複数の歌詞データの中で、単語v
arjにスイッチ変数の値として1が割り当てられている回数N
1varjを基に、単語v
arjのスイッチ変数の値が1である第7の確率p
7を計算する。そして第6の確率p
6と第7の確率p
7から前記スイッチ変数が1である第8の確率p
8を計算し、第5の確率p
5および第8の確率p
8から単語v
arjのスイッチ変数の値が0である確率と1である確率の和が1になるように正規化して、スイッチ変数の値の確率分布とする。このようにしてスイッチ変数の値の確率分布を求めると、アーティストaの全歌詞の中でスイッチ変数の値が0または1である割合および、単語v
arjのスイッチ変数の値が全アーティストの全歌詞の中で0または1である割合の双方を考慮した結果としての確率分布を求めることができる。
【0025】
また学習に使用しなかったあるアーティストの新しい曲sの歌詞データのトピック番号を求める場合には、次の構成を採用すればよい。すなわち学習に使用しなかったあるアーティストの新しい曲sの歌詞データに含まれる単語の確率分布を作成する第1の単語確率分布作成手段と、複数のアーティストの複数の曲の歌詞データにそれぞれ含まれる単語の確率分布を作成する第2の単語確率分布作成手段と、第1の単語確率分布作成手段で得た新しい曲sの歌詞データに含まれる単語の確率分布と第2の単語確率分布作成手段で得た複数の曲の歌詞データにそれぞれ含まれる単語の確率分布との間のコサイン類似度あるいは任意の尺度の類似度をそれぞれ求める類似度演算手段と、複数の曲の歌詞データに対応する複数の曲の歌詞データの類似度を、トピック番号の重みとして加算してトピック番号の重み分布を作成する重み分布作成手段とをさらに設ける。そして重みが最大のトピック番号を新しい曲sの歌詞データのトピック番号とする。
【0026】
また学習に使用しなかったあるアーティストの新しい曲sの歌詞データのトピックを定めるためのさらなる情報を得るためには、第3の単語確率分布作成手段乃至第5の単語確率分布作成手段と、類似度演算手段と、生起確率作成手段とを設けた下記の構成を採用することができる。第3の単語確率分布作成手段は、背景の単語の生起確率を求めたい学習に使用しなかったアーティストの全ての曲の歌詞データに含まれる単語の確率分布を作成する。第4の単語確率分布作成手段は、学習に使用したアーティスト毎の全ての曲の歌詞データに含まれる単語の確率分布を作成する。第5の単語確率分布作成手段は、学習に使用したアーティスト毎の全ての曲の歌詞データに含まれる背景の単語の確率分布を作成する。類似度演算手段は、第3の単語確率分布作成手段で得た新しい曲sの歌詞データに含まれる単語の確率分布と第4の単語確率分布作成手段で得たアーティスト毎の全ての曲の歌詞データに含まれる単語の確率分布との間のコサイン類似度あるいは任意の尺度の類似度をそれぞれ求める。また背景の単語の生起確率作成手段は、類似度演算手段で求めたアーティスト毎の類似度を第5の単語確率分布作成手段で得たアーティスト毎の全ての曲の歌詞データに含まれる背景の単語の確率分布に基づいて背景の単語の生起確率を求める。具体的には、アーティスト毎の全ての曲の歌詞データに含まれる背景の単語の確率分布に類似度をそれぞれ乗算して得た確率分布をアーティスト毎に足し合わせて重みの和が1になるように正規化して、背景の単語の生起確率とする。そして生起確率作成手段で求めた生起確率を、あるアーティストの背景語の確率分布とする。背景語の確率分布からも、トピックの意味合いを知ることができる。
【0027】
本発明を歌詞のトピック推定情報生成方法として表現すると以下のように表現することができる。歌詞データ取得ステップでは、複数のアーティストごとに、曲名及び歌詞からなる複数の歌詞データを取得する。トピック番号生成ステップでは、1からK(正の整数)までの所定の数のトピック番号k(1≦k≦K)を生成する。解析ステップでは、複数の歌詞データ中の複数の歌詞を形態素解析により解析して複数の単語を抽出する。トピック番号学習ステップでは、最初に複数のアーティスト毎の前記複数の歌詞データにランダムまたは任意にトピック番号を割り当てた後、あるアーティストaのある歌詞データS
ar以外の歌詞データでトピック番号kが割り当てられている歌詞データの数R
akとある歌詞データS
arを除く複数のアーティストの複数の歌詞データの中で単語vにトピック番号kが割り当てられている回数N
kvとを基にある歌詞データS
arのトピック番号がkである確率pを求め、該確率からある歌詞データS
arのトピック番号の確率分布を作成し、次にトピック番号の確率分布pに対応した出現確率に偏りのある乱数生成器を用いて、あるアーティストaのある歌詞データS
arに割り当てたトピック番号を更新するトピック番号更新演算を行い、複数のアーティスト毎の複数の歌詞データの全てについてトピック番号更新演算を実施するトピック番号更新学習演算を、予め定めた回数実行する。そして出力ステップでは、トピック番号学習ステップの学習結果から、複数の歌詞データ毎のトピック番号と前記トピック番号毎の単語の確率分布を特定する。
【0028】
本発明は、本発明のトピック推定情報生成方法の各ステップをコンピュータを用いて実施する場合のトピック推定情報生成用コンピュータプログラムとしても特定することができる。なおこのコンピュータプログラムは、コンピュータ読み取り可能な記媒体に記憶されているのが好ましい。
【発明を実施するための形態】
【0030】
以下図面を参照して本発明の実施の形態を詳細に説明する。
【0031】
[第1の実施の形態]
図1は、本発明の歌詞のトピック推定情報生成システムの第1の実施の形態の構成を示すブロック図である。本実施の形態の各ブロックは、コンピュータにインストールされたコンピュータプログラムによりコンピュータ内に実現されるか、複数のプロセッサと複数のメモリによって構成される。
図2は、本実施の形態の基本システムをコンピュータを用いて実現する場合に用いる歌詞のトピック推定情報生成方法及びコンピュータプログラムのアルゴリズムの一例を示すフローチャートである。
【0032】
図1に示すように、本実施の形態の基本となる歌詞のトピック推定情報生成システム1は、歌詞データベース3、歌詞データ取得手段5、トピック番号生成手段7、トピック番号学習手段9、解析手段11及び出力手段13を備えている。
【0033】
本発明では、
図3に示す歌詞の生成過程をモデル化した歌詞の生成過程モデルをベースとして、
図1の各構成要素を用いることとした。そこでまず
図3に示す歌詞の生成過程モデルについて説明する。歌詞を作成する場合には、ステップS1でアーティスト名と曲名を決める。ここでは例えば、アーティスト名「関谷 洋」、曲名「戻らない夏」とする。次に曲のトピック番号を生成する(ステップS2)。ここでトピックとは、歌詞の内容から定まる歌詞の主題、本題またはテーマとなるもので、例えば「夏」、「女性の恋歌」、「旅」等である。このようなトピックをグループ分けする場合に、トピックに付けられる番号が、「トピック番号」である。本実施の形態において、「トピック番号」は、あくまでも番号であって、意味内容は含まない。大ざっぱに、アーティストの曲の歌詞のトピックを20種類に分けるとすれば(複数の歌詞をその内容から20のグループに分けるとすれば)、トピック番号は1〜20の番号である。あるアーティストの複数の曲の歌詞をトピックの種類に分けて各トピックに番号を付け、トピック番号の発生確率を求めたものがトピック番号の確率分布である。次に歌詞に含まれるj番目の単語を決める場合には、トピックの単語分布から単語を順次生成する(ステップS4〜S5)。j番目の単語が決められると、j+1番目の単語が決められ、すべの単語が決まると作詞は終了する。
【0034】
以下の説明では、本実施の形態をコンピュータ等のハードウエアで実現する場合に用いる理論を数式を用いて逐次説明する。このモデルを数式で示すと次のようになる。入力として与えられたトピックの数をK、歌詞データ集合内のアーティスト集合をA、名詞あるいは特定の品詞群の集合をVとする。トピックk(1≦k≦K)は単語の確率分布φk=(φ
k1・,φ
k2,・・・,φ
kV ) を持ち、単語v∈Vの生起確率φ
kv はφ
kv≧0かつ
【0036】
そしてアーティストa∈Aはトピック番号の確率分布θa=(θa
1,θa
2,...,θa
K) を持ち、トピックk(1≦k≦K) の生起確率θa
k はθa
k≧0かつ
【0038】
アーティストa∈Aはスイッチ変数の値を選ぶための確率分布λa =(λ
a0; λ
a1) を持つ。λ
a0 はスイッチ変数の値が0である確率であり、単語がトピックから選択されることを表す。λ
a1はスイッチ変数の値が1である確率であり、単語が背景から選択されることを表す。λ
a0≧0 かつλ
a1≧0かつλ
a0 +λ
a1=1を満たす。背景は単語の確率分布ψ=(ψ
1,ψ
2,・・・ψ
|V|)を持ち、単語v∈Vの生起確率ψ
vはψ
v≧0かつ
【0040】
本発明のシステムでは、
図3のモデルを基礎として、歌詞のトピックを決定または推定するのに役立つ情報を自動生成する。歌詞データ取得手段5は、
図2のステップST1及び
図4に示すように、歌詞データベース3から複数のアーティストごとに、曲名及び歌詞からなる複数の歌詞データ(歌詞データ集合)を取得する。
図4の例では、二人のアーティスト(関谷 洋と吉井 弘美)の曲をそれぞれ取得している。歌詞データベース3としては、例えば、MySQLを利用することができる。
【0041】
これをコンピュータを用いて実現するために、アーティストaの歌詞データの総数をR
a、r(1≦r≦R
a)番目の歌詞をS
arとすると、アーティストaの歌詞集合D
aは、
【0042】
【数4】
と表される。さらに、全アーティストの歌詞集合D はD={D
a}
a∈
Aと表される。
【0043】
トピック番号生成手段7は、
図2のステップST2に示すように、1からK(正の整数)までの所定の数のトピック番号kを生成する。本実施の形態では、トピック番号生成手段7は、1〜20のトピック番号を生成している。
【0044】
そして解析手段11は、
図2のステップST3及び
図5に示すように、複数の歌詞データ中の複数の歌詞を形態素解析により解析して複数の単語を抽出する。形態素解析は、文章中から名詞あるいは特定の品詞群を単語として抽出する形態素解析エンジンを用いて実施される。形態素解析エンジンは、現在、種々提案されており、形態素解析エンジンを用いれば、曲が膨大な数になっても、単語の抽出を簡単に行える。本実施の形態では、
図5に示すようにオープンソースの形態素解析エンジンMeCab( HYPERLINK "http://taku910.github.io/mecab/" http://taku910.github.io/mecab/)を使用している。なお数学的には、歌詞S
ar に含まれる名詞あるいは特定の品詞群の数をV
ar とする。
【0045】
トピック番号学習手段9は、
図2のステップST4及び
図6(A)のステップST41〜ST47に示すように、複数のアーティストi毎の複数の歌詞データにランダムまたは任意にトピック番号を割り当てる。本実施の形態では、
図6(B)に示すように、最初は各トピック番号が付与される複数の歌詞データの生起確率が0.05=(1/K)になるようにしている。
【0046】
図7はトピック番号学習手段9をコンピュータを用いて実現する場合のソフトウエアのアルゴリズムの一例を示している。
図7のアルゴリズムでは、複数のアーティストi毎の複数の歌詞データの全てについてトピック番号更新演算(
図7のST404〜ST411)を実施するトピック番号更新学習演算(ST403〜ST411)を、予め定めた回数(ST402)実行する。本実施の形態では、あるアーティストaのある曲即ち歌詞データS
arに割り当てたトピック番号k(k=1からKまでのいずれかの整数)以外の、全ての歌詞データに割り当てたトピック番号が正しいと仮定して、あるアーティストaのある歌詞データS
arに割り当てたトピック番号がkである確率を計算してトピック番号の確率分布を作成する(ST408)。
【0047】
図8は、ステップST408の詳細を示すフローチャートである。まずトピック番号kの確率分布を作成する際に、あるアーティストaのある歌詞データS
ar以外の歌詞データでトピック番号kが割り当てられている歌詞データの数R
akを基に、ある歌詞データS
arのトピック番号がkである第1の確率p
1を計算する(ステップST408D)。次に、ある歌詞データS
arを除く複数のアーティストの複数の歌詞データの中で単語vにトピック番号kが割り当てられている回数N
kvを基に、ある歌詞データS
arのトピック番号がkである第2の確率p
2を計算する(ST408E〜ST408H)。ステップST408Fでは、ある単語vが単語集合Vの中に在るか否かを判定し、ステップST408Gでは、その単語がある歌詞データS
arのなかに存在するかを判定する。ステップST408Gで「N」であればステップST408Iで、次の単語に変わる。そしてステップST408Fで「N」であれば、単語が無くなったので、ステップST408Jへと進む。ステップST408Jでは、第1の確率p
1と第2の確率p
2からある歌詞データS
arのトピック番号がkである確率pを計算する。そして、これらの計算を全てのトピック番号(1〜K)に関して実施して、ある歌詞データS
arのトピック番号が1〜Kである確率の和が1になるように正規化し、ある歌詞データS
arのトピック番号の確率分布とする(ST408C)。このように計算をすると、トピック番号の確率分布の精度が高くなる。
【0048】
次に
図7のステップST409において、ある曲即ちある歌詞データS
arのトピック番号を更新する。このトピック番号の更新では、トピック番号の確率分布に対応した出現確率に偏りのある乱数生成器を用いて、あるアーティストのある歌詞データに割り当てたトピック番号を更新する(ST409)。トピック番号更新演算(ST403,ST409)を、複数のアーティスト毎の複数の歌詞データの全てについて実施する(ST404,ST411)。そしてトピック番号更新演算を、複数のアーティスト毎の複数の歌詞データの全てについて実施するトピック番号更新学習演算(ST403〜ST411)を予め定めた回数[
図7の例では500回]実行する。なおトピック番号の確率分布は、イメージとしては、
図6(B)に示すようなものである。またここで用いる「乱数生成器」は、概念で説明すれば、本実施の形態の場合、例えばトピック番号に対応する20の面を有し、その面の面積が出現確率に比例している多面体からなる仮想のサイコロを振って出た面に割り当てられている数(1〜20の数)を更新後のトピック番号とするものである。
【0049】
図1の出力手段13は、
図2のステップST5に示すように、トピック番号学習手段9の学習結果から、複数のアーティストi毎に複数の歌詞データ毎のトピック番号とトピック番号毎の単語の確率分布を出力する。なお出力手段13における、複数の歌詞データ毎のトピック番号は、トピック番号学習手段9においてトピック番号更新学習演算を予め定めた回数(本実施の形態では500回)実行して、最後に複数の歌詞データに割り当てられたトピック番号とする。このように最後の割り当て結果を出力すると、複数の歌詞データに適したトピック番号を割り当てることができる。
【0050】
具体的には、
図7のステップST409における「トピック番号更新」で最後に更新した値を歌詞データに割り当てられたトピック番号とする。また出力手段
13は、ある単語vにトピック番号kが割り当てられている回数N
kvから、各トピック番号毎の単語の確率分布を出力する。具体的にはピック番号kの単語vの生起確率θ
kvは、下記式により求めて、この生起確率から各トピック番号毎の単語の確率分布を特定する。
【0051】
θ
kv=(N
kv+β)/(N
k+β|V|)
但し、N
kvはある単語vにトピック番号kが割り当てられた回数、N
kはトピック番号kが割り当てられた全単語数、βは単語の出現回数に対するスムージング用パラメータ、|V|は単語の種類数である。
【0052】
(数式に基づくトピック番号の更新)
上記のトピック番号の更新を理論的に以下に説明する。まずθa、φ
k、ψ、およびλaはそれぞれ事前分布としてパラメータα、β、γ、ρのディリクレ分布を持つと仮定する。アーティストaの曲S
ar のトピック番号をz
ar、アーティストaの歌詞S
ar のj番目の単語のスイッチ変数の値をx
arj とすると、歌詞集合D、トピック番号集合Zは
【0053】
【数5】
であり、スイッチ変数の値の集合Xは
【0054】
【数6】
であり、この同時分布は次式で表される。
【0057】
P(D,Z,X|α、β、γ、ρ)は全アーティストの全曲に対するトピック番号の割り当て(Z)および、全アーティストの全曲の全単語に対するスイッチ変数の値の割り当て(X)を決めたときに、全ての歌詞の単語(D)、全てのトピック番号(Z)、全てのスイッチ変数の割り当て(X)、の組合せが生じる確率を表す。これらのパラメータを積分消去することで、式(1)は次のように計算できる。
【0058】
【数9】
N
a0 とN
a1 はそれぞれ、アーティストaの歌詞データの単語の中でスイッチ変数の値が0である単語数と1である単語数を表し、N
a = N
a0+N
a1 である。N
1v は単語vの中で、スイッチ変数の値が1であるものの数を表し、N
1=Σ
v∈
VN
1vである。N
k =Σ
v∈
VN
kvであり、N
kvは単語vにスイッチ変数の値が0のもとでトピック番号kが割り当てられた回数である。R
akはアーティストaの歌詞の中でトピック番号kが割り当てられた歌詞の数であり、
【0059】
【数10】
である。式(2)の中で下記式(3)の項は、全ての歌詞のトピック番号の割り当てが決まったときに、その割り当てが観測される確率を表す。
【0060】
【数11】
式(2)の中で下記の式(4)の項は、全ての歌詞の全ての単語のスイッチ変数の値の割り当てが決まったときに、その割り当てが観測される確率を表す。
【0061】
【数12】
式(2)の中で下記式(5)の項は、全ての歌詞のトピック番号の割り当ておよび、全ての歌詞の全ての単語のスイッチ変数の値の割り当てが決まったときに、全ての歌詞の全ての単語が観測される確率を表す。
【0062】
【数13】
アーティストaの曲S
ar のトピック番号をz
ar とすると、z
ar=kである確率は次式(6)で表される。
【0063】
【数14】
上記式において\ar はアーティストaのr番目の歌詞を除いたときの値を表す。N
ar はアーティストaのr番目の歌詞内の単語数を、N
arv はアーティストaのr番目の歌詞内の単語vの数を表す。上記式(6)の中で下記式(7)の項は、アーティストaのr番目以外の曲にどれだけトピック番号kが割り当てられているかを表す。つまり、アーティストaの曲の中にトピック番号kが割り当てられた曲が多いほどアーティストaのr番目の曲のトピック番号がkである確率が高くなる。
【0064】
【数15】
式(6)の中で下記式(8)の項は、アーティストaのr番目以外の曲を見たときに、アーティストaのr番目の歌詞内の単語にどれだけトピック番号kが割り当てられているかを表す。たとえば、アーティストaのr番目の曲に「夏」という単語がある場合、アーティストaのr番目の曲以外の全アーティストの全曲の中の「夏」という単語にどれだけトピック番号kが割り当てられているかを見ることになる。ただし、曲のトピック番号がkであるとき、その曲の歌詞内の全ての単語にもトピック番号kが割り当てられていると考える。つまり、アーティストaのr番目の歌詞内にトピック番号kが割り当てられた単語が多いほど、アーティストaのr番目の曲のトピック番号がkである確率が高くなる。
【0065】
【数16】
トピック番号の更新は式(2)の値が大きくなるように行われる。また、歌詞ごとのトピック番号の更新と並行して、トピック番号ごとの単語の確率分布も更新する。
【0066】
なお上記説明におけるスイッチ変数は、理論的には、後述する第2の実施の形態のスイッチ変数の値学習手段115が出力するスイッチ変数であるが、第1の実施の形態では、スイッチ変数を0として、スイッチ変数の値は更新していない。したがって第1の実施の形態では、背景語は考慮されない。
【0067】
[第2の実施の形態]
図9は、本発明の歌詞のトピック推定情報生成システムの第2の実施の形態の構成を示すブロック図である。本実施の形態の各ブロックは、コンピュータにインストールされたコンピュータプログラムによりコンピュータ内に実現されるか、複数のプロセッサと複数のメモリによって構成される。
図10は、第2の実施の形態をコンピュータを用いて実現する場合に用いるコンピュータプログラムのアルゴリズムの一例を示すフローチャートである。
【0068】
第2の実施の形態が、
図1乃至
図8を用いて説明した第1の実施の形態と相違するのは、スイッチ変数の値学習手段115を更に備えている点であり、その他の点は第1の実施の形態と同じである。そこで
図9には、
図1に示した第1の実施の形態と同じ機能を発揮する構成要件には、
図1に付した符号の数に100の数の符号を付して説明を省略する。また
図10のフローチャートには、
図7に図に示した第1の実施の形態のステップと同じ機能を発揮するステップには、
図7に付したステップの符号の数に1000の数の符号を付して説明を省略する。更に
図11に示す歌詞の生成過程をモデル化した図においても、
図3に示すモデルと同じステップには、
図3に図に示した第1の実施の形態のステップと同じ機能を発揮するステップには、
図3に付したステップの符号の数に10の数の符号を付して説明を省略する。
【0069】
図9に示すように、本実施の形態では、スイッチ変数の値学習手段115を備えている。ここで歌詞に含まれるj番目の単語を決める場合に、トピックに関連する単語とするか、トピックに関連しない背景語とするかを決めるのが「スイッチ変数の値」である。即ちスイッチ変数は、ある単語が想定されるトピックの主題に関連するものか、背景に関連するものを規定する変数である。この変数を演算により特定すれば、トピックと関係のある単語集合及び無関係な単語集合を人手で規定する必要がなくなる。100%トピックに関連する単語にする場合のスイッチ変数の値0の生起確率は1であり、50%トピックに関連する単語にする場合のスイッチ変数の値0の生起確率は0.5である。j番目の単語を決める場合には、j番目の単語用のスイッチ変数の値の確率分布が使用されることになる。人が作詞をする場合には、このスイッチ変数の値の確率分布は人が決めることになる。
【0070】
図11のステップS14乃至S18では、j番目の単語用のスイッチ変数の値の確率分布に基づいて、この確率分布がトピックを示しているか否かにより(ステップS16)、j番目の単語をトピックの単語の分布から生成するか(ステップS17)、背景の単語分布から生成することになる(ステップS18)。j番目の単語が決められると、j+1番目の単語が決められ(ステップS19)、すべの単語が決まると作詞は終了する。
【0071】
スイッチ変数の値学習手段115は、スイッチ変数の値更新学習演算[
図10のステップST1409〜ST1415]を予め定めた回数[例では500回]実行する。スイッチ変数の値更新学習演算では、まず事前の準備として、
図12(A)に示すフローチャートのように、複数のアーティストi毎の複数の歌詞データに含まれる複数の単語にランダムまたは任意にスイッチ変数の値を割り当てる(ST141〜ST150)。
図12(B)に示すように、この例では、最初にトピックに関連する語である確率及び背景に関連する語である確率をそれぞれ、0.5としている。
【0072】
図10に示すように、スイッチ変数の値学習手段115では、あるアーティストのある歌詞データの複数の単語中のある単語vに割り当てたスイッチ変数x(x=トピック語であるか背景語であるかの確率変数)以外の、全ての単語に割り当てたスイッチ変数の値が正しいと仮定して、ある単語vに割り当てたスイッチ変数xの値が0または1である確率を計算してスイッチ変数の値の確率分布λ
aを作成する(
図10のステップST1410〜ST1412)。
【0073】
図13には、
図10のステップST1412における「スイッチ変数の値の確率分布生成」ステップの詳細が示されている。まず、あるアーティストaの全曲の歌詞データ中でスイッチ変数の値として0が割り当てられている単語v
arjの数N
aoを基に、単語v
arj のスイッチ変数の値が0である第3の確率p
3を計算する(ステップST1412A)。次に単語v
arjを含む歌詞と同じトピック番号z
arが割り当てられた全アーティストの全曲の中で単語v
arjにスイッチ変数の値として0が割り当てられている回数Nz
arv
arjを基に、単語v
arjのスイッチ変数の値が0である第4の確率p
4を計算する(ステップST1412B)。そして第3の確率p
3と第4の確率p
4からスイッチ変数が0である第5の確率p
5を計算する(ステップST1412C)。またあるアーティストの複数の歌詞データの中でスイッチ変数の値として1が割り当てられている回数N
a1を基に、単語v
arjのスイッチ変数の値が1である第6の確率p
6を計算する(ステップST1412D)。また複数のアーティストの複数の歌詞データの中で、単語v
arjにスイッチ変数の値として1が割り当てられている回数N
1varjを基に、単語v
arjのスイッチ変数の値が1である第7の確率p
7を計算する(ステップST1412E)。そして第6の確率p
6と第7の確率p
7から前記スイッチ変数が1である第8の確率p
8を計算(ステップST1412F)し、第6の確率p
6と第7の確率p
7から単語v
arjのスイッチ変数の値が0である確率と1である確率の和が1になるように正規化して、スイッチ変数の値の確率分布とする(ステップST1412G)。
【0074】
(数式に基づくスイッチ変数の更新)
上記のスイッチ変数の更新を理論的に以下に説明する。まずアーティストaの歌詞S
ar のj番目の単語のスイッチ変数の値をx
arj とすると、x
arj=0である確率は次式で表される。
【0075】
【数17】
\
arj はアーティストaのr番目の歌詞のj番目の単語を除いたときの値を表す。上記式(9)の中で下記式(10)の項は、アーティストaがどれだけトピックから単語を生成しやすいかを表し、その値が大きいほど、aのr番目の歌詞のj 番目の単語のスイッチ変数の値が0である確率が高くなる。
【0076】
【数18】
式(9)の中で
下記式(11)の項は、aのr番目の歌詞のj 番目の単語がどれだけトピック番号z
arにおいて生起しやすいかを表し、その値が大きいほど、aのr番目の歌詞のj番目の単語のスイッチ変数の値が0である確率が高くなる。たとえば、aのr番目の歌詞のj 番目の単語が「夏」である場合、それ以外の全アーティストのトピック番号z
arが割り当てられた全曲の全単語の中で「夏」という単語にどれだけスイッチ変数の値として0が割り当てられているかを見ることになる。
【0077】
【数19】
同様に、x
arj=1である確率は次式で表される。
【0078】
【数20】
式(12)の中で
下記式(13)の項は、アーティストaがどれだけ背景から単語を生成しやすいかを表し、その値が大きいほど、aのr番目の歌詞のj 番目の単語のスイッチ変数の値が1である確率が高くなる。
【0079】
【数21】
式(12) の中で
下記式(14)の項は、aのr番目の歌詞のj番目の単語がどれだけ背景から単語を生成しやすいかを表し、その値が大きいほど、aのr番目の歌詞のj番目の単語のスイッチ変数の値が1である確率が高くなる。
【0080】
【数22】
図10のステップST1413の単語のスイッチ変数の値の更新は式(2)の値が大きくなるように行われるのが好ましい。また、単語ごとのスイッチ変数の値の更新と並行して、アーティストごとのスイッチ変数の値の確率分布も更新する。
【0081】
具体的には、スイッチ変数の値の確率分布に対応した出現確率に偏りのある乱数生成器を用いて、ある単語に割り当てたスイッチ変数を更新するスイッチ変数の値更新演算を、複数のアーティスト毎の複数の歌詞データに含まれる複数の単語の全てについて実施する(ステップST1412〜ST1416)。なおここで用いる「乱数生成器」は、概念で説明すれば、本実施の形態の場合、例えば2つのスイッチ変数に対応する2つの面を有し、その面の面積が出現確率に比例している2面体からなる仮想のサイコロを振って出た目の面に割り当てたスイッチ変数を更新するスイッチ変数とするものである。
【0082】
図9の出力手段113は、
図2のステップST5及び
図14(A)及び
図14(B)に示すように、トピック番号学習手段109の学習結果及びスイッチ変数の値学習手段115の学習結果から、複数のアーティスト毎の複数の歌詞データ毎のトピック番号を特定し(
図14(B))、複数のトピック番号毎の単語の生起確率を生成する(
図14(A))。このようにするとアーティスト毎の複数の曲の歌詞のトピックをアーティストの個性を反映したものとして知ることができ、曲を選択する人に、アーティストを基準にした曲の情報を提供することができる。
【0083】
出力手段113が出力する複数の歌詞データ毎のトピック番号は、トピック番号学習手段109においてトピック番号更新学習演算を予め定めた回数[
図10では500回:
図10のステップST1402]実行して、最後にあるアーティストの複数の歌詞データに割り当てられたトピック番号[
図10のステップST1409で最後に更新されたトピック番号]とする。このように最後の割り当てに従うと、複数の歌詞データに最も適したトピック番号を割り当てることができる。
【0084】
また出力手段113が出力するトピック番号毎の単語の確率分布も、トピック番号学習手段109においてトピック番号更新学習演算を予め定めた回数[
図10では500回:
図10のステップST1402]実行して、最後に記憶されたトピック番号毎の単語の確率分布である。出力手段113における、複数のトピック番号毎の単語の生起確率θ
kvは、下記式により求めるのが好ましい。
【0085】
【数23】
但し、N
kvはある単語vにトピック番号kが割り当てられた回数、N
kはトピック番号kが割り当てられた全単語数、βはスムージング用パラメータ、Vは単語の種類数である。スムージング用パラメータとは、各トピック番号における各単語の擬似的な生起回数である。単語の種類数とは、
図4に示した歌詞データ内の歌詞に含まれるユニークな単語数である。上記演算式を用いて演算を行うと、トピックに1度も割り当てられなかった単語に対しても0より大きい確率が割り当てられ、より人間の直感に近づくという利点が得られる。
【0086】
(第2の実施の形態の効果)
第2の実施の形態によれば、任意のトピック数を決めると、トピック番号学習手段により最終的に更新された複数の歌詞データ毎のトピック番号により、複数の歌詞データ毎のトピック番号が特定される。またスイッチ変数の値学習手段により、最終的に更新されたスイッチ変数の値により、複数のトピック番号毎の単語の生起確率が生成される。複数の歌詞データ毎のトピック番号と複数のトピック番号毎の単語の生起確率が判ると、各トピック番号毎に生起確率が高い複数の単語が判る。そのためトピックと関係のある単語集合及び、無関係な単語集合を人手で規定する必要がない。また生起確率の高い複数の単語が分かると、それらの単語からトピックを定めるのに確かな情報が得られることになり、各歌詞のトピックの尤もらしい意味を求めることができる。
【0087】
[学習に使用しなかった歌詞のトピック番号推定システム]
学習に使用しなかったあるアーティストの新しい曲sの歌詞データのトピック番号を求める場合には、
図15に示すシステムの構成を採用すればよい。
図16(A)のステップST201〜211は、
図15の実施の形態をコンピュータを用いて実現する場合のソフトウエアのアルゴリズムを示している。
図16(B)は、
図16(A)のアルゴリズムの考え方を模擬的に示した図である。本実施の形態では、学習に使用しなかったあるアーティストの新しい曲sの歌詞データに含まれる単語の確率分布を作成するステップST202を実現する第1の単語確率分布作成手段17と、複数のアーティストの複数の曲の歌詞データにそれぞれ含まれる単語の確率分布を作成するステップST207を実現する第2の単語確率分布作成手段19と、第1の単語確率分布作成手段17で得た新しい曲sの歌詞データに含まれる単語の確率分布と第2の単語確率分布作成手段19で得た複数の曲の歌詞データにそれぞれ含まれる単語の確率分布との間のコサイン類似度あるいは任意の尺度の類似度をそれぞれ求めるステップST208を実現する類似度演算手段21と、複数の曲の歌詞データに対応する複数の曲の歌詞データの類似度を、トピック番号の重みとして加算してトピック番号の重み分布を作成するステップST211の一手段を実現する重み分布作成手段23とをさらに設ける。そしてトピック番号決定手段25で、決定重みが最大のトピック番号を新しい曲sの歌詞データのトピック番号とする(ステップST211の残手段)。このようにすると、学習に用いていない歌詞のトピックを簡単に決定することができる。
【0088】
(背景の単語の生起確率を作成するシステム)
図17は、学習に使用しなかったアーティストの曲sの歌詞データのトピックを定めるためのさらなる情報として背景の単語の生起確率を作成するシステムの構成を示すブロック図である。
図18(A)のステップST301〜309は、
図17の実施の形態をコンピュータを用いて実現する場合のソフトウエアのアルゴリズムを示している。
図18(B)は、
図18(A)のアルゴリズムの考え方を模擬的に示した図である。
図17において、
図1の実施の形態と同じ部分には、
図1に付した符号と同じ符号を付して説明を省略する。
【0089】
本実施の形態では、第3の単語確率分布作成手段27乃至第5の単語確率分布作成手段31と、類似度演算手段33と、生起確率分布作成手段35とを備えている。第3の単語確率分布作成手段27は、背景の単語の生起確率を求めたい学習に使用しなかったアーティストの全ての曲の歌詞データに含まれる単語の確率分布を作成する(ステップST302)。第4の単語確率分布作成手段29は、学習に使用したアーティスト毎の全ての曲の歌詞データに含まれる単語の確率分布を作成する(ST306)。第
5の単語確率分布作成手段31は、学習に使用したアーティスト毎の全ての曲の歌詞データに含まれる背景の単語の確率分布を作成する(ST306)。本実施の形態において、アーティスト毎の背景の単語分布は、
図11において全アーティストで共通の背景の単語分布を定めていたものを、アーティスト毎に背景の単語分布を定めることで求めることができる。類似度演算手段33は、第3の単語確率分布作成手段27で得た新しい曲sの歌詞データに含まれる単語の確率分布と第4の単語確率分布作成手段29で得たアーティスト毎の全ての曲の歌詞データに含まれる単語の確率分布との間のコサイン類似度あるいは任意の尺度の類似度をそれぞれ求める(ST307)。また背景の単語の生起確率分布作成手段35は、類似度演算手段33で求めたアーティスト毎の類似度を第5の単語確率分布作成手段31で得たアーティスト毎の全ての曲の歌詞データに含まれる背景の単語の確率分布にそれぞれ乗算して得た確率分布
をアーティスト毎に足し合わせて重みの和が1になるように正規化して、背景の単語の生起確率とする(ST309)。そして背景の単語の生起確率分布作成手段35で求めた生起確率を、あるアーティストの背景語の生起確率分布とする。背景語の確率分布からも、トピックの意味合いを知ることができる。
【0090】
[結果の例]
図19(A)及び(B)は、上記実施の形態で得られるトピック毎の単語の確率分布の例を示しており、
図19(C)は全ての曲の背景の単語の確率分布を示している。
図19(A)のトピック毎の単語の確率分布からは、生起確率の高い語である「君」、「夢」、「僕」、「今」などから「前向き」というトピック17の意味が定められている。
図19(B)のトピック毎の単語の確率分布からは、生起確率の高い語である「あなた」、「私」、「人」、「恋」などから「大人の女性の恋愛」というトピック19の意味が定められている。
図20(A)及び(B)は、それぞれアーティスト毎の曲の背景の単語の生起確率分布の例を示している。
図20(A)は、あるアーティストAの曲の背景の単語の生起確率分布であり、
図20(B)は、あるアーティストBの曲の背景の単語の生起確率分布である。これらを見ると、アーティスト毎の背景の単語からもアーティストの曲のトピックの傾向に関する情報を得ることができる。
【0091】
[方法及びコンピュータプログラム]
本発明を歌詞のトピック推定情報生成方法及びコンピュータプログラムとして表現すると、本発明の構成は以下のように表現することができる。
【0092】
(1)複数のアーティストごとに、曲名及び歌詞からなる複数の歌詞データを取得する歌詞データ取得ステップと、
1からK(正の整数)までの所定の数のトピック番号k(1≦k≦K)を生成するトピック番号生成ステップと、
前記複数の歌詞データ中の複数の歌詞を形態素解析により解析して複数の単語を抽出する解析ステップと、
最初に前記複数のアーティスト毎の前記複数の歌詞データにランダムまたは任意に前記トピック番号kを割り当てた後、あるアーティストaのある歌詞データS
ar以外の歌詞データでトピック番号kが割り当てられている歌詞データの数R
akと前記ある歌詞データS
arを除く前記複数のアーティストの前記複数の歌詞データの中で前記単語vにトピック番号kが割り当てられている回数N
kvとを基に前記ある歌詞データS
arのトピック番号がkである確率pを求め、該確率から前記ある歌詞データS
arのトピック番号の確率分布を作成し、次に前記トピック番号の確率分布pに対応した出現確率に偏りのある乱数生成器を用いて、前記あるアーティストaの前記ある歌詞データS
arに割り当てた前記トピック番号を更新するトピック番号更新演算を行い、前記複数のアーティスト毎の前記複数の歌詞データの全てについて前記トピック番号更新演算を実施するトピック番号更新学習演算を、予め定めた回数実行するトピック番号学習ステップと、
前記トピック番号学習ステップの学習結果から、前記複数の歌詞データ毎のトピック番号と前記トピック番号毎の単語の確率分布を特定する出力ステップとからなる歌詞のトピック推定情報生成方法。
【0093】
(2)前記複数のアーティスト毎の前記複数の歌詞データに含まれる前記複数の単語にランダムまたは任意にスイッチ変数の値を割り当てた後、前記あるアーティストaの前記複数の歌詞データ中の前記複数の単語に対して前記割り当てたスイッチ変数の値から前記ある単語v
arjに割り当てた前記スイッチ変数の値がxである確率を計算してスイッチ変数の値の確率分布λ
aを作成し、次に前記スイッチ変数の値の確率分布に対応した出現確率に偏りのある乱数生成器を用いて、前記ある単語に割り当てた前記スイッチ変数の値を更新するスイッチ変数の値更新演算を行い、前記複数のアーティスト毎の前記複数の歌詞データに含まれる前記複数の単語の全てについて前記スイッチ変数の値の更新演算を実施するスイッチ変数の値更新学習演算を予め定めた回数実行するスイッチ変数の値学習ステップを更に備えていることを特徴とする(1)に記載の歌詞のトピック推定情報生成方法。
【0094】
(3)前記トピック番号学習ステップにおいて、前記トピック番号の確率分布を作成する際には、前記あるアーティストの前記ある歌詞データに割り当てたトピック番号以外の、全ての前記複数の歌詞データに割り当てたトピック番号が正しいと仮定していることを特徴とする(1)に記載の歌詞のトピック推定情報生成方法。
【0095】
(4)前記スイッチ変数の値学習ステップは、前記スイッチ変数の値更新演算を行う際には、前記あるアーティストの前記ある歌詞データの前記複数の単語中のある単語に割り当てたスイッチ変数x以外の、全ての単語に割り当てたスイッチ変数の値が正しいと仮定していることを特徴とする
(2)に記載の歌詞のトピック推定情報生成方法。
【0096】
(5)前記トピック番号学習ステップは、
前記トピック番号の確率分布を作成する際に、前記あるアーティストaの前記ある歌詞データS
ar以外の歌詞データでトピック番号kが割り当てられている歌詞データの数R
akを基に、前記ある歌詞データS
arのトピック番号がkである第1の確率p
1を計算し、
前記ある歌詞データS
arを除く前記複数のアーティストの前記複数の歌詞データの中で前記単語vにトピック番号kが割り当てられている回数N
kvを基に、前記ある歌詞データS
arのトピック番号がkである第2の確率p
2を計算し、
前記第1の確率p
1と前記第2の確率p
2から前記ある歌詞データS
arのトピック番号がkである確率pを計算し、
これらの計算を全てのトピック番号に関して実施して前記ある歌詞データS
arの前記トピック番号が1〜Kである確率の和が1になるように正規化して前記ある歌詞データS
arの前記トピック番号の確率分布とすることを特徴とする(1)に記載の歌詞のトピック推定情報生成方法。
【0097】
(6)前記出力ステップは、前記第2の確率p
2を求める際の前記回数N
kvから、各トピック番号毎の単語の確率分布を出力するように構成されている(1)に記載の歌詞のトピック推定情報生成方法。
【0098】
(7)前記出力ステップにおける、前記トピック番号kの単語vの生起確率θ
kvは、下記式により求められ、
θ
kv=(N
kv+β)/(N
k+β|V|)
但し、N
kvはある単語vにトピック番号kが割り当てられた回数、N
kはトピック番号kが割り当てられた全単語数、βはスムージング用パラメータ、|V|は単語の種類数である(6)に記載の歌詞のトピック推定情報生成方法。
【0099】
(8)前記スイッチ変数の値学習ステップは、
前記あるアーティストaの全曲の歌詞データ中で前記スイッチ変数の値として0が割り当てられている単語の数N
aoを基に、前記単語v
arj のスイッチ変数の値が0である第3の確率p
3を計算し、
前記単語v
arjを含む歌詞と同一の前記トピック番号z
arが割り当てられた全アーティストの全曲の中で前記単語v
arjに前記スイッチ変数の値として0が割り当てられている回数Nz
arv
arjを基に、前記単語v
arjのスイッチ変数の値が0である第4の確率p
4を計算し、
前記第3の確率p
3と第4の確率p
4から前記スイッチ変数が0である第5の確率p
5を計算し、
前記あるアーティストの前記複数の歌詞データの中で前スイッチ変数の値として1が割り当てられている回数N
a1を基に、前記単語v
arjの前記スイッチ変数の値が1である第6の確率p
6を計算し、
前記複数のアーティストの前記複数の歌詞データの中で前記単語v
arjに前記スイッチ変数の値として1が割り当てられている回数N
1varjを基に、前記単語v
arjの前記スイッチ変数の値が1である第7の確率p
7を計算し、
前記第6の確率p
6と第7の確率p
7から前記スイッチ変数が1である第8の確率p
8を計算し、
前記第6の確率p
6と第7の確率p
7から前記単語v
arjの前記スイッチ変数の値が0である確率と1である確率の和が1になるように正規化しての前記スイッチ変数の値の確率分布とする(2)に記載の歌詞のトピック推定情報生成方法。
【0100】
(9)における、前記複数の歌詞データ毎のトピック番号は、前記トピック番号学習ステップにおいて前記トピック番号更新学習演算を予め定めた回数実行して最後に前記複数の歌詞データに割り当てられたトピック番号である(1)に記載の歌詞のトピック推定情報生成方法。
【0101】
(10)学習に使用しなかったあるアーティストの新しい曲sの歌詞データに含まれる単語の確率分布を作成する第1の単語確率分布作成ステップと、
前記複数のアーティストの前記複数の曲の歌詞データにそれぞれ含まれる単語の確率分布を作成する第2の単語確率分布作成ステップと、
前記第1の単語確率分布作成ステップで得た前記新しい曲sの歌詞データに含まれる単語の確率分布と前記前記第2の単語確率分布作成ステップで得た前記複数の曲の歌詞データにそれぞれ含まれる単語の確率分布との間の類似度をそれぞれ求める類似度演算ステップと、
前記複数の曲の歌詞データに対応する前記複数の曲の歌詞データの類似度を、前記トピック番号の重みとして加算して前記トピック番号の重み分布を作成する重み分布作成ステップと、
前記重みが最大のトピック番号を前記新しい曲sの歌詞データのトピック番号とするトピック番号決定ステップとを更に備えていることを特徴とする(1)または(2)に記載の歌詞のトピック推定情報生成方法。
【0102】
(11)背景の単語の生起確率を求めたい学習に使用しなかったあるアーティストaの全ての曲の歌詞データに含まれる単語の確率分布を作成する第3の単語確率分布作成ステップと、
前記アーティスト毎の全ての曲の歌詞データに含まれる単語の確率分布を作成する第4の単語確率分布作成ステップと、
前記アーティスト毎の全ての曲の歌詞データに含まれる背景の単語の確率分布を作成する第5の単語確率分布作成ステップと、
前記第3の単語確率分布作成ステップで得た前記ある歌詞データに含まれる単語の確率分布と前記第4の単語確率分布作成ステップで得た前記アーティスト毎の前記全ての曲の歌詞データに含まれる単語の確率分布との間の類似度をそれぞれ求める類似度演算ステップと、
前記類似度演算ステップで求めた前記アーティスト毎の前記類似度を前記第5の単語確率分布作成ステップで得た前記アーティスト毎の全ての曲の歌詞データに含まれる背景の単語の確率分布にそれぞれ乗算して得た確率分布を前記アーティスト毎に足し合わせて重みの和が1になるように正規化して、背景の単語の生起確率とする背景の単語の生起確率作成ステップとを更に具備することを特徴とする(10)に記載の歌詞のトピック推定情報生成方法。
【0103】
(12)上記(1)乃至(11)に記載の歌詞のトピック推定情報生成方法におけるステップを、コンピュータを用いて実現するための歌詞のトピック推定情報生成用プログラム。
【0104】
(13)コンピュータ読み取り可能な記憶媒体に記憶された
(12)に記載の歌詞のトピック推定情報生成用コンピュータプログラム。