title: Best way to map words with multiple spellings to a list of key words?
body: <p>I have a pile of ngrams of variable spelling, and I want to map each ngram to it's best match word out of a list of known desired outputs.</p>
  
  <p>For example, ['mob', 'MOB', 'mobi', 'MOBIL', 'Mobile] maps to a desired output of 'mobile'.</p>
  
  <p>Each input from ['desk', 'Desk+Tab', 'Tab+Desk', 'Desktop', 'dsk'] maps to a desired output of 'desktop'</p>
  
  <p>I have about 30 of these 'output' words, and a pile of about a few million ngrams (much fewer unique).</p>
  
  <p>My current best idea was to get all unique ngrams, copy and paste that into Excel and manually build a mapping table, took too long and isn't extensible. 
  Second idea was something with fuzzy (fuzzy-wuzzy) matching but it didn't match well. </p>
  
  <p>I'm not experienced in Natural Language terminology or libraries at all so I can't find an answer to how this might be done better, faster and more extensibly when the number of unique ngrams increases or 'output' words change. </p>
  
  <p>Any advice? </p>