private Parser(IMaxentModel buildModel, IMaxentModel checkModel, IPOSTagger tagger, IChunker chunker, AbstractHeadRules headRules, int beamSize, double advancePercentage) : base(tagger, chunker, headRules, beamSize, advancePercentage) { this.buildModel = buildModel; this.checkModel = checkModel; bProbs = new double[buildModel.GetNumOutcomes()]; cProbs = new double[checkModel.GetNumOutcomes()]; buildContextGenerator = new BuildContextGenerator(); checkContextGenerator = new CheckContextGenerator(); startTypeMap = new Dictionary <string, string>(); contTypeMap = new Dictionary <string, string>(); for (int boi = 0, bon = buildModel.GetNumOutcomes(); boi < bon; boi++) { var outcome = buildModel.GetOutcome(boi); if (outcome.StartsWith(START)) { startTypeMap[outcome] = outcome.Substring(START.Length); } else if (outcome.StartsWith(CONT)) { contTypeMap[outcome] = outcome.Substring(CONT.Length); } } topStartIndex = buildModel.GetIndex(TOP_START); completeIndex = checkModel.GetIndex(COMPLETE); incompleteIndex = checkModel.GetIndex(INCOMPLETE); }
/// <summary> /// Create an event stream based on the specified data stream of the specified type using the specified head rules. /// </summary> /// <param name="samples">A 1-parse-per-line Penn Treebank Style parse.</param> /// <param name="rules">The head rules.</param> /// <param name="eType">The type of events desired (tag, chunk, build, or check).</param> /// <param name="dictionary">A tri-gram dictionary to reduce feature generation.</param> public ParserEventStream(IObjectStream<Parse> samples, AbstractHeadRules rules, ParserEventTypeEnum eType, Dictionary.Dictionary dictionary) : base(samples, rules, eType, dictionary) { switch (eType) { case ParserEventTypeEnum.Build: bcg = new BuildContextGenerator(dictionary); break; case ParserEventTypeEnum.Check: kcg = new CheckContextGenerator(); break; } }
/// <summary> /// Create an event stream based on the specified data stream of the specified type using the specified head rules. /// </summary> /// <param name="samples">A 1-parse-per-line Penn Treebank Style parse.</param> /// <param name="rules">The head rules.</param> /// <param name="eType">The type of events desired (tag, chunk, build, or check).</param> /// <param name="dictionary">A tri-gram dictionary to reduce feature generation.</param> public ParserEventStream(IObjectStream <Parse> samples, AbstractHeadRules rules, ParserEventTypeEnum eType, Dictionary.Dictionary dictionary) : base(samples, rules, eType, dictionary) { switch (eType) { case ParserEventTypeEnum.Build: bcg = new BuildContextGenerator(dictionary); break; case ParserEventTypeEnum.Check: kcg = new CheckContextGenerator(); break; } }
private Parser(IMaxentModel buildModel, IMaxentModel checkModel, IPOSTagger tagger, IChunker chunker, AbstractHeadRules headRules, int beamSize, double advancePercentage) : base(tagger, chunker, headRules, beamSize, advancePercentage) { this.buildModel = buildModel; this.checkModel = checkModel; bProbs = new double[buildModel.GetNumOutcomes()]; cProbs = new double[checkModel.GetNumOutcomes()]; buildContextGenerator = new BuildContextGenerator(); checkContextGenerator = new CheckContextGenerator(); startTypeMap = new Dictionary<string, string>(); contTypeMap = new Dictionary<string, string>(); for (int boi = 0, bon = buildModel.GetNumOutcomes(); boi < bon; boi++) { var outcome = buildModel.GetOutcome(boi); if (outcome.StartsWith(START)) { startTypeMap[outcome] = outcome.Substring(START.Length); } else if (outcome.StartsWith(CONT)) { contTypeMap[outcome] = outcome.Substring(CONT.Length); } } topStartIndex = buildModel.GetIndex(TOP_START); completeIndex = checkModel.GetIndex(COMPLETE); incompleteIndex = checkModel.GetIndex(INCOMPLETE); }