Java Code Examples for de.tudarmstadt.ukp.dkpro.core.api.syntax.type.dependency.Dependency#addToIndexes()
The following examples show how to use
de.tudarmstadt.ukp.dkpro.core.api.syntax.type.dependency.Dependency#addToIndexes() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: WebAnnoTsv3WriterTestBase.java From webanno with Apache License 2.0 | 5 votes |
@Test public void testDependencyWithValues() throws Exception { JCas jcas = makeJCasOneSentence(); List<Token> tokens = new ArrayList<>(select(jcas, Token.class)); Token t1 = tokens.get(0); Token t2 = tokens.get(1); POS p1 = new POS(jcas, t1.getBegin(), t1.getEnd()); p1.setPosValue("POS1"); p1.addToIndexes(); t1.setPos(p1); POS p2 = new POS(jcas, t2.getBegin(), t2.getEnd()); p2.setPosValue("POS2"); p2.addToIndexes(); t2.setPos(p2); Dependency dep1 = new Dependency(jcas); dep1.setGovernor(t1); dep1.setDependent(t2); // WebAnno legacy conventions // dep1.setBegin(min(dep1.getDependent().getBegin(), dep1.getGovernor().getBegin())); // dep1.setEnd(max(dep1.getDependent().getEnd(), dep1.getGovernor().getEnd())); // DKPro Core conventions dep1.setBegin(dep1.getDependent().getBegin()); dep1.setEnd(dep1.getDependent().getEnd()); dep1.addToIndexes(); writeAndAssertEquals(jcas, WebannoTsv3Writer.PARAM_SPAN_LAYERS, asList(POS.class), WebannoTsv3Writer.PARAM_RELATION_LAYERS, asList(Dependency.class)); }
Example 2
Source File: Tsv3XSerializerTest.java From webanno with Apache License 2.0 | 5 votes |
@Test public void testRelation() throws Exception { // Create test document JCas cas = makeJCasOneSentence("This is a test ."); List<Token> tokens = new ArrayList<>(select(cas, Token.class)); Dependency dep = new Dependency(cas); dep.setGovernor(tokens.get(0)); dep.setDependent(tokens.get(1)); dep.setDependencyType("dep"); dep.setBegin(dep.getDependent().getBegin()); dep.setEnd(dep.getDependent().getEnd()); dep.addToIndexes(); // Set up TSV schema TsvSchema schema = new TsvSchema(); Type dependencyType = cas.getCasType(Dependency.type); schema.addColumn(new TsvColumn(dependencyType, LayerType.RELATION, "DependencyType", FeatureType.PRIMITIVE)); schema.addColumn(new TsvColumn(dependencyType, LayerType.RELATION, "Governor", FeatureType.RELATION_REF)); // Convert test document content to TSV model TsvDocument doc = Tsv3XCasDocumentBuilder.of(schema, cas); doc.getSentences().get(0).getTokens().get(1).addUimaAnnotation(dep, false); assertEquals( join(asList("1-1\t0-4\tThis\t_\t_\t", "1-2\t5-7\tis\tdep\t1-1\t"), "\n"), join(asList(doc.getToken(0, 0), doc.getToken(0, 1)), "\n")); String expectedSentence = "#Text=This is a test .\n" + "1-1\t0-4\tThis\t_\t_\t\n" + "1-2\t5-7\tis\tdep\t1-1\t\n" + "1-3\t8-9\ta\t_\t_\t\n" + "1-4\t10-14\ttest\t_\t_\t\n" + "1-5\t15-16\t.\t_\t_\t\n"; assertEquals(expectedSentence, doc.getSentences().get(0).toString()); }
Example 3
Source File: RemoveDanglingRelationsRepairTest.java From webanno with Apache License 2.0 | 5 votes |
@Test public void test() throws Exception { JCas jcas = JCasFactory.createJCas(); jcas.setDocumentText("This is a test."); Token span1 = new Token(jcas, 0, 4); span1.addToIndexes(); Token span2 = new Token(jcas, 6, 8); Dependency dep = new Dependency(jcas, 0, 8); dep.setGovernor(span1); dep.setDependent(span2); dep.addToIndexes(); List<LogMessage> messages = new ArrayList<>(); CasDoctor cd = new CasDoctor(RemoveDanglingRelationsRepair.class, AllFeatureStructuresIndexedCheck.class); // A project is not required for this check boolean result = cd.analyze(null, jcas.getCas(), messages); // A project is not required for this repair cd.repair(null, jcas.getCas(), messages); assertFalse(result); messages.forEach(System.out::println); }
Example 4
Source File: MtasUimaParserTest.java From inception with Apache License 2.0 | 4 votes |
@Test public void testDependencyRelation() throws Exception { // Set up document with a dummy dependency relation jcas.setDocumentText("a b"); Token t1 = new Token(jcas, 0, 1); t1.addToIndexes(); POS p1 = new POS(jcas, t1.getBegin(), t1.getEnd()); p1.setPosValue("A"); t1.setPos(p1); p1.addToIndexes(); Token t2 = new Token(jcas, 2, 3); t2.addToIndexes(); POS p2 = new POS(jcas, t2.getBegin(), t2.getEnd()); p2.setPosValue("B"); t2.setPos(p2); p2.addToIndexes(); Dependency d1 = new Dependency(jcas, t2.getBegin(), t2.getEnd()); d1.setDependent(t2); d1.setGovernor(t1); d1.addToIndexes(); // Set up annotation schema with POS and Dependency AnnotationLayer tokenLayer = new AnnotationLayer(Token.class.getName(), "Token", SPAN_TYPE, project, true, SINGLE_TOKEN, NO_OVERLAP); tokenLayer.setId(1l); AnnotationFeature tokenLayerPos = new AnnotationFeature(1l, tokenLayer, "pos", POS.class.getName()); AnnotationLayer posLayer = new AnnotationLayer(POS.class.getName(), "POS", SPAN_TYPE, project, true, SINGLE_TOKEN, NO_OVERLAP); posLayer.setId(2l); AnnotationFeature posLayerValue = new AnnotationFeature(1l, posLayer, "PosValue", CAS.TYPE_NAME_STRING); AnnotationLayer depLayer = new AnnotationLayer(Dependency.class.getName(), "Dependency", RELATION_TYPE, project, true, SINGLE_TOKEN, NO_OVERLAP); depLayer.setId(3l); depLayer.setAttachType(tokenLayer); depLayer.setAttachFeature(tokenLayerPos); AnnotationFeature dependencyLayerGovernor = new AnnotationFeature(2l, depLayer, "Governor", Token.class.getName()); AnnotationFeature dependencyLayerDependent = new AnnotationFeature(3l, depLayer, "Dependent", Token.class.getName()); when(annotationSchemaService.listAnnotationLayer(any(Project.class))) .thenReturn(asList(tokenLayer, posLayer, depLayer)); when(annotationSchemaService.getAdapter(posLayer)).thenReturn(new SpanAdapter( layerSupportRegistry, featureSupportRegistry, null, posLayer, () -> asList(posLayerValue), null)); when(annotationSchemaService.getAdapter(depLayer)) .thenReturn(new RelationAdapter( layerSupportRegistry, featureSupportRegistry, null, depLayer, FEAT_REL_TARGET, FEAT_REL_SOURCE, () -> asList(dependencyLayerGovernor, dependencyLayerDependent), emptyList())); MtasUimaParser sut = new MtasUimaParser( asList(tokenLayerPos, posLayerValue, dependencyLayerGovernor, dependencyLayerDependent), annotationSchemaService, featureIndexingSupportRegistry); MtasTokenCollection tc = sut.createTokenCollection(jcas.getCas()); MtasUtils.print(tc); List<MtasToken> tokens = new ArrayList<>(); tc.iterator().forEachRemaining(tokens::add); assertThat(tokens) .filteredOn(t -> t.getPrefix().startsWith("Dependency")) .extracting(t -> t.getPrefix() + "=" + t.getPostfix()) .containsExactly( "Dependency=b", "Dependency-source=a", "Dependency-source.PosValue=A", "Dependency-target=b", "Dependency-target.PosValue=B"); }
Example 5
Source File: WebannoTsv1Reader.java From webanno with Apache License 2.0 | 4 votes |
/** * add dependency parsing to CAS */ private void createDependency(JCas aJCas, Map<Integer, String> tokens, Map<Integer, String> dependencyFunction, Map<Integer, Integer> dependencyDependent, Map<String, Token> tokensStored) { for (int i = 1; i <= tokens.size(); i++) { if (dependencyFunction.get(i) != null) { Dependency outDependency = new Dependency(aJCas); outDependency.setDependencyType(dependencyFunction.get(i)); // if span A has (start,end)= (20, 26) and B has (start,end)= (30, 36) // arc drawn from A to B, dependency will have (start, end) = (20, 36) // arc drawn from B to A, still dependency will have (start, end) = (20, 36) int begin = 0, end = 0; // if not ROOT if (dependencyDependent.get(i) != 0) { begin = tokensStored.get("t_" + i).getBegin() > tokensStored.get( "t_" + dependencyDependent.get(i)).getBegin() ? tokensStored.get( "t_" + dependencyDependent.get(i)).getBegin() : tokensStored.get( "t_" + i).getBegin(); end = tokensStored.get("t_" + i).getEnd() < tokensStored.get( "t_" + dependencyDependent.get(i)).getEnd() ? tokensStored.get( "t_" + dependencyDependent.get(i)).getEnd() : tokensStored .get("t_" + i).getEnd(); } else { begin = tokensStored.get("t_" + i).getBegin(); end = tokensStored.get("t_" + i).getEnd(); } outDependency.setBegin(begin); outDependency.setEnd(end); outDependency.setDependent(tokensStored.get("t_" + i)); if (dependencyDependent.get(i) == 0) { outDependency.setGovernor(tokensStored.get("t_" + i)); } else { outDependency.setGovernor(tokensStored.get("t_" + dependencyDependent.get(i))); } outDependency.addToIndexes(); } } }
Example 6
Source File: NoMultipleIncomingRelationsCheckTest.java From webanno with Apache License 2.0 | 4 votes |
@Test public void testFail() throws Exception { AnnotationLayer relationLayer = new AnnotationLayer(); relationLayer.setName(Dependency.class.getName()); relationLayer.setType(WebAnnoConst.RELATION_TYPE); Mockito.when(annotationService.listAnnotationLayer(Mockito.isNull())) .thenReturn(Arrays.asList(relationLayer)); JCas jcas = JCasFactory.createJCas(); jcas.setDocumentText("This is a test."); Token spanThis = new Token(jcas, 0, 4); spanThis.addToIndexes(); Token spanIs = new Token(jcas, 5, 7); spanIs.addToIndexes(); Token spanA = new Token(jcas, 8, 9); spanA.addToIndexes(); Dependency dep1 = new Dependency(jcas, 0, 7); dep1.setGovernor(spanThis); dep1.setDependent(spanIs); dep1.addToIndexes(); Dependency dep2 = new Dependency(jcas, 0, 9); dep2.setGovernor(spanA); dep2.setDependent(spanIs); dep2.addToIndexes(); List<LogMessage> messages = new ArrayList<>(); boolean result = check.check(null, jcas.getCas(), messages); messages.forEach(System.out::println); assertTrue(result); // also check the message itself assertEquals(1, messages.size()); assertEquals( "[NoMultipleIncomingRelationsCheck] Relation [This] -> [is] points to span that already has an incoming relation [a] -> [is].", messages.get(0).toString()); }
Example 7
Source File: NoMultipleIncomingRelationsCheckTest.java From webanno with Apache License 2.0 | 4 votes |
@Test public void testOK() throws Exception { AnnotationLayer relationLayer = new AnnotationLayer(); relationLayer.setName(Dependency.class.getName()); relationLayer.setType(WebAnnoConst.RELATION_TYPE); Mockito.when(annotationService.listAnnotationLayer(Mockito.isNull())) .thenReturn(Arrays.asList(relationLayer)); JCas jcas = JCasFactory.createJCas(); jcas.setDocumentText("This is a test."); Token spanThis = new Token(jcas, 0, 4); spanThis.addToIndexes(); Token spanIs = new Token(jcas, 6, 8); spanIs.addToIndexes(); Token spanA = new Token(jcas, 9, 10); spanA.addToIndexes(); Dependency dep1 = new Dependency(jcas, 0, 8); dep1.setGovernor(spanThis); dep1.setDependent(spanIs); dep1.addToIndexes(); Dependency dep2 = new Dependency(jcas, 6, 10); dep2.setGovernor(spanIs); dep2.setDependent(spanA); dep2.addToIndexes(); List<LogMessage> messages = new ArrayList<>(); boolean result = check.check(null, jcas.getCas(), messages); messages.forEach(System.out::println); assertTrue(result); }
Example 8
Source File: NoMultipleIncomingRelationsCheckTest.java From webanno with Apache License 2.0 | 4 votes |
@Test public void testOkBecauseCoref() throws Exception { AnnotationLayer relationLayer = new AnnotationLayer(); relationLayer.setName(CoreferenceChain.class.getName()); relationLayer.setType(WebAnnoConst.CHAIN_TYPE); Mockito.when(annotationService.listAnnotationLayer(Mockito.isNull())) .thenReturn(Arrays.asList(relationLayer)); JCas jcas = JCasFactory.createJCas(); jcas.setDocumentText("This is a test."); Token spanThis = new Token(jcas, 0, 4); spanThis.addToIndexes(); Token spanIs = new Token(jcas, 6, 8); spanIs.addToIndexes(); Token spanA = new Token(jcas, 9, 10); spanA.addToIndexes(); Dependency dep1 = new Dependency(jcas, 0, 8); dep1.setGovernor(spanThis); dep1.setDependent(spanIs); dep1.addToIndexes(); Dependency dep2 = new Dependency(jcas, 0, 10); dep2.setGovernor(spanA); dep2.setDependent(spanIs); dep2.addToIndexes(); List<LogMessage> messages = new ArrayList<>(); boolean result = check.check(null, jcas.getCas(), messages); messages.forEach(System.out::println); assertTrue(result); }
Example 9
Source File: ConstraintsGeneratorTest.java From webanno with Apache License 2.0 | 4 votes |
@Test public void testSimplePath() throws Exception { ConstraintsGrammar parser = new ConstraintsGrammar(new FileInputStream( "src/test/resources/rules/10.rules")); Parse p = parser.Parse(); ParsedConstraints constraints = p.accept(new ParserVisitor()); JCas jcas = JCasFactory.createJCas(); jcas.setDocumentText("The sun."); // Add token annotations Token t_the = new Token(jcas, 0, 3); t_the.addToIndexes(); Token t_sun = new Token(jcas, 0, 3); t_sun.addToIndexes(); // Add POS annotations and link them to the tokens POS p_the = new POS(jcas, t_the.getBegin(), t_the.getEnd()); p_the.setPosValue("DET"); p_the.addToIndexes(); t_the.setPos(p_the); POS p_sun = new POS(jcas, t_sun.getBegin(), t_sun.getEnd()); p_sun.setPosValue("NN"); p_sun.addToIndexes(); t_sun.setPos(p_sun); // Add dependency annotations Dependency dep_the_sun = new Dependency(jcas); dep_the_sun.setGovernor(t_sun); dep_the_sun.setDependent(t_the); dep_the_sun.setDependencyType("det"); dep_the_sun.setBegin(dep_the_sun.getGovernor().getBegin()); dep_the_sun.setEnd(dep_the_sun.getGovernor().getEnd()); dep_the_sun.addToIndexes(); Evaluator constraintsEvaluator = new ValuesGenerator(); List<PossibleValue> possibleValues = constraintsEvaluator.generatePossibleValues( dep_the_sun, "DependencyType", constraints); List<PossibleValue> expectedOutput = new LinkedList<>(); expectedOutput.add(new PossibleValue("det", false)); assertEquals(expectedOutput, possibleValues); }