Twitter感情分析:ポジティブクラスとネガティブクラスのみのトレーニングにもかかわらず、ニュートラルツイートを検出する


7

機械学習に関しては、私は初心者です。Pythonのscikit-learnライブラリを使用して、さまざまな教師あり学習アルゴリズムを分析することで、実際に体験してみます。これらのさまざまなアルゴリズムを使用した感情分析には、160万のツイートのsentiment140データセットを使用しています。

ばかげた質問かどうかはわかりませんが、2つのクラス(ポジティブとネガティブ)だけをトレーニングした場合、3つのクラス(ポジティブ、ネガティブ、ニュートラル)に分類できるかどうか疑問に思いました。sentiment140トレーニングセットは、合計で1.6Mツイートの2つのクラスだけ(正と負)で構成されていますが、それは私が考えるようになったので、そのテスト・セットは、三つのクラス(正、負と中立)を超える500件のツイートで構成されています。

これは可能ですか?はいの場合、ニュートラルなツイートを特定する方法を教えてください。直感的に、各クラスのテストセットで各分類されたツイートの条件付き確率を(predict_probaを使用して)見つけ、それがポジティブクラスとネガティブクラスの両方で特定のしきい値(たとえば0.7未満)を下回っている場合はニュートラルかどうかを判断できます。これは正しい方法ですか?


sentiment 140 training set2つのクラスのみで構成される場合、トレーニングセットは3つのクラスで構成されます。その不明確。
yazhi

確かにそうです。リンクからコーパスをダウンロードして、自分の目で確かめてください。
tedghosh

@tedghosh:あなたの文(blueSerpentが引用したもの)に誤りはありますか?トレーニングセットを2つの異なる互換性のない方法で2回説明するので、それは意味がありません。2つ目は実際にテストセットですか?
Neil Slater

@NeilSlaterおっと申し訳ありませんが、今私の間違いを認識して質問を編集しました。そうです、2つ目はテストセット(500ツイート)です。
tedghosh 2016

回答:


3

迅速な(そしてあまり満足のいくものではない)答えは「依存する」です。具体的には、人間の感情の基礎となる概念モデルが何であるか、そしてそれが口頭/書面の行動でどのように現れるかに依存します。

何があなたの正と負の価数との関係で中立性の特性は?文書は、ポジティブとネガティブの間にニュートラルが挟まれた、ある種の量的スケールに置くことができますか?この位置は、少なくとも単一の原子価状態を表す単純なフレーズで言語的にサポートされています解決策は { 素晴らしい > 良い > 許容できる > 悪い > 恐ろしい }です)。

@dmbポスターが示唆しているように、これが概念モデルである場合、中立はpos / negの中間にあり、必要なのは最適な境界/カットオフを決定することだけであると合理的に主張するかもしれません。したがって、分類器がニュートラルケースでトレーニングされていなくても、テストケースにニュートラルを割り当てることができます(ただし、これらのカットオフを決定する何らかの方法が必要です)。

しかし、もっと複雑なケースはどうですか?句単位のレベルからより大きな文章レベルおよび談話レベルの単位に移動するとどうなりますか?「リンゴは好きだがバナナは嫌い」という文章をどのように評価しますか?ポジティブ要素とネガティブ要素は互いに打ち消し合ってニュートラルを作りますか?実際の人間のテキストについて話し始めると、これがどんどん濁ってしまうのが簡単にわかります。私の意見では、ドキュメントレベルの感情スコアについて話すことは特に意味があるとは思いません。むしろ、私は人々が個々のオブジェクトに向けられた感情/感情を表現していると信じています。「私はバナナが嫌いです」-> 会話レベルの構成に結合されるhate(subj、obj)

したがって、はい、トレーニングにpos / negのみが使用されている場合、ニュートラルカテゴリの出力の使用を合理的に守ることができると思います...しかし、特定のカットオフの使用を正当化し、より長いドキュメントを処理する方法を検討する必要があります。複数の(対立する)感情を表現します。私の好ましい行動方針は、人々にツイートを読んでpos、neg、neutral、mixedとしてラベル付けし(その後、コーダー間の信頼性を確保する)、トレーニングデータを作成することです...値。


0

あるサンプルの結果が Ppostve|saメートルple=0.15 そして Pegatve|saメートルple=.05、より高い確率のグループを取るだけではなく、0.3のような最小しきい値を設定できます。どちらも下にあるため、中立として分類します


1
P(pos | sample)+ P(neg | sample)は1にすべきではありませんか?
stmax '24年

はい、そうです。たとえば、どちらも0.65を超えていない場合は、ニュートラルとして分類できます。
Jan van der Vegt

別の分類は、正と負のクラスのための列車に使用されている場合は、P(POS |サンプル)+ P |(NEGサンプル)の必要性1.ではない
Bolaka

0

これは、使用するモデルの包括性に大きく依存します。ほとんどの場合、感情分析のモデルはかなり単純で、「単語の袋」に基づいています。この場合、トレーニングセットのポジティブサンプルとネガティブサンプルを使用すると、基本的に、感情的に負荷のかかったポジティブとネガティブの両方の単語をマイニングできます。

この仕事を完璧にこなしていて、肯定的な言葉も否定的な言葉も含まれていないテキストがあるとします。このテキストは中立と見なすことができます。

別のケースは、テキストに同じ数の正と負の単語が含まれている場合です。潜在的に、これはテキストに否定的な文章と肯定的な文章の両方が含まれていることを意味します。または、一部の単語の感情を逆転させるテキストの否定があるかもしれません。このテキストは中立と見なされますか?多分。ただし、単純な「バッグオブワード」モデルでは、このケースを前のケースと区別できません。

このすべてが意味するのは、ポジティブとネガティブのみを含むトレーニングデータでも「ニュートラル」テキストを認識できるということです。ただし、ユースケースに受け入れられる中立性の基準、および使用するモデルについて慎重に検討して、希望する正確な動作が得られるようにする必要があります。

このトピックの詳細については、このブログの投稿を数人の同僚に見てもらいたい場合があります。私は、トレーニングおよびテストデータセットの作成について書きました:https : //blog.griddynamics.com/creating-training-and-test-data-sets -そして-twitter-stream-sentiment-analysis-of-social-movie-reviewsのデータを準備しています

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.