1

I have a typical AI Problem to solve. Customers gonna submit comments about a product. I have to be able to create a program that classify these comment as either good,bad or neutral.

Surely, Neural Network gonna play a great role in it. Also, I think fuzzy logic can play some role in it. Such as how far a comment is good,bad or neutral!! Some more ideas about how to solve it??

Noor
  • 19,638
  • 38
  • 136
  • 254
  • Apart from searching keywords like `great`, `nice`, `thanks`, or `crap`, `sh*t`, etc, I don't know if there is a better option. – Petar Minchev Oct 12 '11 at 16:45
  • Just use a real rating system, like number of stars. Amazon, Netflix, they all use a star rating system, and customers are used to this as a feedback mechanism. AI will never pick up on sarcasm, and stars don't require that a user know how to spell English. If you search for specific words, be aware that "this product was a great disappointment" is not a compliment. – Nikki9696 Oct 12 '11 at 17:00
  • 1
    @Nikki9696 re Sarcasm, never say never: http://www.aclweb.org/anthology/P/P11/P11-2102.pdf – Ofri Raviv Oct 12 '11 at 17:11
  • Do u think we include a fuzzy system in it, for e.g. How far is a comment Good, bad or Neutral?? – Noor Oct 15 '11 at 14:01

3 Answers3

3

This problem is usually referred to as Sentiment Analysis. You can check out the wikipedia entry about Sentiment Analysis for a brief review, or Liu Bing's page on sentiment analysis for more detailed resources and tutorials.

Ofri Raviv
  • 24,375
  • 3
  • 55
  • 55
2

You can use some form of supervised learning.

The most important thing for classification is then choosing the right features. "Features" means you extract some values from the review that still capture the essence with respect to the classification task. Things that come to my mind are

  • number of words
  • average number of words per sentence
  • number of words from some set like {crap, shit, damn, viagra, ...}

Then you can use any available machine learning algorithm (neural networks, SVM) and train a classifier given you have enough reviews that are labeled with good/neutral/bad.

ziggystar
  • 28,410
  • 9
  • 72
  • 124
-1

Neural networks would certainly work for it, however I would be supicious about introducing new words, and languages. I would go for a Bayes net approach for determining the probability of being in a "good/neutral/bad" state. You should consider cleaning the data [stemming, etc] before putting it through the bayes net.

Additionally: The meta attributes [what ziggy mentioned] are more of an indicator to boost the performance of the approach you take.

EDIT: Bayes-Nets are a form of supervised learning.

monksy
  • 14,156
  • 17
  • 75
  • 124