// constructor public Referator(string inpText, string enc) { /* загружаем словарь стоп слов */ textEncode = enc; string str = ""; string path = Directory.GetCurrentDirectory() + "\\stopWords.txt"; if (File.Exists(path)) { _stopWords = new cStopWords(); _stopWords.Parent = this; using (StreamReader sr = new StreamReader(path)) { while (!sr.EndOfStream) { str = sr.ReadLine(); _stopWords.Add(str); } } } else { throw new Exception("не загружен список стоп слов"); } /* init NormalWords list */ this.normalWords = new cWords(); /* делим текст на предложения */ Regex re = new Regex(@"(?<=(?<!([А-ЯЁA-Z]\.[А-ЯЁA-Z]))[.?!]+)[\s\n\t\r]+(?=[А-ЯЁA-Z\d])"); string[] se = re.Split(inpText); // создание предложений this.Sentences = new cSentences(this); for (int i = 0; i < se.Length; i++) { this.Sentences.Add(se[i], this, i); } // расччет весов предложений foreach (Sentence s in Sentences) { s.calcWeight(); } }
public readonly string textEncode; // кодировка скорее всего не нужно public Referator(string xml) { Sentences = new cSentences(this); XmlDocument xDoc = new XmlDocument(); xDoc.LoadXml(xml); XmlNode xSentences = xDoc.SelectSingleNode("sentences"); XmlNodeList xSe = xSentences.SelectNodes("se"); foreach (XmlNode se in xSe) { int seIndex = int.Parse(se.Attributes["index"].Value); string s = se.Attributes["weight"].Value; s = s.Replace('.', ','); float seWeight = float.Parse(s); Sentence sentence = new Sentence(se.InnerText, this, seIndex, 1); sentence.Weight = seWeight; Sentences.Add(sentence); } }