public override ObjectStream <NameSample> create(string[] args) { Parameters @params = ArgumentParser.parse(args, typeof(Parameters)); TokenizerModel tokenizerModel = (new TokenizerModelLoader()).load(@params.TokenizerModel); Tokenizer tokenizer = new TokenizerME(tokenizerModel); ObjectStream <string> mucDocStream = new FileToStringSampleStream(new DirectorySampleStream(@params.Data, new FileFilterAnonymousInnerClassHelper(this), false), Charset.forName("UTF-8")); return(new MucNameSampleStream(tokenizer, mucDocStream)); }
public override ObjectStream <CorefSample> create(string[] args) { Parameters @params = ArgumentParser.parse(args, typeof(Parameters)); ParserModel parserModel = (new ParserModelLoader()).load(@params.ParserModel); Parser parser = ParserFactory.create(parserModel); TokenizerModel tokenizerModel = (new TokenizerModelLoader()).load(@params.TokenizerModel); Tokenizer tokenizer = new TokenizerME(tokenizerModel); ObjectStream <string> mucDocStream = new FileToStringSampleStream(new DirectorySampleStream(@params.Data, new FileFilterAnonymousInnerClassHelper(this), false), Charset.forName("UTF-8")); ObjectStream <RawCorefSample> rawSamples = new MucCorefSampleStream(tokenizer, mucDocStream); ObjectStream <RawCorefSample> parsedSamples = new FullParseCorefEnhancerStream(parser, rawSamples); // How to load all these nameFinder models ?! // Lets make a param per model, not that nice, but ok! IDictionary <string, Jfile> modelFileTagMap = new Dictionary <string, Jfile>(); modelFileTagMap["person"] = @params.PersonModel; modelFileTagMap["organization"] = @params.OrganizationModel; IList <TokenNameFinder> nameFinders = new List <TokenNameFinder>(); IList <string> tags = new List <string>(); foreach (KeyValuePair <string, Jfile> entry in modelFileTagMap) { nameFinders.Add(new NameFinderME((new TokenNameFinderModelLoader()).load(entry.Value))); tags.Add(entry.Key); } return(new MucMentionInserterStream(new NameFinderCorefEnhancerStream(nameFinders.ToArray(), tags.ToArray(), parsedSamples))); }