Пример #1
0
        // 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();
            }
            
        }
Пример #2
0
        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);
            }                        
        }