私は私の研究で私の最後のプロジェクトを作っています。
Twitterメッセージの感情分析を作成しようとしています。
私はベイジアンアルゴリズムと言葉の袋を使用しています。
PHP のバッグ オブ ワード アルゴリズムの例はありますか?
何も見つかりません。おそらく、肯定的な言葉と否定的な言葉のリストか何か
私は私の研究で私の最後のプロジェクトを作っています。
Twitterメッセージの感情分析を作成しようとしています。
私はベイジアンアルゴリズムと言葉の袋を使用しています。
PHP のバッグ オブ ワード アルゴリズムの例はありますか?
何も見つかりません。おそらく、肯定的な言葉と否定的な言葉のリストか何か
「Bagofwords」はアルゴリズムではありません。
これは、テキストを分析用の単語の順序付けられていないマルチセット(「バッグ」)として扱うことを意味します。NLPのように語順に注意を払う必要はありません。たとえば、単語数のあるスパースベクトル。
PHP で Bag of Words を実装したことはありませんが、Java で実装しました。これを実装する簡単な方法は、トレーニング データを取得してトークン化することです (Stanford Tokenizer の例)。すべてのトレーニング データをトークン化したら、そこから 1 グラムを抽出できます。このhttp://homepages.inf.ed.ac.uk/lzhang10/ngram.htmlを使用してグラムを抽出し、出力から単語数を削除して単語のみを使用します。これは、トレーニングと分類の際に使用できる Bag of Words コーパスになります。トレーニングとテストまたは分類中に同じトークナイザーを使用し、モデルのトレーニング中に同じコーパスを使用するようにしてください。
これを実装するのは非常に簡単です。データの文字列を取得し、bag of words コーパスの作成に使用したのと同じトークナイザーを使用してトークン化するだけです。次に、各トークンを取得し、そのトークンがコーパスで使用可能かどうか、およびどの位置で使用できるかを調べます。たとえば、次のような単語を含むコーパスがあります:-
a
名前
の
こんにちは
世界
、
そして、「こんにちは、私の名前はジャスです」という文字列があります。それをトークン化すると、次のトークン {hello,,,my,name,is,Jas} が得られ、これらのトークンをコーパスと照合しようとすると、結果は次のようになります:-
2:1 4:1 6:1
これは、コーパスの位置 2、4、および 6 に存在する name、hello、comma という単語が、着信テスト文字列に存在することを意味します。