title: Application using machine learning to auto-correct custom sentences: how to begin?
body: <p>Before asking my question, here is the situation:</p>
  
  <p>I have some very basic knowledge about Artifical Intelligence, I know about Inference Engine, coding in LISP or Prolog, a bit about neural network, but not much. That's what I studied.</p>
  
  <p>I have a project, an application which has to correct some custom sentences.</p>
  
  <p>Those sentences are normal strings, which can contain a lot of different characters. Fortunately, thanks to Flex(lexer), I defined Tokens, which is now easier for analysis. An example of string:</p>
  
  <pre><code>AZERTY AWESOME 333.222 AZERTY MAGIC P
  </code></pre>
  
  <p>Which gives in tokens (example):</p>
  
  <pre><code>VERB NOUN NUMBER VERB ADJECTIVE SPEC
  </code></pre>
  
  <p>I also use Bison to allow some combos, and reject the others:</p>
  
  <pre><code>VERB NOUN NUMBER VERB ADJECTIVE SPEC is ok
  VERB VERB NOUN NUMBER  ADJECTIVE SPEC is not ok
  etc...
  </code></pre>
  
  <p>Those sentences can have some errors when coming to my application. These errors can be from different origins, let's have some examples:</p>
  
  <pre><code>AZERTY AWESOM E 333.222 AZERTY MAGIC POINT
  </code></pre>
  
  <p>Additionnal space in the word awesome makes the parser to recognize a VERB and a SPEC instead of NOUN (like above). So the correction would be to remove the additionnal space.</p>
  
  <p>Others errors can be a missing space (making stick two words), unknown tokens, unknown combo (for bison), no spaces at all, etc... </p>
  
  <p>So I began to create my application in C++, with a determinist approach first: I created a kind of dictionnary which contains every pattern of error I found previously, and created corrections for them. It works quite well, I can correct a lot of them because I found very generic pattern. But I would like to enhance this performance by adding a machine learning feature, to correct the other ones.</p>
  
  <p>I have let's say 70% of correction good with my "fixed-correction", and I would like to make this % grow up with a machine learning thing. It would learn from wrong&amp;corrected sentences, and then would be able to correct by itself the sentences I wasn't able to correct (the last 30%).</p>
  
  <p>Here is my question, I am a newbie in machine learning, even if I have already studied AI a bit, and I don't know where to begin.</p>
  
  <p>My first question is: I know about neural network, but it is used to guess, right? For example, I would give it a sentence and it would be able to tell me if it's correct or not. But this is not what I want, I want the app to correct it, not just telling if it's correct. The thing is I don't really see how the application can "remove/modify" by itself.</p>
  
  <p>In which direction would you suggest that I would go for ? Which Machine Learning Principles/ Tools / Technologies would you suggest for this kind of application?</p>
  
  <p>I hope you understood my problem well, and will be able to help me.</p>