とりとめのないこと2024/03/05 自己フィードバック式文章改善法を思いついた
概要
元来、僕は人間嫌いの傾向にあり、創作物全般、陰鬱だ。これを無理やり改善するには、じぶんで解析するしかない。
ところで普段、FFTやMEM等を用いて構造力学的観点から、構造物にまつわる解析を行うことがある。そこで、最大エントロピー法を用いてこれまでの創作物について、ラベルと重み付けを一文節ごとに行い、実際にテストし、解析してみることにした。
サンプリングテキストデータについて
実験に用いるサンプルデータは、三年前、二年前、一年前、今年、から10000字以内のものを用いる。
感情解析における感情辞書や機械学習は別途考慮中。
手法
最大エントロピー法で文章の感情解析を行う手法は以下とする。
テキスト「今日は雨だが心は晴れやかだ」を形態素解析して単語に分割すると、$${x_1, x_2, \dots, x_9}$$という9つの変数になる。
分割した単語に対して、感情の種類や極性を表すタグを付与すると、$${y_1, y_2, \dots, y_9}$$という9つの変数になる。タグの付与方法は、別途、感情辞書や機械学習などを用いるとする。
付与されたタグをもとに、テキスト全体の感情を推定すると、$${z}$$という変数になる。推定方法は、最大エントロピー原理に基づいて、タグの出現頻度や組み合わせなどから最も不確かさの少ない確率分布を求める。
具体的には、以下のような式が得られる。
$${p(z|x_1, x_2, \dots, x_9) = \frac{1}{Z} \exp \left( \sum_{i=1}^9 \lambda_i f_i(x_i, z) \right)}$$
$${Z = \sum_{z'} \exp \left( \sum_{i=1}^9 \lambda_i f_i(x_i, z') \right)}$$
$${\lambda_i}$$はパラメータ、$${f_i(x_i, z)}$$は素性関数。
$${p(z|x_1, x_2, \dots, x_9)}$$はテキスト全体の感情$${z}$$の条件付き確率を表す。
$${Z}$$は正規化定数で、確率の総和が1になるように調整する。
$${\lambda_i}$$と$${f_i(x_i, z)}$$は、訓練データや最尤推定などで決める。
$${f_i(x_i, z)}$$は、単語$${x_i}$$と感情$${z}$$の関係を表す関数で、例えば、$${f_i(x_i, z) = 1}$$(単語$${x_i}$$が感情$${z}$$を表すとき)や$${f_i(x_i, z) = 0}$$(単語$${x_i}$$が感情$${z}$$を表さないとき)などの値をとる。
多分やらない。