SMS Chatbots for MyWell — Part 1

Cutting edge with … not so cutting edge.

Lewis Daly
vessels
2 min readApr 1, 2017

--

I’m embarking on a new project for Vessels; a system to parse text messages for data collection, using

One of our projects, MyWell, relies on SMS messages to gather data from farmers about well readings, rainfall and the like. The issue with this approach is that the queries are quite strict, and it is hard to get them just right. For example:

Is the required query just to submit one well reading, specifying the type of query, postcode, date, wellId, and reading (in cm only).

One feature I’ve been thinking about for a while has been to incorporate some Natural Language Processing into the SMS parser, to allow for more natural queries. We could turn the above query into more of a conversation with a bot. For example:

While this is an ambitious goal, I think it is possible with a bit of NLP. I’m going to try to implement this all myself, but I’ll take a look around at some other tools (such as Amazon’s machine learning tool) if I need.

I’ve also decided that I’ll make this a standalone product developed by Vessels (instead of building it just for MyWell). That makes it more reusable for other future projects, and even something we could spin off as a separate business. This problem is by no means unique to MyWell.

So let’s begin.

I’m going to start by building a protoype in Python. I’ll develop a bunch of MyWell specific queries and potential user flows, and then make some more generic “pluggable” queries.

I’ve also been keen to learn a bit more of Go, so I might also look around for some NLP tools and libraries in Go. If this ends up needing to scale into a bigger service, Go might be a good choice, as it will give me some good experience with the language (not to mention the fact it is compiled — I’ve been burned in the past by unmanageable Node.js codebases).

I’m also going to ask my friend Kevin to step in. He’s studying computer science at the moment, and is always looking for fun side projects. Let’s hope he says yes!

Kevin is always looking for a challenge.

--

--