Пример #1
0
        public void PrintLemma(Lemma l)
        {
            FlexiaModel flexModel   = _flexiaModels[l.FlexModelNo];
            AccentModel accentModel = _accentModels[l.AccentModelNo];
            UserSession session     = _userSessions[l.SessionNo];

            Console.WriteLine("=== {0} {1} {2} {3} ===", l.Base, _gramtab.LookupAncode(l.TypeAncode), flexModel.Forms.Count,
                              accentModel.AccentForms.Count);
            int formNo = 0;

            foreach (Flexia form in flexModel.Forms)
            {
                if (!string.IsNullOrWhiteSpace(form.Prefix))
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write(form.Prefix);
                }
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write(l.Base);
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write(form.Flexion);
                int accent = accentModel.AccentForms[formNo];
                Console.Write(" {0} ", accent);
                string accWord = AccentHelper.SetAccent(form.Prefix + l.Base + form.Flexion, accent);
                Console.Write(" " + accWord + " ");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.Write("\t" + _gramtab.LookupAncode(form.Ancode));
                Console.ResetColor();
                Console.WriteLine();
                formNo++;
            }
            if (l.PrefixSetNo.HasValue)
            {
                PrefixSet prefixSet = _prefixSets[l.PrefixSetNo.Value];
                Console.WriteLine("PrefixSets:");
                foreach (string pref in prefixSet.Prefixes)
                {
                    Console.WriteLine(pref);
                }
            }
            Console.WriteLine("-------------------");
        }
Пример #2
0
        public IEnumerable <WordForm> GetLemmaForms(Lemma l, string prefix)
        {
            FlexiaModel flexModel   = _flexiaModels[l.FlexModelNo];
            AccentModel accentModel = _accentModels[l.AccentModelNo];
            //UserSession session = _userSessions[l.SessionNo];
            int formNo = 0;

            foreach (Flexia form in flexModel.Forms)
            {
                int accent = accentModel.AccentForms[formNo];
                yield return(new WordForm()
                {
                    Lemma = l,
                    Prefix = prefix,
                    Flexia = form,
                    Accent = accent
                });

                formNo++;
            }
        }
Пример #3
0
        private void _parseLemma(string line)
        {
            // <base> <flex_model_no> <accent_model_no> <session_no> <type_ancode> <prefix_set_no>
            // АНАГРАММ 50 42 1 Фа -
            string[] parts = line.Split(' ');
            Lemma    l     = new Lemma();

            l.Base          = parts[0];
            l.FlexModelNo   = int.Parse(parts[1]);
            l.AccentModelNo = int.Parse(parts[2]);
            l.SessionNo     = int.Parse(parts[3]);
            if (parts[4] != "-")
            {
                l.TypeAncode   = parts[4];
                l.TypeAncodeNo = _gramtab.AncodeToInt(l.TypeAncode);
                _gramtab.CountFrequency(l.TypeAncode);
            }
            if (parts[5] != "-")
            {
                l.PrefixSetNo = int.Parse(parts[5]);
            }
            _lemmas.Add(l);
        }