Exemple #1
0
        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);
        }
Exemple #2
0
 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);
 }
Exemple #3
0
 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);
         }
     }
 }