Java Code Examples for opennlp.tools.util.Span#spansToStrings()
The following examples show how to use
opennlp.tools.util.Span#spansToStrings() .
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: IntentTrainer.java From org.openhab.ui.habot with Eclipse Public License 1.0 | 6 votes |
/** * Tries to understand the natural language query into an {@link Intent} * * @param query the natural language query * @return the resulting @{link Intent} */ public Intent interpret(String query) { String[] tokens = this.tokenizer.tokenize(query.toLowerCase()); // remove eventual trailing punctuation tokens[tokens.length - 1] = tokens[tokens.length - 1].replaceAll("\\s*[!?.]+$", ""); double[] outcome = categorizer.categorize(tokens); logger.debug("{}", categorizer.getAllResults(outcome)); Intent intent = new Intent(categorizer.getBestCategory(outcome)); Span[] spans = nameFinder.find(tokens); String[] names = Span.spansToStrings(spans, tokens); for (int i = 0; i < spans.length; i++) { intent.getEntities().put(spans[i].getType(), names[i]); } logger.debug("{}", intent.toString()); return intent; }
Example 2
Source File: TestNER.java From Mutters with Apache License 2.0 | 6 votes |
@Test public void testPersonNER() throws Exception { URL modelUrl = Thread.currentThread().getContextClassLoader().getResource("models/en-ner-persons.bin"); assertThat(modelUrl, is(notNullValue())); TokenNameFinderModel model = new TokenNameFinderModel(modelUrl); assertThat(model, is(notNullValue())); NameFinderME nameFinder = new NameFinderME(model); String[] tokens = SimpleTokenizer.INSTANCE .tokenize("Mr. John Smith of New York, married Anne Green of London today."); assertThat(tokens.length, is(15)); Span[] spans = nameFinder.find(tokens); assertThat(spans.length, is(2)); String[] names = Span.spansToStrings(spans, tokens); assertThat(names.length, is(2)); assertThat(names[0], is("John Smith")); assertThat(names[1], is("Anne Green")); }
Example 3
Source File: TestNER.java From Mutters with Apache License 2.0 | 6 votes |
@Test public void testLocationNER() throws Exception { URL modelUrl = Thread.currentThread().getContextClassLoader().getResource("models/en-ner-locations.bin"); assertThat(modelUrl, is(notNullValue())); TokenNameFinderModel model = new TokenNameFinderModel(modelUrl); assertThat(model, is(notNullValue())); NameFinderME nameFinder = new NameFinderME(model); String[] tokens = SimpleTokenizer.INSTANCE .tokenize("Mr. John Smith of New York, married Anne Green of London today."); assertThat(tokens.length, is(15)); Span[] spans = nameFinder.find(tokens); assertThat(spans.length, is(2)); String[] locations = Span.spansToStrings(spans, tokens); assertThat(locations.length, is(2)); assertThat(locations[0], is("New York")); assertThat(locations[1], is("London")); }
Example 4
Source File: TestNER.java From Mutters with Apache License 2.0 | 6 votes |
@Test public void testDateNER() throws Exception { URL modelUrl = Thread.currentThread().getContextClassLoader().getResource("models/en-ner-dates.bin"); assertThat(modelUrl, is(notNullValue())); TokenNameFinderModel model = new TokenNameFinderModel(modelUrl); assertThat(model, is(notNullValue())); NameFinderME nameFinder = new NameFinderME(model); String[] tokens = SimpleTokenizer.INSTANCE .tokenize("Mr. John Smith of New York, married Anne Green of London today."); assertThat(tokens.length, is(15)); Span[] spans = nameFinder.find(tokens); assertThat(spans.length, is(1)); String[] locations = Span.spansToStrings(spans, tokens); assertThat(locations.length, is(1)); assertThat(locations[0], is("today")); }
Example 5
Source File: TestNER.java From Mutters with Apache License 2.0 | 6 votes |
@Test public void testAddressNER() throws Exception { URL modelUrl = Thread.currentThread().getContextClassLoader().getResource("models/en-ner-address.bin"); assertThat(modelUrl, is(notNullValue())); TokenNameFinderModel model = new TokenNameFinderModel(modelUrl); assertThat(model, is(notNullValue())); NameFinderME nameFinder = new NameFinderME(model); String[] tokens = SimpleTokenizer.INSTANCE.tokenize("Send a taxi to 12 Pleasent Street"); Span[] spans = nameFinder.find(tokens); assertThat(spans.length, is(1)); String[] locations = Span.spansToStrings(spans, tokens); assertThat(locations.length, is(1)); assertThat(locations[0], is("12 Pleasent Street")); }
Example 6
Source File: NERScorer.java From uncc2014watsonsim with GNU General Public License v2.0 | 5 votes |
public Parse[] parsePassageText(String p) throws InvalidFormatException{ if (!modelsAreInitialized)init(); //initialize SentenceDetectorME sentenceDetector = new SentenceDetectorME(this.sentenceModel); NameFinderME nameFinder = new NameFinderME(this.nerModel); Parser parser = ParserFactory.create( this.parserModel, 20, // beam size 0.95); // advance percentage //find sentences, tokenize each, parse each, return top parse for each String[] sentences = sentenceDetector.sentDetect(p); Parse[] results = new Parse[sentences.length]; for (int i=0;i<sentences.length;i++){ //String[] tks = SimpleTokenizer.INSTANCE.tokenize(sentences[i]); //StringTokenizer st = new StringTokenizer(tks[i]); //There are several tokenizers available. SimpleTokenizer works best Tokenizer tokenizer = SimpleTokenizer.INSTANCE; for (int si = 0; si < sentences.length; si++) { Span[] tokenSpans = tokenizer.tokenizePos(sentences[si]); String[] tokens = Span.spansToStrings(tokenSpans, sentences[si]); Span[] names = nameFinder.find(tokens); for (int ni = 0; ni < names.length; ni++) { Span startSpan = tokenSpans[names[ni].getStart()]; int nameStart = startSpan.getStart(); Span endSpan = tokenSpans[names[ni].getEnd() - 1]; int nameEnd = endSpan.getEnd(); String name = sentences[si].substring(nameStart, nameEnd); System.out.println(name); } } String sent= StringUtils.join(tokenizer," "); System.out.println("Found sentence " + sent); Parse[] sentResults = ParserTool.parseLine(sent,parser, 1); results[i]=sentResults[0]; } return results; }