Ejemplo n.º 1
0
        /// <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());
                }
            }
        }
Ejemplo n.º 2
0
        /**
         * <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());
        }
Ejemplo n.º 3
0
        /// <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));
        }