public void report(File outputFile) throws IOException { PrintWriter out = new PrintWriter(outputFile); int[] idx = ArrayUtils.argsort(model.getTopicPrevalence(), true); out.println("topic weight coherence terms"); out.println("----- ------------ ------------ -----"); for (int i : idx) { out.printf( "%5d %12.6f %12.6f %s\n", i, model.getTopicPrevalence()[i], coherenceScores[i], corpus.getTerms(model.topTermIds(i))); } for (int k = 0; k < model.numberOfTopics(); k++) { out.printf("\n\ntopic %d:\n", k); out.printf("%18s", ""); for (int m = 0; m < numberOfTerms; m++) { out.printf("%6.6s ", corpus.getTerm(model.topTermIds()[k][m])); } out.println("total"); for (int m = 0; m < numberOfTerms; m++) { out.printf("%15s ", corpus.getTerm(model.topTermIds()[k][m])); int i = term2id.get(model.topTermIds()[k][m]); for (int n = 0; n < numberOfTerms; n++) { int j = term2id.get(model.topTermIds()[k][n]); out.printf("%6d ", cooccurrenceCounts[i][j]); } out.printf("%6d\n", occurrenceCounts[i]); } } out.close(); }