すこし間が空いてしまいましたが、3回シリーズの最後です。Part 1 では「The Beatles」の歌詞の感情分析を、Part 2 では「Queen」の歌詞の感情分析を行ってみました。今回のPart 3では、単語選択分析(Term Selection) という機能を用い、2つのバンドの歌詞に含まれる単語から、どちらのバンドの楽曲なのかを予測するモデルを作成し、それぞれのバンドを特徴づける単語(キーワード)を調べてみます。
単語選択分析(Term Selection) とは
JMPでは「テキストエクスプローラ」(Text Explorer)のプラットフォームによりテキスト分析ができますが、JMP Proでは、このプラットフォームのオプションとして、「単語選択分析」(Term Selection)を選択できます。
「単語選択分析」では、応答変数(Y)があったとき、テキスト分析により抽出した単語と、応答変数との関係をモデリングすることができ、応答変数を説明する単語は何かといったことを調べることができます。
今回の例では、以下のような「The Beatles」と「Queen」の曲名、歌詞を一つにまとめたデータテーブルを作成します。
このとき、応答変数(Y)、予測変数(X)は以下のとおりです。
応答変数(Y) : 「Band」(その楽曲がBeatlesなのかQueenなのかを分ける変数)
予測変数(X): 「Lyrics」から抽出された単語群
リフレインを考慮すべきか否か
予測変数(X)について、もう少し詳細に説明します。
テキストから単語を抽出した際、文書単語行列(DTM; Document - Term Matrix) という、単語を行列形式にまとめることができます。
例えば、下図 方法A. の166行目にあるBeatlesの曲「You Like Me Too Much」の歌詞には、"know", "time", "just" といった単語が(少なくとも1つ)含まれているので、変数「know Binary」、「time Binary」、「just Binary」には値として"1"を、"love", "oh", "yeah" といった単語は含まれていないため、「love Binary」、「oh Binary」、「yeah Binary」には値として"0" を付与しています。
方法A. 2値(1/0) の文書単語行列
このように単語を抽出すると、"データの行×単語の数" の行列(この例では、値は1または0)ができ、実際の予測変数は、この文書単語行列における単語群です。
上記は1/0の値で文書単語行列を構成しましたが、次の 方法B. のように、その文書に特定の単語が何回出現するかといった"頻度"で構成することも考えられます。
方法B. 単語出現頻度の文書単語行列
今までの記事で、テキスト分析において歌詞はリフレイン(同じ単語を何度も繰り返し用いる)の影響が大きいことを述べました。そのため、上にある方法 Bのように単語の出現頻度を考えると、リフレインの影響を大きく受けます。
そこで、モデリングする際は、方法Aと方法Bのどちらの方法でもモデリングしてみて、どちらのモデルが良いかを比較します。
方法A. 2値(1/0) の文書単語行列 ⇒ リフレインの影響を受けない
方法B. 単語出現頻度の文書単語行列 ⇒ リフレインの影響を受ける
単語選択分析のレポート
上記の点を踏まえて、「単語選択分析」を使ってみます。オプション [Term Selection] を選択すると、次のような設定アウトラインが表示されます。
各設定の詳細
「Choose Response Column」: 応答変数(Y) を指定します。この例では「Band」(Beatles/Queen) です。
「Target Level」:応答変数におけるイベント水準を指定します。ここでは"Queen" を指定し、Queenを基準として考えることにします。YはBeatles, Queenの2つの値のみとるので、Yに二項分布を仮定したロジスティック回帰のモデルをあてはめます。
「Model Settings」: モデリングの方法と検証法を指定します。デフォルトでは、推定法としてElastic Net(弾性ネット)、検証法として AICc に指定されているので、この例ではデフォルト設定を用います。
「Term Settings」: 前節で示した文書単語行列について、どの方法を用いるかの指定です。デフォルトではBinary(1/0) です。さらに文書単語行列で用いる単語の最大数を指定でき、デフォルトでは400となっています。すなわち、抽出される単語のうち、頻度が高い上位400の単語のみを予測変数として用います。
右上の[Run] ボタンをクリックすると、指定した設定に対するモデリングのレポートが表示されます。
下図のレポート1で結果を見ていきます。
レポート1 「A Hard Days Night」(Beatles): 正しく予測できている
Elastic Netを使ってロジスティック回帰モデルの変数選択をした結果が示されます。今回の例では、400個の予測変数のうち、予測に役立つ変数が49個選択され、レポート右上には、選択された変数(Term)に対する回帰係数(Coefficient) が示されています。
係数が正である場合はオレンジ色の棒、負である場合は青色の棒が示されていますが、ここではQueenをイベントの水準に指定しているため、正の値が大きいほど Queenの水準を予測するのに大きく寄与する単語であり、負の値が大きいほどBeatlesの水準を予測するのに大きく寄与する単語です。
レポート左下には、「A Hard Days Night」(Beatlesの曲)の歌詞について、Beatlesと予測するのに寄与する単語をオレンジ色、Queenと予測するのに寄与する単語が青色で塗られています。歌詞では "just", "give", "days" とBeatlesに寄与している単語が多く使われていることがわかります。そのため、この歌詞がどちらのバンドの曲が分からなかったとしても、just", "give", "days"などが使われているので Beatles の曲だなと予測できるのです。
より正確には、この歌詞から、Queenと予測する確率、Beatlesと予測する確率を求めて判断します。Queenの予測確率は、上記で求めたロジスティック回帰の回帰係数から、Logist関数( Logist(x) = 1/(1 + Exp(x)) ) を使い、次の式で求められます。
モデリングのレポートを再掲すると、以下の "Probability of Queen" の列に、各楽曲に関して、その楽曲をQueenと予測される確率が表示されており、「A Hard Days Night」の場合は 32.7% です。
ということは、逆に Beatlesと予測される確率は、100%から引き算して 67.3%となります。これより、
A Hard Days Night の歌詞に含まれる単語から、
Queenの楽曲だと予測する確率:32.7%
Beatlesの楽曲だと予測する確率:67.3%
なので、確率の大きい Beatlesの楽曲と予測する。
となります。つまり、実際の値(実測値)と予測した値(予測値)が一致しています。
あと2つの楽曲についてレポートを見ていきます(レポート2、レポート3)。
レポート2 「Bohemian Rhapsody」(Queen): 正しく予測できている
Queenの代表曲「Bohemian Rhapsody」は、88.9%と高い確率で Queenの楽曲だと予測できています。
レポート3 「Hey Jude」(Beatles): 誤って"Queen"と予測している
Beatlesの代表曲「Hey Jude」は、56.3%の確率でQueenだと予測していますので、予測が間違っています。
このように予測が当たる曲もあれば、当たらない曲もあります。予測モデルを作成する際、実測と予測が異なる割合を示す誤判別率(Misclassification Rate)は予測能力を示す指標として用いられ、この値が小さいほど予測能力が高いことを示します。
モデルの比較
前節では、文書単語行列として2値(1/0) を使ってモデリングしましたが、単語の頻度を使って同様にモデリングした場合と比較してみるとどうなるのでしょうか。
単語選択分析では、「Summary」のレポートとして、複数のモデルをあてはめたとき、以下のようなモデルの予測能力を比較するレポートが表示されます。Model 1は2値(Binary)、Model 2は単語の頻度(Frequency) のときです。
検証指標として使ったAICcや、Generalized RSquare(一般化R2乗、値が大きいほうが良い)、AUC(曲面下面積、値が大きい方が良い)、Misclassification Rate(誤判別率、値が小さいほど良い) をみると、どの指標でも Model 1の2値が良いことがわかります。
この結果から、単語の頻度を説明変数とするより、その単語が出現したか(=1)/しなかったか(=0) を説明変数にしたモデルの方が、予測能力が高いことがわかります。
まとめ
ここまで説明した「単語選択分析」の結果を要約します。
・楽曲の歌詞に含まれる単語から、その楽曲はBeatlesなのかQueenなのかを予測するモデルを作成した。
・説明変数に用いる文書単語行列として、次の2種類の方法についてモデリングし、モデルの予測能力を比較した。
方法A. 歌詞に該当する単語が含まれるか否かを示す :2値
方法B. 歌詞に該当する単語が何回出現するかを示す:頻度
⇒ リフレインを考慮しない 方法A(2値)の予測能力が高いことがわかった。そのため以降、方法Aでモデリングした結果を用いた。
・予測に大きく影響している49個の単語が抽出された。これらの単語に対して推定された回帰係数をもとに各楽曲の予測確率を求め、予測される楽曲(予測値)と実際の楽曲(実測値)を求めたところ、誤判別率は8.4%であった。他の予測能力を示す指標であるR2乗やAUCの値ともに考えると良い予測モデルが作成できたと考えられる。
⇒ 選ばれた49個の単語の情報だけで、どちらの楽曲なのかを91.6%の精度で当てることができた。
最後に、選ばれた49個の単語(Term)とそれに対する回帰係数(Coefficient)をグラフビルダーで描いた図を示します。 オレンジ色がQueenの予測に寄与する単語、水色がBeatlesの予測に寄与する単語です。
正の値が最も大きくなっている"blow" は、Queenの歌詞を特徴づける単語です。実際に、解析対象とした楽曲の中では、Queenのさまざまな曲にblowが使われていますが、Beatlesの楽曲には使われていないことから、この単語の係数が大きくなっていることの説明付けができます。
本記事が、「単語選択分析」を使ってみるきっかけになれば幸いです。
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.