我目前正在使用Classifier gem成功分类文本。我按照“Bayes Classification in Ruby”教程进行操作,一切正常。我有两个文件,一个叫做“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 }
然后我将文字“我今天很好”分类如下:
classifier.classify "I'm good today" # which returns positive
据我了解,这基本上是在unigram级别工作。我想把它提升到一个新的水平,即可能对bigrams和n-gram进行分类。
我已经使用以下方法创建了文本的二元组数组:
text.split(' ').each_cons(2).to_a
但是,由于classify
方法不接受数组,因此我不确定如何从此处继续。它需要一个字符串。