use of structures.MyPriorityQueue in project IR_Base by Linda-sunshine.
the class LDAGibbs4AC_test method printTopWords.
public void printTopWords(int k, String betaFile) {
double loglikelihood = calculate_log_likelihood();
System.out.format("Final Log Likelihood %.3f\t", loglikelihood);
String filePrefix = betaFile.replace("topWords.txt", "");
debugOutput(filePrefix);
Arrays.fill(m_sstat, 0);
System.out.println("print top words");
for (_Doc d : m_trainSet) {
for (int i = 0; i < number_of_topics; i++) m_sstat[i] += m_logSpace ? Math.exp(d.m_topics[i]) : d.m_topics[i];
}
Utils.L1Normalization(m_sstat);
try {
System.out.println("beta file");
PrintWriter betaOut = new PrintWriter(new File(betaFile));
for (int i = 0; i < topic_term_probabilty.length; i++) {
MyPriorityQueue<_RankItem> fVector = new MyPriorityQueue<_RankItem>(k);
for (int j = 0; j < vocabulary_size; j++) fVector.add(new _RankItem(m_corpus.getFeature(j), topic_term_probabilty[i][j]));
betaOut.format("Topic %d(%.3f):\t", i, m_sstat[i]);
for (_RankItem it : fVector) {
betaOut.format("%s(%.3f)\t", it.m_name, m_logSpace ? Math.exp(it.m_value) : it.m_value);
System.out.format("%s(%.3f)\t", it.m_name, m_logSpace ? Math.exp(it.m_value) : it.m_value);
}
betaOut.println();
System.out.println();
}
betaOut.flush();
betaOut.close();
} catch (Exception ex) {
System.err.print("File Not Found");
}
}
use of structures.MyPriorityQueue in project IR_Base by Linda-sunshine.
the class HTMM method docSummary.
public void docSummary(String[] productList) {
for (String prodID : productList) {
for (int i = 0; i < this.number_of_topics; i++) {
// top three sentences per topic per product
MyPriorityQueue<_RankItem> stnQueue = new MyPriorityQueue<_RankItem>(3);
for (_Doc d : m_trainSet) {
if (d.getItemID().equalsIgnoreCase(prodID)) {
for (int j = 0; j < d.getSenetenceSize(); j++) {
_Stn sentence = d.getSentence(j);
double prob = d.m_topics[i];
for (_SparseFeature f : sentence.getFv()) prob += f.getValue() * topic_term_probabilty[i][f.getIndex()];
prob /= sentence.getLength();
stnQueue.add(new _RankItem(sentence.getRawSentence(), prob));
}
}
}
System.out.format("Product: %s, Topic: %d\n", prodID, i);
summaryWriter.format("Product: %s, Topic: %d\n", prodID, i);
for (_RankItem it : stnQueue) {
System.out.format("%s\t%.3f\n", it.m_name, it.m_value);
summaryWriter.format("%s\t%.3f\n", it.m_name, it.m_value);
}
}
}
summaryWriter.flush();
summaryWriter.close();
}
use of structures.MyPriorityQueue in project IR_Base by Linda-sunshine.
the class pLSA method printTopWords.
// print all the quantities in real space
@Override
public void printTopWords(int k) {
Arrays.fill(m_sstat, 0);
for (_Doc d : m_trainSet) {
for (int i = 0; i < number_of_topics; i++) m_sstat[i] += m_logSpace ? Math.exp(d.m_topics[i]) : d.m_topics[i];
}
Utils.L1Normalization(m_sstat);
for (int i = 0; i < topic_term_probabilty.length; i++) {
MyPriorityQueue<_RankItem> fVector = new MyPriorityQueue<_RankItem>(k);
for (int j = 0; j < vocabulary_size; j++) fVector.add(new _RankItem(m_corpus.getFeature(j), topic_term_probabilty[i][j]));
System.out.format("Topic %d(%.5f):\t", i, m_sstat[i]);
for (_RankItem it : fVector) System.out.format("%s(%.5f)\t", it.m_name, m_logSpace ? Math.exp(it.m_value) : it.m_value);
System.out.println();
}
}
use of structures.MyPriorityQueue in project IR_Base by Linda-sunshine.
the class pLSA method printTopWords.
// print all the quantities in real space
@Override
public void printTopWords(int k, String topWordPath) {
System.out.println("TopWord FilePath:" + topWordPath);
Arrays.fill(m_sstat, 0);
for (_Doc d : m_trainSet) {
for (int i = 0; i < number_of_topics; i++) m_sstat[i] += m_logSpace ? Math.exp(d.m_topics[i]) : d.m_topics[i];
}
Utils.L1Normalization(m_sstat);
try {
PrintWriter topWordWriter = new PrintWriter(new File(topWordPath));
for (int i = 0; i < topic_term_probabilty.length; i++) {
MyPriorityQueue<_RankItem> fVector = new MyPriorityQueue<_RankItem>(k);
for (int j = 0; j < vocabulary_size; j++) fVector.add(new _RankItem(m_corpus.getFeature(j), topic_term_probabilty[i][j]));
topWordWriter.format("Topic %d(%.5f):\t", i, m_sstat[i]);
for (_RankItem it : fVector) topWordWriter.format("%s(%.5f)\t", it.m_name, m_logSpace ? Math.exp(it.m_value) : it.m_value);
topWordWriter.write("\n");
}
topWordWriter.close();
} catch (Exception ex) {
System.err.print("File Not Found");
}
}
use of structures.MyPriorityQueue in project IR_Base by Linda-sunshine.
the class twoTopic method printTopWords.
@Override
public void printTopWords(int k) {
// we only have one topic to show
MyPriorityQueue<_RankItem> fVector = new MyPriorityQueue<_RankItem>(k);
for (int i = 0; i < m_theta.length; i++) fVector.add(new _RankItem(m_corpus.getFeature(i), m_theta[i]));
for (_RankItem it : fVector) System.out.format("%s(%.3f)\t", it.m_name, it.m_value);
System.out.println();
}
Aggregations