PageRenderTime 67ms CodeModel.GetById 54ms app.highlight 12ms RepoModel.GetById 1ms app.codeStats 0ms

/starter/src/cs276/pe1/spell/KGramWithEditDistanceSpellingCorrector.java

https://github.com/rioleo/huangenius
Java | 43 lines | 24 code | 13 blank | 6 comment | 1 complexity | f5d51cfb277443958185e997370f278e MD5 | raw file
 1package cs276.pe1.spell;
 2
 3import java.io.File;
 4import java.util.List;
 5
 6import cs276.util.IOUtils;
 7import cs276.util.StringUtils;
 8import java.util.*;
 9
10import cs276.util.Counter;
11
12public class KGramWithEditDistanceSpellingCorrector implements SpellingCorrector {
13	/** Initializes spelling corrector by indexing kgrams in words from a file */
14	
15	KGramSpellingCorrector KGram;
16	
17	public KGramWithEditDistanceSpellingCorrector() {
18	    KGram = new KGramSpellingCorrector();
19	}
20
21	public List<String> corrections(String word) {
22	    List<String> guesses = KGram.corrections(word);
23	    
24	    // Analyze edit distances
25	    Counter<String> editDistances = new Counter<String>();
26	    for (String guess : guesses) {
27	        editDistances.setCount(guess, -1*StringUtils.levenshtein(word, guess));
28        }	    
29	    
30//	    System.out.println("Using edit distances--------------------");
31//	    for (String guess : editDistances.topK(5)) {
32//	        System.out.println(guess + ": " + editDistances.getCount(guess));
33//	    }
34	    
35		return editDistances.topK(5);
36	}
37	
38	public double getEditDistance(String word, String guess) {
39	    return(-1*StringUtils.levenshtein(word, guess));
40	}
41
42	
43}