package edu.stanford.nlp.parser.metrics;
import junit.framework.TestCase;
import edu.stanford.nlp.trees.PennTreebankLanguagePack;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.trees.TreebankLanguagePack;
public class TreeSpanScoringTest extends TestCase {
TreebankLanguagePack tlp = new PennTreebankLanguagePack();
public void testNoErrors() {
Tree t1 = Tree.valueOf("(ROOT (S (NP (PRP$ My) (NN dog)) (ADVP (RB also)) (VP (VBZ likes) (S (VP (VBG eating) (NP (NN sausage))))) (. .)))");
assertEquals(0, TreeSpanScoring.countSpanErrors(tlp, t1, t1));
}
public void testTagErrors() {
Tree t1 = Tree.valueOf("(ROOT (S (NP (PRP$ My) (NN dog)) (ADVP (RB also)) (VP (VBZ likes) (S (VP (VBG eating) (NP (NN sausage))))) (. .)))");
Tree t2 = Tree.valueOf("(ROOT (S (NP (PRP$ My) (NN dog)) (ADVP (RB also)) (VP (VBZ likes) (S (VP (VBG eating) (NP (VBG sausage))))) (. .)))");
assertEquals(2, TreeSpanScoring.countSpanErrors(tlp, t1, t2));
assertEquals(2, TreeSpanScoring.countSpanErrors(tlp, t2, t1));
}
public void testMislabeledSpans() {
Tree t1 = Tree.valueOf("(ROOT (S (NP (PRP$ My) (NN dog)) (ADVP (RB also)) (VP (VBZ likes) (S (VP (VBG eating) (NP (NN sausage))))) (. .)))");
Tree t2 = Tree.valueOf("(ROOT (S (NP (PRP$ My) (NN dog)) (ADVP (RB also)) (VP (VBZ likes) (ADVP (VP (VBG eating) (NP (NN sausage))))) (. .)))");
assertEquals(2, TreeSpanScoring.countSpanErrors(tlp, t1, t2));
assertEquals(2, TreeSpanScoring.countSpanErrors(tlp, t2, t1));
}
public void testExtraSpan() {
Tree t1 = Tree.valueOf("(ROOT (S (NP (PRP$ My) (NN dog)) (ADVP (RB also)) (VP (VBZ likes) (S (VP (VBG eating) (NP (NN sausage))))) (. .)))");
Tree t2 = Tree.valueOf("(ROOT (S (NP (PRP$ My) (NN dog)) (ADVP (RB also)) (ADVP (VP (VBZ likes) (S (VP (VBG eating) (NP (NN sausage)))))) (. .)))");
assertEquals(1, TreeSpanScoring.countSpanErrors(tlp, t1, t2));
}
public void testMissingSpan() {
Tree t1 = Tree.valueOf("(ROOT (S (NP (PRP$ My) (NN dog)) (ADVP (RB also)) (VP (VBZ likes) (S (VP (VBG eating) (NP (NN sausage))))) (. .)))");
Tree t2 = Tree.valueOf("(ROOT (S (NP (PRP$ My) (NN dog)) (ADVP (RB also)) (VP (VBZ likes) (VP (VBG eating) (NP (NN sausage)))) (. .)))");
assertEquals(1, TreeSpanScoring.countSpanErrors(tlp, t1, t2));
}
}