私は感情分析に非常に慣れていません。与えられた単語や文が肯定的か否定的かを判断するにはどうすればよいですか。Javaで実装する必要があります。lingpipe、rapidminer のチュートリアルなどを読んでみましたが、よくわかりません。彼らの例では、多くのデータを使用しています。私の場合、あまりデータがありません。私が持っているのは、単語または文だけです。私もstackoverflowからの質問を読もうとしました。しかし、彼らは私をあまり助けません。前もって感謝します。
4 に答える
コンピューターは、人間がポジティブまたはネガティブとラベル付けした例からそれを学ばない限り、感情のような人間のことを知りません。
機械学習の目標は、実際には、前の例の経験的データに基づいて、新しい例について最も情報に基づいた決定を下すことです。統計的には、データが多いほど良いです。
文の感情を「判断」するには、感情のラベルが付けられたいくつかの文についてモデルまたは分類子をトレーニングする必要があります。分類子は、ラベルのない文を入力として受け取り、正または負のラベルを出力します。
まず、トレーニングの例を入手します。パブリックドメインでラベル付けされた感情データを見つけることができると確信しています。最高のデータセットリポジトリの1つは、UCIKDDアーカイブです。次に、データに基づいて分類器をトレーニングして、新しい例を判断できます。利用可能な学習アルゴリズムリソースのホストがあります。私のお気に入りは、分類子をJavaコードとして出力できるjBoostと、視覚的な分析に適したRapidminerです。
以前のデータからトレーニングされた既存の Web サービスを使用できます。例えば:
Java と Android 用のライブラリがあります。
(開示:私はこのAPIを構築する会社で働いています)
Wordnetを使用して、単語と「良い」または「悪い」単語との間の「距離」計算に基づいて単語の意味方向を検索することができます。距離が短いほど、単語のSOが得られます。結果は少し弱いようですが、このアプローチには多くのデータ(または時間)は必要ありません。
これは実際にはプログラミング関連ではなく (神経言語プログラミングはプログラミングではありません)、一般的に信頼できる解決策はありません。
私の最善のアイデアは、Google の「Pigeon」Rank のように機能させることです。つまり、単語や文章を収集し、肯定的か否定的かにかかわらず人間のフィードバックを収集し、このデータとベイジアン マッチングを使用します。