Inspiration

If you are planning to buy a product from an on-line shopping website, then investigating through reviews from the customers who have already purchased the product is a must. But what if there are tens or hundreds of reviews for each of the candidate items? How can you get the emotion of people about this product without wasting hours reading all of the comments? Is there a tool which can extract those information from comments and show us the final result as a simple rate? Score-based ratings (such as star rates that are used in online shopping websites such as Amazon etc) are not a good metric for judging a product. Words are the common tool for communication between human beings and we all prefer to express our feelings with words rather than numbers. So if we can process customer reviews and extract their feelings we can come up with a better metric to evaluate a product.

What it does

It is an API that processes customers' reviews and come up with a rating based on them. This API is also able to find the most positive and negative reviews and display them to the user. Most of the users prefer to read the reviews written by other customers to judge a product but they no longer need to read all of the reviews in order to do that

How we built it

We use nltk and natural language processing (nlp) methods for processing the comments. Using the GoogleNews-vectors pre-trained model we build two dictionaries of positive and negative words and for each adjective word in our comments we calculate its similarity to each of the words in our dictionaries and decide how much positive or negative the comment is. Using this metric we provide the user with the most satisfied customers' reviews and the most unsatisfied customers' reviews. Finally using the calculated metric for all of the comments of a special product, we come up with our final rating which is the average of our rating for each comment.

Challenges we ran into

  • Running GoogleNews-vectors pretrained model
  • Making our database of 20 Lenove laptops available in Amazon
  • Making the dictionaries of positive and negative words
  • Finding the threshold to determine whether a comment is positive or negative
  • Finding the percentage of satisfiability and unsatisfiability of customers from the product based on their comments
  • Finding the most negative comments as well as the most positive ones

Accomplishments that we're proud of

In a split of a second, we are able to show the user the most important points from comments. They no longer need to waste hours reading all of the comments to finally conclude whether the product is a suitable one or not. We are different from all other rating based methods as all of them ask for a number(stars) from the user but do nothing with the words they have used in their comment to describe their level of satisfiability.

What we learned

  • How to write a telegram bot using python
  • How to use nltk and natural language processing tools in python
  • How to crawl a webpage to build our dataset
  • How to use a pre-trainded model for our own purpose

What's next for Commentinator

  • Process the comments further in order to find the reasons which might make a customer unsatisfied about a product and provide these information to the producers.
  • Use this tool for IMDB in order to give a rating to each movie based on the comments of users because the star based rating system is not a good metric.
  • Use this tool in social networks in order to find out which users prefer what kind of products and finally use it for recommender tools and advertisement.
  • Our current product is based on Amazon and using its API in future and encouraging people to purchase from Amazon we will get 7 percent of the product price.

Built With

Share this project:

Updates