@Override protected TokenNameFinderModel loadModel(InputStream modelIn) throws IOException { return new TokenNameFinderModel(modelIn); }
@Override protected TokenNameFinderModel loadModel(InputStream in) throws IOException { return new TokenNameFinderModel(in); }
/** * Creates OpenNLP name finder * @param nameType the entity type recognised by the given NER model * @param nerModelPath path to ner model */ public OpenNLPNameFinder(String nameType, String nerModelPath) { this.nameTypes = Collections.singleton(nameType); this.nameType = nameType; InputStream nerModelStream = getClass().getClassLoader().getResourceAsStream(nerModelPath); try { if (nerModelStream != null){ TokenNameFinderModel model = new TokenNameFinderModel(nerModelStream); this.nameFinder = new NameFinderME(model); this.available = true; } else { LOG.warn("Couldn't find model from {} using class loader", nerModelPath); } } catch (IOException e) { LOG.error(e.getMessage(), e); } finally { IOUtils.closeQuietly(nerModelStream); } LOG.info("{} NER : Available for service ? {}", nameType, available); }
@SuppressWarnings("unchecked") public Event[] updateContext(Sequence sequence, AbstractModel model) { TokenNameFinder tagger = new NameFinderME(new TokenNameFinderModel( "x-unspecified", model, Collections.emptyMap(), null)); String[] sentence = ((Sequence<NameSample>) sequence).getSource().getSentence(); String[] tags = seqCodec.encode(tagger.find(sentence), sentence.length); Event[] events = new Event[sentence.length]; NameFinderEventStream.generateEvents(sentence,tags,pcg).toArray(events); return events; }
TokenNameFinderModel model = new TokenNameFinderModel(modelUrl); this.nameFinder = new NameFinderME(model); } catch (Exception e) {
new TokenNameFinderModel(new File(args[args.length - 1])))};
@Test public void evalNerPercentageModel() throws Exception { TokenNameFinderModel personModel = new TokenNameFinderModel( new File(getOpennlpDataDir(), "models-sf/en-ner-percentage.bin")); evalNameFinder(personModel, new BigInteger("320996882594215344113023719117249515343")); }
@Test public void evalNerPersonModel() throws Exception { TokenNameFinderModel personModel = new TokenNameFinderModel( new File(getOpennlpDataDir(), "models-sf/en-ner-person.bin")); evalNameFinder(personModel, new BigInteger("143619582249937129618340838626447763744")); }
@Test public void evalNerTimeModel() throws Exception { TokenNameFinderModel personModel = new TokenNameFinderModel( new File(getOpennlpDataDir(), "models-sf/en-ner-time.bin")); evalNameFinder(personModel, new BigInteger("282941772380683328816791801782579055940")); }
@Test public void evalNerDateModel() throws Exception { TokenNameFinderModel personModel = new TokenNameFinderModel( new File(getOpennlpDataDir(), "models-sf/en-ner-date.bin")); evalNameFinder(personModel, new BigInteger("116570003910213570906062355532299200317")); }
@Test public void evalNerLocationModel() throws Exception { TokenNameFinderModel personModel = new TokenNameFinderModel( new File(getOpennlpDataDir(), "models-sf/en-ner-location.bin")); evalNameFinder(personModel, new BigInteger("44810593886021404716125849669208680993")); }
@Test public void evalNerMoneyModel() throws Exception { TokenNameFinderModel personModel = new TokenNameFinderModel( new File(getOpennlpDataDir(), "models-sf/en-ner-money.bin")); evalNameFinder(personModel, new BigInteger("65248897509365807977219790824670047287")); }
@Test public void evalNerOrganizationModel() throws Exception { TokenNameFinderModel personModel = new TokenNameFinderModel( new File(getOpennlpDataDir(), "models-sf/en-ner-organization.bin")); evalNameFinder(personModel, new BigInteger("50454559690338630659278005157657197233")); }
@Override protected TokenNameFinderModel loadModel(InputStream modelIn) throws IOException { return new TokenNameFinderModel(modelIn); }
return new TokenNameFinderModel(languageCode, seqModel, factory.getFeatureGenerator(), factory.getResources(), manifestInfoEntries, factory.getSequenceCodec(), factory); } else { return new TokenNameFinderModel(languageCode, nameFinderModel, beamSize, factory.getFeatureGenerator(), factory.getResources(), manifestInfoEntries, factory.getSequenceCodec(), factory);
NameFinderME[] finders = new NameFinderME[3]; String[] names = {"person", "location", "date"}; for (int mi = 0; mi < names.length; mi++) { finders[mi] = new NameFinderME(new TokenNameFinderModel( new FileInputStream( new File(modelDir, "en-ner-" + names[mi] + ".bin") )));
@SuppressWarnings("unchecked") public Event[] updateContext(Sequence sequence, AbstractModel model) { TokenNameFinder tagger = new NameFinderME(new TokenNameFinderModel( "x-unspecified", model, Collections.emptyMap(), null)); String[] sentence = ((Sequence<NameSample>) sequence).getSource().getSentence(); String[] tags = seqCodec.encode(tagger.find(sentence), sentence.length); Event[] events = new Event[sentence.length]; NameFinderEventStream.generateEvents(sentence,tags,pcg).toArray(events); return events; }
@SuppressWarnings("unchecked") public Event[] updateContext(Sequence sequence, AbstractModel model) { TokenNameFinder tagger = new NameFinderME(new TokenNameFinderModel( "x-unspecified", model, Collections.emptyMap(), null)); String[] sentence = ((Sequence<NameSample>) sequence).getSource().getSentence(); String[] tags = seqCodec.encode(tagger.find(sentence), sentence.length); Event[] events = new Event[sentence.length]; NameFinderEventStream.generateEvents(sentence,tags,pcg).toArray(events); return events; }
/** * Builds an {@link ApacheExtractor} by instantiating the OpenNLP * Name Finder and Tokenizer. * * @throws IOException */ public ApacheExtractor() throws IOException { nameFinder = new NameFinderME(new TokenNameFinderModel(ApacheExtractor.class.getResourceAsStream(pathToNERModel))); tokenizer = new TokenizerME(new TokenizerModel(ApacheExtractor.class.getResourceAsStream(pathToTokenizerModel))); sentenceDetector = new SentenceDetectorME(new SentenceModel(ApacheExtractor.class.getResourceAsStream(pathToSentenceDetectorModel))); }
/** * Builds an {@link ApacheExtractor} by instantiating the OpenNLP * Name Finder and Tokenizer. * * @throws IOException */ public ApacheExtractor() throws IOException { nameFinder = new NameFinderME(new TokenNameFinderModel(ApacheExtractor.class.getResourceAsStream(pathToNERModel))); tokenizer = new TokenizerME(new TokenizerModel(ApacheExtractor.class.getResourceAsStream(pathToTokenizerModel))); sentenceDetector = new SentenceDetectorME(new SentenceModel(ApacheExtractor.class.getResourceAsStream(pathToSentenceDetectorModel))); }