package clear.helper;
import clear.dep.DepNode;
import clear.dep.DepTree;
import java.io.FileInputStream;
import opennlp.tools.postag.POSModel;
import opennlp.tools.postag.POSTaggerME;
public class POSTagger {
private POSTaggerME me_tagger;
public POSTagger(String modelFile) {
try {
me_tagger = new POSTaggerME(new POSModel(new FileInputStream(modelFile)));
} catch (Exception e) {
e.printStackTrace();
}
}
public void postag(DepTree tree) {
String[] tags = me_tagger.tag(getTokens(tree));
DepNode node;
for (int i = 1; i < tree.size(); i++) {
node = tree.get(i);
node.pos = tags[i - 1];
}
}
protected String[] getTokens(DepTree tree) {
int i, size = tree.size();
String[] tokens = new String[size - 1];
for (i = 1; i < size; i++) {
tokens[i - 1] = tree.get(i).form;
}
return tokens;
}
}