title: Good sources of testing data for a bigram spellchecking algorithm?
body: <p>I recently implemented a spell checking algorithm that takes into account bigram frequencies (i.e. considers the previous word to the misspelled word to help identify the correct spelling correction).</p>
  
  <p>Right now I want to get a handle on the average performance of my algorithm. To do so, I plan on giving the algorithm a slew of misspelled words where I already know the correct spelling, and checking if my algorithm proposes the right correction. <strong>Does anyone know of a few data sets of misspellings and their corrections that I could use for evaluating my algorithm in this manner?</strong></p>
  
  <p>To illustrate with a few examples, this is the sort of data I'm after,</p>
  
  <pre><code>    buildMap.put("is neccasary", "is necessary");
      buildMap.put("was uneque", "was unique");
      buildMap.put("of conciderable", "of considerable");
      buildMap.put("must rember", "must remember");
  </code></pre>
  
  <p>Here the first word in the first string is the <strong><em>context</em></strong> word, and the second word is the <strong><em>misspelled</em></strong> word. The second string represents the correctly spelled version of the misspelled word (the <strong><em>target</em></strong>).</p>
  
  <p>I could obviously generate misspellings programmatically (e.g. calculate strings of edit distance one or two away) but this is not ideal because these misspellings will probably not follow the pattern of real-world misspellings (e.g. a character is more likely to be replaced by another directly next to it on the keyboard than one that must be typed with the other hand). Any suggestions would be greatly appreciated.</p>