Inspiration

IMDb ratings often reflect only a small portion of viewer sentiment and may not always represent the general public's opinion. We wanted to build a system that combines IMDb ratings with real user reviews and uses natural language sentiment analysis to give a more holistic and data-driven evaluation of a movie.

What it does

Takes an IMDb-recognized movie title as input. Scrapes up to 450 public user reviews from IMDb. Analyzes the sentiment of each review using VADER sentiment analysis. Combines the IMDb rating and sentiment-based score to generate a final normalized score. Classifies the movie into categories like Blockbuster, Super Hit, Hit, Average, Flop, or Utter Flop. Displays the result in a clean and intuitive UI using Streamlit — with dynamic loading states and a final color-coded result box.

How we built it

Python for the core logic. Helium (a Selenium wrapper) for browser automation and scraping IMDb reviews. VADER SentimentIntensityAnalyzer for lightweight and accurate sentiment scoring. Streamlit for the frontend UI to interact with the model. Implemented a headless Chrome mode to perform everything silently without opening a browser window. Integrated st.status() and custom result display with color-coded boxes using HTML/CSS inside Streamlit.

Challenges we ran into

Dynamic web structure of IMDb pages required us to fine-tune our XPath selectors. Limiting reviews to a reasonable number (max 450) without missing valid data. Ensuring headless scraping worked reliably across machines and platforms. Dealing with duplicate reviews or malformed content. Calculating a fair and normalized score that balances both IMDb rating and user sentiment.

What we learned

How to use VADER effectively for sentiment analysis of real-world, noisy user text. How to run Selenium in headless mode with Helium and integrate it with Streamlit. Better understanding of how IMDb’s structure and review system works. Importance of user experience — from loading indicators to readable output, every detail matters.

What's next for MOVIE REVIEW ANALYSIS

Add support for multiple review platforms like BookMyShow, Rotten Tomatoes, etc. Visualize sentiment with pie charts, word clouds, and timeline trends. Let users compare movies side-by-side based on sentiment and rating. Add an export to CSV/PDF option for the sentiment report. Create a recommendation system based on review trends and viewer sentiment clusters.

Built With

Share this project:

Updates