現在、Classifier gem を使用してテキストを正常に分類しています。「 Ruby でのベイズ分類」チュートリアルに従ったところ、すべて正常に動作しました。2 つのファイルがあります。1 つは「positive_tweets.yml」という名前で、次のようなツイートが含まれています。
- 「こんにちは、元気です。元気です」
- 「私はポジティブなツイートです」
および「negative_tweet.yml」
- 「今日は本当に天気が悪いです」
- 「交通事故に遭ったばかり」
「私は今日は元気です」を分類するために、まず分類子を次のようにトレーニングします。
positive = YAML.load_file('positive_tweets.yml')
negative = YAML.load_file('negative_tweets.yml')
classifier = Classifier::Bayes.new('Positive', 'Negative')
positive.each { |p| classifier.train_positive p }
negative.each { |n| classifier.train_negative n }
次に、「I'm good today」というテキストを次のように分類します。
classifier.classify "I'm good today" # which returns positive
私が理解しているように、これは基本的にユニグラムレベルで機能しています。また、これを次のレベル、バイグラムと n グラムを潜在的に分類するレベルに引き上げたいと考えています。
以下を使用して、テキストのバイグラム配列を作成するところまで来ました。
text.split(' ').each_cons(2).to_a
classify
ただし、メソッドが配列を取らないため、ここから続行する方法がわかりません。文字列が必要です。