/** * Copyright (C) 2012 cogroo <cogroo@cogroo.org> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package cogroo; import java.util.ArrayList; import java.util.List; import opennlp.tools.util.Span; import org.junit.Test; import br.usp.pcs.lta.cogroo.entity.Sentence; import br.usp.pcs.lta.cogroo.entity.Token; import br.usp.pcs.lta.cogroo.entity.impl.runtime.TokenCogroo; import cogroo.uima.interpreters.FlorestaTagInterpreter; public class PostPOSTaggerTest { @Test public void testMerge() { // assertEquals("n=M/F=P", merge("n=M=P", "n=F=P")); // assertEquals("n=M=P", merge("n=M=P", "adj=M=P")); // assertEquals("n=M=P", merge("adj=M/F=P", "n=M=P")); // assertEquals("n=F=P", merge("n=F=P", "n=F=P")); // assertEquals("n=F=P", merge("v-fin=PR=3S=IND", "n=F=P")); // assertEquals("adj=M/F=P", merge("adv", "adj=M/F=P")); // assertEquals("adv", merge("adv", "adv")); // assertEquals("n=F=P", merge("n=F=P", "prp")); // assertEquals("n=F=P", merge("n=F=P", "n=F=S")); // assertEquals("n=M=P", merge("n=M=P", "n=M=S")); // assertEquals("n=F=P", merge("n=F=P", "n=F=S")); // assertEquals("adv", merge("v-fin=PR=3S=IND", "adv")); // assertEquals("n=F=P", merge("v-fin=PR=3S=IND", "n=F=P")); // assertEquals("n=M=S", merge("det=F=S", "n=M=S")); } FlorestaTagInterpreter ti = new FlorestaTagInterpreter(); private String merge(String tagA, String tagB) { PostPOSTagger ppt = new PostPOSTagger(null); Token a = new TokenCogroo(new Span(0, 5)); Token b = new TokenCogroo(new Span(6, 10)); a.setLexeme("strA"); b.setLexeme("strB"); a.setPrimitive("strA"); b.setPrimitive("strB"); Token h = new TokenCogroo(new Span(5, 6)); h.setLexeme("-"); a.setMorphologicalTag(ti.parseMorphologicalTag(tagA)); b.setMorphologicalTag(ti.parseMorphologicalTag(tagB)); List<Token> tokens = new ArrayList<Token>(); tokens.add(a); tokens.add(h); tokens.add(b); Sentence s = new Sentence(); s.setTokens(tokens); ppt.process(s); return ti.serialize(s.getTokens().get(0).getMorphologicalTag()); } }