Although every sys admin will tell you that GUI applications are a waste of time, and the most efficient way to interact with a computer is through shell, for the average user this is a daunting challenge.  Why? Well, even with the -h flag, shell documentation can be difficult for novice users to understand and advanced use cases typically require knowledge only documented deep within the underbelly of Stackoverflow.

Meanwhile, the app dev space fundamentally changed with the emergence of the iPhone and the explosion of Mobile. The mantra of 2009 was “there’s an app for that,” but in 2016 trends have changed. Users no longer want to download an app for everything. Users do not even want to leave their current task to accomplish something tangential. It’s a trend dubbed “conversational commerce​” and what it speaks to is the need for a deeply integrated, intelligent service economy that works within a user’s context, not within a service’s context.

These two observations set the stage for an interesting synthesis:

    • What if today’s users really want console apps without a structured query language?
    • What if they want services they interact with in plain English?

Blame Siri. Blame Slack. Blame DragonTextToSpeech if you were coding in the 90’s, but the genie is out of the bottle. User demands’ for a “modern user interface” set the standard for new entrants in the enterprise software space, and that’s exactly what may happen again.

Building a natural language model that gets progressively better at understanding user input is a challenge that requires SMEs. Fortunately, there’s an Austin based startup, Wit.ai (recently acquired by Facebook) that is making interacting with natural language easier than ever anticipated.

Wit.ai provides natural language processing as a service. As a developer you create an account and define some intents, which are verbs associated with methods for your application. Next you define some sample inputs that map to that intent. Wit.Ai intelligently reads inputs and returns a specific intent.

For example, an application to check the weather may have two intents: ‘GetForecast’ and ‘GetCurrentWeather’, each of which expects a ZipCode as an input parameter.  In Wit you would create the following intent and examples:

Intent: GetForecast 

Inputs: “What’s the week look like in the 78704?”

“Will it rain this week in Austin?”

“Forecast 78704”

“Weather this week 78704”

Intent: GetCurrentWeather 

Inputs: “Weather 78704”

“Is it raining right now in Austin?”

“Temperature Outside Austin”

“Current Weather Austin”

When Wit receives a text input, it looks at your training inputs and resolves a specific intent based on part-of-speech tagging and the confidence interval of a match.  For example, a question like “What’s the week look like in the 78735?” is syntactically similar to the first input for ‘GetForecast’. So Wit may respond with something like this (actual JSON response from Wit.Ai):

 {
  "_text": "What's the week look like in the 78735",
  "confidence": 0.914,
  "intent": "GetForecast",
  "entities":{ "zip" : "78735"}
}

As Wit encounters requests that have a lower confidence interval with new user inputs, it does its best to guess what the user wants, but then logs the request into the Wit.ai dashboard. You are then able to review the request and manually reclassify. For example, if your app received “snow? 78704” it may resolve to ‘GetForecast’, but you know that the user is wondering if it’s snowing right now in Austin. You could reclassify this as a ‘GetCurrentWeather’ request and effectively train your model to better classify these in the future.

This lets us leverage the idea of supervised learning that’s common in machine learning applications without really understanding how it’s working under the hood. Supervised learning enables your model to get “smarter” by having a correct answer it can leverage when dealing with less known requests.

While an application to get the weather isn’t on anyone’s mind when they think of natural language processing – this example demonstrates how Wit could be used for any application that receives questions in natural language.  Extending the principle a bit further, it’s easy to imagine an application that could respond to the question — “How do our sales in Chicago look compared to the region?” — without having an intermediary business analyst interpret and develop a customized report.

From Sense Corp’s standpoint, the question is simple: will the convergence of natural language processing, machine learning and application development actualize Kimball’s dream for accurate, timely and effortless business intelligence?

Sign up to receive the latest insights.

We promise not to spam you and only send the good stuff!

  • Should be Empty: