Answers.Body: <p>I can't speak to wit.ai specifically, but I can tell you a little bit about how similar applications work. Specifically, I can talk a bit about <a href="http://stanbol.apache.org" rel="nofollow">Apache Stanbol</a> which also converts free text into structured data.   That said, I should prefix this by saying there isn't just one way to "get there from here."  Many techniques could be part of a stack for accomplishing this goal.</p>
  
  <p>Anyway, in the case of Stanbol, they run the text through multiple processing engines, sequentially, with different engines affecting the final output.  One engine simply does <a href="https://en.wikipedia.org/wiki/Named-entity_recognition" rel="nofollow">Named Entity Recognition</a> using OpenNLP.  This identities discrete named "things" - people, places, companies, etc.  Another engine does entity matching with a pre-established database of entities - specifically (in the out-of-the-box configuration) a dump of entities from <a href="http://www.dbpedia.org" rel="nofollow">DBPedia</a>.  Where a match is found, the text from the original input is assigned to the entity.  In the case of a collision, it assigns a weight to the mapping so any downstream consumers can use probabilistic techniques to select the "correct" mapping.</p>
  
  <p>There are, of course, more details that I left out.  Before NER can happen there is parsing and tokenizing and other NLP activities.  But a big part of the basic process is doing NER and then doing the entity matching.  </p>
  
  <p>And in the case of Stanbol, you can add your own entities and corresponding structured data, as well as your own engines.  So, for example, if you wanted to write an engine based on neural networks / deep learning, and plug that in, you could.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-08-19T16:47:20.397Z
Answers.LastActivityDate: 2016-08-19T16:47:20.397Z
Answers.UserDisplayName: mindcrime
Body: <p>The Wit.ai is a Siri-like voice interface which can can parse messages and predict the actions to perform.</p>
  
  <p>Here is the <a href="https://labs.wit.ai/demo/index.html" rel="nofollow">demo site powered by Wit.ai</a>.</p>
  
  <p>How does it understand the spoken sentences and convert them into structured actionable data? Basically, how does it know what to do?</p>
  
Tags: <natural-language-processing><voice-recognition><structured-data>
Title: How does Wit.ai convert sentences into structured data?
UserDisplayName: kenorb
ThreadText: # How does Wit.ai convert sentences into structured data?
  
  (Asked by: username_0 on 2016-08-18)
  
  The Wit.ai is a Siri-like voice interface which can can parse messages and predict the actions to perform.
  
  Here is the [demo site powered by Wit.ai](https://labs.wit.ai/demo/index.html).
  
  How does it understand the spoken sentences and convert them into structured actionable data? Basically, how does it know what to do?
  
  **Tags:** natural-language-processing, voice-recognition, structured-data
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2016-08-19. Score: 2
  
  I can't speak to wit.ai specifically, but I can tell you a little bit about how similar applications work. Specifically, I can talk a bit about [Apache Stanbol](http://stanbol.apache.org) which also converts free text into structured data. That said, I should prefix this by saying there isn't just one way to "get there from here." Many techniques could be part of a stack for accomplishing this goal.
  
  Anyway, in the case of Stanbol, they run the text through multiple processing engines, sequentially, with different engines affecting the final output. One engine simply does [Named Entity Recognition](https://en.wikipedia.org/wiki/Named-entity_recognition) using OpenNLP. This identities discrete named "things" - people, places, companies, etc. Another engine does entity matching with a pre-established database of entities - specifically (in the out-of-the-box configuration) a dump of entities from [DBPedia](http://www.dbpedia.org). Where a match is found, the text from the original input is assigned to the entity. In the case of a collision, it assigns a weight to the mapping so any downstream consumers can use probabilistic techniques to select the "correct" mapping.
  
  There are, of course, more details that I left out. Before NER can happen there is parsing and tokenizing and other NLP activities. But a big part of the basic process is doing NER and then doing the entity matching.
  
  And in the case of Stanbol, you can add your own entities and corresponding structured data, as well as your own engines. So, for example, if you wanted to write an engine based on neural networks / deep learning, and plug that in, you could.
  
  
  ---
  
  