Как написать недостающие коды для метода distinctwords и spellchecker?
Прочтите следующий сценарий и ответьте на следующие вопросы:
Мелалгоме, технарь-блогер, хорошо владеет английским языком и хорошо печатает на машинке
они довольно хороши. Как консервативный компьютерный гик, он застрял с текстовым редактором, который не работает.
выполните проверку орфографии. Он считает, что даже проверки орфографии современных редакторов не будет
способен отпустить технические слова, которые не появляются в обычных словарях. Более того, его
разовые ошибки в его блогах становятся расхождением, когда полученные комментарии находятся с
уважение к орфографическим ошибкам, а не к тем идеям, которые он выдвигает.
Он решил поработать над разработкой простого плагина к своему любимому текстовому редактору, который бы
будьте динамической проверкой орфографии. Его главное требование заключается в том, что чем больше документов он печатает, тем больше их количество.
лучше должна быть проверка орфографии в распознавании обычных английских слов и его технических
слова.
Более того, он считает, что если слова повторяются, то документ становится скучным для чтения.
Таким образом, он хочет проверить уровень повторений слов в документе. Он вычисляет
последнее происходит путем взятия количества отдельных слов в документе и деления его на общее количество слов в документе.
количество слов.
Для проектирования и реализации он думает, что хеширование может быть хорошей техникой для
решить эту проблему. Для проверки орфографии каждое слово, введенное в документе, становится ключом для проверки орфографии.
хэш-таблица. Соответствующее значение - это число раз, которое имеет конкретное слово
встречались до сих пор.
Ожидается, что будут написаны два плагина, один из которых будет в основном подсчитывать количество различных плагинов.
слова в файле, а другой-выполнить проверку орфографии в файле. Помимо собственно
кодируя, вы будете отмечены за правильный анализ ситуаций, правильное понимание и
применение изученных структур данных и алгоритмов, а также ясность и точность в
даны объяснения.
ПОЖАЛУЙСТА, ЗАПОЛНИТЕ НЕДОСТАЮЩИЕ КОДЫ ДЛЯ ПРИВЕДЕННЫХ НИЖЕ МЕТОДОВ.
import java.util.*; // DistinctWords.java, where hashing is used to count the number of distinct words and level of repetition in a file. public class DistinctWords { String filename=""; // add any missing structure to store any other data public DistinctWords(String filename){ this.filename = filename; } // count and return the number of distinct words in the text file public int count_distinct_words() throws Exception{ return 0; } // count the total number of words in the text file public int count_total_words() throws Exception{ return 0; } // compute and return the level of repetition // The returned output of compute_level_of_repetition() must be correct for at least 2dp public float compute_level_of_repetition() throws Exception{ return 0; } } ----------------- import java.util.*; // Spellchecker.java, where hashing is applied for spell checking. public class SpellChecker { String filename=""; // add any missing structure to store any other data public SpellChecker(String filename){ this.filename = filename; } // go through the file and populate the list of words along with the respective frequency that each one of them appear in the file public void populate_list_of_words_and_frequency() throws Exception{ } // generates the list of possible mistakes public void generate_list_of_possible_mistakes() throws Exception{ } // returns the number of possible mistakes based on the list previously generated public int number_of_possible_mistakes() throws Exception{ this.populate_list_of_words_and_frequency(); this.generate_list_of_possible_mistakes(); return 0; } } ---------------- import java.io.FileNotFoundException; import java.io.FileReader; import java.util.Scanner; // You should not alter the method calls in this file. // The Test option is not available, but the main method helps you with the running of your code. // Note that when you submit, your code will be subject to a number of tests. public class Main { public static void main(String[] args) throws Exception{ String filename = "./Root/data/data1.txt"; DistinctWords dw = new DistinctWords(filename); System.out.println(dw.count_distinct_words()); System.out.println(dw.count_total_words()); System.out.println(dw.compute_level_of_repetition()); SpellChecker sp = new SpellChecker(filename); System.out.println(sp.number_of_possible_mistakes()); } }
Что я уже пробовал:
public float compute_level_of_repetition() throws Exception{ BufferedReader br = new BufferedReader(new FileReader("data1.txt")); Map<String,Integer> wordsoftext= new HashMap<>(); String line=br.readLine(); while(line!=null) { if(!line.trim().equals("")) { String[] words=line.split(""); for(String word:words) { if(word==null ||word.trim().equals("")) { continue; } String processed = word.toLowerCase(); if(wordsoftext.containsKey(processed)) { wordsoftext.put(processed, wordsoftext.get(processed)+1); } else { wordsoftext.put(processed,1); } } } line=br.readLine(); } System.out.println(wordsoftext); return 0; } }
для метода compute_level_of_repetition вместо того, чтобы иметь количество повторяемых слов, у меня есть количество повторяемых алфавитов.. пожалуйста помочь