package edu.stanford.nlp.parser.lexparser;
import java.util.Collection;
import java.util.List;
import edu.stanford.nlp.ling.TaggedWord;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.util.Index;
public abstract class AbstractUnknownWordModelTrainer
implements UnknownWordModelTrainer
{
double treesRead;
double totalTrees;
Index<String> wordIndex, tagIndex;
Options op;
Lexicon lex;
@Override
public void initializeTraining(Options op, Lexicon lex,
Index<String> wordIndex,
Index<String> tagIndex, double totalTrees) {
this.totalTrees = totalTrees;
this.treesRead = 0;
this.wordIndex = wordIndex;
this.tagIndex = tagIndex;
this.op = op;
this.lex = lex;
}
@Override
public final void train(Collection<Tree> trees) {
train(trees, 1.0);
}
@Override
public final void train(Collection<Tree> trees, double weight) {
for (Tree tree : trees) {
train(tree, weight);
}
}
@Override
public final void train(Tree tree, double weight) {
incrementTreesRead(weight);
int loc = 0;
List<TaggedWord> yield = tree.taggedYield();
for (TaggedWord tw : yield) {
train(tw, loc, weight);
++loc;
}
}
@Override
public void incrementTreesRead(double weight) {
treesRead += weight;
}
}