public String apply(String newDocPath) throws IOException { FileInputStream fis = new FileInputStream(new File(newDocPath)); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String newDocContent = ""; String line = ""; while (line != null) { line = br.readLine(); newDocContent += line + " "; } double[] score = new double[numClasses]; List<String> newDocTokens = Utils.tokenizeString(newDocContent); TreeMap<String, Integer> termFreq = new TreeMap<String, Integer>(); for (String str : newDocTokens) { if (vocabulary.contains(str)) { if (!termFreq.containsKey(str)) termFreq.put(str, 1); else { int temp = termFreq.get(str) + 1; termFreq.put(str, temp); } } } br.close(); for (int c = 0; c < numClasses; c++) { score[c] = Math.log10(prior[c]); for (String t : termFreq.keySet()) { score[c] += Math.log10(condprob[vocabulary.indexOf(t)][c]); } } // return class id return classNames[Utils.argmax(score)]; }