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); }
/// <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_); }