예제 #1
0
 def _initialize() -> None:
     if (ConjunctionHelper.__m_ontology is not None):
         return
     ConjunctionHelper.__m_ontology = TerminCollection()
     te = None
     te = Termin._new100("ТАКЖЕ", ConjunctionType.AND)
     te.add_variant("А ТАКЖЕ", False)
     te.add_variant("КАК И", False)
     te.add_variant("ТАК И", False)
     te.add_variant("А РАВНО", False)
     te.add_variant("А РАВНО И", False)
     ConjunctionHelper.__m_ontology.add(te)
     te = Termin._new100("ЕСЛИ", ConjunctionType.IF)
     ConjunctionHelper.__m_ontology.add(te)
     te = Termin._new100("ТО", ConjunctionType.THEN)
     ConjunctionHelper.__m_ontology.add(te)
     te = Termin._new100("ИНАЧЕ", ConjunctionType.ELSE)
     ConjunctionHelper.__m_ontology.add(te)
     te = Termin._new102("ИНАЧЕ КАК", ConjunctionType.EXCEPT, True)
     te.add_variant("ИНАЧЕ, КАК", False)
     te.add_variant("ЗА ИСКЛЮЧЕНИЕМ", False)
     te.add_variant("ИСКЛЮЧАЯ", False)
     te.add_abridge("КРОМЕ")
     te.add_abridge("КРОМЕ КАК")
     te.add_abridge("КРОМЕ, КАК")
     ConjunctionHelper.__m_ontology.add(te)
     te = Termin._new102("ВКЛЮЧАЯ", ConjunctionType.INCLUDE, True)
     te.add_variant("В ТОМ ЧИСЛЕ", False)
     ConjunctionHelper.__m_ontology.add(te)
예제 #2
0
 def initialize() -> None:
     DelimToken.__m_onto = TerminCollection()
     t = None
     t = Termin._new100("НО", DelimType.BUT)
     t.add_variant("А", False)
     t.add_variant("ОДНАКО", False)
     t.add_variant("ХОТЯ", False)
     DelimToken.__m_onto.add(t)
     t = Termin._new100("ЕСЛИ", DelimType.IF)
     t.add_variant("В СЛУЧАЕ ЕСЛИ", False)
     DelimToken.__m_onto.add(t)
     t = Termin._new102("КОГДА", DelimType.IF, DelimToken.__m_onto)
     DelimToken.__m_onto.add(t)
     t = Termin._new100("ТО", DelimType.THEN)
     t.add_variant("ТОГДА", False)
     DelimToken.__m_onto.add(t)
     t = Termin._new100("ИНАЧЕ", DelimType.ELSE)
     t.add_variant("В ПРОТИВНОМ СЛУЧАЕ", False)
     DelimToken.__m_onto.add(t)
     t = Termin._new100("ТАК КАК", DelimType.BECAUSE)
     t.add_variant("ПОТОМУ ЧТО", False)
     t.add_variant("ПО ПРИЧИНЕ ТОГО ЧТО", False)
     t.add_variant("ИЗ ЗА ТОГО ЧТО", False)
     t.add_variant("ИЗЗА ТОГО ЧТО", False)
     t.add_variant("ИЗ-ЗА ТОГО ЧТО", False)
     t.add_variant("ТО ЕСТЬ", False)
     DelimToken.__m_onto.add(t)
     t = Termin._new100("ЧТОБЫ", DelimType.FOR)
     t.add_variant("ДЛЯ ТОГО ЧТОБЫ", False)
     DelimToken.__m_onto.add(t)
     t = Termin._new100("ЧТО", DelimType.WHAT)
     DelimToken.__m_onto.add(t)
예제 #3
0
 def initialize() -> None:
     if (ParticipantToken.M_ONTOLOGY is not None): 
         return
     ParticipantToken.M_ONTOLOGY = TerminCollection()
     t = None
     for s in ["АРЕНДОДАТЕЛЬ", "АРЕНДАТОР", "СУБАРЕНДАТОР", "НАЙМОДАТЕЛЬ", "НАНИМАТЕЛЬ", "АГЕНТ", "ПРИНЦИПАЛ", "ПРОДАВЕЦ", "ПОКУПАТЕЛЬ", "ЗАКАЗЧИК", "ИСПОЛНИТЕЛЬ", "ПОСТАВЩИК", "ПОДРЯДЧИК", "СУБПОДРЯДЧИК", "СТОРОНА", "ЛИЦЕНЗИАР", "ЛИЦЕНЗИАТ", "СТРАХОВЩИК", "СТРАХОВАТЕЛЬ", "ПРОВАЙДЕР", "АБОНЕНТ", "ЗАСТРОЙЩИК", "УЧАСТНИК ДОЛЕВОГО СТРОИТЕЛЬСТВА", "КЛИЕНТ", "ЗАЕМЩИК", "УПРАВЛЯЮЩИЙ"]: 
         ParticipantToken.M_ONTOLOGY.add(Termin._new100(s, ParticipantToken.M_ONTOLOGY))
     t = Termin._new100("ГЕНПОДРЯДЧИК", ParticipantToken.M_ONTOLOGY)
     t.add_variant("ГЕНЕРАЛЬНЫЙ ПОДРЯДЧИК", False)
     ParticipantToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ЗАИМОДАТЕЛЬ", ParticipantToken.M_ONTOLOGY)
     t.add_variant("ЗАЙМОДАТЕЛЬ", False)
     t.add_variant("ЗАЙМОДАВЕЦ", False)
     t.add_variant("ЗАИМОДАВЕЦ", False)
     ParticipantToken.M_ONTOLOGY.add(t)
     t = Termin("ИМЕНУЕМЫЙ")
     t.add_variant("ИМЕНОВАТЬСЯ", False)
     t.add_variant("ИМЕНУЕМ", False)
     t.add_variant("ДАЛЬНЕЙШИЙ", False)
     t.add_variant("ДАЛЕЕ", False)
     t.add_variant("ДАЛЕЕ ПО ТЕКСТУ", False)
     ParticipantToken.M_ONTOLOGY.add(t)
예제 #4
0
 def initialize() -> None:
     if (AdverbToken.__m_termins is not None):
         return
     AdverbToken.__m_termins = TerminCollection()
     t = None
     t = Termin._new100("ЕЩЕ", SemAttributeType.STILL)
     AdverbToken.__m_termins.add(t)
     t = Termin._new100("УЖЕ", SemAttributeType.ALREADY)
     AdverbToken.__m_termins.add(t)
     t = Termin._new100("ВСЕ", SemAttributeType.ALL)
     AdverbToken.__m_termins.add(t)
     t = Termin._new100("ЛЮБОЙ", SemAttributeType.ANY)
     t.add_variant("ЛЮБОЙ", False)
     t.add_variant("КАЖДЫЙ", False)
     t.add_variant("ЧТО УГОДНО", False)
     t.add_variant("ВСЯКИЙ", False)
     AdverbToken.__m_termins.add(t)
     t = Termin._new100("НЕКОТОРЫЙ", SemAttributeType.SOME)
     t.add_variant("НЕКИЙ", False)
     AdverbToken.__m_termins.add(t)
     t = Termin._new100("ДРУГОЙ", SemAttributeType.OTHER)
     t.add_variant("ИНОЙ", False)
     AdverbToken.__m_termins.add(t)
     t = Termin._new100("ВЕСЬ", SemAttributeType.WHOLE)
     t.add_variant("ЦЕЛИКОМ", False)
     t.add_variant("ПОЛНОСТЬЮ", False)
     AdverbToken.__m_termins.add(t)
     t = Termin._new100("ОЧЕНЬ", SemAttributeType.VERY)
     AdverbToken.__m_termins.add(t)
     t = Termin._new100("МЕНЬШЕ", SemAttributeType.LESS)
     t.add_variant("МЕНЕЕ", False)
     t.add_variant("МЕНЕЕ", False)
     t.add_variant("МЕНЬШЕ", False)
     AdverbToken.__m_termins.add(t)
     t = Termin._new100("БОЛЬШЕ", SemAttributeType.GREAT)
     t.add_variant("БОЛЕЕ", False)
     t.add_variant("СВЫШЕ", False)
     AdverbToken.__m_termins.add(t)
예제 #5
0
 def initialize() -> None:
     if (BlockLine.__m_ontology is not None):
         return
     BlockLine.__m_ontology = TerminCollection()
     for s in [
             "СОДЕРЖАНИЕ", "СОДЕРЖИМОЕ", "ОГЛАВЛЕНИЕ", "ПЛАН", "PLAN",
             "ЗМІСТ", "CONTENTS", "INDEX"
     ]:
         BlockLine.__m_ontology.add(Termin._new100(s, BlkTyps.INDEX))
     for s in [
             "ГЛАВА", "CHAPTER", "РАЗДЕЛ", "ПАРАГРАФ", "VOLUME", "SECTION",
             "РОЗДІЛ"
     ]:
         BlockLine.__m_ontology.add(Termin._new100(s, BlkTyps.CHAPTER))
     for s in ["ВВЕДЕНИЕ", "ВСТУПЛЕНИЕ", "ПРЕДИСЛОВИЕ", "INTRODUCTION"]:
         BlockLine.__m_ontology.add(Termin._new100(s, BlkTyps.INTRO))
     for s in ["ВСТУП", "ПЕРЕДМОВА"]:
         BlockLine.__m_ontology.add(
             Termin._new388(s, MorphLang.UA, BlkTyps.INTRO))
     for s in [
             "ВЫВОДЫ", "ВЫВОД", "ЗАКЛЮЧЕНИЕ", "CONCLUSION", "ВИСНОВОК",
             "ВИСНОВКИ"
     ]:
         BlockLine.__m_ontology.add(Termin._new100(s, BlkTyps.CONSLUSION))
     for s in ["ПРИЛОЖЕНИЕ", "APPENDIX", "ДОДАТОК"]:
         BlockLine.__m_ontology.add(Termin._new100(s, BlkTyps.APPENDIX))
     for s in [
             "СПИСОК СОКРАЩЕНИЙ", "СПИСОК УСЛОВНЫХ СОКРАЩЕНИЙ",
             "СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ", "УСЛОВНЫЕ СОКРАЩЕНИЯ",
             "ОБЗОР ЛИТЕРАТУРЫ", "АННОТАЦИЯ", "ANNOTATION", "БЛАГОДАРНОСТИ",
             "SUPPLEMENT", "ABSTRACT", "СПИСОК СКОРОЧЕНЬ",
             "ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ",
             "СПИСОК ВИКОРИСТОВУВАНИХ СКОРОЧЕНЬ", "УМОВНІ СКОРОЧЕННЯ",
             "ОГЛЯД ЛІТЕРАТУРИ", "АНОТАЦІЯ", "ПОДЯКИ"
     ]:
         BlockLine.__m_ontology.add(Termin._new100(s, BlkTyps.MISC))
예제 #6
0
 def initialize() -> None:
     if (PersonIdToken.M_ONTOLOGY is not None):
         return
     PersonIdToken.M_ONTOLOGY = TerminCollection()
     t = None
     t = Termin._new100("ПАСПОРТ", PersonIdToken.Typs.KEYWORD)
     t.add_variant("ПАССПОРТ", False)
     t.add_variant("ПАСПОРТНЫЕ ДАННЫЕ", False)
     t.add_variant("ВНУТРЕННИЙ ПАСПОРТ", False)
     PersonIdToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ЗАГРАНИЧНЫЙ ПАСПОРТ", PersonIdToken.Typs.KEYWORD)
     t.add_variant("ЗАГРАНПАСПОРТ", False)
     t.add_abridge("ЗАГРАН. ПАСПОРТ")
     PersonIdToken.M_ONTOLOGY.add(t)
     t = Termin._new100("УДОСТОВЕРЕНИЕ ЛИЧНОСТИ",
                        PersonIdToken.Typs.KEYWORD)
     t.add_variant("УДОСТОВЕРЕНИЕ ЛИЧНОСТИ ОФИЦЕРА", False)
     PersonIdToken.M_ONTOLOGY.add(t)
     t = Termin._new100(
         "СВИДЕТЕЛЬСТВО О ГОСУДАРСТВЕННОЙ РЕГИСТРАЦИИ ФИЗИЧЕСКОГО ЛИЦА В КАЧЕСТВЕ ИНДИВИДУАЛЬНОГО ПРЕДПРИНИМАТЕЛЯ",
         PersonIdToken.Typs.KEYWORD)
     t.add_variant(
         "СВИДЕТЕЛЬСТВО О ГОСУДАРСТВЕННОЙ РЕГИСТРАЦИИ ФИЗИЧЕСКОГО ЛИЦА В КАЧЕСТВЕ ИП",
         False)
     t.add_variant("СВИДЕТЕЛЬСТВО О ГОСРЕГИСТРАЦИИ ФИЗЛИЦА В КАЧЕСТВЕ ИП",
                   False)
     t.add_variant("СВИДЕТЕЛЬСТВО ГОСУДАРСТВЕННОЙ РЕГИСТРАЦИИ", False)
     PersonIdToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ВОДИТЕЛЬСКОЕ УДОСТОВЕРЕНИЕ",
                        PersonIdToken.Typs.KEYWORD)
     PersonIdToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ЛИЦЕНЗИЯ", PersonIdToken.Typs.KEYWORD)
     PersonIdToken.M_ONTOLOGY.add(t)
     t = Termin._new100("СЕРИЯ", PersonIdToken.Typs.SERIA)
     t.add_abridge("СЕР.")
     t.add_variant("СЕРИ", False)
     PersonIdToken.M_ONTOLOGY.add(t)
     t = Termin._new100("НОМЕР", PersonIdToken.Typs.NUMBER)
     t.add_abridge("НОМ.")
     t.add_abridge("Н-Р")
     t.add_variant("№", False)
     t.add_variant("N", False)
     PersonIdToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ВЫДАТЬ", PersonIdToken.Typs.VIDAN)
     t.add_variant("ВЫДАВАТЬ", False)
     t.add_variant("ДАТА ВЫДАЧИ", False)
     t.add_variant("ДАТА РЕГИСТРАЦИИ", False)
     PersonIdToken.M_ONTOLOGY.add(t)
     t = Termin._new100("КОД ПОДРАЗДЕЛЕНИЯ", PersonIdToken.Typs.CODE)
     t.add_abridge("К/П")
     t.add_abridge("К.П.")
     PersonIdToken.M_ONTOLOGY.add(t)
     t = Termin._new100("РЕГИСТРАЦИЯ", PersonIdToken.Typs.ADDRESS)
     t.add_variant("ЗАРЕГИСТРИРОВАН", False)
     t.add_variant("АДРЕС РЕГИСТРАЦИИ", False)
     t.add_variant("ЗАРЕГИСТРИРОВАННЫЙ", False)
     t.add_abridge("ПРОПИСАН")
     t.add_variant("АДРЕС ПРОПИСКИ", False)
     t.add_variant("АДРЕС ПО ПРОПИСКЕ", False)
     PersonIdToken.M_ONTOLOGY.add(t)
예제 #7
0
 def initialize() -> None:
     if (WeaponItemToken.M_ONTOLOGY is not None): 
         return
     WeaponItemToken.M_ONTOLOGY = TerminCollection()
     t = None
     tt = None
     li = [ ]
     t = Termin._new100("ПИСТОЛЕТ", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("РЕВОЛЬВЕР", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ВИНТОВКА", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("РУЖЬЕ", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new102("АВТОМАТ", WeaponItemToken.Typs.NOUN, 1)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new102("КАРАБИН", WeaponItemToken.Typs.NOUN, 1)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new124("ПИСТОЛЕТ-ПУЛЕМЕТ", "ПИСТОЛЕТ-ПУЛЕМЕТ", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ПУЛЕМЕТ", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ГРАНАТОМЕТ", WeaponItemToken.Typs.NOUN)
     t.add_variant("СТРЕЛКОВО ГРАНАТОМЕТНЫЙ КОМПЛЕКС", False)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ОГНЕМЕТ", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("МИНОМЕТ", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new2781("ПЕРЕНОСНОЙ ЗЕНИТНО РАКЕТНЫЙ КОМПЛЕКС", "ПЗРК", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new2781("ПРОТИВОТАНКОВЫЙ РАКЕТНЫЙ КОМПЛЕКС", "ПТРК", WeaponItemToken.Typs.NOUN)
     t.add_variant("ПЕРЕНОСНОЙ ПРОТИВОТАНКОВЫЙ РАКЕТНЫЙ КОМПЛЕКС", False)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("АВИАЦИОННАЯ ПУШКА", WeaponItemToken.Typs.NOUN)
     t.add_variant("АВИАПУШКА", False)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("НАРУЧНИКИ", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("БРОНЕЖИЛЕТ", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ГРАНАТА", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ЛИМОНКА", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("НОЖ", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new100("ВЗРЫВАТЕЛЬ", WeaponItemToken.Typs.NOUN)
     WeaponItemToken.M_ONTOLOGY.add(t)
     for s in ["МАКАРОВ", "КАЛАШНИКОВ", "СИМОНОВ", "СТЕЧКИН", "ШМАЙСЕР", "МОСИН", "СЛОСТИН", "НАГАН", "МАКСИМ", "ДРАГУНОВ", "СЕРДЮКОВ", "ЯРЫГИН", "НИКОНОВ", "МАУЗЕР", "БРАУНИНГ", "КОЛЬТ", "ВИНЧЕСТЕР"]: 
         WeaponItemToken.M_ONTOLOGY.add(Termin._new100(s, WeaponItemToken.Typs.BRAND))
     for s in ["УЗИ"]: 
         WeaponItemToken.M_ONTOLOGY.add(Termin._new100(s, WeaponItemToken.Typs.NAME))
     t = Termin._new2792("ТУЛЬСКИЙ ТОКАРЕВА", "ТТ", "ТТ", WeaponItemToken.Typs.MODEL)
     li = list()
     li.append(Termin._new100("ПИСТОЛЕТ", WeaponItemToken.Typs.NOUN))
     li.append(Termin._new100("ТОКАРЕВ", WeaponItemToken.Typs.BRAND))
     t.tag2 = (li)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new2792("ПИСТОЛЕТ МАКАРОВА", "ПМ", "ПМ", WeaponItemToken.Typs.MODEL)
     li = list()
     li.append(Termin._new100("ПИСТОЛЕТ", WeaponItemToken.Typs.NOUN))
     li.append(Termin._new100("МАКАРОВ", WeaponItemToken.Typs.BRAND))
     t.tag2 = (li)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new2792("ПИСТОЛЕТ МАКАРОВА МОДЕРНИЗИРОВАННЫЙ", "ПММ", "ПММ", WeaponItemToken.Typs.MODEL)
     li = list()
     tt = Termin._new100("ПИСТОЛЕТ", WeaponItemToken.Typs.NOUN)
     li.append(tt)
     tt.add_variant("МОДЕРНИЗИРОВАННЫЙ ПИСТОЛЕТ", False)
     li.append(Termin._new100("МАКАРОВ", WeaponItemToken.Typs.BRAND))
     t.tag2 = (li)
     WeaponItemToken.M_ONTOLOGY.add(t)
     t = Termin._new2792("АВТОМАТ КАЛАШНИКОВА", "АК", "АК", WeaponItemToken.Typs.MODEL)
     li = list()
     li.append(Termin._new100("АВТОМАТ", WeaponItemToken.Typs.NOUN))
     li.append(Termin._new100("КАЛАШНИКОВ", WeaponItemToken.Typs.BRAND))
     t.tag2 = (li)
     WeaponItemToken.M_ONTOLOGY.add(t)
예제 #8
0
 def initialize() -> None:
     if (UnitsHelper.__m_inited):
         return
     UnitsHelper.__m_inited = True
     UnitsHelper.UNITS = list()
     UnitsHelper.TERMINS = TerminCollection()
     UnitsHelper.__m_kinds_keywords = dict()
     UnitsHelper.__m_kinds_keywords[MeasureKind.SPEED] = list(
         ["СКОРОСТЬ", "SPEED", "ШВИДКІСТЬ"])
     Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True
     u = None
     uu = None
     t = None
     u = Unit._new1647("м", "m", "метр", "meter", MeasureKind.LENGTH)
     u.keywords.extend([
         "ДЛИНА", "ДЛИННА", "ШИРИНА", "ГЛУБИНА", "ВЫСОТА", "РАЗМЕР",
         "ГАБАРИТ", "РАССТОЯНИЕ", "РАДИУС", "ПЕРИМЕТР", "ДИАМЕТР",
         "ТОЛЩИНА", "ПОДАЧА", "НАПОР", "ДАЛЬНОСТЬ", "ТИПОРАЗМЕР", "КАЛИБР",
         "LENGTH", "WIDTH", "DEPTH", "HEIGHT", "SIZE", "ENVELOPE",
         "DISTANCE", "RADIUS", "PERIMETER", "DIAMETER", "FLOW", "PRESSURE",
         "CALIBER", "ДОВЖИНА", "ШИРИНА", "ГЛИБИНА", "ВИСОТА", "РОЗМІР",
         "ГАБАРИТ", "ВІДСТАНЬ", "РАДІУС", "ДІАМЕТР", "НАТИСК", "КАЛІБР"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("МЕТР", u)
     t.add_variant("МЕТРОВЫЙ", False)
     t.add_variant("МЕТРОВИЙ", False)
     t.add_variant("METER", False)
     t.add_abridge("М.")
     t.add_abridge("M.")
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.DECI, UnitsFactors.CENTI,
             UnitsFactors.MILLI, UnitsFactors.MICRO, UnitsFactors.NANO
     ]:
         UnitsHelper.__add_factor(f, u, "М.", "M.", "МЕТР;МЕТРОВЫЙ",
                                  "МЕТР;МЕТРОВИЙ", "METER;METRE")
     uu = Unit._new1647("миль", "mile", "морская миля", "mile",
                        MeasureKind.LENGTH)
     uu.base_unit = u
     uu.base_multiplier = (1852)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("МИЛЯ", uu)
     t.add_variant("МОРСКАЯ МИЛЯ", False)
     t.add_abridge("NMI")
     t.add_variant("MILE", False)
     t.add_variant("NAUTICAL MILE", False)
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1651("фут", "ft", "фут", "foot", u, 0.304799472,
                        MeasureKind.LENGTH)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("ФУТ", uu)
     t.add_abridge("FT.")
     t.add_variant("FOOT", False)
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1651("дюйм", "in", "дюйм", "inch", u, 0.0254,
                        MeasureKind.LENGTH)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("ДЮЙМ", uu)
     t.add_abridge("IN")
     t.add_variant("INCH", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit._new1647("ар", "are", "ар", "are", MeasureKind.AREA)
     u.keywords.extend(["ПЛОЩАДЬ", "ПРОЩИНА", "AREA", "SQWARE", "SPACE"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("АР", u)
     t.add_variant("ARE", False)
     t.add_variant("СОТКА", False)
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1647("га", "ga", "гектар", "hectare", MeasureKind.AREA)
     uu.base_unit = u
     uu.base_multiplier = (100)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("ГЕКТАР", uu)
     t.add_variant("HECTARE", False)
     t.add_abridge("ГА")
     t.add_abridge("GA")
     UnitsHelper.TERMINS.add(t)
     u = Unit._new1647("г", "g", "грамм", "gram", MeasureKind.WEIGHT)
     u.keywords.extend([
         "ВЕС", "ТЯЖЕСТЬ", "НЕТТО", "БРУТТО", "МАССА", "НАГРУЗКА",
         "ЗАГРУЗКА", "УПАКОВКА", "WEIGHT", "NET", "GROSS", "MASS", "ВАГА",
         "ТЯЖКІСТЬ", "МАСА"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ГРАММ", u)
     t.add_abridge("Г.")
     t.add_abridge("ГР.")
     t.add_abridge("G.")
     t.add_abridge("GR.")
     t.add_variant("ГРАММОВЫЙ", False)
     t.add_variant("ГРАММНЫЙ", False)
     t.add_variant("ГРАМОВИЙ", False)
     t.add_variant("GRAM", False)
     t.add_variant("GRAMME", False)
     UnitsHelper.TERMINS.add(t)
     for f in [UnitsFactors.KILO, UnitsFactors.MILLI]:
         UnitsHelper.__add_factor(f, u, "Г.;ГР;", "G.;GR.",
                                  "ГРАМ;ГРАММ;ГРАММНЫЙ", "ГРАМ;ГРАМОВИЙ",
                                  "GRAM;GRAMME")
     uu = Unit._new1651("ц", "centner", "центнер", "centner", u, 100000,
                        MeasureKind.WEIGHT)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("ЦЕНТНЕР", uu)
     t.add_variant("CENTNER", False)
     t.add_variant("QUINTAL", False)
     t.add_abridge("Ц.")
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1651("т", "t", "тонна", "tonne", u, 1000000,
                        MeasureKind.WEIGHT)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("ТОННА", uu)
     t.add_variant("TONNE", False)
     t.add_variant("TON", False)
     t.add_abridge("Т.")
     t.add_abridge("T.")
     UnitsHelper.TERMINS.add(t)
     UnitsHelper.__add_factor(UnitsFactors.MEGA, uu, "Т", "T",
                              "ТОННА;ТОННЫЙ", "ТОННА;ТОННИЙ", "TONNE;TON")
     u = Unit._new1647("л", "l", "литр", "liter", MeasureKind.VOLUME)
     u.keywords.extend([
         "ОБЪЕМ", "ЕМКОСТЬ", "ВМЕСТИМОСЬ", "ОБСЯГ", "ЄМНІСТЬ", "МІСТКІСТЬ",
         "VOLUME", "CAPACITY"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ЛИТР", u)
     t.add_abridge("Л.")
     t.add_abridge("L.")
     t.add_variant("LITER", False)
     t.add_variant("LITRE", False)
     t.add_variant("ЛІТР", False)
     t.add_variant("ЛІТРОВИЙ", False)
     UnitsHelper.TERMINS.add(t)
     for f in [UnitsFactors.MILLI, UnitsFactors.CENTI]:
         UnitsHelper.__add_factor(f, u, "Л.", "L.", "ЛИТР;ЛИТРОВЫЙ",
                                  "ЛІТР;ЛІТРОВИЙ", "LITER;LITRE")
     uu = Unit._new1651("галлон", "gallon", "галлон", "gallon", u, 4.5461,
                        MeasureKind.VOLUME)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("ГАЛЛОН", u)
     t.add_variant("ГАЛОН", False)
     t.add_variant("GALLON", False)
     t.add_abridge("ГАЛ")
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1651("баррель", "bbls", "баррель нефти", "barrel", u,
                        158.987, MeasureKind.VOLUME)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("БАРРЕЛЬ", uu)
     t.add_abridge("BBLS")
     t.add_variant("БАРРЕЛЬ НЕФТИ", False)
     t.add_variant("BARRREL", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit._new1647("сек", "sec", "секунда", "second", MeasureKind.TIME)
     UnitsHelper.USEC = u
     u.keywords.extend([
         "ВРЕМЯ", "ПРОДОЛЖИТЕЛЬНОСТЬ", "ЗАДЕРЖКА", "ДЛИТЕЛЬНОСТЬ",
         "ДОЛГОТА", "TIME", "DURATION", "DELAY", "ЧАС", "ТРИВАЛІСТЬ",
         "ЗАТРИМКА"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("СЕКУНДА", u)
     t.add_abridge("С.")
     t.add_abridge("C.")
     t.add_abridge("СЕК")
     t.add_abridge("СЕК")
     t.add_abridge("S.")
     t.add_abridge("SEC")
     t.add_variant("СЕКУНДНЫЙ", False)
     t.add_variant("СЕКУНДНИЙ", False)
     t.add_variant("SECOND", False)
     UnitsHelper.TERMINS.add(t)
     for f in [UnitsFactors.MILLI, UnitsFactors.MICRO]:
         UnitsHelper.__add_factor(f, u, "С.;СЕК", "C;S.;SEC;",
                                  "СЕКУНДА;СЕКУНДНЫЙ", "СЕКУНДА;СЕКУНДНИЙ",
                                  "SECOND")
     uu = Unit._new1647("мин", "min", "минута", "minute", MeasureKind.TIME)
     UnitsHelper.UMINUTE = uu
     uu.base_unit = u
     uu.base_multiplier = (60)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("МИНУТА", uu)
     t.add_abridge("МИН.")
     t.add_abridge("MIN.")
     t.add_variant("МИНУТНЫЙ", False)
     t.add_variant("ХВИЛИННИЙ", False)
     t.add_variant("ХВИЛИНА", False)
     t.add_variant("МІНУТА", False)
     t.add_variant("MINUTE", False)
     UnitsHelper.TERMINS.add(t)
     u = uu
     uu = Unit._new1651("ч", "h", "час", "hour", u, 60, MeasureKind.TIME)
     UnitsHelper.UHOUR = uu
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("ЧАС", uu)
     t.add_abridge("Ч.")
     t.add_abridge("H.")
     t.add_variant("ЧАСОВОЙ", False)
     t.add_variant("HOUR", False)
     t.add_variant("ГОДИННИЙ", False)
     t.add_variant("ГОДИНА", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit._new1647("дн", "d", "день", "day", MeasureKind.TIME)
     u.keywords.extend(UnitsHelper.USEC.keywords)
     u.keywords.extend(["ПОСТАВКА", "СРОК", "РАБОТА", "ЗАВЕРШЕНИЕ"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ДЕНЬ", u)
     t.add_abridge("ДН.")
     t.add_abridge("Д.")
     t.add_variant("DAY", False)
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1647("сут", "d", "сутки", "day", MeasureKind.TIME)
     uu.keywords.extend(uu.keywords)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("СУТКИ", uu)
     t.add_abridge("СУТ.")
     t.add_variant("DAY", False)
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1651("нед", "week", "неделя", "week", u, 7,
                        MeasureKind.TIME)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("НЕДЕЛЯ", uu)
     t.add_abridge("НЕД")
     t.add_variant("WEEK", False)
     t.add_variant("ТИЖДЕНЬ", False)
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1651("мес", "mon", "месяц", "month", u, 30,
                        MeasureKind.TIME)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("МЕСЯЦ", uu)
     t.add_abridge("МЕС")
     t.add_abridge("MON")
     t.add_variant("MONTH", False)
     t.add_variant("МІСЯЦЬ", False)
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1651("г", "year", "год", "year", u, 365,
                        MeasureKind.TIME)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("ГОД", uu)
     t.add_abridge("Г.")
     t.add_abridge("ГД")
     t.add_variant("YEAR", False)
     t.add_variant("РІК", False)
     t.add_variant("ЛЕТ", False)
     UnitsHelper.TERMINS.add(t)
     UnitsHelper.UGRADUS = Unit("°", "°", "градус", "degree")
     UnitsHelper.UGRADUS.keywords.extend([
         "ТЕМПЕРАТУРА", "ШИРОТА", "ДОЛГОТА", "АЗИМУТ", "ДОВГОТА",
         "TEMPERATURE", "LATITUDE", "LONGITUDE", "AZIMUTH"
     ])
     UnitsHelper.UNITS.append(UnitsHelper.UGRADUS)
     t = Termin._new100("ГРАДУС", UnitsHelper.UGRADUS)
     t.add_variant("DEGREE", False)
     UnitsHelper.TERMINS.add(t)
     UnitsHelper.UGRADUSC = Unit._new1647("°C", "°C", "градус Цельсия",
                                          "celsius degree",
                                          MeasureKind.TEMPERATURE)
     UnitsHelper.UGRADUSC.keywords.append("ТЕМПЕРАТУРА")
     UnitsHelper.UGRADUS.keywords.append("TEMPERATURE")
     UnitsHelper.UGRADUS.psevdo.append(UnitsHelper.UGRADUSC)
     UnitsHelper.UNITS.append(UnitsHelper.UGRADUSC)
     t = Termin._new100("ГРАДУС ЦЕЛЬСИЯ", UnitsHelper.UGRADUSC)
     t.add_variant("ГРАДУС ПО ЦЕЛЬСИЮ", False)
     t.add_variant("CELSIUS DEGREE", False)
     UnitsHelper.TERMINS.add(t)
     UnitsHelper.UGRADUSF = Unit._new1647("°F", "°F", "градус Фаренгейта",
                                          "Fahrenheit degree",
                                          MeasureKind.TEMPERATURE)
     UnitsHelper.UGRADUSF.keywords = UnitsHelper.UGRADUSC.keywords
     UnitsHelper.UGRADUS.psevdo.append(UnitsHelper.UGRADUSF)
     UnitsHelper.UNITS.append(UnitsHelper.UGRADUSF)
     t = Termin._new100("ГРАДУС ФАРЕНГЕЙТА", UnitsHelper.UGRADUSF)
     t.add_variant("ГРАДУС ПО ФАРЕНГЕЙТУ", False)
     t.add_variant("FAHRENHEIT DEGREE", False)
     UnitsHelper.TERMINS.add(t)
     UnitsHelper.UPERCENT = Unit._new1647("%", "%", "процент", "percent",
                                          MeasureKind.PERCENT)
     UnitsHelper.UNITS.append(UnitsHelper.UPERCENT)
     t = Termin._new100("ПРОЦЕНТ", UnitsHelper.UPERCENT)
     t.add_variant("ПРОЦ", False)
     t.add_variant("PERC", False)
     t.add_variant("PERCENT", False)
     UnitsHelper.TERMINS.add(t)
     UnitsHelper.UALCO = Unit("%(об)", "%(vol)", "объёмный процент",
                              "volume percent")
     UnitsHelper.UALCO.keywords.extend([
         "КРЕПОСТЬ", "АЛКОГОЛЬ", "ALCOHOL", "СПИРТ", "АЛКОГОЛЬНЫЙ", "SPIRIT"
     ])
     UnitsHelper.UPERCENT.psevdo.append(UnitsHelper.UALCO)
     UnitsHelper.UGRADUS.psevdo.append(UnitsHelper.UALCO)
     UnitsHelper.UNITS.append(UnitsHelper.UALCO)
     t = Termin._new100("ОБЪЕМНЫЙ ПРОЦЕНТ", UnitsHelper.UALCO)
     t.add_variant("ГРАДУС", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit("об", "rev", "оборот", "revolution")
     UnitsHelper.UGRADUS.keywords.extend([
         "ЧАСТОТА", "ВРАЩЕНИЕ", "ВРАЩАТЕЛЬНЫЙ", "СКОРОСТЬ", "ОБОРОТ",
         "FREQUENCY", "ROTATION", "ROTATIONAL", "SPEED", "ОБЕРТАННЯ",
         "ОБЕРТАЛЬНИЙ"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ОБОРОТ", u)
     t.add_abridge("ОБ.")
     t.add_abridge("ROT.")
     t.add_abridge("REV.")
     t.add_variant("ROTATION", False)
     t.add_variant("REVOLUTION", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit("В", "V", "вольт", "volt")
     u.keywords.extend([
         "ЭЛЕКТРИЧЕСКИЙ", "ПОТЕНЦИАЛ", "НАПРЯЖЕНИЕ", "ЭЛЕКТРОДВИЖУЩИЙ",
         "ПИТАНИЕ", "ТОК", "ПОСТОЯННЫЙ", "ПЕРЕМЕННЫЙ", "ЕЛЕКТРИЧНИЙ",
         "ПОТЕНЦІАЛ", "НАПРУГА", "ЕЛЕКТРОРУШІЙНОЇ", "ХАРЧУВАННЯ", "СТРУМ",
         "ПОСТІЙНИЙ", "ЗМІННИЙ", "ELECTRIC", "POTENTIAL", "TENSION",
         "ELECTROMOTIVE", "FOOD", "CURRENT", "CONSTANT", "VARIABLE"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ВОЛЬТ", u)
     t.add_variant("VOLT", False)
     t.add_abridge("V")
     t.add_abridge("В.")
     t.add_abridge("B.")
     t.add_variant("VAC", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.MILLI,
             UnitsFactors.MILLI, UnitsFactors.MICRO
     ]:
         UnitsHelper.__add_factor(f, u, "В.", "V.", "ВОЛЬТ;ВОЛЬТНЫЙ",
                                  "ВОЛЬТ;ВОЛЬТНІ", "VOLT")
     u = Unit("Вт", "W", "ватт", "watt")
     u.keywords.extend([
         "МОЩНОСТЬ", "ЭНЕРГИЯ", "ПОТОК", "ИЗЛУЧЕНИЕ", "ЭНЕРГОПОТРЕБЛЕНИЕ",
         "ПОТУЖНІСТЬ", "ЕНЕРГІЯ", "ПОТІК", "ВИПРОМІНЮВАННЯ", "POWER",
         "ENERGY", "FLOW", "RADIATION"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ВАТТ", u)
     t.add_abridge("Вт")
     t.add_abridge("W")
     t.add_variant("WATT", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.MILLI
     ]:
         UnitsHelper.__add_factor(f, u, "ВТ.", "W.", "ВАТТ;ВАТТНЫЙ",
                                  "ВАТ;ВАТНИЙ", "WATT;WATTS")
     uu = Unit._new1698("л.с.", "hp", "лошадиная сила", "horsepower", u,
                        735.49875)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("ЛОШАДИНАЯ СИЛА", uu)
     t.add_abridge("Л.С.")
     t.add_abridge("ЛОШ.С.")
     t.add_abridge("ЛОШ.СИЛА")
     t.add_abridge("HP")
     t.add_abridge("PS")
     t.add_abridge("SV")
     t.add_variant("HORSEPOWER", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit("Дж", "J", "джоуль", "joule")
     u.keywords.extend([
         "РАБОТА", "ЭНЕРГИЯ", "ТЕПЛОТА", "ТЕПЛОВОЙ", "ТЕПЛОВЫДЕЛЕНИЕ",
         "МОЩНОСТЬ", "ХОЛОДИЛЬНЫЙ"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ДЖОУЛЬ", u)
     t.add_abridge("ДЖ")
     t.add_abridge("J")
     t.add_variant("JOULE", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.TERA, UnitsFactors.MILLI
     ]:
         UnitsHelper.__add_factor(f, u, "ДЖ.", "J.", "ДЖОУЛЬ", "ДЖОУЛЬ",
                                  "JOULE")
     uu = Unit("БТЕ", "BTU", "британская терминальная единица",
               "british terminal unit")
     uu.keywords = u.keywords
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("БРИТАНСКАЯ ТЕРМИНАЛЬНАЯ ЕДИНИЦА", uu)
     t.add_abridge("БТЕ")
     t.add_abridge("BTU")
     t.add_variant("BRITISH TERMINAL UNIT", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit("К", "K", "кельвин", "kelvin")
     u.keywords.extend(UnitsHelper.UGRADUSC.keywords)
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("КЕЛЬВИН", u)
     t.add_abridge("К.")
     t.add_abridge("K.")
     t.add_variant("KELVIN", False)
     t.add_variant("КЕЛЬВІН", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.MILLI
     ]:
         UnitsHelper.__add_factor(f, u, "К.", "K.", "КЕЛЬВИН", "КЕЛЬВІН",
                                  "KELVIN")
     u = Unit("Гц", "Hz", "герц", "herz")
     u.keywords.extend([
         "ЧАСТОТА", "ЧАСТОТНЫЙ", "ПЕРИОДИЧНОСТЬ", "ПИТАНИЕ", "ЧАСТОТНИЙ",
         "ПЕРІОДИЧНІСТЬ", "FREQUENCY"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ГЕРЦ", u)
     t.add_abridge("HZ")
     t.add_abridge("ГЦ")
     t.add_variant("ГЕРЦОВЫЙ", False)
     t.add_variant("ГЕРЦОВИЙ", False)
     t.add_variant("HERZ", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.MICRO
     ]:
         UnitsHelper.__add_factor(f, u, "ГЦ.", "W.", "ГЕРЦ;ГЕРЦОВЫЙ",
                                  "ГЕРЦ;ГЕРЦОВИЙ", "HERZ")
     u = Unit("Ом", "Ω", "Ом", "Ohm")
     UnitsHelper.UOM = u
     u.keywords.extend([
         "СОПРОТИВЛЕНИЕ", "РЕЗИСТОР", "РЕЗИСТНЫЙ", "ИМПЕДАНС",
         "РЕЗИСТОРНЫЙ", "ОПІР", "РЕЗИСТИВНИЙ", "ІМПЕДАНС", "RESISTANCE",
         "RESISTOR", "RESISTIVE", "IMPEDANCE"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ОМ", UnitsHelper.UOM)
     t.add_variant("OHM", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.MICRO, UnitsFactors.MILLI
     ]:
         UnitsHelper.__add_factor(f, u, "ОМ", "Ω", "ОМ", "ОМ", "OHM")
     u = Unit("А", "A", "ампер", "ampere")
     u.keywords.extend([
         "ТОК", "СИЛА", "ЭЛЕКТРИЧЕСКИЙ", "ЭЛЕКТРИЧЕСТВО", "МАГНИТ",
         "МАГНИТОДВИЖУЩИЙ", "ПОТРЕБЛЕНИЕ", "CURRENT", "POWER", "ELECTRICAL",
         "ELECTRICITY", "MAGNET", "MAGNETOMOTIVE", "CONSUMPTION", "СТРУМ",
         "ЕЛЕКТРИЧНИЙ", "ЕЛЕКТРИКА", "МАГНІТ", "МАГНИТОДВИЖУЩИЙ",
         "СПОЖИВАННЯ"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("АМПЕР", u)
     t.add_abridge("A")
     t.add_abridge("А")
     t.add_variant("АМПЕРНЫЙ", False)
     t.add_variant("AMP", False)
     t.add_variant("AMPERE", False)
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1706("Ач", "Ah", "ампер-час", "ampere-hour", u,
                        UnitsHelper.UHOUR)
     uu.keywords.extend([
         "ЗАРЯД", "АККУМУЛЯТОР", "АККУМУЛЯТОРНЫЙ", "ЗАРЯДКА", "БАТАРЕЯ",
         "CHARGE", "BATTERY", "CHARGING", "АКУМУЛЯТОР", "АКУМУЛЯТОРНИЙ"
     ])
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("АМПЕР ЧАС", uu)
     t.add_abridge("АЧ")
     t.add_abridge("AH")
     t.add_variant("AMPERE HOUR", False)
     t.add_variant("АМПЕРЧАС", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.MICRO, UnitsFactors.MILLI
     ]:
         u1 = UnitsHelper.__add_factor(f, u, "А", "A", "АМПЕР;АМПЕРНЫЙ",
                                       "АМПЕР;АМПЕРНИЙ", "AMPERE;AMP")
         uu1 = UnitsHelper.__add_factor(f, uu, "АЧ", "AH", "АМПЕР ЧАС",
                                        "АМПЕР ЧАС", "AMPERE HOUR")
         uu1.base_unit = u1
         uu1.mult_unit = UnitsHelper.UHOUR
     uu = Unit("ВА", "VA", "вольт-ампер", "volt-ampere")
     uu.mult_unit = u
     uu.base_unit = UnitsHelper.find_unit("V", UnitsFactors.NO)
     uu.keywords.extend(
         ["ТОК", "СИЛА", "МОЩНОСТЬ", "ЭЛЕКТРИЧЕСКИЙ", "ПЕРЕМЕННЫЙ"])
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("ВОЛЬТ-АМПЕР", uu)
     t.add_abridge("BA")
     t.add_abridge("BA")
     t.add_variant("VA", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.MICRO, UnitsFactors.MILLI
     ]:
         u1 = UnitsHelper.__add_factor(f, uu, "ВА;BA", "VA", "ВОЛЬТ-АМПЕР",
                                       "ВОЛЬТ-АМПЕР", "VOLT-AMPERE")
     u = Unit("лк", "lx", "люкс", "lux")
     u.keywords.extend(
         ["СВЕТ", "ОСВЕЩЕННОСТЬ", "ILLUMINANCE", "СВІТЛО", " ОСВІТЛЕНІСТЬ"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ЛЮКС", u)
     t.add_abridge("ЛК")
     t.add_abridge("LX")
     t.add_variant("LUX", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.DECI, UnitsFactors.CENTI, UnitsFactors.MICRO,
             UnitsFactors.MILLI, UnitsFactors.NANO
     ]:
         u1 = UnitsHelper.__add_factor(f, u, "ЛК", "LX", "ЛЮКС", "ЛЮКС",
                                       "LUX")
     u = Unit("Б", "B", "белл", "bell")
     u.keywords.extend([
         "ЗВУК", "ЗВУКОВОЙ", "ШУМ", "ШУМОВОЙ", "ГРОМКОСТЬ", "ГРОМКИЙ",
         "СИГНАЛ", "УСИЛЕНИЕ", "ЗАТУХАНИЕ", "ГАРМОНИЧЕСКИЙ", "ПОДАВЛЕНИЕ",
         "ЗВУКОВИЙ", "ШУМОВИЙ", "ГУЧНІСТЬ", "ГУЧНИЙ", "ПОСИЛЕННЯ",
         "ЗАГАСАННЯ", "ГАРМОНІЙНИЙ", "ПРИДУШЕННЯ", "SOUND", "NOISE",
         "VOLUME", "LOUD", "SIGNAL", "STRENGTHENING", "ATTENUATION",
         "HARMONIC", "SUPPRESSION"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("БЕЛЛ", u)
     t.add_abridge("Б.")
     t.add_abridge("B.")
     t.add_abridge("В.")
     t.add_variant("БЕЛ", False)
     t.add_variant("BELL", False)
     UnitsHelper.TERMINS.add(t)
     UnitsHelper.__add_factor(UnitsFactors.DECI, u, "Б", "B", "БЕЛЛ;БЕЛ",
                              "БЕЛЛ;БЕЛ", "BELL")
     u = Unit("дБи", "dBi", "коэффициент усиления антенны", "dBi")
     u.keywords.extend(
         ["УСИЛЕНИЕ", "АНТЕННА", "АНТЕНА", "ПОСИЛЕННЯ", "GAIN", "ANTENNA"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("DBI", u)
     t.add_variant("ДБИ", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit("дБм", "dBm", "опорная мощность", "dBm")
     u.keywords.extend(["МОЩНОСТЬ"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("DBM", u)
     t.add_variant("ДБМ", False)
     t.add_variant("ДВМ", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit("Ф", "F", "фарад", "farad")
     u.keywords.extend(["ЕМКОСТЬ", "ЭЛЕКТРИЧНСКИЙ", "КОНДЕНСАТОР"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ФАРАД", u)
     t.add_abridge("Ф.")
     t.add_abridge("ФА")
     t.add_abridge("F")
     t.add_variant("FARAD", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MICRO, UnitsFactors.MILLI,
             UnitsFactors.NANO, UnitsFactors.PICO
     ]:
         UnitsHelper.__add_factor(f, u, "Ф.;ФА.", "F", "ФАРАД", "ФАРАД",
                                  "FARAD")
     u = Unit("Н", "N", "ньютон", "newton")
     u.keywords.extend(["СИЛА", "МОМЕНТ", "НАГРУЗКА"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("НЬЮТОН", u)
     t.add_abridge("Н.")
     t.add_abridge("H.")
     t.add_abridge("N.")
     t.add_variant("NEWTON", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.MEGA, UnitsFactors.KILO, UnitsFactors.MICRO,
             UnitsFactors.MILLI
     ]:
         UnitsHelper.__add_factor(f, u, "Н.", "N.", "НЬЮТОН", "НЬЮТОН",
                                  "NEWTON")
     u = Unit("моль", "mol", "моль", "mol")
     u.keywords.extend(
         ["МОЛЕКУЛА", "МОЛЕКУЛЯРНЫЙ", "КОЛИЧЕСТВО", "ВЕЩЕСТВО"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("МОЛЬ", u)
     t.add_abridge("МЛЬ")
     t.add_variant("МОЛ", False)
     t.add_variant("MOL", False)
     t.add_variant("ГРАММ МОЛЕКУЛА", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.MEGA, UnitsFactors.KILO, UnitsFactors.MICRO,
             UnitsFactors.MILLI, UnitsFactors.NANO
     ]:
         UnitsHelper.__add_factor(f, u, "МЛЬ", "MOL", "МОЛЬ", "МОЛЬ", "MOL")
     u = Unit("Бк", "Bq", "беккерель", "becquerel")
     u.keywords.extend(
         ["АКТИВНОСТЬ", "РАДИОАКТИВНЫЙ", "ИЗЛУЧЕНИЕ", "ИСТОЧНИК"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("БЕККЕРЕЛЬ", u)
     t.add_abridge("БК.")
     t.add_variant("BQ.", False)
     t.add_variant("БЕК", False)
     t.add_variant("БЕКЕРЕЛЬ", False)
     t.add_variant("BECQUEREL", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.MEGA, UnitsFactors.KILO, UnitsFactors.MICRO,
             UnitsFactors.MILLI, UnitsFactors.NANO
     ]:
         UnitsHelper.__add_factor(f, u, "БК.", "BQ.", "БЕККЕРЕЛЬ;БЕК",
                                  "БЕКЕРЕЛЬ", "BECQUEREL")
     u = Unit("См", "S", "сименс", "siemens")
     u.keywords.extend(["ПРОВОДИМОСТЬ", "ЭЛЕКТРИЧЕСКИЙ", "ПРОВОДНИК"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("СИМЕНС", u)
     t.add_abridge("СМ.")
     t.add_abridge("CM.")
     t.add_variant("S.", False)
     t.add_variant("SIEMENS", False)
     t.add_variant("СІМЕНС", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.MEGA, UnitsFactors.KILO, UnitsFactors.MICRO,
             UnitsFactors.MILLI, UnitsFactors.NANO
     ]:
         UnitsHelper.__add_factor(f, u, "СМ.", "S.", "СИМЕНС", "СІМЕНС",
                                  "SIEMENS")
     u = Unit("кд", "cd", "кандела", "candela")
     u.keywords.extend(["СВЕТ", "СВЕТОВОЙ", "ПОТОК", "ИСТОЧНИК"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("КАНДЕЛА", u)
     t.add_abridge("КД.")
     t.add_variant("CD.", False)
     t.add_variant("КАНДЕЛА", False)
     t.add_variant("CANDELA", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit("Па", "Pa", "паскаль", "pascal")
     u.keywords.extend([
         "ДАВЛЕНИЕ", "НАПРЯЖЕНИЕ", "ТЯЖЕСТЬ", "PRESSURE", "STRESS", "ТИСК",
         "НАПРУГА"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ПАСКАЛЬ", u)
     t.add_abridge("ПА")
     t.add_abridge("РА")
     t.add_variant("PA", False)
     t.add_variant("PASCAL", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.MICRO, UnitsFactors.MILLI
     ]:
         UnitsHelper.__add_factor(f, u, "ПА", "PA", "ПАСКАЛЬ", "ПАСКАЛЬ",
                                  "PASCAL")
     uu = Unit._new1698("бар", "bar", "бар", "bar", u, 100000)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("БАР", uu)
     t.add_variant("BAR", False)
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1698("мм.рт.ст.", "mm Hg", "миллиметр ртутного столба",
                        "millimeter of mercury", u, 133.332)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("МИЛЛИМЕТР РТУТНОГО СТОЛБА", uu)
     t.add_abridge("ММ.РТ.СТ.")
     t.add_abridge("MM.PT.CT")
     t.add_abridge("MM HG")
     t.add_variant("MMGH", False)
     t.add_variant("ТОРР", False)
     t.add_variant("TORR", False)
     t.add_variant("MILLIMETER OF MERCURY", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit("бит", "bit", "бит", "bit")
     u.keywords.extend([
         "ОБЪЕМ", "РАЗМЕР", "ПАМЯТЬ", "ЕМКОСТЬ", "ПЕРЕДАЧА", "ПРИЕМ",
         "ОТПРАВКА", "ОП", "ДИСК", "НАКОПИТЕЛЬ", "КЭШ", "ОБСЯГ", "РОЗМІР",
         "ВІДПРАВЛЕННЯ", "VOLUME", "SIZE", "MEMORY", "TRANSFER", "SEND",
         "RECEPTION", "RAM", "DISK", "HDD", "RAM", "ROM", "CD-ROM", "CASHE"
     ])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("БИТ", u)
     t.add_variant("BIT", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.TERA
     ]:
         UnitsHelper.__add_factor(f, u, "БИТ", "BIT", "БИТ", "БИТ", "BIT")
     uu = Unit("б", "b", "байт", "byte")
     uu.keywords = u.keywords
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("БАЙТ", uu)
     t.add_variant("BYTE", False)
     t.add_abridge("B.")
     t.add_abridge("Б.")
     t.add_abridge("В.")
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.TERA
     ]:
         UnitsHelper.__add_factor(f, uu, "Б.", "B.", "БАЙТ", "БАЙТ", "BYTE")
     u = Unit("бод", "Bd", "бод", "baud")
     u.keywords.extend(
         ["СКОРОСТЬ", "ПЕРЕДАЧА", "ПРИЕМ", "ДАННЫЕ", "ОТПРАВКА"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("БОД", u)
     t.add_abridge("BD")
     t.add_variant("BAUD", False)
     UnitsHelper.TERMINS.add(t)
     for f in [
             UnitsFactors.KILO, UnitsFactors.MEGA, UnitsFactors.GIGA,
             UnitsFactors.TERA
     ]:
         UnitsHelper.__add_factor(f, uu, "БОД", "BD.", "БОД", "БОД", "BAUD")
     u = Unit("гс", "gf", "грамм-сила", "gram-force")
     u.keywords.extend(["СИЛА", "ДАВЛЕНИЕ"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("ГРАММ СИЛА", u)
     t.add_abridge("ГС")
     t.add_variant("POND", False)
     t.add_variant("ГРАМ СИЛА", False)
     t.add_abridge("GP.")
     t.add_variant("GRAM POND", False)
     t.add_variant("GRAM FORCE", False)
     UnitsHelper.TERMINS.add(t)
     uu = Unit._new1698("кгс", "kgf", "килограмм-сила", "kilogram-force", u,
                        1000)
     UnitsHelper.UNITS.append(uu)
     t = Termin._new100("КИЛОГРАММ СИЛА", uu)
     t.add_abridge("КГС")
     t.add_variant("KILOPOND", False)
     t.add_variant("КІЛОГРАМ СИЛА", False)
     t.add_abridge("KP.")
     t.add_variant("KILOGRAM POND", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit("dpi", "точек на дюйм", "dpi", "dots per inch")
     u.keywords.extend(["РАЗРЕШЕНИЕ", "ЭКРАН", "МОНИТОР"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("DOTS PER INCH", u)
     t.add_variant("DPI", False)
     UnitsHelper.TERMINS.add(t)
     u = Unit._new1647("IP", "IP", "IP", "IP", MeasureKind.IP)
     u.keywords.extend(
         ["ЗАЩИТА", "КЛАСС ЗАЩИТЫ", "PROTECTION", "PROTACTION RATING"])
     UnitsHelper.UNITS.append(u)
     t = Termin._new100("IP", u)
     UnitsHelper.TERMINS.add(t)
     Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False
예제 #9
0
 def __add_factor(f: 'UnitsFactors', u0: 'Unit', abbr_cyr: str,
                  abbr_lat: str, names_ru: str, names_ua: str,
                  names_en: str) -> 'Unit':
     pref_cyr = None
     pref_lat = None
     pref_ru = None
     pref_ua = None
     pref_en = None
     mult = 1
     swichVal = f
     if (swichVal == UnitsFactors.CENTI):
         pref_cyr = "С"
         pref_lat = "C"
         pref_ru = "САНТИ"
         pref_ua = "САНТИ"
         pref_en = "CENTI"
         mult = 0.1
     elif (swichVal == UnitsFactors.DECI):
         pref_cyr = "Д"
         pref_lat = "D"
         pref_ru = "ДЕЦИ"
         pref_ua = "ДЕЦИ"
         pref_en = "DECI"
         mult = 0.01
     elif (swichVal == UnitsFactors.GIGA):
         pref_cyr = "Г"
         pref_lat = "G"
         pref_ru = "ГИГА"
         pref_ua = "ГІГА"
         pref_en = "GIGA"
         mult = (1000000000)
     elif (swichVal == UnitsFactors.KILO):
         pref_cyr = "К"
         pref_lat = "K"
         pref_ru = "КИЛО"
         pref_ua = "КІЛО"
         pref_en = "KILO"
         mult = (1000)
     elif (swichVal == UnitsFactors.MEGA):
         pref_cyr = "М"
         pref_lat = "M"
         pref_ru = "МЕГА"
         pref_ua = "МЕГА"
         pref_en = "MEGA"
         mult = (1000000)
     elif (swichVal == UnitsFactors.MICRO):
         pref_cyr = "МК"
         pref_lat = "MK"
         pref_ru = "МИКРО"
         pref_ua = "МІКРО"
         pref_en = "MICRO"
         mult = 0.0001
     elif (swichVal == UnitsFactors.MILLI):
         pref_cyr = "М"
         pref_lat = "M"
         pref_ru = "МИЛЛИ"
         pref_ua = "МІЛІ"
         pref_en = "MILLI"
         mult = 0.001
     elif (swichVal == UnitsFactors.NANO):
         pref_cyr = "Н"
         pref_lat = "N"
         pref_ru = "НАНО"
         pref_ua = "НАНО"
         pref_en = "NANO"
         mult = 0.0000000001
     elif (swichVal == UnitsFactors.PICO):
         pref_cyr = "П"
         pref_lat = "P"
         pref_ru = "ПИКО"
         pref_ua = "ПІКО"
         pref_en = "PICO"
         mult = 0.0000000000001
     elif (swichVal == UnitsFactors.TERA):
         pref_cyr = "Т"
         pref_lat = "T"
         pref_ru = "ТЕРА"
         pref_ua = "ТЕРА"
         pref_en = "TERA"
         mult = (1000000000000)
     u = Unit._new1733(pref_cyr.lower() + u0.name_cyr,
                       pref_lat.lower() + u0.name_lat,
                       pref_ru.lower() + u0.fullname_cyr,
                       pref_en.lower() + u0.fullname_lat, f, mult, u0,
                       u0.kind, u0.keywords)
     if (f == UnitsFactors.MEGA or f == UnitsFactors.TERA
             or f == UnitsFactors.GIGA):
         u.name_cyr = (pref_cyr + u0.name_cyr)
         u.name_lat = (pref_lat + u0.name_lat)
     UnitsHelper.UNITS.append(u)
     nams = Utils.splitString(names_ru, ';', False)
     t = Termin._new100(pref_ru + nams[0], u)
     i = 1
     while i < len(nams):
         if (not Utils.isNullOrEmpty(nams[i])):
             t.add_variant(pref_ru + nams[i], False)
         i += 1
     for n in nams:
         if (not Utils.isNullOrEmpty(n)):
             t.add_variant(pref_cyr + n, False)
     for n in Utils.splitString(names_ua, ';', False):
         if (not Utils.isNullOrEmpty(n)):
             t.add_variant(pref_ua + n, False)
             t.add_variant(pref_cyr + n, False)
     for n in Utils.splitString(names_en, ';', False):
         if (not Utils.isNullOrEmpty(n)):
             t.add_variant(pref_en + n, False)
             t.add_variant(pref_lat + n, False)
     for n in Utils.splitString(abbr_cyr, ';', False):
         if (not Utils.isNullOrEmpty(n)):
             t.add_abridge(pref_cyr + n)
     for n in Utils.splitString(abbr_lat, ';', False):
         if (not Utils.isNullOrEmpty(n)):
             t.add_abridge(pref_lat + n)
     UnitsHelper.TERMINS.add(t)
     return u
예제 #10
0
 def initialize() -> None:
     if (BookLinkToken.__m_termins is not None):
         return
     BookLinkToken.__m_termins = TerminCollection()
     tt = None
     tt = Termin._new100("ТЕКСТ", BookLinkTyp.NAMETAIL)
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new100("ЭЛЕКТРОННЫЙ РЕСУРС", BookLinkTyp.ELECTRONRES)
     tt.add_variant("ЕЛЕКТРОННИЙ РЕСУРС", False)
     tt.add_variant("MODE OF ACCESS", False)
     tt.add_variant("URL", False)
     tt.add_variant("URLS", False)
     tt.add_variant("ELECTRONIC RESOURCE", False)
     tt.add_variant("ON LINE", False)
     tt.add_variant("ONLINE", False)
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new100("РЕЖИМ ДОСТУПА", BookLinkTyp.MISC)
     tt.add_variant("РЕЖИМ ДОСТУПУ", False)
     tt.add_variant("AVAILABLE", False)
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new100("МОНОГРАФИЯ", BookLinkTyp.TYPE)
     tt.add_variant("МОНОГРАФІЯ", False)
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new100("УЧЕБНОЕ ПОСОБИЕ", BookLinkTyp.TYPE)
     tt.add_abridge("УЧ.ПОСОБИЕ")
     tt.add_abridge("УЧЕБ.")
     tt.add_abridge("УЧЕБН.")
     tt.add_variant("УЧЕБНИК", False)
     tt.add_variant("ПОСОБИЕ", False)
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new101("НАВЧАЛЬНИЙ ПОСІБНИК", BookLinkTyp.TYPE,
                         MorphLang.UA)
     tt.add_abridge("НАВЧ.ПОСІБНИК")
     tt.add_abridge("НАВЧ.ПОСІБ")
     tt.add_variant("ПІДРУЧНИК", False)
     tt.add_variant("ПІДРУЧ", False)
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new100("АВТОРЕФЕРАТ", BookLinkTyp.TYPE)
     tt.add_abridge("АВТОРЕФ.")
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new100("ДИССЕРТАЦИЯ", BookLinkTyp.TYPE)
     tt.add_variant("ДИСС", False)
     tt.add_abridge("ДИС.")
     tt.add_variant("ДИСЕРТАЦІЯ", False)
     tt.add_variant("DISSERTATION", False)
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new100("ДОКЛАД", BookLinkTyp.TYPE)
     tt.add_variant("ДОКЛ", False)
     tt.add_abridge("ДОКЛ.")
     tt.add_variant("ДОПОВІДЬ", False)
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new100("ПОД РЕДАКЦИЕЙ", BookLinkTyp.EDITORS)
     tt.add_abridge("ПОД РЕД")
     tt.add_abridge("ОТВ.РЕД")
     tt.add_abridge("ОТВ.РЕДАКТОР")
     tt.add_variant("ПОД ОБЩЕЙ РЕДАКЦИЕЙ", False)
     tt.add_abridge("ОТВ.РЕД")
     tt.add_abridge("ОТВ.РЕДАКТОР")
     tt.add_abridge("ПОД ОБЩ. РЕД")
     tt.add_abridge("ПОД ОБЩЕЙ РЕД")
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new101("ПІД РЕДАКЦІЄЮ", BookLinkTyp.EDITORS, MorphLang.UA)
     tt.add_abridge("ПІД РЕД")
     tt.add_abridge("ОТВ.РЕД")
     tt.add_abridge("ВІД. РЕДАКТОР")
     tt.add_variant("ЗА ЗАГ.РЕД", False)
     tt.add_abridge("ВІДПОВІДАЛЬНИЙ РЕДАКТОР")
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new100("СОСТАВИТЕЛЬ", BookLinkTyp.SOSTAVITEL)
     tt.add_abridge("СОСТ.")
     BookLinkToken.__m_termins.add(tt)
     tt = Termin._new101("УКЛАДАЧ", BookLinkTyp.SOSTAVITEL, MorphLang.UA)
     tt.add_abridge("УКЛ.")
     BookLinkToken.__m_termins.add(tt)
     for s in [
             "Политиздат", "Прогресс", "Мысль", "Просвещение", "Наука",
             "Физматлит", "Физматкнига", "Инфра-М", "Питер", "Интеллект",
             "Аспект пресс", "Аспект-пресс", "АСВ", "Радиотехника",
             "Радио и связь", "Лань", "Академия", "Академкнига", "URSS",
             "Академический проект", "БИНОМ", "БВХ", "Вильямс", "Владос",
             "Волтерс Клувер", "Wolters Kluwer", "Восток-Запад",
             "Высшая школа", "ГЕО", "Дашков и К", "Кнорус", "Когито-Центр",
             "КолосС", "Проспект", "РХД", "Статистика",
             "Финансы и статистика", "Флинта", "Юнити-дана"
     ]:
         BookLinkToken.__m_termins.add(
             Termin._new100(s.upper(), BookLinkTyp.PRESS))
     tt = Termin._new100("ИЗДАТЕЛЬСТВО", BookLinkTyp.PRESS)
     tt.add_abridge("ИЗ-ВО")
     tt.add_abridge("ИЗД-ВО")
     tt.add_abridge("ИЗДАТ-ВО")
     tt.add_variant("ISSN", False)
     tt.add_variant("PRESS", False)
     tt.add_variant("VERLAG", False)
     tt.add_variant("JOURNAL", False)
     BookLinkToken.__m_termins.add(tt)
예제 #11
0
 def initialize() -> None:
     if (TitleItemToken.M_TERMINS is not None):
         return
     TitleItemToken.M_TERMINS = TerminCollection()
     for s in [
             "РАБОТА", "ДИССЕРТАЦИЯ", "ОТЧЕТ", "ОБЗОР", "ДИПЛОМ", "ПРОЕКТ",
             "СПРАВКА", "АВТОРЕФЕРАТ", "РЕФЕРАТ", "TECHNOLOGY ISSUES",
             "TECHNOLOGY COURSE", "УЧЕБНИК", "УЧЕБНОЕ ПОСОБИЕ"
     ]:
         TitleItemToken.M_TERMINS.add(
             Termin._new100(s, TitleItemToken.Types.TYP))
     for s in [
             "РОБОТА", "ДИСЕРТАЦІЯ", "ЗВІТ", "ОГЛЯД", "ДИПЛОМ", "ПРОЕКТ",
             "ДОВІДКА", "АВТОРЕФЕРАТ", "РЕФЕРАТ"
     ]:
         TitleItemToken.M_TERMINS.add(
             Termin._new388(s, MorphLang.UA, TitleItemToken.Types.TYP))
     for s in [
             "ДОПУСТИТЬ К ЗАЩИТА", "РЕКОМЕНДОВАТЬ К ЗАЩИТА", "ДОЛЖНОСТЬ",
             "ЦЕЛЬ РАБОТЫ", "НА ПРАВАХ РУКОПИСИ", "ПО ИЗДАНИЮ", "ПОЛУЧЕНО"
     ]:
         TitleItemToken.M_TERMINS.add(
             Termin._new100(s, TitleItemToken.Types.DUST))
     for s in [
             "ДОПУСТИТИ ДО ЗАХИСТУ", "РЕКОМЕНДУВАТИ ДО ЗАХИСТ", "ПОСАДА",
             "МЕТА РОБОТИ", "НА ПРАВАХ РУКОПИСУ", "ПО ВИДАННЮ", "ОТРИМАНО"
     ]:
         TitleItemToken.M_TERMINS.add(
             Termin._new388(s, MorphLang.UA, TitleItemToken.Types.DUST))
     for s in ["УТВЕРЖДАТЬ", "СОГЛАСЕН", "СТВЕРДЖУВАТИ", "ЗГОДЕН"]:
         TitleItemToken.M_TERMINS.add(
             Termin._new100(s, TitleItemToken.Types.ADOPT))
     for s in [
             "НАУЧНЫЙ РУКОВОДИТЕЛЬ", "РУКОВОДИТЕЛЬ РАБОТА",
             "НАУКОВИЙ КЕРІВНИК", "КЕРІВНИК РОБОТА"
     ]:
         TitleItemToken.M_TERMINS.add(
             Termin._new100(s, TitleItemToken.Types.BOSS))
     for s in [
             "НАУЧНЫЙ КОНСУЛЬТАНТ", "КОНСУЛЬТАНТ", "НАУКОВИЙ КОНСУЛЬТАНТ"
     ]:
         TitleItemToken.M_TERMINS.add(
             Termin._new100(s, TitleItemToken.Types.CONSULTANT))
     for s in [
             "РЕДАКТОР", "РЕДАКТОРСКАЯ ГРУППА", "РЕЦЕНЗЕНТ",
             "РЕДАКТОРСЬКА ГРУПА"
     ]:
         TitleItemToken.M_TERMINS.add(
             Termin._new100(s, TitleItemToken.Types.EDITOR))
     for s in ["ОФИЦИАЛЬНЫЙ ОППОНЕНТ", "ОППОНЕНТ", "ОФІЦІЙНИЙ ОПОНЕНТ"]:
         TitleItemToken.M_TERMINS.add(
             Termin._new100(s, TitleItemToken.Types.OPPONENT))
     for s in [
             "ИСПОЛНИТЕЛЬ", "ОТВЕТСТВЕННЫЙ ИСПОЛНИТЕЛЬ", "АВТОР",
             "ДИПЛОМНИК", "КОЛЛЕКТТИВ ИСПОЛНИТЕЛЕЙ", "ВЫПОЛНИТЬ",
             "ИСПОЛНИТЬ"
     ]:
         TitleItemToken.M_TERMINS.add(
             Termin._new100(s, TitleItemToken.Types.WORKER))
     for s in [
             "ВИКОНАВЕЦЬ", "ВІДПОВІДАЛЬНИЙ ВИКОНАВЕЦЬ", "АВТОР",
             "ДИПЛОМНИК", "КОЛЛЕКТТИВ ВИКОНАВЦІВ", "ВИКОНАТИ", "ВИКОНАТИ"
     ]:
         TitleItemToken.M_TERMINS.add(
             Termin._new388(s, MorphLang.UA, TitleItemToken.Types.WORKER))
     for s in ["КЛЮЧЕВЫЕ СЛОВА", "KEYWORDS", "КЛЮЧОВІ СЛОВА"]:
         TitleItemToken.M_TERMINS.add(
             Termin._new100(s, TitleItemToken.Types.KEYWORDS))
예제 #12
0
 def process(self, kit: 'AnalysisKit') -> None:
     ad = kit.get_analyzer_data(self)
     addunits = None
     if (kit.ontology is not None):
         addunits = TerminCollection()
         for r in kit.ontology.items:
             uu = Utils.asObjectOrNull(r.referent, UnitReferent)
             if (uu is None):
                 continue
             if (uu._m_unit is not None):
                 continue
             for s in uu.slots:
                 if (s.type_name == UnitReferent.ATTR_NAME
                         or s.type_name == UnitReferent.ATTR_FULLNAME):
                     addunits.add(
                         Termin._new100(Utils.asObjectOrNull(s.value, str),
                                        uu))
     t = kit.first_token
     first_pass3309 = True
     while True:
         if first_pass3309: first_pass3309 = False
         else: t = t.next0_
         if (not (t is not None)): break
         mt = MeasureToken.try_parse_minimal(t, addunits, False)
         if (mt is None):
             mt = MeasureToken.try_parse(t, addunits, True, False, False,
                                         False)
         if (mt is None):
             continue
         rts = mt.create_refenets_tokens_with_register(ad, True)
         if (rts is None):
             continue
         i = 0
         while i < len(rts):
             rt = rts[i]
             t.kit.embed_token(rt)
             t = (rt)
             j = i + 1
             while j < len(rts):
                 if (rts[j].begin_token == rt.begin_token):
                     rts[j].begin_token = t
                 if (rts[j].end_token == rt.end_token):
                     rts[j].end_token = t
                 j += 1
             i += 1
     if (kit.ontology is not None):
         for e0_ in ad.referents:
             u = Utils.asObjectOrNull(e0_, UnitReferent)
             if (u is None):
                 continue
             for r in kit.ontology.items:
                 uu = Utils.asObjectOrNull(r.referent, UnitReferent)
                 if (uu is None):
                     continue
                 ok = False
                 for s in uu.slots:
                     if (s.type_name == UnitReferent.ATTR_NAME
                             or s.type_name == UnitReferent.ATTR_FULLNAME):
                         if (u.find_slot(None, s.value, True) is not None):
                             ok = True
                             break
                 if (ok):
                     u.ontology_items = list()
                     u.ontology_items.append(r)
                     break
예제 #13
0
 def process(self, kit: 'AnalysisKit') -> None:
     ad = kit.get_analyzer_data(self)
     models = TerminCollection()
     objs_by_model = dict()
     obj_by_names = TerminCollection()
     t = kit.first_token
     first_pass3428 = True
     while True:
         if first_pass3428: first_pass3428 = False
         else: t = t.next0_
         if (not (t is not None)): break
         its = WeaponItemToken.try_parse_list(t, 10)
         if (its is None):
             continue
         rts = self.__try_attach(its, False)
         if (rts is not None):
             for rt in rts:
                 rt.referent = ad.register_referent(rt.referent)
                 kit.embed_token(rt)
                 t = (rt)
                 for s in rt.referent.slots:
                     if (s.type_name == WeaponReferent.ATTR_MODEL):
                         mod = str(s.value)
                         for k in range(2):
                             if (not str.isdigit(mod[0])):
                                 li = []
                                 wrapli2804 = RefOutArgWrapper(None)
                                 inoutres2805 = Utils.tryGetValue(
                                     objs_by_model, mod, wrapli2804)
                                 li = wrapli2804.value
                                 if (not inoutres2805):
                                     li = list()
                                     objs_by_model[mod] = li
                                 if (not rt.referent in li):
                                     li.append(rt.referent)
                                 models.add_string(mod, li, None, False)
                             if (k > 0):
                                 break
                             brand = rt.referent.get_string_value(
                                 WeaponReferent.ATTR_BRAND)
                             if (brand is None):
                                 break
                             mod = "{0} {1}".format(brand, mod)
                     elif (s.type_name == WeaponReferent.ATTR_NAME):
                         obj_by_names.add(
                             Termin._new100(str(s.value), rt.referent))
     if (len(objs_by_model) == 0 and len(obj_by_names.termins) == 0):
         return
     t = kit.first_token
     first_pass3429 = True
     while True:
         if first_pass3429: first_pass3429 = False
         else: t = t.next0_
         if (not (t is not None)): break
         br = BracketHelper.try_parse(t, BracketParseAttr.NO, 10)
         if (br is not None):
             toks = obj_by_names.try_parse(t.next0_, TerminParseAttr.NO)
             if (toks is not None
                     and toks.end_token.next0_ == br.end_token):
                 rt0 = ReferentToken(
                     Utils.asObjectOrNull(toks.termin.tag, Referent),
                     br.begin_token, br.end_token)
                 kit.embed_token(rt0)
                 t = (rt0)
                 continue
         if (not (isinstance(t, TextToken))):
             continue
         if (not t.chars.is_letter):
             continue
         tok = models.try_parse(t, TerminParseAttr.NO)
         if (tok is None):
             if (not t.chars.is_all_lower):
                 tok = obj_by_names.try_parse(t, TerminParseAttr.NO)
             if (tok is None):
                 continue
         if (not tok.is_whitespace_after):
             if (tok.end_token.next0_ is None
                     or not tok.end_token.next0_.is_char_of(",.)")):
                 if (not BracketHelper.is_bracket(tok.end_token.next0_,
                                                  False)):
                     continue
         tr = None
         li = Utils.asObjectOrNull(tok.termin.tag, list)
         if (li is not None and len(li) == 1):
             tr = li[0]
         else:
             tr = (Utils.asObjectOrNull(tok.termin.tag, Referent))
         if (tr is not None):
             tit = WeaponItemToken.try_parse(tok.begin_token.previous, None,
                                             False, True)
             if (tit is not None and tit.typ == WeaponItemToken.Typs.BRAND):
                 tr.add_slot(WeaponReferent.ATTR_BRAND, tit.value, False, 0)
                 tok.begin_token = tit.begin_token
             rt0 = ReferentToken(tr, tok.begin_token, tok.end_token)
             kit.embed_token(rt0)
             t = (rt0)
             continue
예제 #14
0
 def _initialize() -> None:
     if (NamedItemToken.__m_types is not None): 
         return
     NamedItemToken.__m_types = TerminCollection()
     NamedItemToken.__m_names = TerminCollection()
     t = None
     for s in ["ПЛАНЕТА", "ЗВЕЗДА", "КОМЕТА", "МЕТЕОРИТ", "СОЗВЕЗДИЕ", "ГАЛАКТИКА"]: 
         t = Termin()
         t.init_by_normal_text(s, None)
         t.tag = NamedEntityKind.PLANET
         NamedItemToken.__m_types.add(t)
     for s in ["СОЛНЦЕ", "МЕРКУРИЙ", "ВЕНЕРА", "ЗЕМЛЯ", "МАРС", "ЮПИТЕР", "САТУРН", "УРАН", "НЕПТУН", "ПЛУТОН", "ЛУНА", "ДЕЙМОС", "ФОБОС", "Ио", "Ганимед", "Каллисто"]: 
         t = Termin()
         t.init_by_normal_text(s.upper(), None)
         t.tag = NamedEntityKind.PLANET
         NamedItemToken.__m_names.add(t)
     for s in ["РЕКА", "ОЗЕРО", "МОРЕ", "ОКЕАН", "ЗАЛИВ", "ПРОЛИВ", "ПОБЕРЕЖЬЕ", "КОНТИНЕНТ", "ОСТРОВ", "ПОЛУОСТРОВ", "МЫС", "ГОРА", "ГОРНЫЙ ХРЕБЕТ", "ПЕРЕВАЛ", "ЛЕС", "САД", "ЗАПОВЕДНИК", "ЗАКАЗНИК", "ДОЛИНА", "УЩЕЛЬЕ", "РАВНИНА", "БЕРЕГ"]: 
         t = Termin()
         t.init_by_normal_text(s, None)
         t.tag = NamedEntityKind.LOCATION
         NamedItemToken.__m_types.add(t)
     for s in ["ТИХИЙ", "АТЛАНТИЧЕСКИЙ", "ИНДИЙСКИЙ", "СЕВЕРО-ЛЕДОВИТЫЙ"]: 
         t = Termin()
         t.init_by_normal_text(s, None)
         t.tag = NamedEntityKind.LOCATION
         t.tag2 = ("океан")
         NamedItemToken.__m_names.add(t)
     for s in ["ЕВРАЗИЯ", "АФРИКА", "АМЕРИКА", "АВСТРАЛИЯ", "АНТАРКТИДА"]: 
         t = Termin()
         t.init_by_normal_text(s, None)
         t.tag = NamedEntityKind.LOCATION
         t.tag2 = ("континент")
         NamedItemToken.__m_names.add(t)
     for s in ["ВОЛГА", "НЕВА", "АМУР", "ОБЪ", "АНГАРА", "ЛЕНА", "ИРТЫШ", "ДНЕПР", "ДОН", "ДНЕСТР", "РЕЙН", "АМУДАРЬЯ", "СЫРДАРЬЯ", "ТИГР", "ЕВФРАТ", "ИОРДАН", "МИССИСИПИ", "АМАЗОНКА", "ТЕМЗА", "СЕНА", "НИЛ", "ЯНЦЗЫ", "ХУАНХЭ", "ПАРАНА", "МЕКОНГ", "МАККЕНЗИ", "НИГЕР", "ЕНИСЕЙ", "МУРРЕЙ", "САЛУИН", "ИНД", "РИО-ГРАНДЕ", "БРАХМАПУТРА", "ДАРЛИНГ", "ДУНАЙ", "ЮКОН", "ГАНГ", "МАРРАМБИДЖИ", "ЗАМБЕЗИ", "ТОКАНТИС", "ОРИНОКО", "СИЦЗЯН", "КОЛЫМА", "КАМА", "ОКА", "ЭЛЬЮА", "ВИСЛА", "ДАУГАВА", "ЗАПАДНАЯ ДВИНА", "НЕМАН", "МЕЗЕНЬ", "КУБАНЬ", "ЮЖНЫЙ БУГ"]: 
         t = Termin()
         t.init_by_normal_text(s, None)
         t.tag = NamedEntityKind.LOCATION
         t.tag2 = ("река")
         NamedItemToken.__m_names.add(t)
     for s in ["ЕВРОПА", "АЗИЯ", "АРКТИКА", "КАВКАЗ", "ПРИБАЛТИКА", "СИБИРЬ", "ЗАПОЛЯРЬЕ", "ЧУКОТКА", "ПРИБАЛТИКА", "БАЛКАНЫ", "СКАНДИНАВИЯ", "ОКЕАНИЯ", "АЛЯСКА", "УРАЛ", "ПОВОЛЖЬЕ", "ПРИМОРЬЕ", "КУРИЛЫ", "ТИБЕТ", "ГИМАЛАИ", "АЛЬПЫ", "САХАРА", "ГОБИ", "СИНАЙ", "БАЙКОНУР", "ЧЕРНОБЫЛЬ", "САДОВОЕ КОЛЬЦО", "СТАРЫЙ ГОРОД"]: 
         t = Termin()
         t.init_by_normal_text(s, None)
         t.tag = NamedEntityKind.LOCATION
         NamedItemToken.__m_names.add(t)
     for s in ["ПАМЯТНИК", "МОНУМЕНТ", "МЕМОРИАЛ", "БЮСТ", "ОБЕЛИСК"]: 
         t = Termin()
         t.init_by_normal_text(s, None)
         t.tag = NamedEntityKind.MONUMENT
         NamedItemToken.__m_types.add(t)
     for s in ["ДВОРЕЦ", "КРЕМЛЬ", "ЗАМОК", "УСАДЬБА", "ДОМ", "ЗДАНИЕ", "ШТАБ-КВАРТИРА", "ЖЕЛЕЗНОДОРОЖНЫЙ ВОКЗАЛ", "ВОКЗАЛ", "АВТОВОКЗАЛ", "АЭРОПОРТ", "АЭРОДРОМ"]: 
         t = Termin()
         t.init_by_normal_text(s, None)
         t.tag = NamedEntityKind.BUILDING
         NamedItemToken.__m_types.add(t)
     for s in ["КРЕМЛЬ", "КАПИТОЛИЙ", "БЕЛЫЙ ДОМ"]: 
         t = Termin()
         t.init_by_normal_text(s, None)
         t.tag = NamedEntityKind.BUILDING
         NamedItemToken.__m_names.add(t)
     t = Termin._new100("МЕЖДУНАРОДНАЯ КОСМИЧЕСКАЯ СТАНЦИЯ", NamedEntityKind.BUILDING)
     t.acronym = "МКС"
     NamedItemToken.__m_names.add(t)
 def _initialize() -> None:
     if (NumbersWithUnitToken.M_TERMINS is not None): 
         return
     NumbersWithUnitToken.M_TERMINS = TerminCollection()
     t = Termin._new100("НЕ МЕНЕЕ", NumbersWithUnitToken.DiapTyp.GE)
     t.add_variant("НЕ МЕНЬШЕ", False)
     t.add_variant("НЕ КОРОЧЕ", False)
     t.add_variant("НЕ МЕДЛЕННЕЕ", False)
     t.add_variant("НЕ НИЖЕ", False)
     t.add_variant("НЕ МОЛОЖЕ", False)
     t.add_variant("НЕ ДЕШЕВЛЕ", False)
     t.add_variant("НЕ РЕЖЕ", False)
     t.add_variant("НЕ МЕНЕ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new100("МЕНЕЕ", NumbersWithUnitToken.DiapTyp.LS)
     t.add_variant("МЕНЬШЕ", False)
     t.add_variant("МЕНЕ", False)
     t.add_variant("КОРОЧЕ", False)
     t.add_variant("МЕДЛЕННЕЕ", False)
     t.add_variant("НИЖЕ", False)
     t.add_variant("МЛАДШЕ", False)
     t.add_variant("ДЕШЕВЛЕ", False)
     t.add_variant("РЕЖЕ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new100("НЕ БОЛЕЕ", NumbersWithUnitToken.DiapTyp.LE)
     t.add_variant("НЕ БОЛЬШЕ", False)
     t.add_variant("НЕ БОЛЕ", False)
     t.add_variant("НЕ ДЛИННЕЕ", False)
     t.add_variant("НЕ БЫСТРЕЕ", False)
     t.add_variant("НЕ ВЫШЕ", False)
     t.add_variant("НЕ ПОЗДНЕЕ", False)
     t.add_variant("НЕ ДОЛЬШЕ", False)
     t.add_variant("НЕ СТАРШЕ", False)
     t.add_variant("НЕ ДОРОЖЕ", False)
     t.add_variant("НЕ ЧАЩЕ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new100("БОЛЕЕ", NumbersWithUnitToken.DiapTyp.GT)
     t.add_variant("БОЛЬШЕ", False)
     t.add_variant("ДЛИННЕЕ", False)
     t.add_variant("БЫСТРЕЕ", False)
     t.add_variant("БОЛЕ", False)
     t.add_variant("ЧАЩЕ", False)
     t.add_variant("ГЛУБЖЕ", False)
     t.add_variant("ВЫШЕ", False)
     t.add_variant("СВЫШЕ", False)
     t.add_variant("СТАРШЕ", False)
     t.add_variant("ДОРОЖЕ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new100("ОТ", NumbersWithUnitToken.DiapTyp.FROM)
     t.add_variant("С", False)
     t.add_variant("C", False)
     t.add_variant("НАЧИНАЯ С", False)
     t.add_variant("НАЧИНАЯ ОТ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new100("ДО", NumbersWithUnitToken.DiapTyp.TO)
     t.add_variant("ПО", False)
     t.add_variant("ЗАКАНЧИВАЯ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new100("НЕ ХУЖЕ", NumbersWithUnitToken.DiapTyp.UNDEFINED)
     NumbersWithUnitToken.M_TERMINS.add(t)
     NumbersWithUnitToken.M_SPEC = TerminCollection()
     t = Termin._new102("ПОЛЛИТРА", 0.5, "литр")
     t.add_variant("ПОЛУЛИТРА", False)
     NumbersWithUnitToken.M_SPEC.add(t)
     t = Termin._new102("ПОЛКИЛО", 0.5, "килограмм")
     t.add_variant("ПОЛКИЛОГРАММА", False)
     NumbersWithUnitToken.M_SPEC.add(t)
     t = Termin._new102("ПОЛМЕТРА", 0.5, "метр")
     t.add_variant("ПОЛУМЕТРА", False)
     NumbersWithUnitToken.M_SPEC.add(t)
     t = Termin._new102("ПОЛТОННЫ", 0.5, "тонна")
     t.add_variant("ПОЛУТОННЫ", False)
     NumbersWithUnitToken.M_SPEC.add(t)
     NumbersWithUnitToken.M_SPEC.add(t)