けっこう厄介なタスクです。考えるべきことはたくさんあります。
- 文章から「性格」が分析できるという仮説が妥当かどうか、そもそもよくわからない
ある程度はできるでしょうが、そんな優秀なものでもないだろうな、というのはやる前から予想できます。意図的に悪人っぽい文章を書く、とか人間にとっては普通にできることなので・・・
- 文章のどんなところに「性格」が出てくるのかまったく不明
とりあえずBag of Wordsとかで特徴量を作ってしまえば、いくつかの特徴(BoWのベクトルの特定の次元に対応する特徴量)は「性格」と相関を持つだろう、ということはある程度は期待できます。ただ、そうでもない特徴もたくさんあり、それは削ぎ落としておかないと困ったことになりそうです。
- 機械学習(特に深層学習)の力には頼れない
教師ラベル付きデータを4,5桁集められれば使えますが、今回は頑張って3桁くらいでしょうから、役に立ちそうにありません。特徴抽出の方で頑張らないと、「性格」以外のものにオーバーフィットしちゃう展開が容易に想像できます。そして、どちらにせよ過学習の問題は出てくるので、単純なモデルを使った方が無難そうです。根本的に精度は上がらないタスクでしょうし。
- そもそも「性格」をどう表現し、どうデータに対応付けるのか
表現の方はカテゴリデータにしたとしましょう。そうすると「性格ラベル」が紐付いたテキストが(少なくとも)3桁必要になります。「勝手に『この文章の書き手はこんな性格だろう』とみなして貼る」という手もありますが、ちょっと杜撰な感じがします。「アンケート調査などをする」のが正攻法だと思いますが、手間もコストもかかるので、やりたくないでしょう。方法は他にも思いつきますが、一長一短な感じなので書かないでおきます。
長々と書きましたが、打つ手としてはとにかくデータを作って、教科書通り判別分析に入れてみる、くらいしかないのかも。
追記
ワトソンはテキスト側はGloVeで埋め込み、性格側は心理学的なモデルに基づいてデータを作り、テキストから性格を予想する機械学習をしている、らしいです。
サービスを支えるサイエンス
相関0.2って・・・