public LabeledSpans constructLabeledSpans (LabelAlphabet dict, Object document, Label backgroundTag, Tokenization input, Sequence seq) { LabeledSpans labeled = new LabeledSpans (document); addSpansFromTags (labeled, input, seq, dict, backgroundTag); return labeled; }
public void testNestedToXML () { LabelAlphabet dict = new LabelAlphabet (); String document = "the quick brown fox leapt over the lazy dog"; StringTokenization toks = new StringTokenization (document, new CharSequenceLexer ()); Label O = dict.lookupLabel ("O"); Label ANML = dict.lookupLabel ("ANIMAL"); Label VB = dict.lookupLabel ("VERB"); Label JJ = dict.lookupLabel ("ADJ"); Label MAMMAL = dict.lookupLabel ("MAMMAL"); LabelSequence tags = new LabelSequence (new Label[] { O, ANML, ANML, ANML, VB, O, ANML, ANML, ANML }); LabeledSpans spans = new DefaultTokenizationFilter ().constructLabeledSpans (dict, document, O, toks, tags); Span foxToken = toks.subspan (3, 4); spans.add (new LabeledSpan (foxToken, MAMMAL, false)); Span bigDogToken = toks.subspan (7, 8); spans.add (new LabeledSpan (bigDogToken, JJ, false)); DocumentExtraction extr = new DocumentExtraction ("Test", dict, toks, spans, null, "O"); String actualXml = extr.toXmlString(); String expectedXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<doc>the <ANIMAL>quick brown <MAMMAL>fox </MAMMAL></ANIMAL><VERB>leapt </VERB>over <ANIMAL>the <ADJ>lazy </ADJ>dog</ANIMAL></doc>\r\n"; assertEquals (expectedXml, actualXml); }
private void addSpansFromTags (LabeledSpans labeled, Tokenization input, Sequence tags, LabelAlphabet dict, Label backgroundTag) { int i = 0; int docidx = 0; while (i < tags.size()) { Label thisTag = dict.lookupLabel (tags.get(i).toString()); int startTokenIdx = i; while (i < tags.size()) { Label nextTag = dict.lookupLabel (tags.get(i).toString ()); if (thisTag != nextTag) break; i++; } int endTokenIdx = i; Span span = input.subspan(startTokenIdx, endTokenIdx); addBackgroundIfNecessary (labeled, (StringSpan) span, docidx, backgroundTag); docidx = ((StringSpan) span).getEndIdx (); labeled.add (new LabeledSpan (span, thisTag, thisTag == backgroundTag)); } }
public void testNestedToXML () { LabelAlphabet dict = new LabelAlphabet (); String document = "the quick brown fox leapt over the lazy dog"; StringTokenization toks = new StringTokenization (document, new CharSequenceLexer ()); Label O = dict.lookupLabel ("O"); Label ANML = dict.lookupLabel ("ANIMAL"); Label VB = dict.lookupLabel ("VERB"); Label JJ = dict.lookupLabel ("ADJ"); Label MAMMAL = dict.lookupLabel ("MAMMAL"); LabelSequence tags = new LabelSequence (new Label[] { O, ANML, ANML, ANML, VB, O, ANML, ANML, ANML }); LabeledSpans spans = new DefaultTokenizationFilter ().constructLabeledSpans (dict, document, O, toks, tags); Span foxToken = toks.subspan (3, 4); spans.add (new LabeledSpan (foxToken, MAMMAL, false)); Span bigDogToken = toks.subspan (7, 8); spans.add (new LabeledSpan (bigDogToken, JJ, false)); DocumentExtraction extr = new DocumentExtraction ("Test", dict, toks, spans, null, "O"); String actualXml = extr.toXmlString(); String expectedXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<doc>the <ANIMAL>quick brown <MAMMAL>fox </MAMMAL></ANIMAL><VERB>leapt </VERB>over <ANIMAL>the <ADJ>lazy </ADJ>dog</ANIMAL></doc>\r\n"; assertEquals (expectedXml, actualXml); }
private void addSpansFromTags (LabeledSpans labeled, Tokenization input, Sequence tags, LabelAlphabet dict, Label backgroundTag) { int i = 0; int docidx = 0; while (i < tags.size()) { Label thisTag = dict.lookupLabel (tags.get(i).toString()); int startTokenIdx = i; while (i < tags.size()) { Label nextTag = dict.lookupLabel (tags.get(i).toString ()); if (thisTag != nextTag) break; i++; } int endTokenIdx = i; Span span = input.subspan(startTokenIdx, endTokenIdx); addBackgroundIfNecessary (labeled, (StringSpan) span, docidx, backgroundTag); docidx = ((StringSpan) span).getEndIdx (); labeled.add (new LabeledSpan (span, thisTag, thisTag == backgroundTag)); } }
public LabeledSpans constructLabeledSpans (LabelAlphabet dict, Object document, Label backgroundTag, Tokenization input, Sequence seq) { LabeledSpans labeled = new LabeledSpans (document); addSpansFromTags (labeled, input, seq, dict, backgroundTag); return labeled; }
private void addSpansFromTags (LabeledSpans labeled, Tokenization input, Sequence tags, LabelAlphabet dict, Label backgroundTag) { int i = 0; int docidx = 0; while (i < tags.size()) { Label thisTag = dict.lookupLabel (tags.get(i).toString()); int startTokenIdx = i; while (i < tags.size()) { Label nextTag = dict.lookupLabel (tags.get(i).toString ()); if (thisTag != nextTag) break; i++; } int endTokenIdx = i; Span span = input.subspan(startTokenIdx, endTokenIdx); addBackgroundIfNecessary (labeled, (StringSpan) span, docidx, backgroundTag); docidx = ((StringSpan) span).getEndIdx (); labeled.add (new LabeledSpan (span, thisTag, thisTag == backgroundTag)); } }
public LabeledSpans constructLabeledSpans (LabelAlphabet dict, Object document, Label backgroundTag, Tokenization input, Sequence seq) { LabeledSpans labeled = new LabeledSpans (document); addSpansFromTags (labeled, input, seq, dict, backgroundTag); return labeled; }