/// <summary> /// 加载主词典及扩展词典 /// </summary> private void LoadMainDict() { var files = Directory.GetFiles(cfg.MainDictionary, "*.dict"); //读取量词词典文件 if (!files.Contains(cfg.MainDictFile)) { throw new InvalidOperationException("未发现主词库词典!!!"); } //建立一个主词典实例 mainDict = new DictSegment((char)0); foreach (var file in files) { var theWord = File.ReadAllLines(file, Encoding.UTF8); foreach (var word in theWord) { if (IsValidWord(word)) { var vals = word.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); WordNode node = new WordNode() { Frequency = vals.Length > 1 ? double.Parse(vals[1]) : 1 //默认词频1 }; //词 mainDict.FillSegment(vals[0].ToLower().ToCharArray(), node); } } } //发射概率实例化 FinalSeg.Init(Path.Combine(cfg.MainDictionary, "prob_emit.txt")); }
public void Viterbi() { var rs = FinalSeg.Output("我爱北京天安门").ToList(); }