Search in sources :

Example 1 with Datum

use of edu.stanford.nlp.ling.Datum in project CoreNLP by stanfordnlp.

the class ChineseMaxentLexicon method ensureProbs.

private void ensureProbs(int word, boolean subtractTagScore) {
    if (word == lastWord) {
        return;
    }
    lastWord = word;
    if (functionWordTags.containsKey(wordIndex.get(word))) {
        logProbs = new ClassicCounter<>();
        String trueTag = functionWordTags.get(wordIndex.get(word));
        for (String tag : tagIndex.objectsList()) {
            if (ctlp.basicCategory(tag).equals(trueTag)) {
                logProbs.setCount(tag, 0);
            } else {
                logProbs.setCount(tag, Double.NEGATIVE_INFINITY);
            }
        }
        return;
    }
    Datum datum = new BasicDatum(featExtractor.makeFeatures(wordIndex.get(word)));
    logProbs = scorer.logProbabilityOf(datum);
    if (subtractTagScore) {
        Set<String> tagSet = logProbs.keySet();
        for (String tag : tagSet) {
            logProbs.incrementCount(tag, -Math.log(tagDist.probabilityOf(tag)));
        }
    }
}
Also used : BasicDatum(edu.stanford.nlp.ling.BasicDatum) Datum(edu.stanford.nlp.ling.Datum) BasicDatum(edu.stanford.nlp.ling.BasicDatum)

Aggregations

BasicDatum (edu.stanford.nlp.ling.BasicDatum)1 Datum (edu.stanford.nlp.ling.Datum)1