本文整理汇总了Java中edu.stanford.nlp.util.PriorityQueue类的典型用法代码示例。如果您正苦于以下问题:Java PriorityQueue类的具体用法?Java PriorityQueue怎么用?Java PriorityQueue使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PriorityQueue类属于edu.stanford.nlp.util包,在下文中一共展示了PriorityQueue类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getKBestParses
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
/** Get the exact k best parses for the sentence.
*
* @param k The number of best parses to return
* @return The exact k best parses for the sentence, with
* each accompanied by its score (typically a
* negative log probability).
*/
public List<ScoredObject<Tree>> getKBestParses(int k) {
cand = new HashMap<Vertex,PriorityQueue<Derivation>>();
dHat = new HashMap<Vertex,LinkedList<Derivation>>();
int start = 0;
int end = length;
int goal = stateNumberer.number(goalStr);
Vertex v = new Vertex(goal, start, end);
List<ScoredObject<Tree>> kBestTrees = new ArrayList<ScoredObject<Tree>>();
for (int i = 1; i <= k; i++) {
Tree internalTree = getTree(v, i, k);
if (internalTree == null) { break; }
// restoreUnaries(internalTree);
kBestTrees.add(new ScoredObject<Tree>(internalTree, dHat.get(v).get(i-1).score));
}
return kBestTrees;
}
示例2: lazyKthBest
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
private void lazyKthBest(Vertex v, int k, int kPrime) {
PriorityQueue<Derivation> candV = getCandidates(v, kPrime);
LinkedList<Derivation> dHatV = dHat.get(v);
if (dHatV == null) {
dHatV = new LinkedList<Derivation>();
dHat.put(v,dHatV);
}
while (dHatV.size() < k) {
if ( ! dHatV.isEmpty()) {
Derivation derivation = dHatV.getLast();
lazyNext(candV, derivation, kPrime);
}
if ( ! candV.isEmpty()) {
Derivation d = candV.removeFirst();
dHatV.add(d);
} else {
break;
}
}
}
示例3: toVerticalString
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
/**
* Returns a <code>String</code> representation of the <code>k</code> keys
* with the largest counts in the given {@link Counter}, using the given
* format string.
*
* @param c a Counter
* @param k how many keys to print
* @param fmt a format string, such as "%.0f\t%s" (do not include final "%n")
* @param swap whether the count should appear after the key
*/
public static <E> String toVerticalString(Counter<E> c, int k, String fmt, boolean swap) {
PriorityQueue<E> q = Counters.toPriorityQueue(c);
List<E> sortedKeys = q.toSortedList();
StringBuilder sb = new StringBuilder();
int i = 0;
for (Iterator<E> keyI = sortedKeys.iterator(); keyI.hasNext() && i < k; i++) {
E key = keyI.next();
double val = q.getPriority(key);
if (swap) {
sb.append(String.format(fmt, key, val));
} else {
sb.append(String.format(fmt, val, key));
}
if (keyI.hasNext()) {
sb.append('\n');
}
}
return sb.toString();
}
示例4: toVerticalString
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
/**
* Returns a <code>String</code> representation of the <code>k</code> keys
* with the largest counts in the given {@link Counter}, using the given
* format string.
*
* @param c
* a Counter
* @param k
* how many keys to print
* @param fmt
* a format string, such as "%.0f\t%s" (do not include final "%n")
* @param swap
* whether the count should appear after the key
*/
public static <E> String toVerticalString(Counter<E> c, int k, String fmt, boolean swap) {
PriorityQueue<E> q = Counters.toPriorityQueue(c);
List<E> sortedKeys = q.toSortedList();
StringBuilder sb = new StringBuilder();
int i = 0;
for (Iterator<E> keyI = sortedKeys.iterator(); keyI.hasNext() && i < k; i++) {
E key = keyI.next();
double val = q.getPriority(key);
if (swap) {
sb.append(String.format(fmt, key, val));
} else {
sb.append(String.format(fmt, val, key));
}
if (keyI.hasNext()) {
sb.append('\n');
}
}
return sb.toString();
}
示例5: init
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
public void init(List<Pair<Double, Integer>> dataScores) {
PriorityQueue<Pair<Integer, Pair<Double, Integer>>> q = new BinaryHeapPriorityQueue<Pair<Integer, Pair<Double, Integer>>>();
for (int i = 0; i < dataScores.size(); i++) {
q.add(new Pair<Integer, Pair<Double, Integer>>(Integer.valueOf(i), dataScores.get(i)), -dataScores.get(i).first().doubleValue());
}
List<Pair<Integer, Pair<Double, Integer>>> sorted = q.toSortedList();
scores = new double[sorted.size()];
classes = new int[sorted.size()];
System.err.println("incoming size " + dataScores.size() + " resulting " + sorted.size());
for (int i = 0; i < sorted.size(); i++) {
Pair<Double, Integer> next = sorted.get(i).second();
scores[i] = next.first().doubleValue();
classes[i] = next.second().intValue();
}
init();
}
示例6: initMC
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
public void initMC(ArrayList<Triple<Double, Integer, Integer>> dataScores) {
PriorityQueue<Pair<Integer, Triple<Double, Integer, Integer>>> q = new BinaryHeapPriorityQueue<Pair<Integer, Triple<Double, Integer, Integer>>>();
for (int i = 0; i < dataScores.size(); i++) {
q.add(new Pair<Integer, Triple<Double, Integer, Integer>>(Integer.valueOf(i), dataScores.get(i)), -dataScores.get(i).first().doubleValue());
}
List<Pair<Integer, Triple<Double, Integer, Integer>>> sorted = q.toSortedList();
scores = new double[sorted.size()];
classes = new int[sorted.size()];
guesses = new int[sorted.size()];
System.err.println("incoming size " + dataScores.size() + " resulting " + sorted.size());
for (int i = 0; i < sorted.size(); i++) {
Triple<Double, Integer, Integer> next = sorted.get(i).second();
scores[i] = next.first().doubleValue();
classes[i] = next.second().intValue();
guesses[i] = next.third().intValue();
}
init();
}
示例7: lazyKthBest
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
private void lazyKthBest(Vertex v, int k, int kPrime) {
PriorityQueue<Derivation> candV = getCandidates(v, kPrime);
LinkedList<Derivation> dHatV = dHat.get(v);
if (dHatV == null) {
dHatV = new LinkedList<Derivation>();
dHat.put(v,dHatV);
}
while (dHatV.size() < k) {
if (!dHatV.isEmpty()) {
Derivation derivation = dHatV.getLast();
lazyNext(candV, derivation, kPrime);
}
if (!candV.isEmpty()) {
Derivation d = candV.removeFirst();
dHatV.add(d);
} else {
break;
}
}
}
示例8: getKBestParses
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
/** Get the exact k best parses for the sentence.
*
* @param k The number of best parses to return
* @return The exact k best parses for the sentence, with
* each accompanied by its score (typically a
* negative log probability).
*/
public List<ScoredObject<Tree>> getKBestParses(int k) {
cand = new HashMap<Vertex,PriorityQueue<Derivation>>();
dHat = new HashMap<Vertex,LinkedList<Derivation>>();
int start = 0;
int end = length;
int goal = stateIndex.indexOf(goalStr);
Vertex v = new Vertex(goal, start, end);
List<ScoredObject<Tree>> kBestTrees = new ArrayList<ScoredObject<Tree>>();
for (int i = 1; i <= k; i++) {
Tree internalTree = getTree(v, i, k);
if (internalTree == null) { break; }
// restoreUnaries(internalTree);
kBestTrees.add(new ScoredObject<Tree>(internalTree, dHat.get(v).get(i-1).score));
}
return kBestTrees;
}
示例9: toPriorityQueue
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
/**
* Returns a {@link edu.stanford.nlp.util.PriorityQueue} whose elements
* are the keys of Counter c,
* and the score of each key in c becomes its priority.
*
* @param c Input Counter
* @return A PriorityQueue where the count is a key's priority
*/
// TODO: rewrite to use entrySet()
public static <E> edu.stanford.nlp.util.PriorityQueue<E> toPriorityQueue(Counter<E> c) {
edu.stanford.nlp.util.PriorityQueue<E> queue = new BinaryHeapPriorityQueue<E>();
for (E key : c.keySet()) {
double count = c.getCount(key);
queue.add(key, count);
}
return queue;
}
示例10: toBiggestValuesFirstString
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
public static <E> String toBiggestValuesFirstString(Counter<E> c, int k) {
PriorityQueue<E> pq = toPriorityQueue(c);
PriorityQueue<E> largestK = new BinaryHeapPriorityQueue<E>();
//TODO: Is there any reason the original (commented out) line is better than the one replacing it?
// while (largestK.size() < k && ((Iterator<E>)pq).hasNext()) {
while (largestK.size() < k && !pq.isEmpty()) {
double firstScore = pq.getPriority(pq.getFirst());
E first = pq.removeFirst();
largestK.changePriority(first, firstScore);
}
return largestK.toString();
}
示例11: toPriorityQueue
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
/**
* Returns a {@link edu.stanford.nlp.util.PriorityQueue} whose elements are
* the keys of Counter c, and the score of each key in c becomes its priority.
*
* @param c
* Input Counter
* @return A PriorityQueue where the count is a key's priority
*/
// TODO: rewrite to use entrySet()
public static <E> edu.stanford.nlp.util.PriorityQueue<E> toPriorityQueue(Counter<E> c) {
edu.stanford.nlp.util.PriorityQueue<E> queue = new BinaryHeapPriorityQueue<E>();
for (E key : c.keySet()) {
double count = c.getCount(key);
queue.add(key, count);
}
return queue;
}
示例12: toBiggestValuesFirstString
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
public static <E> String toBiggestValuesFirstString(Counter<E> c, int k) {
PriorityQueue<E> pq = toPriorityQueue(c);
PriorityQueue<E> largestK = new BinaryHeapPriorityQueue<E>();
// TODO: Is there any reason the original (commented out) line is better
// than the one replacing it?
// while (largestK.size() < k && ((Iterator<E>)pq).hasNext()) {
while (largestK.size() < k && !pq.isEmpty()) {
double firstScore = pq.getPriority(pq.getFirst());
E first = pq.removeFirst();
largestK.changePriority(first, firstScore);
}
return largestK.toString();
}
示例13: retainTopMass
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
/**
* Retains the minimal set of top keys such that their count sum is more than thresholdCount.
* @param counter
* @param thresholdCount
*/
public static<E> void retainTopMass(Counter<E> counter, double thresholdCount){
PriorityQueue<E> queue = Counters.toPriorityQueue(counter);
counter.clear();
double mass = 0;
while (mass < thresholdCount && !queue.isEmpty()) {
double value = queue.getPriority();
E key = queue.removeFirst();
counter.setCount(key, value);
mass += value;
}
}
示例14: topKeys
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
public static<E> List<E> topKeys(Counter<E> t, int topNum){
List<E> list = new ArrayList<E>();
PriorityQueue<E> q = Counters.toPriorityQueue(t);
int num = 0;
while(!q.isEmpty() && num < topNum){
num++;
list.add(q.removeFirst());
}
return list;
}
示例15: topKeysWithCounts
import edu.stanford.nlp.util.PriorityQueue; //导入依赖的package包/类
public static<E> List<Pair<E, Double>> topKeysWithCounts(Counter<E> t, int topNum){
List<Pair<E, Double>> list = new ArrayList<Pair<E, Double>>();
PriorityQueue<E> q = Counters.toPriorityQueue(t);
int num = 0;
while(!q.isEmpty() && num < topNum){
num++;
E k = q.removeFirst();
list.add(new Pair<E, Double>(k, t.getCount(k)));
}
return list;
}