![JAR search and dependency download from the Maven repository](/logo.png)
edu.berkeley.nlp.PCFGLA.LazyList Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of berkeleyparser Show documentation
Show all versions of berkeleyparser Show documentation
The Berkeley parser analyzes the grammatical structure of natural language using probabilistic context-free grammars (PCFGs).
The newest version!
/**
*
*/
package edu.berkeley.nlp.PCFGLA;
import java.util.ArrayList;
import java.util.List;
import edu.berkeley.nlp.util.PriorityQueue;
/**
* @author petrov
*
*/
public class LazyList {
List sortedBegining;
PriorityQueue fringe;
int nSorted, nFringe;
boolean[] grammarTags;
// double bestScore;
public LazyList(boolean[] tags){
sortedBegining = new ArrayList();
fringe = new PriorityQueue();
nSorted = 0;
nFringe = 0;
grammarTags = tags;
// bestScore = Double.NEGATIVE_INFINITY;
}
public int sortedListSize(){
return nSorted;
}
public void addToFringe(HyperEdge el){
fringe.add(el, el.score);
nFringe++;
}
// public void addToSorted(HyperEdge el){
// sortedBegining.add(el);
// nSorted++;
// }
public HyperEdge getKbest(int k){
if (k>nSorted){
System.out.println("Don't have this element yet");
return null;
// } else if (k==nSorted&&(k==0||!fringe.hasNext())){
// return null;
} else if (k==nSorted){ // extract the next best
expandNextBest();
}
if (k==nSorted) return null;
return sortedBegining.get(k);
}
public void expandNextBest(){
while (fringe.hasNext()) {
HyperEdge edge = fringe.next();
boolean isNew = true;
for (HyperEdge alreadyIn : sortedBegining){
if (alreadyIn.differsInPOSatMost(edge,grammarTags)) {
isNew = false;
break;
}
}
if (isNew){
sortedBegining.add(edge);
nFringe--;
nSorted++;
break;
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy