テキスト自体を解析するには自然言語プロセッサを使用する必要があると思いますが、ユーザーが書いたテキストに基づいてユーザーの気分を検出するアルゴリズムについて、どのような提案がありますか?非常に正確だとは思いませんが、それでも興味があります。
編集:私は決して言語学や自然言語処理の専門家ではないので、この質問が一般的すぎるか愚かであるかどうかをお詫びします。
これは、 感情分析 と呼ばれる自然言語処理の領域の基礎です。あなたの質問は一般的ですが、それは確かに愚かではありません-この種の調査は、たとえば製品レビューのテキストについてAmazonによって行われます。
あなたがこれについて真剣に考えているなら、簡単なバージョンは次の方法で達成できます-
ポジティブ/ネガティブな感情のコーパスを取得します。これがプロのプロジェクトである場合は、時間をかけて手動でコーパスに注釈を付けることができますが、急いでいる場合や最初にこれを実験したい場合は、 感情極性コーパス を確認することをお勧めします= BoPangとLillianLeeの調査から。そのコーパスを使用する際の問題は、ドメインに合わせて調整されていないことです(具体的には、コーパスは映画レビューを使用します)が、それでも適用できるはずです。
データセットをポジティブまたはネガティブのいずれかの文に分割します。感情極性コーパスの場合、各レビューをその複合文に分割してから、全体的な感情極性タグ(正または負)をそれらのすべての文に適用できます。このコーパスを2つの部分に分割します。90%はトレーニング用、10%はテスト用です。 Wekaを使用している場合は、コーパスの分割を処理できます。
機械学習アルゴリズム(SVM、Naive Bayes、Maximum Entropyなど)をWordレベルのトレーニングコーパスに適用します。このモデルは bag of words model と呼ばれ、文を構成する単語として表現しているだけです。これは、多くのスパムフィルターが実行されているのと同じモデルです。機械学習アルゴリズムの優れた入門書として、 Weka というアプリケーションがあります。このアプリケーションは、これらのアルゴリズムの範囲を実装し、それらを操作するためのGUIを提供します。次に、このモデルを使用してテストコーパスを分類しようとしたときに発生したエラーから、機械学習モデルのパフォーマンスをテストできます。
この機械学習アルゴリズムをユーザーの投稿に適用します。ユーザーの投稿ごとに、投稿を文に分割し、機械学習モデルを使用して分類します。
そうです、あなたがこれについて真剣に考えているなら、それは達成可能です-計算言語学の過去の経験がなくても。かなりの作業量になりますが、Wordベースのモデルでも良好な結果を得ることができます。
さらにサポートが必要な場合は、お気軽にご連絡ください。NLPに関心のある他のユーザーをサポートさせていただきます=]
小さなメモ-
編集
私が話していたBoPangとLillianLee Sentiment Polarityコーパスを使用して、実際には 感情分析に関するチュートリアル を持っているLingPipeを発見しました。 Javaを使用する場合、これは使用するのに優れたツールである可能性があり、そうでない場合でも、上記で説明したすべての手順を実行します。
入力したテキストに基づいてユーザーの気分を判断することは間違いなく可能ですが、それは些細なことではありません。私が考えることができること:
テキスト分析の進歩 または 複数の証拠ソースを組み合わせてブログのムードを決定する を確認することをお勧めします。
最後に、書かれたテキストは通常、実際よりも否定的であると認識されていることに注意してください。これは、一例として、企業の電子メール通信に共通する問題です。
私はこれを真剣に受け止めているとは信じられません...一次元のムード空間を想定しています:
これについて考えれば考えるほど、これらの記号の多くが一般的に極端な気分を示していることは明らかですが、気分の種類が常に明確であるとは限りません。
フォントをサポートしている場合、太字の赤いテキストはおそらく怒っているユーザーです。蝶のクリップアートが付いた緑の通常サイズのテキストは幸せなものです。
私の記憶はこのテーマについては良くありませんが、テキストの文法構造と全体的なトーンについていくつかの研究を見たと思います。それはまた、短い単語や感情表現の単語と同じくらい単純かもしれません(まあ、罵倒語はかなり明白です)。
編集:最初に回答した人の投稿はほぼ同じでした。短い文については確かにいくつかの深刻な考えがあるかもしれません。
これは深刻な問題であるというojblassに同意します。
気分の分類は現在、音声認識領域でホットなトピックです。考えてみれば、対話型音声応答(IVR)アプリケーションは、怒っている顧客を落ち着いた顧客とはまったく異なる方法で処理する必要があります。怒っている人々は、適切な経験とトレーニングを受けた人間のオペレーターにすばやくルーティングする必要があります。ボーカルトーンは感情のかなり信頼できる指標であり、企業がこれを機能させることを熱望するほど実用的です。グーグルの「スピーチ感情認識」、またはこれを読んでください 記事 詳細をご覧ください。
WebベースのGUIでも状況は変わりません。 cletusのコメントを振り返ると、テキストと音声の感情検出の類似性は興味深いものです。人がCAPITALSと入力すると、音声インターフェイスを使用して声の音量とピッチが上がったかのように、「叫んでいる」と言われます。タイプされた冒とく的な表現の検出は、音声システムにおける冒とく的な表現の「キーワードスポッティング」に類似しています。人が動揺している場合は、GUIまたは音声ユーザーインターフェイス(VUI)のいずれかを使用してさらにエラーが発生し、人間にルーティングできます。
ここには「マルチモーダル」感情検出研究領域があります。 (IBM/Motorola/Opera XHTML + Voice Profile プロトタイプの実装に沿って)話すこともできるWebインターフェースを想像してみてください。感情の検出は、音声と視覚入力モダリティからの手がかりの組み合わせに基づくことができます。
気分と行動の分析は非常に深刻な科学です。質問をあざける他の答えにもかかわらず、法執行機関は何年もの間気分の分類を調査してきました。私が聞いたコンピューターでの使用は、一般的に、より多くのコンテキスト(タイミング情報、音声パターン、チャネル変更の速度)がありました。怒っているグループと怒っていないグループの2つの既知のグループからのサンプルを使用してニューラルネットワークをトレーニングすることで、ユーザーが特定の気分にあるかどうかをある程度の成功で判断できると思います。あなたの努力で頑張ってください。
私のアルゴリズムはかなり単純だと思いますが、テキストからスミリックを計算してみませんか:) vs :(
明らかに、テキスト「:) :) :) :)」は幸せなユーザーに解決されますが、「:( :( :(」は確かに悲しいユーザーに解決されます。お楽しみください!
ファジー論理で十分だと思います。いずれにせよ、ユーザーの気分を決定するいくつかのルールから始めて、「エンジン」を拡張し、より正確で洗練されたものと組み合わせるのは非常に簡単です。
ユーザーが次の文字を入力した場合、彼は非常に怒っています。最初に落ち着かせてください...
`K`
`k`
はい。
あなたがそれをすることができるかどうかは別の話です。問題は最初はAI完全であるように思われます。
さて、キーストロークのタイミングがあれば、それを理解できるはずです。