Define a detailed concept of the product.
Define a detailed concept of the product.
Prepare a training dataset.
Find a suitable NLP model to score the amenities.
Design and develop the application UI.
As the idea emerged and product concept was discussed, our team outlined the product workflow as follows: A user searches for a hotel by name or URL. The system detects amenities descriptions in reviews, including those discussing bathroom, lounge, breakfast, air conditioning, location, etc. Then a trained algorithm analyses the reviews for word-markers of positive, neutral, or negative guest experiences of the amenities. The results for each category and an overall score of a hotel are aggregated and returned to a user. As a result, a user can explore individual amenity ratings and compare them to the other hotels without reading full reviews. Since the implementation needed machine learning, our team started product development with training dataset preparation.
For model training, we collected a hotel review dataset that consisted of about 100,000 samples from public sources, including datasets available at Kaggle. As these datasets didn’t have labeled sentiment for various hotel amenities, the team had to label them semi-manually. Once the dataset was ready, data scientists could proceed to model training.
Our engineers tried several different approaches to find a proper model to score the amenities, like classic natural language processing approaches and the latest deep learning models like BERT. As a result, they decided on two neural networks for sentiment analysis, a convolutional neural network for scoring hotels by whole reviews (1D-CNN with GloVe embeddings) and HAPN (hierarchical attention based position-aware network) to score individual amenities. This allows users to get both general impressions about hotels and drill down into specific service details if those details are critical for a pleasant stay. The final step of Choicy development was the user interface design and engineering.
Our UX/UI designer suggested a minimalistic design of the application interface. A home page and the page with the reviews has a search box where a user can type a hotel’s name or insert a URL. The page has various navigation components like tags that help simplify the search, compare the hotels by the amenities, and categorize them. The user interface was created using JavaScript.