Eurostar collects feedback through multiple channels, one of the most popular is Twitter. Although it’s easy for travelers to express their dissatisfaction on social media, it’s hard to address their issues and infer meaningful insights. Currently, it requires substantial manual labor.

What it does

SentiRail scrapes historical data and collects new in real time. Using natural language processing algorithms, we derive context like WiFi issues, delays, refunds requests, etc. On top of that, we calculate the sentiment which is the measure which tells us whether the feedback is positive or negative. We significantly reduce manual labor of social media specialists by automatically replying on Twitter and learning from the Eurostar staff’s historical responses.

The dashboard helps to visualize insights in real time and provides access to the historical data. Through Slack the integration we can send live notifications to the support team as soon as possible.

How we built it

Data science part and NPL is done in Python using polyglot and Azure Cognitive Services. Web servers for Twitter and Slack integration are written in JavaScript / TypeScript / Node.js. The dashboard is using Angular.

Challenges we ran into

Twitter API has a limit to how old data you can fetch so some data scraping was required. Firestore has some limitations regarding listening on entire datasets so we had to prepare an access policy for dashboard and web apps.

Accomplishments that we're proud of

It actually works, even in real time. It's deployed and publicly accessible.

What we learned

  • Experience comparing AWS vs. Azure Cognitive Services
  • Firestore real-time database on Google Cloud Platform
  • Slack API
Share this project: