Data Structures and Algorithms. Answer needs to be in JAVA [Implement a spell ch
ID: 3691670 • Letter: D
Question
Data Structures and Algorithms.
Answer needs to be in JAVA
[Implement a spell checker by using a hash table.]
a. Assume that dictionary comes from two source, an existing large dictionary and a second file containing a personal dictionary.
b. Output all misspelled words and the line number in which they occur.
c. Also, for any misspelled word list any words in the dictionary that are obtainable by adding/removing one character or exchanging adjacent characters.
(Make sure to include the documentation, including a UML design and few sample runs with the source code for all the programming projects.)
3. Implement a spell checker by using a hash table. a. Assume that dictionary comes from two source, an existing large Assume that dictoytie containing a personal dictionany dictionary and a second file containing a personal dictionary. b. Output all misspelled words and the line number in which they occur. c. Also, for any misspelled word list any words in the dictionary that are obtainable by adding/removing one character or exchanging adjacent characters Make sure to include the documentation, including a UML design and few sample runs with the source code for all the programming projects.Explanation / Answer
public class SpellChecker { private static String stringInput; // input to check; private static String[] checkThis; // the stringInput turned array of words to check. public static HashSet dictionary; // the dictionary used /** * Main method. * @param args Argh! */ public static void main(String[] args) { setup(); }//end of main /** * This method loads the dictionary and initiates the checks for errors in a scanned input. */ public static void setup(){ int tableSIZE=59000; dictionary = new HashSet(tableSIZE); try { //System.out.print(System.getProperty("user.dir"));//just to find user's working directory; // I combined FileReader into the BufferReader statement //the file is located in edu.frostburg.cosc310 BufferedReader bufferedReader = new BufferedReader(new FileReader("./dictionary.txt")); String line = null; // notes one line at a time while((line = bufferedReader.readLine()) != null) { dictionary.add(line);//add dictinary word in } prompt(); bufferedReader.close(); //close file } catch(FileNotFoundException ex) { ex.printStackTrace();//print error } catch(IOException ex) { ex.printStackTrace();//print error } }//end of setUp /** * Just a prompt for auto generated tests or manual input test. */ public static void prompt(){ System.out.println("Type a number from below: "); System.out.println("1. Auto Generate Test 2.Manual Input 3.Exit"); Scanner theLine = new Scanner(System.in); int choice = theLine.nextInt(); // for manual input if(choice==1) autoTest(); else if(choice==2) startwInput(); else if (choice==3) System.exit(0); else System.out.println("Invalid Input. Exiting."); } /** * Manual input of sentence or words. */ public static void startwInput(){ //printDictionary(bufferedReader); // print dictionary System.out.println("Spell Checker by C. Austria Please enter text to check: "); Scanner theLine = new Scanner(System.in); stringInput = theLine.nextLine(); // for manual input System.out.print(" You have entered this text: "+stringInput+" Initiating Check..."); /*------------------------------------------------------------------------------------------------------------*/ //final long startTime = System.currentTimeMillis(); //speed test WordFinder grammarNazi = new WordFinder(); //instance of MisSpell splitString(removePunctuation(stringInput));//turn String line to String[] grammarNazi.initialCheck(checkThis); //final long endTime = System.currentTimeMillis(); //System.out.println("Total execution time: " + (endTime - startTime) ); }//end of startwInput /** * Generates a testing case. */ public static void autoTest(){ System.out.println("Spell Checker by C. Austria This sentence is being tested: The dog foud my hom. And m ct hisse xdgfchv!@# "); WordFinder grammarNazi = new WordFinder(); //instance of MisSpell splitString(removePunctuation("The dog foud my hom. And m ct hisse xdgfchv!@# "));//turn String line to String[] grammarNazi.initialCheck(checkThis); }//end of autoTest /** * This method prints the entire dictionary. * Was used in testing. * @param bufferedReader the dictionary file */ public static void printDictionary(BufferedReader bufferedReader){ String line = null; // notes one line at a time try{ while((line = bufferedReader.readLine()) != null) { System.out.println(line); } }catch(FileNotFoundException ex) { ex.printStackTrace();//print error } catch(IOException ex) { ex.printStackTrace();//print error } }//end of printDictionary /** * This methods splits the passed String and puts them into a String[] * @param sentence The sentence that needs editing. */ public static void splitString(String sentence){ // split the sentence in between " " aka spaces checkThis = sentence.split(" "); }//end of splitString /** * This method removes the punctuation and capitalization from a string. * @param sentence The sentence that needs editing. * @return the edited sentence. */ public static String removePunctuation(String sentence){ String newSentence; // the new sentence //remove evil punctuation and convert the whole line to lowercase newSentence = sentence.toLowerCase().replaceAll("[^a-zA-Z\s]", "").replaceAll("\s+", " "); return newSentence; }//end of removePunctuation } This class checks for misspellings public class WordFinder extends SpellChecker{ private int wordsLength;//length of String[] to check private List wrongWords = new ArrayList();//stores incorrect words /** * This methods checks the String[] for spelling errors. * Hashes each index in the String[] to see if it is in the dictionary HashSet * @param words String list of misspelled words to check */ public void initialCheck(String[] words){ wordsLength=words.length; System.out.println(); for(int i=0;iRelated Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.