/**
*
*/
package edu.berkeley.nlp.discPCFG;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import edu.berkeley.nlp.classify.LabeledInstance;
import edu.berkeley.nlp.classify.MaximumEntropyClassifier;
import edu.berkeley.nlp.math.DoubleArrays;
import edu.berkeley.nlp.util.Counter;
/**
* @author adpauls
*
*/
public class LexiconTester {
/**
* @param args
*/
public static void main(String[] args) {
// create datums
int k = 2;
double[] dummyWeights = DoubleArrays.constantArray(1.0/(double) k, k);
LabeledInstance<WordInSentence, String> datum1 = new LabeledInstance<WordInSentence, String>("NN",new WordInSentence("The cats died",1));
LabeledInstance<WordInSentence, String> datum2 = new LabeledInstance<WordInSentence, String>("VB",new WordInSentence("I killing the cat",1));
LabeledInstance<WordInSentence, String> datum3 = new LabeledInstance<WordInSentence, String>("NN",new WordInSentence("A cats killed me",1));
LabeledInstance<WordInSentence, String> datum4 = new LabeledInstance<WordInSentence, String>("NN",new WordInSentence("The cats lived",1));
// create training set
List<LabeledInstance<WordInSentence, String>> trainingData = new ArrayList<LabeledInstance<WordInSentence, String>>();
trainingData.add(datum1);
trainingData.add(datum2);
trainingData.add(datum3);
// create test set
List<LabeledInstance<WordInSentence, String>> testData = new ArrayList<LabeledInstance<WordInSentence, String>>();
testData.add(datum4);
// build classifier
LexiconFeatureExtractor featureExtractor = new LexiconFeatureExtractor();
MaximumEntropyClassifier.Factory<WordInSentence, LexiconFeature, String> maximumEntropyClassifierFactory = new MaximumEntropyClassifier.Factory<WordInSentence, LexiconFeature, String>(1.0, 20, featureExtractor);
MaximumEntropyClassifier<WordInSentence, LexiconFeature, String> maximumEntropyClassifier = (MaximumEntropyClassifier<WordInSentence, LexiconFeature, String>) maximumEntropyClassifierFactory.trainClassifier(trainingData);
System.out.println("Probabilities on test instance: " + maximumEntropyClassifier.getProbabilities(datum4.getInput()));
}
}