/// <summary> /// Acrescenta as observações ao conjunto de treinamento /// e adapta o modelo. /// </summary> public void Train(List <Feature> observations) { var o = quantizer.Quantize(observations); if (o != null) { trainingSet.Add(o); if (Parameterization.IncrementalTraining || trainingSet.Count == Parameterization.TrainingSetSize) { Hmm.Learn(trainingSet.ToArray()); } } }
/** * <summary>Train method for the Hmm pos tagger. The algorithm trains an Hmm from the corpus, where corpus constitutes * as an observation array.</summary> * * <param name="corpus">Training data for the tagger.</param> */ public void Train(PosTaggedCorpus corpus) { var emittedSymbols = new List <string> [corpus.SentenceCount()]; for (var i = 0; i < emittedSymbols.Length; i++) { emittedSymbols[i] = new List <string>(); for (var j = 0; j < corpus.GetSentence(i).WordCount(); j++) { var word = (PosTaggedWord)corpus.GetSentence(i).GetWord(j); emittedSymbols[i].Add(word.GetTag()); } } _hmm = new Hmm1 <string, Word>(corpus.GetTagList(), emittedSymbols, corpus.GetAllWordsAsArray()); }
/// <summary> /// Devolve a probabilidade das observações terem sido geradas por esse modelo. /// </summary> public double Evaluate(List <Feature> observations) { var q = quantizer.Quantize(observations); return(Hmm.Evaluate(q)); }