Pythonのライブラリで文章の感情分析ができるということなのでやってみました。ただPythonはあまり得意ではないので全体をPythonで書きたくないです。他の言語でも利用できるようなAPIの部分だけPythonでつくります。

参考にしたページ:AIで文章から感情分析するアプリの作成 – Qiita

日本語文章の文全体を感情分析する

まずはPythonでプログラミング。以下をpipコマンドでインストールします。

試しに以下のコードを実行してみるとうまくいきません。なぜかlibmecab.dllがC:\Users\<ユーザー名>\AppData\Roaming\Python\lib\site-packages\fugashiにインストールされてしまうのです。これに関してはlibmecab.dllをC:\Users\<ユーザー名>\AppData\Roaming\Python\Python39\site-packages\fugashiにコピーすることで解決します。

libmecab.dllを適切な位置にコピーしたら以下のコードを実行してみましょう。「C#をつかえば簡単にプログラミングができます。さあ、あなたもLet’s C#」だと「ポジティブ:95.65」という結果になります。

文字数には上限があり、512文字です。

app.py

一文ごとに感情分析する

少し機能を拡張して文全体と一文ごとの両方で感情分析できるようにします。

templatesフォルダを作成してなかにindex.htmlをつくります。

templates\index.html

テキストエリアにある文字列を「。」で区切って配列に変換します。また改行がある部分も「。」があるものと見なしています。そして一文ごとの評価と文全体の評価をtableタグで返します。

app.py

APIをつくる

次に他のアプリからでも使えるようにAPIにして別のページから呼び出せるようにします。APIはJson形式で文をうけとり、文を「。」で配列に分割します。そして結果をJson形式で返します。そのときクロスオリジン要求をブロックされないようにする必要があります。そのために flask_cors をインストールしておきます。

pip install flask_cors

ではAPI部分のソースコードを示します。

app.py

APIを使う

次にこのAPIを使って文の感情分析をできるようにします。

以下のようなHTMLを作成します。

JavaScriptで以下のような処理をおこないます。

入力されたデータと解析結果をクリアします。

app.js

[解析]ボタンが押されたらデータをJson形式に変換してpostします。そして解析結果をJson形式でうけとります。

app.js

データが返されたらtableタグで結果を表示します。

app.js

あとはこれをサーバー上に公開するだけ♪と思っていたのですが、問題発生!
けっこうメモリーを消費してくれるのです。

あわててアプリを停止させましたがメモリ使用量がさがってくれません(いつもは2GB前後)。

しかたなく関連するライブラリをアンインストールすることにしました。それと同時に使用メモリが急激にさがっています。

専用サーバーならやりたい放題しても誰からも文句はいわれませんが、共用サーバーなのでしかたないです。実験するときはローカルで実験してください。