Star ratings and positive/negative labels only tell part of a guest’s story — Atithi was built to fill in the rest.

Rather than treating a review as one overall opinion, it identifies the different parts of the guest experience being discussed — staff, rooms, cleanliness, food, location — and works out the sentiment attached to each one.

Two questions get a clearer answer as a result: What are guests feeling, and what is causing them to feel that way?

Why Atithi was built this way

A hotel review is more than a rating. It’s a description of an experience, and that experience can carry both praise and criticism at once. Preserving that nuance was the point of building Atithi.

Understand the sentiment. Find the source. Improve the experience.

The challenge

Guests rarely express just one opinion in a review. Someone might write:

“The staff were extremely helpful and the location was excellent, but the room was small and breakfast was disappointing.”

Classify that with a standard sentiment model and you’d likely get “positive” or “negative” — a summary that misses the details a hotel team actually needs:

  • The staff were a strength.
  • The location was well received.
  • The room and breakfast created dissatisfaction.

Preserving these distinctions, and turning unstructured reviews into insights that could support better customer-experience decisions, was the goal behind Atithi.

Turning reviews into useful insights

Two levels of analysis happen for each review. First comes the overall sentiment. Then Atithi looks more closely at the specific hotel-related aspects mentioned in the text.

For the example above, the output could be:

Aspect Sentiment
Staff Positive
Location Positive
Room Negative
Breakfast Negative

That gives hotel teams a far more useful view than a single overall label — not just whether a review was positive or negative, but which areas contributed to that opinion.

Building the language pipeline

Guest reviews are inconsistent by nature. Writing styles, vocabulary, sentence structures, and ways of expressing mixed emotions all vary from person to person.

For a reliable input into the machine-learning models, an NLP preprocessing layer built with spaCy prepares the review text before it reaches the classification pipeline, creating a more consistent foundation for analysis.

The processing flow was:

Raw review → Text preprocessing → Feature preparation → Sentiment analysis

Separating the language-processing stage from the prediction and application layers made the system easier to develop and integrate.

An ensemble instead of one model

At the centre of the sentiment pipeline sits a Voting Classifier ensemble.

Instead of relying on one machine-learning algorithm, the system combines the predictions of multiple classifiers and uses their collective output to reach a final sentiment.

The variety of language in hotel reviews — mixed opinions, different ways of expressing satisfaction or dissatisfaction — was exactly why this approach made the prediction layer more resilient.

The resulting flow was:

Review text → NLP processing → Multiple classifiers → Voting ensemble → Sentiment prediction

Understanding sentiment by aspect

Overall sentiment is useful, but aspect-level sentiment is where the analysis becomes actionable. Areas Atithi can examine include:

  • Rooms
  • Staff and service
  • Cleanliness
  • Location
  • Food and breakfast
  • Amenities
  • Facilities
  • Value and overall experience

Patterns emerge across many reviews once you can see this level of detail. Consistently positive comments about staff might point to a strong part of the guest experience, while repeated complaints about rooms or breakfast might flag areas that need operational attention.

Making predictions easier to trust

A prediction earns more trust when people can see how it was produced.

LIME-based explanations were integrated into the application for exactly that reason. LIME highlights the words or phrases that influenced a particular prediction, giving users context instead of an unexplained label.

Words such as “helpful” or “excellent” may support a positive prediction, for instance, while phrases such as “too small” or “disappointing” push the result the other way.

The explanation doesn’t replace the prediction — it helps users inspect it.

From model to working product

A complete full-stack application, not a standalone machine-learning experiment, is what this project became.

The analysis pipeline gets exposed through an application interface via the Flask backend. The React frontend handles the interface for submitting reviews and viewing the resulting sentiment, aspect analysis, and explanation.

A review moves through the following workflow:

Input → NLP preprocessing → Classification → Aspect analysis → Explanation → Result

That put the machine-learning system behind a practical, user-facing product.

What the platform makes possible

Hotel teams can use Atithi to explore questions such as:

  • Which parts of the guest experience are performing well?
  • What are guests complaining about most often?
  • Which words and phrases are driving a sentiment prediction?
  • Are negative comments concentrated around rooms, food, or service?
  • Which strengths appear consistently across guest feedback?
  • Where might operational improvements have the greatest impact?

Both individual review analysis and broader customer-experience intelligence across a larger collection of reviews are supported by the platform’s design.

Outcome

Unstructured text became a more detailed, interpretable view of the guest experience — that’s what Atithi did for hotel reviews. The finished platform combined:

  • Real-time sentiment analysis
  • Aspect-based guest-experience analysis
  • A Voting Classifier ensemble
  • LIME-based model explanations
  • A Flask machine-learning backend
  • A React frontend
  • An end-to-end application workflow

More than a sentiment classifier came out of this project. It was a working product that connected guest feedback to the specific areas of the hotel experience behind it.

Project highlights

  • Built an end-to-end hotel review intelligence platform in 3 weeks.
  • Developed a spaCy-based NLP preprocessing pipeline.
  • Combined multiple classifiers through a Voting Classifier ensemble.
  • Added aspect-level sentiment analysis for key hotel experience areas.
  • Integrated LIME to explain individual sentiment predictions.
  • Exposed the machine-learning workflow through a Flask backend.
  • Built a React interface for interacting with the analysis system.
  • Created a foundation for aggregating sentiment patterns across large review collections.