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))
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)
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))
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))
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)
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)
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)
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
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))
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)
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))
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
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))
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)
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)
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)
def __init__(self) -> None: self.is_ext_ontology = False self.__m_items = list() self.__m_termins = TerminCollection()
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)
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
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
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)
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())
def _static_ctor(): UnitsHelper.UNITS = list() UnitsHelper.TERMINS = TerminCollection()
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)
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)
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
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