Я пытаюсь посчитать частоту слов в текстовом файле. Но я должен использовать другой подход. Например, если файл содержит BRAIN-ISCHEMIA и ISCHEMIA-BRAIN, мне нужно сосчитать BRAIN-ISCHEMIA дважды (и оставить ISCHEMIA-BRAIN) или наоборот. Вот мой кусок кода -
// Mapping of String->Integer (word -> frequency)
HashMap<String, Integer> frequencyMap = new HashMap<String, Integer>();
// Iterate through each line of the file
String[] temp;
String currentLine;
String currentLine2;
while ((currentLine = in.readLine()) != null) {
// Remove this line if you want words to be case sensitive
currentLine = currentLine.toLowerCase();
temp=currentLine.split("-");
currentLine2=temp[1]+"-"+temp[0];
// Iterate through each word of the current line
// Delimit words based on whitespace, punctuation, and quotes
StringTokenizer parser = new StringTokenizer(currentLine);
while (parser.hasMoreTokens()) {
String currentWord = parser.nextToken();
Integer frequency = frequencyMap.get(currentWord);
// Add the word if it doesn't already exist, otherwise increment the
// frequency counter.
if (frequency == null) {
frequency = 0;
}
frequencyMap.put(currentWord, frequency + 1);
}
StringTokenizer parser2 = new StringTokenizer(currentLine2);
while (parser2.hasMoreTokens()) {
String currentWord2 = parser2.nextToken();
Integer frequency = frequencyMap.get(currentWord2);
// Add the word if it doesn't already exist, otherwise increment the
// frequency counter.
if (frequency == null) {
frequency = 0;
}
frequencyMap.put(currentWord2, frequency + 1);
}
}
// Display our nice little Map
System.out.println(frequencyMap);
Но для следующего файла -
ISCHEMIA-глутамат
ISCHEMIA-BRAIN
Глутамат-BRAIN
BRAIN-ДОПУСКАЕМ
BRAIN-ДОПУСКАЕМ
ДОПУСКАЕМ-BRAIN
Глутамат-ISCHEMIA
ISCHEMIA-глутамат
Я получаю следующий вывод-
{глутамат-мозг = 1, ишемия-глутамат = 3, ишемия-мозг = 1, глутамат-ишемия = 3, переносимость мозга = 3, ишемия головного мозга = 1, переносимость мозга = 3, глутамат мозга = 1}
Проблема во втором блоке, я думаю. Любой свет по этой проблеме будет высоко оценен.