先週、jQuery を使用して簡単なニュース リーダーを開発し、JSONP を解析して、生成されたリストを Web ページのフローに挿入しました。今朝、私は次の質問をされました。「ニュースが悪いか、良いか、どちらでもないかを「理解」できる一種のインテリジェントなアルゴリズムはありますか?」私の答えは...「うーん...わかりません.」...だから私はこの質問をしています.そのようなことを実装する方法はありますか? 私ができる唯一のことは、タイトルに「殺された、爆弾、暗殺者、洪水、地震、津波、...」などの単語が含まれているかどうかを確認することです...他のアイデアはありますか? 同様のソリューションがすでに実装されているかどうか知っていますか? ご協力いただきありがとうございます!
3 に答える
これはツイッターの場合で、センチメント分析と呼ばれます。
分類アルゴリズムが必要です。多くの異なる選択肢があります。たとえば、ここを参照してください。よく知られており、最初から簡単に実装できるのはNaive Bayesです。
Naive Bayes では、既に悪いと判断したニュース項目に出現する単語の頻度と、既に良いと判断したニュース項目に出現する単語の頻度を調べます。これらは、条件付き確率 P(word|good) および P(word|bad) の推定値を提供します。つまり、良いニュースが与えられた単語を見る確率と、悪いニュースが与えられた単語を見る確率です。
新しいニュース記事を見ると、ニュース記事に含まれる単語と含まれない単語を見つけ出し、ベイズの定理を使用して P(良い|単語) と P(悪い|単語) を求めます。良いニュースまたは悪いニュースを期待する頻度とともに、ニュース記事に表示される単語または表示されない単語の上に計算されます。P(good|words) > P(bad|words) の場合、それは朗報です。(興味があれば、以前に書いた質問にいくつかの数学を入れました。ただし、Web や書籍には、はるかに優れた情報源があります。)
Naive Bayes はよく知られた手法であり、スパム フィルタリングでも使用されます。それが何を扱っていないかという理由で、それはまた興味深いです。特に、順序、文脈、または単語は考慮されません。なので「ハリケーン」という作品が入っていても「今週はハリケーンがなかった」というのは朗報かもしれません。たとえば、ニュース記事の分析では、ツイートよりもそのような考慮事項の方がおそらく重要であると思います。いずれにせよ、これは興味深い分野であり、すでに多くの作業が行われています。