示例#1
0
 def initialize() -> None:
     if (MailLine.M_REGARD_WORDS is not None):
         return
     MailLine.M_REGARD_WORDS = TerminCollection()
     for s in [
             "УВАЖЕНИЕ", "ПОЧТЕНИЕ", "С УВАЖЕНИЕМ", "ПОЖЕЛАНИE", "ДЕНЬ",
             "ХОРОШЕГО ДНЯ", "ИСКРЕННЕ ВАШ", "УДАЧА", "СПАСИБО", "ЦЕЛОВАТЬ",
             "ПОВАГА", "З ПОВАГОЮ", "ПОБАЖАННЯ", "ДЕНЬ", "ЩИРО ВАШ",
             "ДЯКУЮ", "ЦІЛУВАТИ", "BEST REGARDS", "REGARDS", "BEST WISHES",
             "KIND REGARDS", "GOOD BYE", "BYE", "THANKS", "THANK YOU",
             "MANY THANKS", "DAY", "VERY MUCH", "HAVE", "LUCK",
             "Yours sincerely", "sincerely Yours", "Looking forward",
             "Ar cieņu"
     ]:
         MailLine.M_REGARD_WORDS.add(Termin(s.upper()))
     MailLine.M_FROM_WORDS = TerminCollection()
     for s in [
             "FROM", "TO", "CC", "SENT", "SUBJECT", "SENDER", "TIME",
             "ОТ КОГО", "КОМУ", "ДАТА", "ТЕМА", "КОПИЯ", "ОТ", "ОТПРАВЛЕНО",
             "WHEN", "WHERE"
     ]:
         MailLine.M_FROM_WORDS.add(Termin(s))
     MailLine.M_HELLO_WORDS = TerminCollection()
     for s in [
             "HI", "HELLO", "DEAR", "GOOD MORNING", "GOOD DAY",
             "GOOD EVENING", "GOOD NIGHT", "ЗДРАВСТВУЙ", "ЗДРАВСТВУЙТЕ",
             "ПРИВЕТСТВУЮ", "ПРИВЕТ", "ПРИВЕТИК", "УВАЖАЕМЫЙ", "ДОРОГОЙ",
             "ЛЮБЕЗНЫЙ", "ДОБРОЕ УТРО", "ДОБРЫЙ ДЕНЬ", "ДОБРЫЙ ВЕЧЕР",
             "ДОБРОЙ НОЧИ", "ЗДРАСТУЙ", "ЗДРАСТУЙТЕ", "ВІТАЮ", "ПРИВІТ",
             "ПРИВІТ", "ШАНОВНИЙ", "ДОРОГИЙ", "ЛЮБИЙ", "ДОБРОГО РАНКУ",
             "ДОБРИЙ ДЕНЬ", "ДОБРИЙ ВЕЧІР", "ДОБРОЇ НОЧІ"
     ]:
         MailLine.M_HELLO_WORDS.add(Termin(s))
示例#2
0
 def _initialize() -> None:
     if (NumbersWithUnitToken.M_TERMINS is not None):
         return
     NumbersWithUnitToken.M_TERMINS = TerminCollection()
     t = Termin._new117("НЕ МЕНЕЕ", NumbersWithUnitToken.DiapTyp.GE)
     t.addVariant("НЕ МЕНЬШЕ", False)
     t.addVariant("НЕ КОРОЧЕ", False)
     t.addVariant("НЕ МЕДЛЕННЕЕ", False)
     t.addVariant("НЕ НИЖЕ", False)
     t.addVariant("НЕ МЕНЕ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new117("МЕНЕЕ", NumbersWithUnitToken.DiapTyp.LS)
     t.addVariant("МЕНЬШЕ", False)
     t.addVariant("МЕНЕ", False)
     t.addVariant("КОРОЧЕ", False)
     t.addVariant("МЕДЛЕННЕЕ", False)
     t.addVariant("НИЖЕ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new117("НЕ БОЛЕЕ", NumbersWithUnitToken.DiapTyp.LE)
     t.addVariant("НЕ БОЛЬШЕ", False)
     t.addVariant("НЕ БОЛЕ", False)
     t.addVariant("НЕ ДЛИННЕЕ", False)
     t.addVariant("НЕ БЫСТРЕЕ", False)
     t.addVariant("НЕ ВЫШЕ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new117("БОЛЕЕ", NumbersWithUnitToken.DiapTyp.GT)
     t.addVariant("БОЛЬШЕ", False)
     t.addVariant("ДЛИННЕЕ", False)
     t.addVariant("БЫСТРЕЕ", False)
     t.addVariant("БОЛЕ", False)
     t.addVariant("ГЛУБЖЕ", False)
     t.addVariant("ВЫШЕ", False)
     t.addVariant("СВЫШЕ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new117("ОТ", NumbersWithUnitToken.DiapTyp.FROM)
     t.addVariant("С", False)
     t.addVariant("C", False)
     t.addVariant("НАЧИНАЯ С", False)
     t.addVariant("НАЧИНАЯ ОТ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new117("ДО", NumbersWithUnitToken.DiapTyp.TO)
     t.addVariant("ПО", False)
     t.addVariant("ЗАКАНЧИВАЯ", False)
     NumbersWithUnitToken.M_TERMINS.add(t)
     t = Termin._new117("НЕ ХУЖЕ", NumbersWithUnitToken.DiapTyp.UNDEFINED)
     NumbersWithUnitToken.M_TERMINS.add(t)
     NumbersWithUnitToken.M_SPEC = TerminCollection()
     t = Termin._new119("ПОЛЛИТРА", .5, "литр")
     t.addVariant("ПОЛУЛИТРА", False)
     NumbersWithUnitToken.M_SPEC.add(t)
     t = Termin._new119("ПОЛКИЛО", .5, "килограмм")
     t.addVariant("ПОЛКИЛОГРАММА", False)
     NumbersWithUnitToken.M_SPEC.add(t)
     t = Termin._new119("ПОЛМЕТРА", .5, "метр")
     t.addVariant("ПОЛУМЕТРА", False)
     NumbersWithUnitToken.M_SPEC.add(t)
     t = Termin._new119("ПОЛТОННЫ", .5, "тонна")
     t.addVariant("ПОЛУТОННЫ", False)
     NumbersWithUnitToken.M_SPEC.add(t)
     NumbersWithUnitToken.M_SPEC.add(t)
示例#3
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._new117(s, TitleItemToken.Types.TYP))
     for s in ["РОБОТА", "ДИСЕРТАЦІЯ", "ЗВІТ", "ОГЛЯД", "ДИПЛОМ", "ПРОЕКТ", "ДОВІДКА", "АВТОРЕФЕРАТ", "РЕФЕРАТ"]: 
         TitleItemToken.M_TERMINS.add(Termin._new455(s, MorphLang.UA, TitleItemToken.Types.TYP))
     for s in ["ДОПУСТИТЬ К ЗАЩИТА", "РЕКОМЕНДОВАТЬ К ЗАЩИТА", "ДОЛЖНОСТЬ", "ЦЕЛЬ РАБОТЫ", "НА ПРАВАХ РУКОПИСИ", "ПО ИЗДАНИЮ", "ПОЛУЧЕНО"]: 
         TitleItemToken.M_TERMINS.add(Termin._new117(s, TitleItemToken.Types.DUST))
     for s in ["ДОПУСТИТИ ДО ЗАХИСТУ", "РЕКОМЕНДУВАТИ ДО ЗАХИСТ", "ПОСАДА", "МЕТА РОБОТИ", "НА ПРАВАХ РУКОПИСУ", "ПО ВИДАННЮ", "ОТРИМАНО"]: 
         TitleItemToken.M_TERMINS.add(Termin._new455(s, MorphLang.UA, TitleItemToken.Types.DUST))
     for s in ["УТВЕРЖДАТЬ", "СОГЛАСЕН", "СТВЕРДЖУВАТИ", "ЗГОДЕН"]: 
         TitleItemToken.M_TERMINS.add(Termin._new117(s, TitleItemToken.Types.ADOPT))
     for s in ["НАУЧНЫЙ РУКОВОДИТЕЛЬ", "РУКОВОДИТЕЛЬ РАБОТА", "НАУКОВИЙ КЕРІВНИК", "КЕРІВНИК РОБОТА"]: 
         TitleItemToken.M_TERMINS.add(Termin._new117(s, TitleItemToken.Types.BOSS))
     for s in ["НАУЧНЫЙ КОНСУЛЬТАНТ", "КОНСУЛЬТАНТ", "НАУКОВИЙ КОНСУЛЬТАНТ"]: 
         TitleItemToken.M_TERMINS.add(Termin._new117(s, TitleItemToken.Types.CONSULTANT))
     for s in ["РЕДАКТОР", "РЕДАКТОРСКАЯ ГРУППА", "РЕЦЕНЗЕНТ", "РЕДАКТОРСЬКА ГРУПА"]: 
         TitleItemToken.M_TERMINS.add(Termin._new117(s, TitleItemToken.Types.EDITOR))
     for s in ["ОФИЦИАЛЬНЫЙ ОППОНЕНТ", "ОППОНЕНТ", "ОФІЦІЙНИЙ ОПОНЕНТ"]: 
         TitleItemToken.M_TERMINS.add(Termin._new117(s, TitleItemToken.Types.OPPONENT))
     for s in ["ИСПОЛНИТЕЛЬ", "ОТВЕТСТВЕННЫЙ ИСПОЛНИТЕЛЬ", "АВТОР", "ДИПЛОМНИК", "КОЛЛЕКТТИВ ИСПОЛНИТЕЛЕЙ", "ВЫПОЛНИТЬ", "ИСПОЛНИТЬ"]: 
         TitleItemToken.M_TERMINS.add(Termin._new117(s, TitleItemToken.Types.WORKER))
     for s in ["ВИКОНАВЕЦЬ", "ВІДПОВІДАЛЬНИЙ ВИКОНАВЕЦЬ", "АВТОР", "ДИПЛОМНИК", "КОЛЛЕКТТИВ ВИКОНАВЦІВ", "ВИКОНАТИ", "ВИКОНАТИ"]: 
         TitleItemToken.M_TERMINS.add(Termin._new455(s, MorphLang.UA, TitleItemToken.Types.WORKER))
     for s in ["КЛЮЧЕВЫЕ СЛОВА", "KEYWORDS", "КЛЮЧОВІ СЛОВА"]: 
         TitleItemToken.M_TERMINS.add(Termin._new117(s, TitleItemToken.Types.KEYWORDS))
示例#4
0
 def initialize() -> None:
     if (UriItemToken.__m_std_groups is not None):
         return
     UriItemToken.__m_std_groups = TerminCollection()
     domain_groups = [
         "com;net;org;inf;biz;name;aero;arpa;edu;int;gov;mil;coop;museum;mobi;travel",
         "ac;ad;ae;af;ag;ai;al;am;an;ao;aq;ar;as;at;au;aw;az",
         "ba;bb;bd;be;bf;bg;bh;bi;bj;bm;bn;bo;br;bs;bt;bv;bw;by;bz",
         "ca;cc;cd;cf;cg;ch;ci;ck;cl;cm;cn;co;cr;cu;cv;cx;cy;cz",
         "de;dj;dk;dm;do;dz", "ec;ee;eg;eh;er;es;et;eu",
         "fi;fj;fk;fm;fo;fr",
         "ga;gd;ge;gf;gg;gh;gi;gl;gm;gn;gp;gq;gr;gs;gt;gu;gw;gy",
         "hk;hm;hn;hr;ht;hu", "id;ie;il;im;in;io;iq;ir;is;it",
         "je;jm;jo;jp", "ke;kg;kh;ki;km;kn;kp;kr;kw;ky;kz",
         "la;lb;lc;li;lk;lr;ls;lt;lu;lv;ly",
         "ma;mc;md;mg;mh;mk;ml;mm;mn;mo;mp;mq;mr;ms;mt;mu;mv;mw;mx;my;mz",
         "na;nc;ne;nf;ng;ni;nl;no;np;nr;nu;nz", "om",
         "pa;pe;pf;pg;ph;pk;pl;pm;pn;pr;ps;pt;pw;py", "qa", "re;ro;ru;rw",
         "sa;sb;sc;sd;se;sg;sh;si;sj;sk;sl;sm;sn;so;sr;st;su;sv;sy;sz",
         "tc;td;tf;tg;th;tj;tk;tm;tn;to;tp;tr;tt;tv;tw;tz",
         "ua;ug;uk;um;us;uy;uz", "va;vc;ve;vg;vi;vn;vu", "wf;ws",
         "ye;yt;yu", "za;zm;zw"
     ]
     separator = [';']
     for domain_group in domain_groups:
         for domain in Utils.splitString(domain_group.upper(), separator,
                                         True):
             UriItemToken.__m_std_groups.add(
                 Termin(domain, MorphLang.UNKNOWN, True))
示例#5
0
 def initialize() -> None:
     if (ParticipantToken.M_ONTOLOGY is not None):
         return
     ParticipantToken.M_ONTOLOGY = TerminCollection()
     for s in [
             "АРЕНДОДАТЕЛЬ", "АРЕНДАТОР", "СУБАРЕНДАТОР", "НАЙМОДАТЕЛЬ",
             "НАНИМАТЕЛЬ", "АГЕНТ", "ПРИНЦИПАЛ", "ПРОДАВЕЦ", "ПОКУПАТЕЛЬ",
             "ЗАКАЗЧИК", "ИСПОЛНИТЕЛЬ", "ПОСТАВЩИК", "ПОДРЯДЧИК",
             "СУБПОДРЯДЧИК", "СТОРОНА", "ЛИЦЕНЗИАР", "ЛИЦЕНЗИАТ",
             "СТРАХОВЩИК", "СТРАХОВАТЕЛЬ", "ПРОВАЙДЕР", "АБОНЕНТ",
             "ЗАСТРОЙЩИК", "УЧАСТНИК ДОЛЕВОГО СТРОИТЕЛЬСТВА", "КЛИЕНТ",
             "ЗАЕМЩИК", "УПРАВЛЯЮЩИЙ"
     ]:
         ParticipantToken.M_ONTOLOGY.add(
             Termin._new117(s, ParticipantToken.M_ONTOLOGY))
     t = Termin._new117("ГЕНПОДРЯДЧИК", ParticipantToken.M_ONTOLOGY)
     t.addVariant("ГЕНЕРАЛЬНЫЙ ПОДРЯДЧИК", False)
     ParticipantToken.M_ONTOLOGY.add(t)
     t = Termin._new117("ЗАИМОДАТЕЛЬ", ParticipantToken.M_ONTOLOGY)
     t.addVariant("ЗАЙМОДАТЕЛЬ", False)
     t.addVariant("ЗАЙМОДАВЕЦ", False)
     t.addVariant("ЗАИМОДАВЕЦ", False)
     ParticipantToken.M_ONTOLOGY.add(t)
     t = Termin("ИМЕНУЕМЫЙ")
     t.addVariant("ИМЕНОВАТЬСЯ", False)
     t.addVariant("ИМЕНУЕМ", False)
     t.addVariant("ДАЛЬНЕЙШИЙ", False)
     t.addVariant("ДАЛЕЕ", False)
     t.addVariant("ДАЛЕЕ ПО ТЕКСТУ", False)
     ParticipantToken.M_ONTOLOGY.add(t)
示例#6
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)
 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)
示例#8
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)
示例#9
0
 def initialize() -> None:
     if (InstrToken.__m_ontology is not None): 
         return
     InstrToken.__m_ontology = TerminCollection()
     t = None
     t = Termin("МЕСТО ПЕЧАТИ")
     t.add_abridge("М.П.")
     t.add_abridge("M.П.")
     InstrToken.__m_ontology.add(t)
     t = Termin("МІСЦЕ ПЕЧАТКИ", MorphLang.UA)
     t.add_abridge("М.П.")
     t.add_abridge("M.П.")
     InstrToken.__m_ontology.add(t)
     t = Termin("ПОДПИСЬ")
     InstrToken.__m_ontology.add(t)
     t = Termin("ПІДПИС", MorphLang.UA)
     InstrToken.__m_ontology.add(t)
     t = Termin._new95("ФАМИЛИЯ ИМЯ ОТЧЕСТВО", "ФИО")
     t.add_abridge("Ф.И.О.")
     InstrToken.__m_ontology.add(t)
     t = Termin._new1510("ПРІЗВИЩЕ ІМЯ ПО БАТЬКОВІ", MorphLang.UA, "ФИО")
     InstrToken.__m_ontology.add(t)
     t = Termin("ФАМИЛИЯ")
     t.add_abridge("ФАМ.")
     InstrToken.__m_ontology.add(t)
     t = Termin("ПРІЗВИЩЕ", MorphLang.UA)
     t.add_abridge("ФАМ.")
     InstrToken.__m_ontology.add(t)
     InstrToken.__m_ontology.add(Termin("ИМЯ"))
     InstrToken.__m_ontology.add(Termin("ІМЯ", MorphLang.UA))
 def _initialize() -> None:
     if (MiscLocationHelper.__m_nords is not None):
         return
     MiscLocationHelper.__m_nords = TerminCollection()
     for s in [
             "СЕВЕРНЫЙ", "ЮЖНЫЙ", "ЗАПАДНЫЙ", "ВОСТОЧНЫЙ", "ЦЕНТРАЛЬНЫЙ",
             "БЛИЖНИЙ", "ДАЛЬНИЙ", "СРЕДНИЙ", "СЕВЕР", "ЮГ", "ЗАПАД",
             "ВОСТОК", "СЕВЕРО", "ЮГО", "ЗАПАДНО", "ВОСТОЧНО",
             "СЕВЕРОЗАПАДНЫЙ", "СЕВЕРОВОСТОЧНЫЙ", "ЮГОЗАПАДНЫЙ",
             "ЮГОВОСТОЧНЫЙ"
     ]:
         MiscLocationHelper.__m_nords.add(Termin(s, MorphLang.RU, True))
     table = "\nAF\tAFG\nAX\tALA\nAL\tALB\nDZ\tDZA\nAS\tASM\nAD\tAND\nAO\tAGO\nAI\tAIA\nAQ\tATA\nAG\tATG\nAR\tARG\nAM\tARM\nAW\tABW\nAU\tAUS\nAT\tAUT\nAZ\tAZE\nBS\tBHS\nBH\tBHR\nBD\tBGD\nBB\tBRB\nBY\tBLR\nBE\tBEL\nBZ\tBLZ\nBJ\tBEN\nBM\tBMU\nBT\tBTN\nBO\tBOL\nBA\tBIH\nBW\tBWA\nBV\tBVT\nBR\tBRA\nVG\tVGB\nIO\tIOT\nBN\tBRN\nBG\tBGR\nBF\tBFA\nBI\tBDI\nKH\tKHM\nCM\tCMR\nCA\tCAN\nCV\tCPV\nKY\tCYM\nCF\tCAF\nTD\tTCD\nCL\tCHL\nCN\tCHN\nHK\tHKG\nMO\tMAC\nCX\tCXR\nCC\tCCK\nCO\tCOL\nKM\tCOM\nCG\tCOG\nCD\tCOD\nCK\tCOK\nCR\tCRI\nCI\tCIV\nHR\tHRV\nCU\tCUB\nCY\tCYP\nCZ\tCZE\nDK\tDNK\nDJ\tDJI\nDM\tDMA\nDO\tDOM\nEC\tECU\nEG\tEGY\nSV\tSLV\nGQ\tGNQ\nER\tERI\nEE\tEST\nET\tETH\nFK\tFLK\nFO\tFRO\nFJ\tFJI\nFI\tFIN\nFR\tFRA\nGF\tGUF\nPF\tPYF\nTF\tATF\nGA\tGAB\nGM\tGMB\nGE\tGEO\nDE\tDEU\nGH\tGHA\nGI\tGIB\nGR\tGRC\nGL\tGRL\nGD\tGRD\nGP\tGLP\nGU\tGUM\nGT\tGTM\nGG\tGGY\nGN\tGIN\nGW\tGNB\nGY\tGUY\nHT\tHTI\nHM\tHMD\nVA\tVAT\nHN\tHND\nHU\tHUN\nIS\tISL\nIN\tIND\nID\tIDN\nIR\tIRN\nIQ\tIRQ\nIE\tIRL\nIM\tIMN\nIL\tISR\nIT\tITA\nJM\tJAM\nJP\tJPN\nJE\tJEY\nJO\tJOR\nKZ\tKAZ\nKE\tKEN\nKI\tKIR\nKP\tPRK\nKR\tKOR\nKW\tKWT\nKG\tKGZ\nLA\tLAO\nLV\tLVA\nLB\tLBN\nLS\tLSO\nLR\tLBR\nLY\tLBY\nLI\tLIE\nLT\tLTU\nLU\tLUX\nMK\tMKD\nMG\tMDG\nMW\tMWI\nMY\tMYS\nMV\tMDV\nML\tMLI\nMT\tMLT\nMH\tMHL\nMQ\tMTQ\nMR\tMRT\nMU\tMUS\nYT\tMYT\nMX\tMEX\nFM\tFSM\nMD\tMDA\nMC\tMCO\nMN\tMNG\nME\tMNE\nMS\tMSR\nMA\tMAR\nMZ\tMOZ\nMM\tMMR\nNA\tNAM\nNR\tNRU\nNP\tNPL\nNL\tNLD\nAN\tANT\nNC\tNCL\nNZ\tNZL\nNI\tNIC\nNE\tNER\nNG\tNGA\nNU\tNIU\nNF\tNFK\nMP\tMNP\nNO\tNOR\nOM\tOMN\nPK\tPAK\nPW\tPLW\nPS\tPSE\nPA\tPAN\nPG\tPNG\nPY\tPRY\nPE\tPER\nPH\tPHL\nPN\tPCN\nPL\tPOL\nPT\tPRT\nPR\tPRI\nQA\tQAT\nRE\tREU\nRO\tROU\nRU\tRUS\nRW\tRWA\nBL\tBLM\nSH\tSHN\nKN\tKNA\nLC\tLCA\nMF\tMAF\nPM\tSPM\nVC\tVCT\nWS\tWSM\nSM\tSMR\nST\tSTP\nSA\tSAU\nSN\tSEN\nRS\tSRB\nSC\tSYC\nSL\tSLE\nSG\tSGP\nSK\tSVK\nSI\tSVN\nSB\tSLB\nSO\tSOM\nZA\tZAF\nGS\tSGS\nSS\tSSD\nES\tESP\nLK\tLKA\nSD\tSDN\nSR\tSUR\nSJ\tSJM\nSZ\tSWZ\nSE\tSWE\nCH\tCHE\nSY\tSYR\nTW\tTWN\nTJ\tTJK\nTZ\tTZA\nTH\tTHA\nTL\tTLS\nTG\tTGO\nTK\tTKL\nTO\tTON\nTT\tTTO\nTN\tTUN\nTR\tTUR\nTM\tTKM\nTC\tTCA\nTV\tTUV\nUG\tUGA\nUA\tUKR\nAE\tARE\nGB\tGBR\nUS\tUSA\nUM\tUMI\nUY\tURY\nUZ\tUZB\nVU\tVUT\nVE\tVEN\nVN\tVNM\nVI\tVIR\nWF\tWLF\nEH\tESH\nYE\tYEM\nZM\tZMB\nZW\tZWE "
     for s in Utils.splitString(table, '\n', False):
         ss = s.strip()
         if ((len(ss) < 6) or not Utils.isWhitespace(ss[2])):
             continue
         cod2 = ss[0:0 + 2]
         cod3 = ss[3:].strip()
         if (len(cod3) != 3):
             continue
         if (not cod2 in MiscLocationHelper._m_alpha2_3):
             MiscLocationHelper._m_alpha2_3[cod2] = cod3
         if (not cod3 in MiscLocationHelper._m_alpha3_2):
             MiscLocationHelper._m_alpha3_2[cod3] = cod2
示例#11
0
 def initialize() -> None:
     if (BankAnalyzer.__m_ontology is not None): 
         return
     MetaBank.initialize()
     BankAnalyzer.__m_ontology = TerminCollection()
     t = Termin("БАНКОВСКИЕ РЕКВИЗИТЫ", None, True)
     t.addVariant("ПЛАТЕЖНЫЕ РЕКВИЗИТЫ", False)
     t.addVariant("РЕКВИЗИТЫ", False)
     BankAnalyzer.__m_ontology.add(t)
     ProcessorService.registerAnalyzer(BankAnalyzer())
 def _initialize() -> None:
     if (PrepositionHelper.__m_ontology is not None):
         return
     PrepositionHelper.__m_ontology = TerminCollection()
     for s in [
             "близко от", "в виде", "в зависимости от", "в интересах",
             "в качестве", "в лице", "в отличие от", "в отношении",
             "в пандан", "в пользу", "в преддверии", "в продолжение",
             "в результате", "в роли", "в силу", "в случае", "в течение",
             "в целях", "в честь", "во имя", "вплоть до", "впредь до",
             "за вычетом", "за исключением", "за счет", "исходя из",
             "на благо", "на виду у", "на глазах у", "начиная с",
             "невзирая на", "недалеко от", "независимо от", "от имени",
             "от лица", "по линии", "по мере", "по поводу", "по причине",
             "по случаю", "поблизости от", "под видом", "под эгидой",
             "при помощи", "с ведома", "с помощью", "с точки зрения",
             "с целью"
     ]:
         PrepositionHelper.__m_ontology.add(
             Termin._new530(s.upper(), MorphLang.RU, True,
                            MorphCase.GENITIVE))
     for s in [
             "вдоль по", "по направлению к", "применительно к", "смотря по",
             "судя по"
     ]:
         PrepositionHelper.__m_ontology.add(
             Termin._new530(s.upper(), MorphLang.RU, True,
                            MorphCase.DATIVE))
     for s in ["несмотря на", "с прицелом на"]:
         PrepositionHelper.__m_ontology.add(
             Termin._new530(s.upper(), MorphLang.RU, True,
                            MorphCase.ACCUSATIVE))
     for s in ["во славу"]:
         PrepositionHelper.__m_ontology.add(
             Termin._new530(s.upper(), MorphLang.RU, True,
                            ((MorphCase.GENITIVE) | MorphCase.DATIVE)))
     for s in ["не считая"]:
         PrepositionHelper.__m_ontology.add(
             Termin._new530(s.upper(), MorphLang.RU, True,
                            ((MorphCase.GENITIVE) | MorphCase.ACCUSATIVE)))
     for s in [
             "в связи с", "в соответствии с", "вслед за", "лицом к лицу с",
             "наряду с", "по сравнению с", "рядом с", "следом за"
     ]:
         PrepositionHelper.__m_ontology.add(
             Termin._new530(s.upper(), MorphLang.RU, True,
                            MorphCase.INSTRUMENTAL))
示例#13
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)
示例#14
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._new117(s, BlkTyps.INDEX))
     for s in [
             "ГЛАВА", "CHAPTER", "РАЗДЕЛ", "ПАРАГРАФ", "VOLUME", "SECTION",
             "РОЗДІЛ"
     ]:
         BlockLine.__m_ontology.add(Termin._new117(s, BlkTyps.CHAPTER))
     for s in ["ВВЕДЕНИЕ", "ВСТУПЛЕНИЕ", "ПРЕДИСЛОВИЕ", "INTRODUCTION"]:
         BlockLine.__m_ontology.add(Termin._new117(s, BlkTyps.INTRO))
     for s in ["ВСТУП", "ПЕРЕДМОВА"]:
         BlockLine.__m_ontology.add(
             Termin._new455(s, MorphLang.UA, BlkTyps.INTRO))
     for s in [
             "ВЫВОДЫ", "ВЫВОД", "ЗАКЛЮЧЕНИЕ", "CONCLUSION", "ВИСНОВОК",
             "ВИСНОВКИ"
     ]:
         BlockLine.__m_ontology.add(Termin._new117(s, BlkTyps.CONSLUSION))
     for s in ["ПРИЛОЖЕНИЕ", "APPENDIX", "ДОДАТОК"]:
         BlockLine.__m_ontology.add(Termin._new117(s, BlkTyps.APPENDIX))
     for s in [
             "СПИСОК СОКРАЩЕНИЙ", "СПИСОК УСЛОВНЫХ СОКРАЩЕНИЙ",
             "СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ", "УСЛОВНЫЕ СОКРАЩЕНИЯ",
             "ОБЗОР ЛИТЕРАТУРЫ", "АННОТАЦИЯ", "ANNOTATION", "БЛАГОДАРНОСТИ",
             "SUPPLEMENT", "ABSTRACT", "СПИСОК СКОРОЧЕНЬ",
             "ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ",
             "СПИСОК ВИКОРИСТОВУВАНИХ СКОРОЧЕНЬ", "УМОВНІ СКОРОЧЕННЯ",
             "ОГЛЯД ЛІТЕРАТУРИ", "АНОТАЦІЯ", "ПОДЯКИ"
     ]:
         BlockLine.__m_ontology.add(Termin._new117(s, BlkTyps.MISC))
示例#15
0
 def process(self, kit: 'AnalysisKit') -> None:
     ad = kit.getAnalyzerData(self)
     models = TerminCollection()
     objs_by_model = dict()
     obj_by_names = TerminCollection()
     t = kit.first_token
     first_pass3158 = True
     while True:
         if first_pass3158: first_pass3158 = False
         else: t = t.next0_
         if (not (t is not None)): break
         its = WeaponItemToken.tryParseList(t, 10)
         if (its is None):
             continue
         rts = self.__tryAttach(its, False)
         if (rts is not None):
             for rt in rts:
                 rt.referent = ad.registerReferent(rt.referent)
                 kit.embedToken(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 = []
                                 wrapli2638 = RefOutArgWrapper(None)
                                 inoutres2639 = Utils.tryGetValue(
                                     objs_by_model, mod, wrapli2638)
                                 li = wrapli2638.value
                                 if (not inoutres2639):
                                     li = list()
                                     objs_by_model[mod] = li
                                 if (not rt.referent in li):
                                     li.append(rt.referent)
                                 models.addStr(mod, li, None, False)
                             if (k > 0):
                                 break
                             brand = rt.referent.getStringValue(
                                 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._new117(str(s.value), rt.referent))
     if (len(objs_by_model) == 0 and len(obj_by_names.termins) == 0):
         return
     t = kit.first_token
     first_pass3159 = True
     while True:
         if first_pass3159: first_pass3159 = False
         else: t = t.next0_
         if (not (t is not None)): break
         br = BracketHelper.tryParse(t, BracketParseAttr.NO, 10)
         if (br is not None):
             toks = obj_by_names.tryParse(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.embedToken(rt0)
                 t = (rt0)
                 continue
         if (not ((isinstance(t, TextToken)))):
             continue
         if (not t.chars.is_letter):
             continue
         tok = models.tryParse(t, TerminParseAttr.NO)
         if (tok is None):
             if (not t.chars.is_all_lower):
                 tok = obj_by_names.tryParse(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_.isCharOf(",.)")):
                 if (not BracketHelper.isBracket(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.tryParse(tok.begin_token.previous, None,
                                            False, True)
             if (tit is not None and tit.typ == WeaponItemToken.Typs.BRAND):
                 tr.addSlot(WeaponReferent.ATTR_BRAND, tit.value, False, 0)
                 tok.begin_token = tit.begin_token
             rt0 = ReferentToken(tr, tok.begin_token, tok.end_token)
             kit.embedToken(rt0)
             t = (rt0)
             continue
示例#16
0
 def initialize() -> None:
     if (ParenthesisToken.__m_termins is not None):
         return
     ParenthesisToken.__m_termins = TerminCollection()
     for s in ["ИТАК", "СЛЕДОВАТЕЛЬНО", "ТАКИМ ОБРАЗОМ"]:
         ParenthesisToken.__m_termins.add(Termin(s, MorphLang.RU, True))
示例#17
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)
示例#18
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)
示例#19
0
 def _initialize() -> None:
     if (NamedItemToken.__m_types is not None):
         return
     NamedItemToken.__m_types = TerminCollection()
     NamedItemToken.__m_names = TerminCollection()
     for s in [
             "ПЛАНЕТА", "ЗВЕЗДА", "КОМЕТА", "МЕТЕОРИТ", "СОЗВЕЗДИЕ",
             "ГАЛАКТИКА"
     ]:
         t = Termin()
         t.initByNormalText(s, None)
         t.tag = NamedEntityKind.PLANET
         NamedItemToken.__m_types.add(t)
     for s in [
             "СОЛНЦЕ", "МЕРКУРИЙ", "ВЕНЕРА", "ЗЕМЛЯ", "МАРС", "ЮПИТЕР",
             "САТУРН", "УРАН", "НЕПТУН", "ПЛУТОН", "ЛУНА", "ДЕЙМОС",
             "ФОБОС", "Ио", "Ганимед", "Каллисто"
     ]:
         t = Termin()
         t.initByNormalText(s.upper(), None)
         t.tag = NamedEntityKind.PLANET
         NamedItemToken.__m_names.add(t)
     for s in [
             "РЕКА", "ОЗЕРО", "МОРЕ", "ОКЕАН", "ЗАЛИВ", "ПРОЛИВ",
             "ПОБЕРЕЖЬЕ", "КОНТИНЕНТ", "ОСТРОВ", "ПОЛУОСТРОВ", "МЫС",
             "ГОРА", "ГОРНЫЙ ХРЕБЕТ", "ПЕРЕВАЛ", "ЛЕС", "САД", "ЗАПОВЕДНИК",
             "ЗАКАЗНИК", "ДОЛИНА", "УЩЕЛЬЕ", "РАВНИНА", "БЕРЕГ"
     ]:
         t = Termin()
         t.initByNormalText(s, None)
         t.tag = NamedEntityKind.LOCATION
         NamedItemToken.__m_types.add(t)
     for s in ["ТИХИЙ", "АТЛАНТИЧЕСКИЙ", "ИНДИЙСКИЙ", "СЕВЕРО-ЛЕДОВИТЫЙ"]:
         t = Termin()
         t.initByNormalText(s, None)
         t.tag = NamedEntityKind.LOCATION
         t.tag2 = ("океан")
         NamedItemToken.__m_names.add(t)
     for s in ["ЕВРАЗИЯ", "АФРИКА", "АМЕРИКА", "АВСТРАЛИЯ", "АНТАРКТИДА"]:
         t = Termin()
         t.initByNormalText(s, None)
         t.tag = NamedEntityKind.LOCATION
         t.tag2 = ("континент")
         NamedItemToken.__m_names.add(t)
     for s in [
             "ВОЛГА", "НЕВА", "АМУР", "ОБЪ", "АНГАРА", "ЛЕНА", "ИРТЫШ",
             "ДНЕПР", "ДОН", "ДНЕСТР", "РЕЙН", "АМУДАРЬЯ", "СЫРДАРЬЯ",
             "ТИГР", "ЕВФРАТ", "ИОРДАН", "МИССИСИПИ", "АМАЗОНКА", "ТЕМЗА",
             "СЕНА", "НИЛ", "ЯНЦЗЫ", "ХУАНХЭ", "ПАРАНА", "МЕКОНГ",
             "МАККЕНЗИ", "НИГЕР", "ЕНИСЕЙ", "МУРРЕЙ", "САЛУИН", "ИНД",
             "РИО-ГРАНДЕ", "БРАХМАПУТРА", "ДАРЛИНГ", "ДУНАЙ", "ЮКОН",
             "ГАНГ", "МАРРАМБИДЖИ", "ЗАМБЕЗИ", "ТОКАНТИС", "ОРИНОКО",
             "СИЦЗЯН", "КОЛЫМА", "КАМА", "ОКА", "ЭЛЬЮА", "ВИСЛА", "ДАУГАВА",
             "ЗАПАДНАЯ ДВИНА", "НЕМАН", "МЕЗЕНЬ", "КУБАНЬ", "ЮЖНЫЙ БУГ"
     ]:
         t = Termin()
         t.initByNormalText(s, None)
         t.tag = NamedEntityKind.LOCATION
         t.tag2 = ("река")
         NamedItemToken.__m_names.add(t)
     for s in [
             "ЕВРОПА", "АЗИЯ", "АРКТИКА", "КАВКАЗ", "ПРИБАЛТИКА", "СИБИРЬ",
             "ЗАПОЛЯРЬЕ", "ЧУКОТКА", "ПРИБАЛТИКА", "БАЛКАНЫ", "СКАНДИНАВИЯ",
             "ОКЕАНИЯ", "АЛЯСКА", "УРАЛ", "ПОВОЛЖЬЕ", "ПРИМОРЬЕ", "КУРИЛЫ",
             "ТИБЕТ", "ГИМАЛАИ", "АЛЬПЫ", "САХАРА", "ГОБИ", "СИНАЙ",
             "БАЙКОНУР", "ЧЕРНОБЫЛЬ", "САДОВОЕ КОЛЬЦО", "СТАРЫЙ ГОРОД"
     ]:
         t = Termin()
         t.initByNormalText(s, None)
         t.tag = NamedEntityKind.LOCATION
         NamedItemToken.__m_names.add(t)
     for s in ["ПАМЯТНИК", "МОНУМЕНТ", "МЕМОРИАЛ", "БЮСТ", "ОБЕЛИСК"]:
         t = Termin()
         t.initByNormalText(s, None)
         t.tag = NamedEntityKind.MONUMENT
         NamedItemToken.__m_types.add(t)
     for s in [
             "ДВОРЕЦ", "КРЕМЛЬ", "ЗАМОК", "УСАДЬБА", "ДОМ", "ЗДАНИЕ",
             "ШТАБ-КВАРТИРА", "ЖЕЛЕЗНОДОРОЖНЫЙ ВОКЗАЛ", "ВОКЗАЛ",
             "АВТОВОКЗАЛ", "АЭРОПОРТ", "АЭРОДРОМ"
     ]:
         t = Termin()
         t.initByNormalText(s, None)
         t.tag = NamedEntityKind.BUILDING
         NamedItemToken.__m_types.add(t)
     for s in ["КРЕМЛЬ", "КАПИТОЛИЙ", "БЕЛЫЙ ДОМ"]:
         t = Termin()
         t.initByNormalText(s, None)
         t.tag = NamedEntityKind.BUILDING
         NamedItemToken.__m_names.add(t)
     t = Termin._new117("МЕЖДУНАРОДНАЯ КОСМИЧЕСКАЯ СТАНЦИЯ",
                        NamedEntityKind.BUILDING)
     t.acronym = "МКС"
     NamedItemToken.__m_names.add(t)
示例#20
0
 def __init__(self) -> None:
     self.is_ext_ontology = False
     self.__m_items = list()
     self.__m_termins = TerminCollection()
示例#21
0
 def initialize() -> None:
     if (DateItemToken.M_NEW_AGE is not None):
         return
     DateItemToken.M_NEW_AGE = TerminCollection()
     tt = Termin._new654("НОВАЯ ЭРА", MorphLang.RU, True, "НОВОЙ ЭРЫ")
     tt.add_variant("НАША ЭРА", True)
     tt.add_abridge("Н.Э.")
     DateItemToken.M_NEW_AGE.add(tt)
     tt = Termin._new654("НОВА ЕРА", MorphLang.UA, True, "НОВОЇ ЕРИ")
     tt.add_variant("НАША ЕРА", True)
     tt.add_abridge("Н.Е.")
     DateItemToken.M_NEW_AGE.add(tt)
     tt = Termin("РОЖДЕСТВО ХРИСТОВО", MorphLang.RU, True)
     tt.add_abridge("Р.Х.")
     DateItemToken.M_NEW_AGE.add(tt)
     tt = Termin("РІЗДВА ХРИСТОВОГО", MorphLang.UA, True)
     tt.add_abridge("Р.Х.")
     DateItemToken.M_NEW_AGE.add(tt)
     DateItemToken.M_SEASONS = TerminCollection()
     DateItemToken.M_SEASONS.add(
         Termin._new530("ЗИМА", MorphLang.RU, True, DatePointerType.WINTER))
     DateItemToken.M_SEASONS.add(
         Termin._new530("WINTER", MorphLang.EN, True,
                        DatePointerType.WINTER))
     t = Termin._new530("ВЕСНА", MorphLang.RU, True, DatePointerType.SPRING)
     t.add_variant("ПРОВЕСНА", True)
     DateItemToken.M_SEASONS.add(t)
     DateItemToken.M_SEASONS.add(
         Termin._new530("SPRING", MorphLang.EN, True,
                        DatePointerType.SPRING))
     t = Termin._new530("ЛЕТО", MorphLang.RU, True, DatePointerType.SUMMER)
     DateItemToken.M_SEASONS.add(t)
     t = Termin._new530("ЛІТО", MorphLang.UA, True, DatePointerType.SUMMER)
     DateItemToken.M_SEASONS.add(t)
     t = Termin._new530("ОСЕНЬ", MorphLang.RU, True, DatePointerType.AUTUMN)
     DateItemToken.M_SEASONS.add(t)
     t = Termin._new530("AUTUMN", MorphLang.EN, True,
                        DatePointerType.AUTUMN)
     DateItemToken.M_SEASONS.add(t)
     t = Termin._new530("ОСІНЬ", MorphLang.UA, True, DatePointerType.AUTUMN)
     DateItemToken.M_SEASONS.add(t)
     DateItemToken.M_MONTHES = TerminCollection()
     months = [
         "ЯНВАРЬ", "ФЕВРАЛЬ", "МАРТ", "АПРЕЛЬ", "МАЙ", "ИЮНЬ", "ИЮЛЬ",
         "АВГУСТ", "СЕНТЯБРЬ", "ОКТЯБРЬ", "НОЯБРЬ", "ДЕКАБРЬ"
     ]
     i = 0
     while i < len(months):
         t = Termin._new530(months[i], MorphLang.RU, True, i + 1)
         DateItemToken.M_MONTHES.add(t)
         i += 1
     months = [
         "СІЧЕНЬ", "ЛЮТИЙ", "БЕРЕЗЕНЬ", "КВІТЕНЬ", "ТРАВЕНЬ", "ЧЕРВЕНЬ",
         "ЛИПЕНЬ", "СЕРПЕНЬ", "ВЕРЕСЕНЬ", "ЖОВТЕНЬ", "ЛИСТОПАД", "ГРУДЕНЬ"
     ]
     i = 0
     while i < len(months):
         t = Termin._new530(months[i], MorphLang.UA, True, i + 1)
         DateItemToken.M_MONTHES.add(t)
         i += 1
     months = [
         "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY",
         "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"
     ]
     i = 0
     while i < len(months):
         t = Termin._new530(months[i], MorphLang.EN, True, i + 1)
         DateItemToken.M_MONTHES.add(t)
         i += 1
     months = [
         "GENNAIO", "FEBBRAIO", "MARZO", "APRILE", "MAGGIO", "GUINGO",
         "LUGLIO", "AGOSTO", "SETTEMBRE", "OTTOBRE", "NOVEMBRE", "DICEMBRE"
     ]
     i = 0
     while i < len(months):
         t = Termin._new530(months[i], MorphLang.IT, True, i + 1)
         DateItemToken.M_MONTHES.add(t)
         i += 1
     for m in [
             "ЯНВ", "ФЕВ", "ФЕВР", "МАР", "АПР", "ИЮН", "ИЮЛ", "АВГ", "СЕН",
             "СЕНТ", "ОКТ", "НОЯ", "НОЯБ", "ДЕК", "JAN", "FEB", "MAR",
             "APR", "JUN", "JUL", "AUG", "SEP", "SEPT", "OCT", "NOV", "DEC"
     ]:
         for ttt in DateItemToken.M_MONTHES.termins:
             if (ttt.terms[0].canonical_text.startswith(m)):
                 ttt.add_abridge(m)
                 DateItemToken.M_MONTHES.reindex(ttt)
                 break
     for m in ["OF"]:
         DateItemToken.M_MONTHES.add(Termin(m, MorphLang.EN, True))
     DateItemToken.M_EMPTY_WORDS = dict()
     DateItemToken.M_EMPTY_WORDS["IN"] = MorphLang.EN
     DateItemToken.M_EMPTY_WORDS["SINCE"] = MorphLang.EN
     DateItemToken.M_EMPTY_WORDS["THE"] = MorphLang.EN
     DateItemToken.M_EMPTY_WORDS["NEL"] = MorphLang.IT
     DateItemToken.M_EMPTY_WORDS["DEL"] = MorphLang.IT
     DateItemToken.M_EMPTY_WORDS["IL"] = MorphLang.IT
     DateItemToken.DAYS_OF_WEEK = TerminCollection()
     te = Termin._new530("SUNDAY", MorphLang.EN, True, 7)
     te.add_abridge("SUN")
     te.add_variant("ВОСКРЕСЕНЬЕ", True)
     te.add_variant("ВОСКРЕСЕНИЕ", True)
     te.add_abridge("ВС")
     te.add_variant("НЕДІЛЯ", True)
     DateItemToken.DAYS_OF_WEEK.add(te)
     te = Termin._new530("MONDAY", MorphLang.EN, True, 1)
     te.add_abridge("MON")
     te.add_variant("ПОНЕДЕЛЬНИК", True)
     te.add_abridge("ПОН")
     te.add_variant("ПОНЕДІЛОК", True)
     DateItemToken.DAYS_OF_WEEK.add(te)
     te = Termin._new530("TUESDAY", MorphLang.EN, True, 2)
     te.add_abridge("TUE")
     te.add_variant("ВТОРНИК", True)
     te.add_abridge("ВТ")
     te.add_variant("ВІВТОРОК", True)
     DateItemToken.DAYS_OF_WEEK.add(te)
     te = Termin._new530("WEDNESDAY", MorphLang.EN, True, 3)
     te.add_abridge("WED")
     te.add_variant("СРЕДА", True)
     te.add_abridge("СР")
     te.add_variant("СЕРЕДА", True)
     DateItemToken.DAYS_OF_WEEK.add(te)
     te = Termin._new530("THURSDAY", MorphLang.EN, True, 4)
     te.add_abridge("THU")
     te.add_variant("ЧЕТВЕРГ", True)
     te.add_abridge("ЧТ")
     te.add_variant("ЧЕТВЕР", True)
     DateItemToken.DAYS_OF_WEEK.add(te)
     te = Termin._new530("FRIDAY", MorphLang.EN, True, 5)
     te.add_abridge("FRI")
     te.add_variant("ПЯТНИЦА", True)
     te.add_abridge("ПТ")
     te.add_variant("ПЯТНИЦЯ", True)
     DateItemToken.DAYS_OF_WEEK.add(te)
     te = Termin._new530("SATURDAY", MorphLang.EN, True, 6)
     te.add_abridge("SAT")
     te.add_variant("СУББОТА", True)
     te.add_abridge("СБ")
     te.add_variant("СУБОТА", True)
     DateItemToken.DAYS_OF_WEEK.add(te)
示例#22
0
 def try_attach_list(t: 'Token') -> typing.List['BlockTitleToken']:
     content = None
     intro = None
     lits = None
     tt = t
     first_pass3035 = True
     while True:
         if first_pass3035: first_pass3035 = False
         else: tt = tt.next0_
         if (not (tt is not None)): break
         if (tt.is_newline_before):
             btt = BlockTitleToken.try_attach(tt, False, None)
             if (btt is None):
                 continue
             if (btt.typ == BlkTyps.INDEX):
                 content = btt
                 break
             if (btt.typ == BlkTyps.INTRO):
                 tt2 = btt.end_token.next0_
                 for k in range(5):
                     li = BlockLine.create(tt2, None)
                     if (li is None):
                         break
                     if (li.has_content_item_tail
                             or li.typ == BlkTyps.INDEXITEM):
                         content = btt
                         break
                     if (li.has_verb):
                         break
                     if (li.typ != BlkTyps.UNDEFINED):
                         if ((li.begin_char - btt.end_char) < 400):
                             content = btt
                             break
                     tt2 = li.end_token.next0_
                 if (content is None):
                     intro = btt
                 break
             if (btt.typ == BlkTyps.LITERATURE):
                 if (lits is None):
                     lits = list()
                 lits.append(btt)
     if (content is None and intro is None
             and ((lits is None or len(lits) != 1))):
         return None
     res = list()
     chapter_names = TerminCollection()
     t0 = None
     if (content is not None):
         res.append(content)
         cou = 0
         err = 0
         tt = content.end_token.next0_
         first_pass3036 = True
         while True:
             if first_pass3036: first_pass3036 = False
             else: tt = tt.next0_
             if (not (tt is not None)): break
             if (not tt.is_newline_before):
                 continue
             li = BlockLine.create(tt, None)
             if (li is None):
                 break
             if (li.has_verb):
                 if (li.end_token.is_char('.')):
                     break
                 if (li.length_char > 100):
                     break
             btt = BlockTitleToken.try_attach(tt, True, None)
             if (btt is None):
                 continue
             err = 0
             if (btt.typ == BlkTyps.INTRO):
                 if (content.typ == BlkTyps.INTRO or cou > 2):
                     break
             cou += 1
             content.end_token = btt.end_token
             tt = content.end_token
             if (btt.value is not None):
                 chapter_names.add_string(btt.value, None, None, False)
         content.typ = BlkTyps.INDEX
         t0 = content.end_token.next0_
     elif (intro is not None):
         t0 = intro.begin_token
     elif (lits is not None):
         t0 = t
     else:
         return None
     first = True
     tt = t0
     first_pass3037 = True
     while True:
         if first_pass3037: first_pass3037 = False
         else: tt = tt.next0_
         if (not (tt is not None)): break
         if (not tt.is_newline_before):
             continue
         if (tt.is_value("СЛАБОЕ", None)):
             pass
         btt = BlockTitleToken.try_attach(tt, False, chapter_names)
         if (btt is None):
             continue
         if (len(res) == 104):
             pass
         tt = btt.end_token
         if (content is not None and btt.typ == BlkTyps.INDEX):
             continue
         if (len(res) > 0 and res[len(res) - 1].typ == BlkTyps.LITERATURE):
             if (btt.typ != BlkTyps.APPENDIX and btt.typ != BlkTyps.MISC
                     and btt.typ != BlkTyps.LITERATURE):
                 if (btt.typ == BlkTyps.CHAPTER
                         and (res[len(res) - 1].end_char < (math.floor(
                             (len(tt.kit.sofa.text) * 3) / 4)))):
                     pass
                 else:
                     continue
         if (first):
             if ((tt.begin_char - t0.begin_char) > 300):
                 btt0 = BlockTitleToken(
                     t0, (t0 if t0.previous is None else t0.previous))
                 btt0.typ = BlkTyps.CHAPTER
                 btt0.value = "Похоже на начало"
                 res.append(btt0)
         res.append(btt)
         tt = btt.end_token
         first = False
     i = 0
     while i < (len(res) - 1):
         if (res[i].typ == BlkTyps.LITERATURE
                 and res[i + 1].typ == res[i].typ):
             del res[i + 1]
             i -= 1
         i += 1
     return res
示例#23
0
class IntOntologyCollection:
    # Внутренний онтологический словарь. По сути, некоторая надстройка над TerminCollection.
    # Не помню уже, зачем был введён, но для чего-то нужен.
    
    class OntologyTermin(Termin):
        
        def __init__(self) -> None:
            super().__init__(None, None, False)
            self.owner = None;
        
        @staticmethod
        def _new489(_arg1 : 'IntOntologyItem', _arg2 : object) -> 'OntologyTermin':
            res = IntOntologyCollection.OntologyTermin()
            res.owner = _arg1
            res.tag = _arg2
            return res
    
    def __init__(self) -> None:
        self.is_ext_ontology = False
        self.__m_items = list()
        self.__m_termins = TerminCollection()
    
    @property
    def items(self) -> typing.List['IntOntologyItem']:
        return self.__m_items
    
    def add_item(self, di : 'IntOntologyItem') -> None:
        self.__m_items.append(di)
        di.owner = self
        i = 0
        while i < len(di.termins): 
            if (isinstance(di.termins[i], IntOntologyCollection.OntologyTermin)): 
                di.termins[i].owner = di
                self.__m_termins.add(di.termins[i])
            else: 
                nt = IntOntologyCollection.OntologyTermin._new489(di, di.termins[i].tag)
                di.termins[i].copy_to(nt)
                self.__m_termins.add(nt)
                di.termins[i] = (nt)
            i += 1
    
    def add_referent(self, referent : 'Referent') -> bool:
        if (referent is None): 
            return False
        oi = None
        if (referent._int_ontology_item is not None and referent._int_ontology_item.owner == self): 
            oi1 = referent.create_ontology_item()
            if (oi1 is None or len(oi1.termins) == len(referent._int_ontology_item.termins)): 
                return True
            for t in referent._int_ontology_item.termins: 
                self.__m_termins.remove(t)
            i = Utils.indexOfList(self.__m_items, referent._int_ontology_item, 0)
            if (i >= 0): 
                del self.__m_items[i]
            oi = oi1
        else: 
            oi = referent.create_ontology_item()
        if (oi is None): 
            return False
        oi.referent = referent
        referent._int_ontology_item = oi
        self.add_item(oi)
        return True
    
    def add_termin(self, di : 'IntOntologyItem', t : 'Termin') -> None:
        nt = IntOntologyCollection.OntologyTermin._new489(di, t.tag)
        t.copy_to(nt)
        self.__m_termins.add(nt)
    
    def add(self, t : 'Termin') -> None:
        self.__m_termins.add(t)
    
    def find_termin_by_canonic_text(self, text : str) -> typing.List['Termin']:
        return self.__m_termins.find_termins_by_canonic_text(text)
    
    def try_attach(self, t : 'Token', referent_type_name : str=None, can_be_geo_object : bool=False) -> typing.List['IntOntologyToken']:
        tts = self.__m_termins.try_parse_all(t, (TerminParseAttr.CANBEGEOOBJECT if can_be_geo_object else TerminParseAttr.NO))
        if (tts is None): 
            return None
        res = list()
        dis = list()
        for tt in tts: 
            di = None
            if (isinstance(tt.termin, IntOntologyCollection.OntologyTermin)): 
                di = tt.termin.owner
            if (di is not None): 
                if (di.referent is not None and referent_type_name is not None): 
                    if (di.referent.type_name != referent_type_name): 
                        continue
                if (di in dis): 
                    continue
                dis.append(di)
            res.append(IntOntologyToken._new491(tt.begin_token, tt.end_token, di, tt.termin, tt.morph))
        return (None if len(res) == 0 else res)
    
    def try_attach_by_item(self, item : 'IntOntologyItem') -> typing.List['IntOntologyItem']:
        if (item is None): 
            return None
        res = None
        for t in item.termins: 
            li = self.__m_termins.find_termins_by_termin(t)
            if (li is not None): 
                for tt in li: 
                    if (isinstance(tt, IntOntologyCollection.OntologyTermin)): 
                        oi = tt.owner
                        if (res is None): 
                            res = list()
                        if (not oi in res): 
                            res.append(oi)
        return res
    
    def try_attach_by_referent(self, referent : 'Referent', item : 'IntOntologyItem'=None, must_be_single : bool=False) -> typing.List['Referent']:
        if (referent is None): 
            return None
        if (item is None): 
            item = referent.create_ontology_item()
        if (item is None): 
            return None
        li = self.try_attach_by_item(item)
        if (li is None): 
            return None
        res = None
        for oi in li: 
            r = Utils.ifNotNull(oi.referent, Utils.asObjectOrNull(oi.tag, Referent))
            if (r is not None): 
                if (referent.can_be_equals(r, ReferentsEqualType.WITHINONETEXT)): 
                    if (res is None): 
                        res = list()
                    if (not r in res): 
                        res.append(r)
        if (must_be_single): 
            if (res is not None and len(res) > 1): 
                i = 0
                while i < (len(res) - 1): 
                    j = i + 1
                    while j < len(res): 
                        if (not res[i].can_be_equals(res[j], ReferentsEqualType.FORMERGING)): 
                            return None
                        j += 1
                    i += 1
        return res
    
    def remove(self, r : 'Referent') -> None:
        i = 0
        i = 0
        while i < len(self.__m_items): 
            if (self.__m_items[i].referent == r): 
                oi = self.__m_items[i]
                oi.referent = (None)
                r._int_ontology_item = (None)
                del self.__m_items[i]
                for t in oi.termins: 
                    self.__m_termins.remove(t)
                break
            i += 1
    
    @staticmethod
    def _new2815(_arg1 : bool) -> 'IntOntologyCollection':
        res = IntOntologyCollection()
        res.is_ext_ontology = _arg1
        return res
示例#24
0
 def initialize() -> None:
     if (PhoneItemToken.M_PHONE_TERMINS is not None):
         return
     PhoneItemToken.M_PHONE_TERMINS = TerminCollection()
     t = None
     t = Termin("ТЕЛЕФОН", MorphLang.RU, True)
     t.add_abridge("ТЕЛ.")
     t.add_abridge("TEL.")
     t.add_abridge("Т-Н")
     t.add_abridge("Т.")
     t.add_abridge("T.")
     t.add_abridge("TEL.EXT.")
     t.add_variant("ТЛФ", False)
     t.add_variant("ТЛФН", False)
     t.add_abridge("Т/Ф")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin._new2642("МОБИЛЬНЫЙ", MorphLang.RU, True, PhoneKind.MOBILE)
     t.add_abridge("МОБ.")
     t.add_abridge("Т.М.")
     t.add_abridge("М.Т.")
     t.add_abridge("М.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin._new2642("СОТОВЫЙ", MorphLang.RU, True, PhoneKind.MOBILE)
     t.add_abridge("СОТ.")
     t.add_abridge("CELL.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin._new2642("РАБОЧИЙ", MorphLang.RU, True, PhoneKind.WORK)
     t.add_abridge("РАБ.")
     t.add_abridge("Т.Р.")
     t.add_abridge("Р.Т.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("ГОРОДСКОЙ", MorphLang.RU, True)
     t.add_abridge("ГОР.")
     t.add_abridge("Г.Т.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin._new2642("ДОМАШНИЙ", MorphLang.RU, True, PhoneKind.HOME)
     t.add_abridge("ДОМ.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("КОНТАКТНЫЙ", MorphLang.RU, True)
     t.add_variant("КОНТАКТНЫЕ ДАННЫЕ", False)
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("МНОГОКАНАЛЬНЫЙ", MorphLang.RU, True)
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin._new2642("ФАКС", MorphLang.RU, True, PhoneKind.FAX)
     t.add_abridge("Ф.")
     t.add_abridge("Т/ФАКС")
     t.add_abridge("ТЕЛ/ФАКС")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("ЗВОНИТЬ", MorphLang.RU, True)
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin._new2642("ПРИЕМНАЯ", MorphLang.RU, True, PhoneKind.WORK)
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("PHONE", MorphLang.EN, True)
     t.add_abridge("PH.")
     t.add_variant("TELEFON", True)
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin._new2642("DIRECT LINE", MorphLang.EN, True, PhoneKind.WORK)
     t.add_variant("DIRECT LINES", True)
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin._new2642("MOBILE", MorphLang.EN, True, PhoneKind.MOBILE)
     t.add_abridge("MOB.")
     t.add_variant("MOBIL", True)
     t.add_abridge("M.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin._new2642("FAX", MorphLang.EN, True, PhoneKind.FAX)
     t.add_abridge("F.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin._new2642("HOME", MorphLang.EN, True, PhoneKind.HOME)
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("CALL", MorphLang.EN, True)
     t.add_variant("SEDIU", True)
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("ДОПОЛНИТЕЛЬНЫЙ", MorphLang.RU, True)
     t.tag = (t)
     t.add_abridge("ДОП.")
     t.add_abridge("EXT.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("ДОБАВОЧНЫЙ", MorphLang.RU, True)
     t.tag = (t)
     t.add_abridge("ДОБ.")
     t.add_abridge("Д.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("ВНУТРЕННИЙ", MorphLang.RU, True)
     t.tag = (t)
     t.add_abridge("ВНУТР.")
     t.add_abridge("ВН.")
     t.add_abridge("ВНТ.")
     t.add_abridge("Т.ВН.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("TONE MODE", MorphLang.EN, True)
     t.tag = (t)
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("TONE", MorphLang.EN, True)
     t.tag = (t)
     PhoneItemToken.M_PHONE_TERMINS.add(t)
     t = Termin("ADDITIONAL", MorphLang.EN, True)
     t.add_abridge("ADD.")
     t.tag = (t)
     t.add_variant("INTERNAL", True)
     t.add_abridge("INT.")
     PhoneItemToken.M_PHONE_TERMINS.add(t)
示例#25
0
 def initialize() -> None:
     if (UriAnalyzer.__m_schemes is not None): 
         return
     Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True
     MetaUri.initialize()
     try: 
         UriAnalyzer.__m_schemes = TerminCollection()
         obj = EpNerBankInternalResourceHelper.getString("UriSchemes.csv")
         if (obj is None): 
             raise Utils.newException("Can't file resource file {0} in Organization analyzer".format("UriSchemes.csv"), None)
         for line0 in Utils.splitString(obj, '\n', False): 
             line = line0.strip()
             if (Utils.isNullOrEmpty(line)): 
                 continue
             UriAnalyzer.__m_schemes.add(Termin._new678(line, MorphLang.UNKNOWN, True, 0))
         for s in ["ISBN", "УДК", "ББК", "ТНВЭД", "ОКВЭД"]: 
             UriAnalyzer.__m_schemes.add(Termin._new678(s, MorphLang.UNKNOWN, True, 1))
         UriAnalyzer.__m_schemes.add(Termin._new2573("Общероссийский классификатор форм собственности", "ОКФС", 1, "ОКФС"))
         UriAnalyzer.__m_schemes.add(Termin._new2573("Общероссийский классификатор организационно правовых форм", "ОКОПФ", 1, "ОКОПФ"))
         UriAnalyzer.__m_schemes.add(Termin._new678("WWW", MorphLang.UNKNOWN, True, 2))
         UriAnalyzer.__m_schemes.add(Termin._new678("HTTP", MorphLang.UNKNOWN, True, 10))
         UriAnalyzer.__m_schemes.add(Termin._new678("HTTPS", MorphLang.UNKNOWN, True, 10))
         UriAnalyzer.__m_schemes.add(Termin._new678("SHTTP", MorphLang.UNKNOWN, True, 10))
         UriAnalyzer.__m_schemes.add(Termin._new678("FTP", MorphLang.UNKNOWN, True, 10))
         t = Termin._new678("SKYPE", MorphLang.UNKNOWN, True, 3)
         t.addVariant("СКАЙП", True)
         t.addVariant("SKYPEID", True)
         t.addVariant("SKYPE ID", True)
         UriAnalyzer.__m_schemes.add(t)
         t = Termin._new678("SWIFT", MorphLang.UNKNOWN, True, 3)
         t.addVariant("СВИФТ", True)
         UriAnalyzer.__m_schemes.add(t)
         UriAnalyzer.__m_schemes.add(Termin._new678("ICQ", MorphLang.UNKNOWN, True, 4))
         t = Termin._new2583("основной государственный регистрационный номер", "ОГРН", 5, "ОГРН", True)
         t.addVariant("ОГРН ИП", True)
         UriAnalyzer.__m_schemes.add(t)
         UriAnalyzer.__m_schemes.add(Termin._new2583("Индивидуальный идентификационный номер", "ИИН", 5, "ИИН", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Индивидуальный номер налогоплательщика", "ИНН", 5, "ИНН", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Код причины постановки на учет", "КПП", 5, "КПП", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Банковский идентификационный код", "БИК", 5, "БИК", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("основной государственный регистрационный номер индивидуального предпринимателя", "ОГРНИП", 5, "ОГРНИП", True))
         t = Termin._new2583("Страховой номер индивидуального лицевого счёта", "СНИЛС", 5, "СНИЛС", True)
         t.addVariant("Свидетельство пенсионного страхования", False)
         t.addVariant("Страховое свидетельство обязательного пенсионного страхования", False)
         t.addVariant("Страховое свидетельство", False)
         UriAnalyzer.__m_schemes.add(t)
         UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор предприятий и организаций", "ОКПО", 5, "ОКПО", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор объектов административно-территориального деления", "ОКАТО", 5, "ОКАТО", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор территорий муниципальных образований", "ОКТМО", 5, "ОКТМО", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор органов государственной власти и управления", "ОКОГУ", 5, "ОКОГУ", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор Отрасли народного хозяйства", "ОКОНХ", 5, "ОКОНХ", True))
         t = Termin._new2595("РАСЧЕТНЫЙ СЧЕТ", MorphLang.UNKNOWN, True, "Р/С", 6, 20)
         t.addAbridge("Р.С.")
         t.addAbridge("Р.СЧ.")
         t.addAbridge("P.C.")
         t.addAbridge("РАСЧ.СЧЕТ")
         t.addAbridge("РАС.СЧЕТ")
         t.addAbridge("РАСЧ.СЧ.")
         t.addAbridge("РАС.СЧ.")
         t.addAbridge("Р.СЧЕТ")
         t.addVariant("СЧЕТ ПОЛУЧАТЕЛЯ", False)
         t.addVariant("СЧЕТ ОТПРАВИТЕЛЯ", False)
         t.addVariant("СЧЕТ", False)
         UriAnalyzer.__m_schemes.add(t)
         t = Termin._new2596("ЛИЦЕВОЙ СЧЕТ", "Л/С", 6, 20)
         t.addAbridge("Л.С.")
         t.addAbridge("Л.СЧ.")
         t.addAbridge("Л/С")
         t.addAbridge("ЛИЦ.СЧЕТ")
         t.addAbridge("ЛИЦ.СЧ.")
         t.addAbridge("Л.СЧЕТ")
         UriAnalyzer.__m_schemes.add(t)
         t = Termin._new2595("СПЕЦИАЛЬНЫЙ ЛИЦЕВОЙ СЧЕТ", MorphLang.UNKNOWN, True, "СПЕЦ/С", 6, 20)
         t.addAbridge("СПЕЦ.С.")
         t.addAbridge("СПЕЦ.СЧЕТ")
         t.addAbridge("СПЕЦ.СЧ.")
         t.addVariant("СПЕЦСЧЕТ", True)
         t.addVariant("СПЕЦИАЛЬНЫЙ СЧЕТ", True)
         UriAnalyzer.__m_schemes.add(t)
         t = Termin._new2595("КОРРЕСПОНДЕНТСКИЙ СЧЕТ", MorphLang.UNKNOWN, True, "К/С", 6, 20)
         t.addAbridge("КОРР.СЧЕТ")
         t.addAbridge("КОР.СЧЕТ")
         t.addAbridge("КОРР.СЧ.")
         t.addAbridge("КОР.СЧ.")
         t.addAbridge("К.СЧЕТ")
         t.addAbridge("КОР.С.")
         t.addAbridge("К.С.")
         t.addAbridge("K.C.")
         t.addAbridge("К-С")
         t.addAbridge("К/С")
         t.addAbridge("К.СЧ.")
         t.addAbridge("К/СЧ")
         UriAnalyzer.__m_schemes.add(t)
         t = Termin._new2599("КОД БЮДЖЕТНОЙ КЛАССИФИКАЦИИ", "КБК", "КБК", 6, 20, True)
         UriAnalyzer.__m_schemes.add(t)
         UriItemToken.initialize()
     except Exception as ex: 
         raise Utils.newException(ex.__str__(), ex)
     Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False
     ProcessorService.registerAnalyzer(UriAnalyzer())
示例#26
0
 def _static_ctor():
     UnitsHelper.UNITS = list()
     UnitsHelper.TERMINS = TerminCollection()
示例#27
0
 def initialize() -> None:
     if (OrgItemEngItem.__m_ontology is not None): 
         return
     OrgItemEngItem.__m_ontology = TerminCollection()
     t = Termin("BANK")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Public Limited Company".upper(), "PLC")
     t.addAbridge("P.L.C.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Limited Liability Company".upper(), "LLC")
     t.addAbridge("L.L.C.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Limited Liability Partnership".upper(), "LLP")
     t.addAbridge("L.L.P.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Limited Liability Limited Partnership".upper(), "LLLP")
     t.addAbridge("L.L.L.P.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Limited Duration Company".upper(), "LDC")
     t.addAbridge("L.D.C.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("International Business Company".upper(), "IBC")
     t.addAbridge("I.B.S.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Joint stock company".upper(), "JSC")
     t.addAbridge("J.S.C.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Open Joint stock company".upper(), "OJSC")
     t.addAbridge("O.J.S.C.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Sosiedad Anonima".upper(), "SA")
     t.addVariant("Sociedad Anonima".upper(), False)
     t.addAbridge("S.A.")
     t.addVariant("SPA", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Société en commandite".upper(), "SC")
     t.addAbridge("S.C.")
     t.addVariant("SCS", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Societas Europaea".upper(), "SE")
     t.addAbridge("S.E.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Società in accomandita".upper(), "SAS")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Société en commandite par actions".upper(), "SCA")
     t.addAbridge("S.C.A.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Société en nom collectif".upper(), "SNC")
     t.addVariant("Società in nome collettivo".upper(), False)
     t.addAbridge("S.N.C.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("General Partnership".upper(), "GP")
     t.addVariant("General Partners", False)
     t.addAbridge("G.P.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Limited Partnership".upper(), "LP")
     t.addAbridge("L.P.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Kommanditaktiengesellschaft".upper(), "KGAA")
     t.addVariant("KOMMAG", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Societe a Responsidilite Limitee".upper(), "SRL")
     t.addAbridge("S.A.R.L.")
     t.addAbridge("S.R.L.")
     t.addVariant("SARL", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Società a garanzia limitata".upper(), "SAGL")
     t.addAbridge("S.A.G.L.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Società limitata".upper(), "SL")
     t.addAbridge("S.L.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Vennootschap Met Beperkte Aansparkelij kheid".upper(), "BV")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Vennootschap Met Beperkte Aansparkelij".upper(), "AVV")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Naamlose Vennootschap".upper(), "NV")
     t.addAbridge("N.V.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Gesellschaft mit beschrakter Haftung".upper(), "GMBH")
     t.addVariant("ГМБХ", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Aktiengesellschaft".upper(), "AG")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("International Company".upper(), "IC")
     t.addAbridge("I.C.")
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin("And Company".upper())
     t.addVariant("& Company", False)
     t.addVariant("& Co", False)
     t.addVariant("& Company", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Kollektivgesellschaft".upper(), "KG")
     t.addAbridge("K.G.")
     t.addVariant("OHG", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin._new112("Kommanditgesellschaft".upper(), "KG")
     t.addVariant("KOMMG", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin("LIMITED")
     t.addAbridge("LTD")
     t.addVariant("LTD", False)
     t.addVariant("ЛИМИТЕД", False)
     t.addVariant("ЛТД", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin("PRIVATE LIMITED")
     t.addVariant("PTE LTD", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin("INCORPORATED")
     t.addAbridge("INC")
     t.addVariant("INC", False)
     t.addVariant("ИНКОРПОРЕЙТЕД", False)
     t.addVariant("ИНК", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin("CORPORATION")
     t.addVariant("CO", False)
     t.addVariant("СО", False)
     t.addVariant("КОРПОРЕЙШН", False)
     t.addVariant("КОРПОРЕЙШЕН", False)
     OrgItemEngItem.__m_ontology.add(t)
     t = Termin("COMPANY")
     OrgItemEngItem.__m_ontology.add(t)
示例#28
0
 def _initialize() -> None:
     if (NumberExHelper._m_postfixes is not None):
         return
     NumberExHelper._m_postfixes = TerminCollection()
     t = Termin._new481("КВАДРАТНЫЙ МЕТР", MorphLang.RU, True, "кв.м.",
                        NumberExType.METER2)
     t.addAbridge("КВ.МЕТР")
     t.addAbridge("КВ.МЕТРА")
     t.addAbridge("КВ.М.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КВАДРАТНИЙ МЕТР", MorphLang.UA, True, "КВ.М.",
                        NumberExType.METER2)
     t.addAbridge("КВ.МЕТР")
     t.addAbridge("КВ.МЕТРА")
     t.addAbridge("КВ.М.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КВАДРАТНЫЙ КИЛОМЕТР", MorphLang.RU, True, "кв.км.",
                        NumberExType.KILOMETER2)
     t.addVariant("КВАДРАТНИЙ КІЛОМЕТР", True)
     t.addAbridge("КВ.КМ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ГЕКТАР", MorphLang.RU, True, "га",
                        NumberExType.GEKTAR)
     t.addAbridge("ГА")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("АР", MorphLang.RU, True, "ар", NumberExType.AR)
     t.addVariant("СОТКА", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КУБИЧЕСКИЙ МЕТР", MorphLang.RU, True, "куб.м.",
                        NumberExType.METER3)
     t.addVariant("КУБІЧНИЙ МЕТР", True)
     t.addAbridge("КУБ.МЕТР")
     t.addAbridge("КУБ.М.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МЕТР", MorphLang.RU, True, "м.",
                        NumberExType.METER)
     t.addAbridge("М.")
     t.addAbridge("M.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МЕТРОВЫЙ", MorphLang.RU, True, "м.",
                        NumberExType.METER)
     t.addVariant("МЕТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИМЕТР", MorphLang.RU, True, "мм.",
                        NumberExType.MILLIMETER)
     t.addAbridge("ММ")
     t.addAbridge("MM")
     t.addVariant("МІЛІМЕТР", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИМЕТРОВЫЙ", MorphLang.RU, True, "мм.",
                        NumberExType.MILLIMETER)
     t.addVariant("МІЛІМЕТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("САНТИМЕТР", MorphLang.RU, True, "см.",
                        NumberExType.SANTIMETER)
     t.addAbridge("СМ")
     t.addAbridge("CM")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("САНТИМЕТРОВЫЙ", MorphLang.RU, True, "см.",
                        NumberExType.SANTIMETER)
     t.addVariant("САНТИМЕТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КВАДРАТНЫЙ САНТИМЕТР", MorphLang.RU, True,
                        "кв.см.", NumberExType.SANTIMETER2)
     t.addVariant("КВАДРАТНИЙ САНТИМЕТР", True)
     t.addAbridge("КВ.СМ.")
     t.addAbridge("СМ.КВ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КУБИЧЕСКИЙ САНТИМЕТР", MorphLang.RU, True,
                        "куб.см.", NumberExType.SANTIMETER3)
     t.addVariant("КУБІЧНИЙ САНТИМЕТР", True)
     t.addAbridge("КУБ.САНТИМЕТР")
     t.addAbridge("КУБ.СМ.")
     t.addAbridge("СМ.КУБ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КИЛОМЕТР", MorphLang.RU, True, "км.",
                        NumberExType.KILOMETER)
     t.addAbridge("КМ")
     t.addAbridge("KM")
     t.addVariant("КІЛОМЕТР", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КИЛОМЕТРОВЫЙ", MorphLang.RU, True, "км.",
                        NumberExType.KILOMETER)
     t.addVariant("КІЛОМЕТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЯ", MorphLang.RU, True, "миль",
                        NumberExType.KILOMETER)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ГРАММ", MorphLang.RU, True, "гр.",
                        NumberExType.GRAMM)
     t.addAbridge("ГР")
     t.addAbridge("Г")
     t.addVariant("ГРАМ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ГРАММОВЫЙ", MorphLang.RU, True, "гр.",
                        NumberExType.GRAMM)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КИЛОГРАММ", MorphLang.RU, True, "кг.",
                        NumberExType.KILOGRAM)
     t.addAbridge("КГ")
     t.addVariant("КІЛОГРАМ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КИЛОГРАММОВЫЙ", MorphLang.RU, True, "кг.",
                        NumberExType.KILOGRAM)
     t.addVariant("КІЛОГРАМОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИГРАММ", MorphLang.RU, True, "мг.",
                        NumberExType.MILLIGRAM)
     t.addAbridge("МГ")
     t.addVariant("МІЛІГРАМ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИГРАММОВЫЙ", MorphLang.RU, True, "мг.",
                        NumberExType.MILLIGRAM)
     t.addVariant("МИЛЛИГРАМОВЫЙ", True)
     t.addVariant("МІЛІГРАМОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ТОННА", MorphLang.RU, True, "т.",
                        NumberExType.TONNA)
     t.addAbridge("Т")
     t.addAbridge("T")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ТОННЫЙ", MorphLang.RU, True, "т.",
                        NumberExType.TONNA)
     t.addVariant("ТОННИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ЛИТР", MorphLang.RU, True, "л.", NumberExType.LITR)
     t.addAbridge("Л")
     t.addVariant("ЛІТР", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ЛИТРОВЫЙ", MorphLang.RU, True, "л.",
                        NumberExType.LITR)
     t.addVariant("ЛІТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИЛИТР", MorphLang.RU, True, "мл.",
                        NumberExType.MILLILITR)
     t.addAbridge("МЛ")
     t.addVariant("МІЛІЛІТР", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИЛИТРОВЫЙ", MorphLang.RU, True, "мл.",
                        NumberExType.MILLILITR)
     t.addVariant("МІЛІЛІТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ЧАС", MorphLang.RU, True, "ч.", NumberExType.HOUR)
     t.addAbridge("Ч.")
     t.addVariant("ГОДИНА", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИНУТА", MorphLang.RU, True, "мин.",
                        NumberExType.MINUTE)
     t.addAbridge("МИН.")
     t.addVariant("ХВИЛИНА", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("СЕКУНДА", MorphLang.RU, True, "сек.",
                        NumberExType.SECOND)
     t.addAbridge("СЕК.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ГОД", MorphLang.RU, True, "г.", NumberExType.YEAR)
     t.addAbridge("Г.")
     t.addAbridge("ЛЕТ")
     t.addVariant("ЛЕТНИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МЕСЯЦ", MorphLang.RU, True, "мес.",
                        NumberExType.MONTH)
     t.addAbridge("МЕС.")
     t.addVariant("МЕСЯЧНЫЙ", True)
     t.addVariant("КАЛЕНДАРНЫЙ МЕСЯЦ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ДЕНЬ", MorphLang.RU, True, "дн.", NumberExType.DAY)
     t.addAbridge("ДН.")
     t.addVariant("ДНЕВНЫЙ", True)
     t.addVariant("СУТКИ", True)
     t.addVariant("СУТОЧНЫЙ", True)
     t.addVariant("КАЛЕНДАРНЫЙ ДЕНЬ", True)
     t.addVariant("РАБОЧИЙ ДЕНЬ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("НЕДЕЛЯ", MorphLang.RU, True, "нед.",
                        NumberExType.WEEK)
     t.addVariant("НЕДЕЛЬНЫЙ", True)
     t.addVariant("КАЛЕНДАРНАЯ НЕДЕЛЯ", False)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ПРОЦЕНТ", MorphLang.RU, True, "%",
                        NumberExType.PERCENT)
     t.addVariant("%", False)
     t.addVariant("ПРОЦ", True)
     t.addAbridge("ПРОЦ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ШТУКА", MorphLang.RU, True, "шт.",
                        NumberExType.SHUK)
     t.addVariant("ШТ", False)
     t.addAbridge("ШТ.")
     t.addAbridge("ШТ-К")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("УПАКОВКА", MorphLang.RU, True, "уп.",
                        NumberExType.UPAK)
     t.addVariant("УПАК", True)
     t.addVariant("УП", True)
     t.addAbridge("УПАК.")
     t.addAbridge("УП.")
     t.addAbridge("УП-КА")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("РУЛОН", MorphLang.RU, True, "рулон",
                        NumberExType.RULON)
     t.addVariant("РУЛ", True)
     t.addAbridge("РУЛ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("НАБОР", MorphLang.RU, True, "набор",
                        NumberExType.NABOR)
     t.addVariant("НАБ", True)
     t.addAbridge("НАБ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КОМПЛЕКТ", MorphLang.RU, True, "компл.",
                        NumberExType.KOMPLEKT)
     t.addVariant("КОМПЛ", True)
     t.addAbridge("КОМПЛ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ПАРА", MorphLang.RU, True, "пар",
                        NumberExType.PARA)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ФЛАКОН", MorphLang.RU, True, "флак.",
                        NumberExType.FLAKON)
     t.addVariant("ФЛ", True)
     t.addAbridge("ФЛ.")
     t.addVariant("ФЛАК", True)
     t.addAbridge("ФЛАК.")
     NumberExHelper._m_postfixes.add(t)
     for te in NumberExHelper._m_postfixes.termins:
         ty = Utils.valToEnum(te.tag, NumberExType)
         if (not ty in NumberExHelper._m_normals_typs):
             NumberExHelper._m_normals_typs[ty] = te.canonic_text
     NumberExHelper.__m_small_money = TerminCollection()
     t = Termin._new141("УСЛОВНАЯ ЕДИНИЦА", "УЕ", NumberExType.MONEY)
     t.addAbridge("У.Е.")
     t.addAbridge("У.E.")
     t.addAbridge("Y.Е.")
     t.addAbridge("Y.E.")
     NumberExHelper._m_postfixes.add(t)
     for k in range(3):
         str0_ = EpNerCoreInternalResourceHelper.getString(
             ("Money.csv" if k == 0 else
              ("MoneyUA.csv" if k == 1 else "MoneyEN.csv")))
         if (str0_ is None):
             continue
         lang = (MorphLang.RU if k == 0 else
                 (MorphLang.UA if k == 1 else MorphLang.EN))
         if (str0_ is None):
             continue
         for line0 in Utils.splitString(str0_, '\n', False):
             line = line0.strip()
             if (Utils.isNullOrEmpty(line)):
                 continue
             parts = Utils.splitString(line.upper(), ';', False)
             if (parts is None or len(parts) != 5):
                 continue
             if (Utils.isNullOrEmpty(parts[1])
                     or Utils.isNullOrEmpty(parts[2])):
                 continue
             t = Termin()
             t.initByNormalText(parts[1], lang)
             t.canonic_text = parts[2]
             t.tag = NumberExType.MONEY
             for p in Utils.splitString(parts[0], ',', False):
                 if (p != parts[1]):
                     t0 = Termin()
                     t0.initByNormalText(p, None)
                     t.addVariantTerm(t0)
             if (parts[1] == "РУБЛЬ"):
                 t.addAbridge("РУБ.")
             elif (parts[1] == "ГРИВНЯ"):
                 t.addAbridge("ГРН.")
             elif (parts[1] == "ДОЛЛАР"):
                 t.addAbridge("ДОЛ.")
                 t.addAbridge("ДОЛЛ.")
             elif (parts[1] == "ДОЛАР"):
                 t.addAbridge("ДОЛ.")
             NumberExHelper._m_postfixes.add(t)
             if (Utils.isNullOrEmpty(parts[3])):
                 continue
             num = 0
             i = parts[3].find(' ')
             if (i < 2):
                 continue
             wrapnum526 = RefOutArgWrapper(0)
             inoutres527 = Utils.tryParseInt(parts[3][0:0 + i], wrapnum526)
             num = wrapnum526.value
             if (not inoutres527):
                 continue
             vv = parts[3][i:].strip()
             t = Termin()
             t.initByNormalText(parts[4], lang)
             t.tag = (num)
             if (vv != parts[4]):
                 t0 = Termin()
                 t0.initByNormalText(vv, None)
                 t.addVariantTerm(t0)
             if (parts[4] == "КОПЕЙКА" or parts[4] == "КОПІЙКА"):
                 t.addAbridge("КОП.")
             NumberExHelper.__m_small_money.add(t)
示例#29
0
 def process(self, kit: 'AnalysisKit') -> None:
     """ Основная функция выделения телефонов
     
     Args:
         cnt: 
         stage: 
     
     """
     ad = kit.getAnalyzerData(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._new117(Utils.asObjectOrNull(s.value, str),
                                        uu))
     t = kit.first_token
     first_pass3040 = True
     while True:
         if first_pass3040: first_pass3040 = False
         else: t = t.next0_
         if (not (t is not None)): break
         mt = MeasureToken.tryParseMinimal(t, addunits, False)
         if (mt is None):
             mt = MeasureToken.tryParse(t, addunits, True, False)
         if (mt is None):
             continue
         rts = mt.createRefenetsTokensWithRegister(ad, True)
         if (rts is None):
             continue
         i = 0
         while i < len(rts):
             rt = rts[i]
             t.kit.embedToken(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.findSlot(None, s.value, True) is not None):
                             ok = True
                             break
                 if (ok):
                     u.ontology_items = list()
                     u.ontology_items.append(r)
                     break
示例#30
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