title: Is there an in-built method in nltk to find words/phrases that closely match the given word?
body: <p>The speech recognition software that I'm using gives less than optimal results.</p>
  
  <p>Eg: <code>session</code> is returned as <code>fashion</code> or <code>mission</code>.</p>
  
  <p>Right now I have a dictionary like:</p>
  
  <pre><code>matches = {
    'session': ['fashion', 'mission'],
    ...
  }
  </code></pre>
  
  <p>and I am looping over all the words to find a match.</p>
  
  <p>I do not mind false positives as the application accepts only a limited set of keywords. However it is tedious to manually enter new words for each of them. Also, the the speech recognizer comes up with new words every time I speak.</p>
  
  <p>I am also running into difficulties where a long word is returned as a group of smaller words, so the above approach won't work.</p>
  
  <p>So, is there an in-built method in nltk to do this? Or even a better algorithm that I could write myself?</p>