public override Pullenti.Ner.Core.IntOntologyItem CreateOntologyItem() { bool isCity = IsCity; Pullenti.Ner.Core.IntOntologyItem oi = new Pullenti.Ner.Core.IntOntologyItem(this); foreach (Pullenti.Ner.Slot a in Slots) { if (a.TypeName == ATTR_NAME) { string s = a.Value.ToString(); Pullenti.Ner.Core.Termin t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s, null); if (isCity) { t.AddStdAbridges(); } oi.Termins.Add(t); } } return(oi); }
internal static void Initialize() { if (m_Types != null) { return; } m_Types = new Pullenti.Ner.Core.TerminCollection(); m_Names = new Pullenti.Ner.Core.TerminCollection(); Pullenti.Ner.Core.Termin t; foreach (string s in new string[] { "ПЛАНЕТА", "ЗВЕЗДА", "КОМЕТА", "МЕТЕОРИТ", "СОЗВЕЗДИЕ", "ГАЛАКТИКА" }) { t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s, null); t.Tag = Pullenti.Ner.Named.NamedEntityKind.Planet; m_Types.Add(t); } foreach (string s in new string[] { "СОЛНЦЕ", "МЕРКУРИЙ", "ВЕНЕРА", "ЗЕМЛЯ", "МАРС", "ЮПИТЕР", "САТУРН", "УРАН", "НЕПТУН", "ПЛУТОН", "ЛУНА", "ДЕЙМОС", "ФОБОС", "Ио", "Ганимед", "Каллисто" }) { t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s.ToUpper(), null); t.Tag = Pullenti.Ner.Named.NamedEntityKind.Planet; m_Names.Add(t); } foreach (string s in new string[] { "РЕКА", "ОЗЕРО", "МОРЕ", "ОКЕАН", "ЗАЛИВ", "ПРОЛИВ", "ПОБЕРЕЖЬЕ", "КОНТИНЕНТ", "ОСТРОВ", "ПОЛУОСТРОВ", "МЫС", "ГОРА", "ГОРНЫЙ ХРЕБЕТ", "ПЕРЕВАЛ", "ЛЕС", "САД", "ЗАПОВЕДНИК", "ЗАКАЗНИК", "ДОЛИНА", "УЩЕЛЬЕ", "РАВНИНА", "БЕРЕГ" }) { t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s, null); t.Tag = Pullenti.Ner.Named.NamedEntityKind.Location; m_Types.Add(t); } foreach (string s in new string[] { "ТИХИЙ", "АТЛАНТИЧЕСКИЙ", "ИНДИЙСКИЙ", "СЕВЕРО-ЛЕДОВИТЫЙ" }) { t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s, null); t.Tag = Pullenti.Ner.Named.NamedEntityKind.Location; t.Tag2 = "океан"; m_Names.Add(t); } foreach (string s in new string[] { "ЕВРАЗИЯ", "АФРИКА", "АМЕРИКА", "АВСТРАЛИЯ", "АНТАРКТИДА" }) { t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s, null); t.Tag = Pullenti.Ner.Named.NamedEntityKind.Location; t.Tag2 = "континент"; m_Names.Add(t); } foreach (string s in new string[] { "ВОЛГА", "НЕВА", "АМУР", "ОБЪ", "АНГАРА", "ЛЕНА", "ИРТЫШ", "ДНЕПР", "ДОН", "ДНЕСТР", "РЕЙН", "АМУДАРЬЯ", "СЫРДАРЬЯ", "ТИГР", "ЕВФРАТ", "ИОРДАН", "МИССИСИПИ", "АМАЗОНКА", "ТЕМЗА", "СЕНА", "НИЛ", "ЯНЦЗЫ", "ХУАНХЭ", "ПАРАНА", "МЕКОНГ", "МАККЕНЗИ", "НИГЕР", "ЕНИСЕЙ", "МУРРЕЙ", "САЛУИН", "ИНД", "РИО-ГРАНДЕ", "БРАХМАПУТРА", "ДАРЛИНГ", "ДУНАЙ", "ЮКОН", "ГАНГ", "МАРРАМБИДЖИ", "ЗАМБЕЗИ", "ТОКАНТИС", "ОРИНОКО", "СИЦЗЯН", "КОЛЫМА", "КАМА", "ОКА", "ЭЛЬЮА", "ВИСЛА", "ДАУГАВА", "ЗАПАДНАЯ ДВИНА", "НЕМАН", "МЕЗЕНЬ", "КУБАНЬ", "ЮЖНЫЙ БУГ" }) { t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s, null); t.Tag = Pullenti.Ner.Named.NamedEntityKind.Location; t.Tag2 = "река"; m_Names.Add(t); } foreach (string s in new string[] { "ЕВРОПА", "АЗИЯ", "АРКТИКА", "КАВКАЗ", "ПРИБАЛТИКА", "СИБИРЬ", "ЗАПОЛЯРЬЕ", "ЧУКОТКА", "ПРИБАЛТИКА", "БАЛКАНЫ", "СКАНДИНАВИЯ", "ОКЕАНИЯ", "АЛЯСКА", "УРАЛ", "ПОВОЛЖЬЕ", "ПРИМОРЬЕ", "КУРИЛЫ", "ТИБЕТ", "ГИМАЛАИ", "АЛЬПЫ", "САХАРА", "ГОБИ", "СИНАЙ", "БАЙКОНУР", "ЧЕРНОБЫЛЬ", "САДОВОЕ КОЛЬЦО", "СТАРЫЙ ГОРОД" }) { t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s, null); t.Tag = Pullenti.Ner.Named.NamedEntityKind.Location; m_Names.Add(t); } foreach (string s in new string[] { "ПАМЯТНИК", "МОНУМЕНТ", "МЕМОРИАЛ", "БЮСТ", "ОБЕЛИСК" }) { t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s, null); t.Tag = Pullenti.Ner.Named.NamedEntityKind.Monument; m_Types.Add(t); } foreach (string s in new string[] { "ДВОРЕЦ", "КРЕМЛЬ", "ЗАМОК", "УСАДЬБА", "ДОМ", "ЗДАНИЕ", "ШТАБ-КВАРТИРА", "ЖЕЛЕЗНОДОРОЖНЫЙ ВОКЗАЛ", "ВОКЗАЛ", "АВТОВОКЗАЛ", "АЭРОПОРТ", "АЭРОДРОМ" }) { t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s, null); t.Tag = Pullenti.Ner.Named.NamedEntityKind.Building; m_Types.Add(t); } foreach (string s in new string[] { "КРЕМЛЬ", "КАПИТОЛИЙ", "БЕЛЫЙ ДОМ" }) { t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(s, null); t.Tag = Pullenti.Ner.Named.NamedEntityKind.Building; m_Names.Add(t); } t = new Pullenti.Ner.Core.Termin("МЕЖДУНАРОДНАЯ КОСМИЧЕСКАЯ СТАНЦИЯ") { Tag = Pullenti.Ner.Named.NamedEntityKind.Building }; t.Acronym = "МКС"; m_Names.Add(t); }
internal static void Initialize() { if (m_Postfixes != null) { return; } Pullenti.Ner.Core.Termin t; m_Postfixes = new Pullenti.Ner.Core.TerminCollection(); t = new Pullenti.Ner.Core.Termin("КВАДРАТНЫЙ МЕТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "кв.м.", Tag = Pullenti.Ner.Core.NumberExType.Meter2 }; t.AddAbridge("КВ.МЕТР"); t.AddAbridge("КВ.МЕТРА"); t.AddAbridge("КВ.М."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("КВАДРАТНИЙ МЕТР", Pullenti.Morph.MorphLang.UA, true) { CanonicText = "КВ.М.", Tag = Pullenti.Ner.Core.NumberExType.Meter2 }; t.AddAbridge("КВ.МЕТР"); t.AddAbridge("КВ.МЕТРА"); t.AddAbridge("КВ.М."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("КВАДРАТНЫЙ КИЛОМЕТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "кв.км.", Tag = Pullenti.Ner.Core.NumberExType.Kilometer2 }; t.AddVariant("КВАДРАТНИЙ КІЛОМЕТР", true); t.AddAbridge("КВ.КМ."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ГЕКТАР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "га", Tag = Pullenti.Ner.Core.NumberExType.Gektar }; t.AddAbridge("ГА"); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("АР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "ар", Tag = Pullenti.Ner.Core.NumberExType.Ar }; t.AddVariant("СОТКА", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("КУБИЧЕСКИЙ МЕТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "куб.м.", Tag = Pullenti.Ner.Core.NumberExType.Meter3 }; t.AddVariant("КУБІЧНИЙ МЕТР", true); t.AddAbridge("КУБ.МЕТР"); t.AddAbridge("КУБ.М."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МЕТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "м.", Tag = Pullenti.Ner.Core.NumberExType.Meter }; t.AddAbridge("М."); t.AddAbridge("M."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МЕТРОВЫЙ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "м.", Tag = Pullenti.Ner.Core.NumberExType.Meter }; t.AddVariant("МЕТРОВИЙ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МИЛЛИМЕТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "мм.", Tag = Pullenti.Ner.Core.NumberExType.Millimeter }; t.AddAbridge("ММ"); t.AddAbridge("MM"); t.AddVariant("МІЛІМЕТР", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МИЛЛИМЕТРОВЫЙ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "мм.", Tag = Pullenti.Ner.Core.NumberExType.Millimeter }; t.AddVariant("МІЛІМЕТРОВИЙ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("САНТИМЕТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "см.", Tag = Pullenti.Ner.Core.NumberExType.Santimeter }; t.AddAbridge("СМ"); t.AddAbridge("CM"); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("САНТИМЕТРОВЫЙ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "см.", Tag = Pullenti.Ner.Core.NumberExType.Santimeter }; t.AddVariant("САНТИМЕТРОВИЙ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("КВАДРАТНЫЙ САНТИМЕТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "кв.см.", Tag = Pullenti.Ner.Core.NumberExType.Santimeter2 }; t.AddVariant("КВАДРАТНИЙ САНТИМЕТР", true); t.AddAbridge("КВ.СМ."); t.AddAbridge("СМ.КВ."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("КУБИЧЕСКИЙ САНТИМЕТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "куб.см.", Tag = Pullenti.Ner.Core.NumberExType.Santimeter3 }; t.AddVariant("КУБІЧНИЙ САНТИМЕТР", true); t.AddAbridge("КУБ.САНТИМЕТР"); t.AddAbridge("КУБ.СМ."); t.AddAbridge("СМ.КУБ."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("КИЛОМЕТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "км.", Tag = Pullenti.Ner.Core.NumberExType.Kilometer }; t.AddAbridge("КМ"); t.AddAbridge("KM"); t.AddVariant("КІЛОМЕТР", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("КИЛОМЕТРОВЫЙ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "км.", Tag = Pullenti.Ner.Core.NumberExType.Kilometer }; t.AddVariant("КІЛОМЕТРОВИЙ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МИЛЯ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "миль", Tag = Pullenti.Ner.Core.NumberExType.Kilometer }; m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ГРАММ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "гр.", Tag = Pullenti.Ner.Core.NumberExType.Gramm }; t.AddAbridge("ГР"); t.AddAbridge("Г"); t.AddVariant("ГРАМ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ГРАММОВЫЙ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "гр.", Tag = Pullenti.Ner.Core.NumberExType.Gramm }; m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("КИЛОГРАММ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "кг.", Tag = Pullenti.Ner.Core.NumberExType.Kilogram }; t.AddAbridge("КГ"); t.AddVariant("КІЛОГРАМ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("КИЛОГРАММОВЫЙ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "кг.", Tag = Pullenti.Ner.Core.NumberExType.Kilogram }; t.AddVariant("КІЛОГРАМОВИЙ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МИЛЛИГРАММ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "мг.", Tag = Pullenti.Ner.Core.NumberExType.Milligram }; t.AddAbridge("МГ"); t.AddVariant("МІЛІГРАМ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МИЛЛИГРАММОВЫЙ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "мг.", Tag = Pullenti.Ner.Core.NumberExType.Milligram }; t.AddVariant("МИЛЛИГРАМОВЫЙ", true); t.AddVariant("МІЛІГРАМОВИЙ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ТОННА", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "т.", Tag = Pullenti.Ner.Core.NumberExType.Tonna }; t.AddAbridge("Т"); t.AddAbridge("T"); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ТОННЫЙ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "т.", Tag = Pullenti.Ner.Core.NumberExType.Tonna }; t.AddVariant("ТОННИЙ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ЛИТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "л.", Tag = Pullenti.Ner.Core.NumberExType.Litr }; t.AddAbridge("Л"); t.AddVariant("ЛІТР", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ЛИТРОВЫЙ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "л.", Tag = Pullenti.Ner.Core.NumberExType.Litr }; t.AddVariant("ЛІТРОВИЙ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МИЛЛИЛИТР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "мл.", Tag = Pullenti.Ner.Core.NumberExType.Millilitr }; t.AddAbridge("МЛ"); t.AddVariant("МІЛІЛІТР", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МИЛЛИЛИТРОВЫЙ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "мл.", Tag = Pullenti.Ner.Core.NumberExType.Millilitr }; t.AddVariant("МІЛІЛІТРОВИЙ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ЧАС", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "ч.", Tag = Pullenti.Ner.Core.NumberExType.Hour }; t.AddAbridge("Ч."); t.AddVariant("ГОДИНА", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МИНУТА", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "мин.", Tag = Pullenti.Ner.Core.NumberExType.Minute }; t.AddAbridge("МИН."); t.AddVariant("ХВИЛИНА", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("СЕКУНДА", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "сек.", Tag = Pullenti.Ner.Core.NumberExType.Second }; t.AddAbridge("СЕК."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ГОД", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "г.", Tag = Pullenti.Ner.Core.NumberExType.Year }; t.AddAbridge("Г."); t.AddAbridge("ЛЕТ"); t.AddVariant("ЛЕТНИЙ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("МЕСЯЦ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "мес.", Tag = Pullenti.Ner.Core.NumberExType.Month }; t.AddAbridge("МЕС."); t.AddVariant("МЕСЯЧНЫЙ", true); t.AddVariant("КАЛЕНДАРНЫЙ МЕСЯЦ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ДЕНЬ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "дн.", Tag = Pullenti.Ner.Core.NumberExType.Day }; t.AddAbridge("ДН."); t.AddVariant("ДНЕВНЫЙ", true); t.AddVariant("СУТКИ", true); t.AddVariant("СУТОЧНЫЙ", true); t.AddVariant("КАЛЕНДАРНЫЙ ДЕНЬ", true); t.AddVariant("РАБОЧИЙ ДЕНЬ", true); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("НЕДЕЛЯ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "нед.", Tag = Pullenti.Ner.Core.NumberExType.Week }; t.AddVariant("НЕДЕЛЬНЫЙ", true); t.AddVariant("КАЛЕНДАРНАЯ НЕДЕЛЯ", false); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ПРОЦЕНТ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "%", Tag = Pullenti.Ner.Core.NumberExType.Percent }; t.AddVariant("%", false); t.AddVariant("ПРОЦ", true); t.AddAbridge("ПРОЦ."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ШТУКА", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "шт.", Tag = Pullenti.Ner.Core.NumberExType.Shuk }; t.AddVariant("ШТ", false); t.AddAbridge("ШТ."); t.AddAbridge("ШТ-К"); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("УПАКОВКА", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "уп.", Tag = Pullenti.Ner.Core.NumberExType.Upak }; t.AddVariant("УПАК", true); t.AddVariant("УП", true); t.AddAbridge("УПАК."); t.AddAbridge("УП."); t.AddAbridge("УП-КА"); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("РУЛОН", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "рулон", Tag = Pullenti.Ner.Core.NumberExType.Rulon }; t.AddVariant("РУЛ", true); t.AddAbridge("РУЛ."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("НАБОР", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "набор", Tag = Pullenti.Ner.Core.NumberExType.Nabor }; t.AddVariant("НАБ", true); t.AddAbridge("НАБ."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("КОМПЛЕКТ", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "компл.", Tag = Pullenti.Ner.Core.NumberExType.Komplekt }; t.AddVariant("КОМПЛ", true); t.AddAbridge("КОМПЛ."); m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ПАРА", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "пар", Tag = Pullenti.Ner.Core.NumberExType.Para }; m_Postfixes.Add(t); t = new Pullenti.Ner.Core.Termin("ФЛАКОН", Pullenti.Morph.MorphLang.RU, true) { CanonicText = "флак.", Tag = Pullenti.Ner.Core.NumberExType.Flakon }; t.AddVariant("ФЛ", true); t.AddAbridge("ФЛ."); t.AddVariant("ФЛАК", true); t.AddAbridge("ФЛАК."); m_Postfixes.Add(t); foreach (Pullenti.Ner.Core.Termin te in m_Postfixes.Termins) { Pullenti.Ner.Core.NumberExType ty = (Pullenti.Ner.Core.NumberExType)te.Tag; if (!m_NormalsTyps.ContainsKey(ty)) { m_NormalsTyps.Add(ty, te.CanonicText); } } m_SmallMoney = new Pullenti.Ner.Core.TerminCollection(); t = new Pullenti.Ner.Core.Termin("УСЛОВНАЯ ЕДИНИЦА") { CanonicText = "УЕ", Tag = Pullenti.Ner.Core.NumberExType.Money }; t.AddAbridge("У.Е."); t.AddAbridge("У.E."); t.AddAbridge("Y.Е."); t.AddAbridge("Y.E."); m_Postfixes.Add(t); for (int k = 0; k < 3; k++) { string str = ResourceHelper.GetString((k == 0 ? "Money.csv" : (k == 1 ? "MoneyUA.csv" : "MoneyEN.csv"))); if (str == null) { continue; } Pullenti.Morph.MorphLang lang = (k == 0 ? Pullenti.Morph.MorphLang.RU : (k == 1 ? Pullenti.Morph.MorphLang.UA : Pullenti.Morph.MorphLang.EN)); if (str == null) { continue; } foreach (string line0 in str.Split('\n')) { string line = line0.Trim(); if (string.IsNullOrEmpty(line)) { continue; } string[] parts = line.ToUpper().Split(';'); if (parts == null || parts.Length != 5) { continue; } if (string.IsNullOrEmpty(parts[1]) || string.IsNullOrEmpty(parts[2])) { continue; } t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(parts[1], lang); t.CanonicText = parts[2]; t.Acronym = parts[2]; t.Tag = Pullenti.Ner.Core.NumberExType.Money; foreach (string p in parts[0].Split(',')) { if (p != parts[1]) { Pullenti.Ner.Core.Termin t0 = new Pullenti.Ner.Core.Termin(); t0.InitByNormalText(p, null); t.AddVariantTerm(t0); } } if (parts[1] == "РУБЛЬ") { t.AddAbridge("РУБ."); } else if (parts[1] == "ГРИВНЯ" || parts[1] == "ГРИВНА") { t.AddAbridge("ГРН."); } else if (parts[1] == "ДОЛЛАР") { t.AddAbridge("ДОЛ."); t.AddAbridge("ДОЛЛ."); } else if (parts[1] == "ДОЛАР") { t.AddAbridge("ДОЛ."); } else if (parts[1] == "ИЕНА") { t.AddVariant("ЙЕНА", false); } m_Postfixes.Add(t); if (string.IsNullOrEmpty(parts[3])) { continue; } int num = 0; int i = parts[3].IndexOf(' '); if (i < 2) { continue; } if (!int.TryParse(parts[3].Substring(0, i), out num)) { continue; } string vv = parts[3].Substring(i).Trim(); t = new Pullenti.Ner.Core.Termin(); t.InitByNormalText(parts[4], lang); t.Tag = num; if (vv != parts[4]) { Pullenti.Ner.Core.Termin t0 = new Pullenti.Ner.Core.Termin(); t0.InitByNormalText(vv, null); t.AddVariantTerm(t0); } if (parts[4] == "КОПЕЙКА" || parts[4] == "КОПІЙКА") { t.AddAbridge("КОП."); } m_SmallMoney.Add(t); } } }