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("-------------------"); }
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++; } }
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); }