第7章: 機械学習#

本章では、Stanford Sentiment Treebank (SST) データセットを用い、評判分析器(ポジネガ分類器)を構築する。ここでは処理を簡略化するため、General Language Understanding Evaluation (GLUE) ベンチマークで配布されているSSTデータセットを用いる。

60. データの入手・整形#

GLUEのウェブサイトからSST-2データセットを取得せよ。学習データ(train.tsv)と検証データ(dev.tsv)のぞれぞれについて、ポジティブ (1) とネガティブ (0) の事例数をカウントせよ。

61. 特徴ベクトル#

Bag of Words (BoW) に基づき、学習データ(train.tsv)および検証データ(dev.tsv)のテキストを特徴ベクトルに変換したい。ここで、ある事例のテキストの特徴ベクトルは、テキスト中に含まれる単語(スペース区切りのトークン)の出現頻度で構成する。例えば、”too loud , too goofy”というテキストに対応する特徴ベクトルは、以下のような辞書オブジェクトで表現される。

{'too': 2, 'loud': 1, ',': 1, 'goofy': 1}

各事例はテキスト、特徴ベクトル、ラベルを格納した辞書オブジェクトでまとめておく。例えば、先ほどの”too loud , too goofy”に対してラベル”0”(ネガティブ)が付与された事例は、以下のオブジェクトで表現される。

{'text': 'too loud , too goofy', 'label': '0', 'feature': {'too': 2, 'loud': 1, ',': 1, 'goofy': 1}}

学習データと検証データの各事例を上記のような辞書オブジェクトに変換したうえで、学習データと検証データのそれぞれを、辞書オブジェクトのリストとして表現せよ。さらに、学習データの最初の事例について、正しく特徴ベクトルに変換できたか、目視で確認せよ。

62. 学習#

61で構築した学習データの特徴ベクトルを用いて、ロジスティック回帰モデルを学習せよ。

63. 予測#

学習したロジスティック回帰モデルを用い、検証データの先頭の事例のラベル(ポジネガ)を予測せよ。また、予測されたラベルが検証データで付与されていたラベルと一致しているか、確認せよ。

64. 条件付き確率#

学習したロジスティック回帰モデルを用い、検証データの先頭の事例を各ラベル(ポジネガ)に分類するときの条件付き確率を求めよ。

65. テキストのポジネガの予測#

与えられたテキストのポジネガを予測するプログラムを実装せよ。例えば、テキストとして”the worst movie I ‘ve ever seen”を与え、ロジスティック回帰モデルの予測結果を確認せよ。

66. 混同行列の作成#

学習したロジスティック回帰モデルの検証データにおける混同行列(confusion matrix)を求めよ。

67. 精度の計測#

学習したロジスティック回帰モデルの正解率、適合率、再現率、F1スコアを、学習データおよび検証データ上で計測せよ。

68. 特徴量の重みの確認#

学習したロジスティック回帰モデルの中で、重みの高い特徴量トップ20と、重みの低い特徴量トップ20を確認せよ。

69. 正則化パラメータの変更#

ロジスティック回帰モデルを学習するとき、正則化の係数(ハイパーパラメータ)を調整することで、学習時の適合度合いを制御できる。正則化の係数を変化させながらロジスティック回帰モデルを学習し、検証データ上の正解率を求めよ。実験の結果は、正則化パラメータを横軸、正解率を縦軸としたグラフにまとめよ。