Como faço para classificar bigramas?

votos
0

Atualmente estou classificando sucesso texto usando o gem classificador. Eu segui o Bayes classificação em Ruby tutorial e tudo funciona bem. Eu tenho dois arquivos, um chamado positive_tweets.yml com os tweets como este:

  • Olá lá o que está acima. Eu sou bom
  • Eu sou um tweet positiva

e negative_tweet.yml

  • O tempo está muito ruim hoje
  • Eu apenas tive um acidente de carro

Para classificar eu sou bom hoje Eu primeiro treinar o classificador assim:

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 }

Então eu classificar o texto eu sou bom hoje assim:

classifier.classify I'm good today  # which returns positive

Pelo que entendi, este é basicamente trabalhar ao nível unigram. Quero também levar isso para o próximo nível, o de classificar bigramas e n-gramas potencialmente.

Eu tenho chegado tão longe como a criação de uma matriz bigram do texto usando:

text.split(' ').each_cons(2).to_a

no entanto, eu não tenho certeza de como continuar a partir daqui como o classifymétodo não tomar uma matriz. É preciso uma string.

Publicado 28/01/2014 em 21:55
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more