teerunag65 Ответов: 3

Как написать недостающие коды для метода 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 вместо того, чтобы иметь количество повторяемых слов, у меня есть количество повторяемых алфавитов.. пожалуйста помочь

3 Ответов

Рейтинг:
21

Garth J Lancaster

Это код-запрос - мы не пишем код для спецификации.

Мы более чем готовы помочь тем, кто застрял, но это не значит, что мы здесь, чтобы сделать все это для вас! Мы не можем сделать всю работу, вам либо платят за это, либо это часть ваших оценок, и было бы совсем несправедливо, если бы мы сделали все это за вас.

Поэтому нам нужно, чтобы вы сделали работу, и мы поможем вам, когда вы застряли. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.

Просто потому, что вы оставили свою домашнюю работу слишком поздно, не означает, что кто-то собирается сделать это за вас ... примите это как жизненный урок: действия имеют последствия, а сроки имеют значение.


teerunag65

Я не могу понять, как написать недостающие коды и с чего начать.Не могли бы вы дать мне намеки, чтобы это помогло мне написать его?

Garth J Lancaster

Хорошо - я бы добавил хэш-таблицу/словарь в класс DistinctWords

Hashtable<string, integer> слова;

И инициализируйте его в конструкторе DistinctWords

слова = Новая хэш-таблица<строка, целое число>();

Это будет содержать каждое слово и подсчет того, сколько раз оно встречается

Затем я хотел бы добавить метод, например loadWordsFromFile() Это заполняет массив слов словами и подсчетами - вам нужно будет открыть файл с помощью этого.имя файла, считайте каждую строку как строку, а затем разделите строку на слова, возможно, на основе пробела в качестве делимера. Для каждого слова проверьте, существует ли оно в хэш-таблице слов, если нет, добавьте его со счетом 1, иначе увеличьте количество.

К каждому из методов count_distinct_words, count_total_words... добавьте проверку, чтобы увидеть, есть ли в словах хэш-таблицы какие-либо записи, если нет, вызовите loadWordsFromFile().

count_distinct_words, count_total_words затем можно заполнить, посмотрев на количество записей в хэш-таблице слов или суммируя количество всех слов (целая часть), то есть значений хэш-таблицы.

Затем уточните это для проверки правильности слов

teerunag65

Без добавления какого-либо нового метода, где я могу поместить код для чтения файла в классах DistinctWords?

Garth J Lancaster

ты ведь шутишь, правда ? - вы должны поместить код куда-то, и повторять его во всех существующих методах не очень хороший стиль программирования

до сих пор вам оказывали хорошую помощь - если вы не понимаете, что вам нужно получить помощь от вашего репетитора, лектора, учителя, учебника и т. д. Вы, похоже, не заинтересованы в том, чтобы полностью применить себя, мы можем помочь вам только до сих пор

Рейтинг:
19

OriginalGriff

Цитата:
Я не могу понять, как написать недостающие коды и с чего начать.Не могли бы вы дать мне намеки, чтобы это помогло мне написать его?

Начните с чтения текста и разделения его на отдельные слова.
Тогда у вас есть два варианта:
1) сортировка списка слов: тогда легко подсчитать повторения, потому что повторяющиеся слова находятся рядом друг с другом.
2) обработайте слова в словаре, и если слово уже есть в словаре, добавьте его к счету. Если это не так, вставьте его и установите счетчик на единицу.

Тогда это тривиально, чтобы сделать остальную часть задачи.


teerunag65

Не могли бы вы сказать мне, пожалуйста, написать метод чтения текстового файла, в какой класс я должен его поместить?

OriginalGriff

Файл.ReadAllText(pathToFile)

Класс? Ваш выбор!

Рейтинг:
1

Patrice T

Цитата:
Я не могу написать код.Пожалуйста, помогите мне.

Это твое домашнее задание, не наша.
Вы не показываете никаких попыток решить проблему самостоятельно, у вас нет вопросов, ваше главное усилие-вставить требование, вы просто хотите, чтобы мы сделали вашу домашнюю работу.
Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей выполнять вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, которые вы испытываете при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по исправлению положения.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.