Моя цель - создать программу, которая принимает файл, читает его, разбирает на токены и возвращает индекс с относительной и абсолютной частотой. Я понимаю, как токенизировать обычные строки, но не понимаю, как это делать с файлами. Более того, я не понимаю, где мой класс ngram может быть со всем этим связан. Кроме того, есть ли более простой способ подсчитать слова? Я знаю, что звучит глупо, и мне очень жаль, если это глупый вопрос, но мне действительно нужна помощь. Я так потерялся, и этот код больше не имеет смысла.
Вот что у меня есть:
public static void main(String[] args) {
try {
File file = new File("jarg2912.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line);
stringBuffer.append("\n");
}
fileReader.close();
System.out.println("Index:");
//System.out.println(stringBuffer.toString());
//NgramIterator ngram = new NgramIterator(0, "jarg2912.txt");
StringTokenizer st = new StringTokenizer(fileReader.getEncoding());
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
} catch (IOException e) {
e.printStackTrace();
}
public class NgramIterator implements Iterator<String> {
String[] line;
int position = 0, number;
public NgramIterator(int n, String str) {
this.number = n;
this.line = str.split(" ");
}
@Override
public boolean hasNext() {
return position < line.length - number + 1;
}
@Override
public String next() {
StringBuilder stringBuilder = new StringBuilder();
for (int i = position; i < position + number; i++) {
stringBuilder.append((i > position ? " " : "") + line[i]);
position++;
}
return stringBuilder.toString();
}
Также можете привести примеры ожидаемого результата, потому что не очень понятно, что вы хотите
Я должен вывести индекс слов в документе и указать, сколько раз они появляются
и что это за индекс? как вы это рассчитываете? что это собой представляет? А что в файле?
Не могли бы вы привести пример того, что находится в файле jarg2912.txt?