double CalcProbability(ProbabilityDictionary pd, int index)
        {
            double b = 0.0;

            for (int i = 0; i < pd.pDictionary.Length; i++)
            {
                b += pd.pDictionary[i].Probability * SearchProb(pd.pDictionary[i].Word, index);
            }
            return(b);
        }
Example #2
0
        /// <summary>
        /// Генерирование моделей
        /// </summary>
        void GenerateModels()
        {
            ProbabilityDictionary[] pD = new ProbabilityDictionary[_paths.Length];
            tmds = new TextModelData[pD.Length];

            for (int i = 0; i < _paths.Length; i++)
            {
                tmds[i]     = new TextModelData();
                tmds[i].pds = (new ProbabilityDictionary(File.ReadAllText(_paths[i]))).pDictionary;
            }
        }
        public int RecognClass(string text)
        {
            int class_ = 0;
            ProbabilityDictionary pd = new ProbabilityDictionary(text);
            double maxProb           = CalcProbability(pd, 0);

            for (int i = 1; i < textModel.tmds.Length; i++)
            {
                double prob = CalcProbability(pd, i);
                if (maxProb < prob)
                {
                    maxProb = prob;
                    class_  = i;
                }
            }
            return(class_);
        }