public void getTopics( ArrayList<HashSet<String>> aTopics, String argKey, double threshold, int num) { ArrayList<JObjectDoubleTuple<String>> aTA; Prob2dMap pTA, pAT; HashSet<String> topics, clone; outer: for (String id : m_ta.keySet()) { pTA = m_ta.get(id); pAT = m_at.get(id); if ((aTA = pTA.getProb1dList(argKey)) == null) continue; topics = new HashSet<String>(); for (JObjectDoubleTuple<String> tup : aTA) { tup.value *= pAT.get1dProb(tup.object, argKey); if (tup.value >= threshold) topics.add(tup.object); } if (topics.size() >= num) { for (HashSet<String> pSet : aTopics) { clone = new HashSet<String>(topics); clone.removeAll(pSet); if (clone.size() < num) continue outer; } aTopics.add(topics); } } }
public void retrieveTopics(DepTree tree) { DepNode node, pred; SRLInfo info; String feat; Prob2dMap pTA, pAT; for (int i = 1; i < tree.size(); i++) { node = tree.get(i); info = node.srlInfo; if (!node.isPosx("NN.*")) continue; for (SRLHead head : info.heads) { pred = tree.get(head.headId); if ((feat = pred.getFeat("ct")) == null) continue; pTA = getSubMap(m_ta, feat); pTA.increment(head.label, node.lemma); pAT = getSubMap(m_at, feat); pAT.increment(node.lemma, head.label); getSubSet(s_verbs, feat).add(pred.lemma); } } }