def _union(self, kw1: 'KeywordReferent', kw2: 'KeywordReferent',
            word2: str) -> None:
     self.typ = kw1.typ
     tmp = list()
     tmp2 = io.StringIO()
     for v in kw1.get_string_values(KeywordReferent.ATTR_VALUE):
         self.add_slot(KeywordReferent.ATTR_VALUE,
                       "{0} {1}".format(v, word2), False, 0)
     norms1 = kw1.get_string_values(KeywordReferent.ATTR_NORMAL)
     if (len(norms1) == 0 and kw1.child_words == 1):
         norms1 = kw1.get_string_values(KeywordReferent.ATTR_VALUE)
     norms2 = kw2.get_string_values(KeywordReferent.ATTR_NORMAL)
     if (len(norms2) == 0 and kw2.child_words == 1):
         norms2 = kw2.get_string_values(KeywordReferent.ATTR_VALUE)
     for n1 in norms1:
         for n2 in norms2:
             tmp.clear()
             tmp.extend(Utils.splitString(n1, ' ', False))
             for n in Utils.splitString(n2, ' ', False):
                 if (not n in tmp):
                     tmp.append(n)
             tmp.sort()
             Utils.setLengthStringIO(tmp2, 0)
             i = 0
             while i < len(tmp):
                 if (i > 0):
                     print(' ', end="", file=tmp2)
                 print(tmp[i], end="", file=tmp2)
                 i += 1
             self.add_slot(KeywordReferent.ATTR_NORMAL,
                           Utils.toStringStringIO(tmp2), False, 0)
     self.add_slot(KeywordReferent.ATTR_REF, kw1, False, 0)
     self.add_slot(KeywordReferent.ATTR_REF, kw2, False, 0)
示例#2
0
 def parseDateTime(str0_ : str) -> datetime.datetime:
     if (Utils.isNullOrEmpty(str0_)): 
         return None
     try: 
         prts = Utils.splitString(str0_, '.', False)
         wrapy804 = RefOutArgWrapper(0)
         inoutres805 = Utils.tryParseInt(prts[0], wrapy804)
         y = wrapy804.value
         if (not inoutres805): 
             return None
         mon = 0
         day = 0
         if (len(prts) > 1): 
             wrapmon802 = RefOutArgWrapper(0)
             inoutres803 = Utils.tryParseInt(prts[1], wrapmon802)
             mon = wrapmon802.value
             if (inoutres803): 
                 if (len(prts) > 2): 
                     wrapday801 = RefOutArgWrapper(0)
                     Utils.tryParseInt(prts[2], wrapday801)
                     day = wrapday801.value
         if (mon <= 0): 
             mon = 1
         if (day <= 0): 
             day = 1
         if (day > Utils.lastDayOfMonth(y, mon)): 
             day = Utils.lastDayOfMonth(y, mon)
         return datetime.datetime(y, mon, day, 0, 0, 0)
     except Exception as ex: 
         pass
     return None
示例#3
0
 def initialize() -> None:
     if (UriItemToken.__m_std_groups is not None):
         return
     UriItemToken.__m_std_groups = TerminCollection()
     domain_groups = [
         "com;net;org;inf;biz;name;aero;arpa;edu;int;gov;mil;coop;museum;mobi;travel",
         "ac;ad;ae;af;ag;ai;al;am;an;ao;aq;ar;as;at;au;aw;az",
         "ba;bb;bd;be;bf;bg;bh;bi;bj;bm;bn;bo;br;bs;bt;bv;bw;by;bz",
         "ca;cc;cd;cf;cg;ch;ci;ck;cl;cm;cn;co;cr;cu;cv;cx;cy;cz",
         "de;dj;dk;dm;do;dz", "ec;ee;eg;eh;er;es;et;eu",
         "fi;fj;fk;fm;fo;fr",
         "ga;gd;ge;gf;gg;gh;gi;gl;gm;gn;gp;gq;gr;gs;gt;gu;gw;gy",
         "hk;hm;hn;hr;ht;hu", "id;ie;il;im;in;io;iq;ir;is;it",
         "je;jm;jo;jp", "ke;kg;kh;ki;km;kn;kp;kr;kw;ky;kz",
         "la;lb;lc;li;lk;lr;ls;lt;lu;lv;ly",
         "ma;mc;md;mg;mh;mk;ml;mm;mn;mo;mp;mq;mr;ms;mt;mu;mv;mw;mx;my;mz",
         "na;nc;ne;nf;ng;ni;nl;no;np;nr;nu;nz", "om",
         "pa;pe;pf;pg;ph;pk;pl;pm;pn;pr;ps;pt;pw;py", "qa", "re;ro;ru;rw",
         "sa;sb;sc;sd;se;sg;sh;si;sj;sk;sl;sm;sn;so;sr;st;su;sv;sy;sz",
         "tc;td;tf;tg;th;tj;tk;tm;tn;to;tp;tr;tt;tv;tw;tz",
         "ua;ug;uk;um;us;uy;uz", "va;vc;ve;vg;vi;vn;vu", "wf;ws",
         "ye;yt;yu", "za;zm;zw"
     ]
     separator = [';']
     for domain_group in domain_groups:
         for domain in Utils.splitString(domain_group.upper(), separator,
                                         True):
             UriItemToken.__m_std_groups.add(
                 Termin(domain, MorphLang.UNKNOWN, True))
示例#4
0
 def create_specific_processor(spec_analyzer_names: str) -> 'Processor':
     """ Создать процессор с набором стандартных и указанных параметром специфических
     анализаторов.
     
     Args:
         spec_analyzer_names(str): можно несколько, разделённые запятой или точкой с запятой.
     Если список пустой, то эквивалентно CreateProcessor()
     
     Returns:
         Processor: Экземпляр процессора
     
     """
     from pullenti.ner.Processor import Processor
     if (not ProcessorService.__m_inited):
         return None
     proc = Processor()
     names = list(
         Utils.splitString((Utils.ifNotNull(spec_analyzer_names, "")),
                           ',' + ';' + ' ', False))
     for t in ProcessorService.__m_analizer_instances:
         a = t.clone()
         if (a is not None):
             if (not a.is_specific or a.name in names):
                 proc.add_analyzer(a)
     return proc
示例#5
0
 def initialize() -> None:
     if (SentimentAnalyzer.__m_inited):
         return
     SentimentAnalyzer.__m_inited = True
     MetaSentiment.initialize()
     Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True
     try:
         for i in range(2):
             str0_ = EpNerBusinessInternalResourceHelper.getString(
                 ("Positives.txt" if i == 0 else "Negatives.txt"))
             if (str0_ is None):
                 continue
             for line0 in Utils.splitString(str0_, '\n', False):
                 line = line0.strip()
                 if (Utils.isNullOrEmpty(line)):
                     continue
                 coef = (1 if i == 0 else -1)
                 SentimentAnalyzer.__m_termins.add(
                     Termin._new117(line, coef))
     except Exception as ex:
         pass
     for s in ["ОЧЕНЬ", "СИЛЬНО"]:
         SentimentAnalyzer.__m_termins.add(Termin._new117(s, 0))
     Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False
     ProcessorService.registerAnalyzer(SentimentAnalyzer())
示例#6
0
 def __find_in_tree(self, key : str, lang : 'MorphLang') -> typing.List['Termin']:
     if (key is None): 
         return None
     nod = self.__get_root(lang, ((lang is None or lang.is_undefined)) and LanguageHelper.is_latin(key))
     i = 0
     while i < len(key): 
         ch = ord(key[i])
         nn = None
         if (nod.children is not None): 
             wrapnn582 = RefOutArgWrapper(None)
             Utils.tryGetValue(nod.children, ch, wrapnn582)
             nn = wrapnn582.value
         if (nn is None): 
             if (ch == (32)): 
                 if (nod.termins is not None): 
                     pp = Utils.splitString(key, ' ', False)
                     res = None
                     for t in nod.termins: 
                         if (len(t.terms) == len(pp)): 
                             k = 0
                             k = 1
                             while k < len(pp): 
                                 if (not pp[k] in t.terms[k].variants): 
                                     break
                                 k += 1
                             if (k >= len(pp)): 
                                 if (res is None): 
                                     res = list()
                                 res.append(t)
                     return res
             return None
         nod = nn
         i += 1
     return nod.termins
 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
示例#8
0
 def parse_date_time(str0_: str) -> datetime.datetime:
     if (Utils.isNullOrEmpty(str0_)):
         return None
     try:
         prts = Utils.splitString(str0_, '.', False)
         y = 0
         wrapy831 = RefOutArgWrapper(0)
         inoutres832 = Utils.tryParseInt(prts[0], wrapy831)
         y = wrapy831.value
         if (not inoutres832):
             return None
         mon = 0
         day = 0
         if (len(prts) > 1):
             wrapmon829 = RefOutArgWrapper(0)
             inoutres830 = Utils.tryParseInt(prts[1], wrapmon829)
             mon = wrapmon829.value
             if (inoutres830):
                 if (len(prts) > 2):
                     wrapday828 = RefOutArgWrapper(0)
                     Utils.tryParseInt(prts[2], wrapday828)
                     day = wrapday828.value
         if (mon <= 0):
             mon = 1
         if (day <= 0):
             day = 1
         if (day > Utils.lastDayOfMonth(y, mon)):
             day = Utils.lastDayOfMonth(y, mon)
         return datetime.datetime(y, mon, day, 0, 0, 0)
     except Exception as ex:
         pass
     return None
示例#9
0
 def _static_ctor():
     LanguageHelper.__m_preps = [
         ("БЕЗ;ДО;ИЗ;ИЗЗА;ОТ;У;ДЛЯ;РАДИ;ВОЗЛЕ;ПОЗАДИ;ВПЕРЕДИ;БЛИЗ;ВБЛИЗИ;ВГЛУБЬ;ВВИДУ;ВДОЛЬ;ВЗАМЕН;ВКРУГ;ВМЕСТО;"
          +
          "ВНЕ;ВНИЗУ;ВНУТРИ;ВНУТРЬ;ВОКРУГ;ВРОДЕ;ВСЛЕД;ВСЛЕДСТВИЕ;ЗАМЕСТО;ИЗНУТРИ;КАСАТЕЛЬНО;КРОМЕ;"
          +
          "МИМО;НАВРОДЕ;НАЗАД;НАКАНУНЕ;НАПОДОБИЕ;НАПРОТИВ;НАСЧЕТ;ОКОЛО;ОТНОСИТЕЛЬНО;"
          ) +
         "ПОВЕРХ;ПОДЛЕ;ПОМИМО;ПОПЕРЕК;ПОРЯДКА;ПОСЕРЕДИНЕ;ПОСРЕДИ;ПОСЛЕ;ПРЕВЫШЕ;ПРЕЖДЕ;ПРОТИВ;СВЕРХ;"
         + "СВЫШЕ;СНАРУЖИ;СРЕДИ;СУПРОТИВ",
         "К;БЛАГОДАРЯ;ВОПРЕКИ;НАВСТРЕЧУ;СОГЛАСНО;СООБРАЗНО;ПАРАЛЛЕЛЬНО;ПОДОБНО;СООТВЕТСТВЕННО;СОРАЗМЕРНО",
         "ПРО;ЧЕРЕЗ;СКВОЗЬ;СПУСТЯ", "НАД;ПЕРЕД;ПРЕД", "ПРИ",
         "В;НА;О;ВКЛЮЧАЯ", "МЕЖДУ", "ЗА;ПОД", "ПО", "С"
     ]
     LanguageHelper.__m_cases = [
         MorphCase.GENITIVE, MorphCase.DATIVE, MorphCase.ACCUSATIVE,
         MorphCase.INSTRUMENTAL, MorphCase.PREPOSITIONAL,
         (MorphCase.ACCUSATIVE) | MorphCase.PREPOSITIONAL,
         (MorphCase.GENITIVE) | MorphCase.INSTRUMENTAL,
         (MorphCase.ACCUSATIVE) | MorphCase.INSTRUMENTAL, (MorphCase.DATIVE)
         | MorphCase.ACCUSATIVE | MorphCase.PREPOSITIONAL,
         (MorphCase.GENITIVE) | MorphCase.ACCUSATIVE
         | MorphCase.INSTRUMENTAL
     ]
     LanguageHelper.__m_prep_norms_src = [
         "БЕЗ;БЕЗО", "ВБЛИЗИ;БЛИЗ", "В;ВО", "ВОКРУГ;ВКРУГ",
         "ВНУТРИ;ВНУТРЬ;ВОВНУТРЬ", "ВПЕРЕДИ;ВПЕРЕД", "ВСЛЕД;ВОСЛЕД",
         "ВМЕСТО;ЗАМЕСТО", "ИЗ;ИЗО", "К;КО", "МЕЖДУ;МЕЖ;ПРОМЕЖДУ;ПРОМЕЖ",
         "НАД;НАДО", "О;ОБ;ОБО", "ОТ;ОТО", "ПЕРЕД;ПРЕД;ПРЕДО;ПЕРЕДО",
         "ПОД;ПОДО", "ПОСЕРЕДИНЕ;ПОСРЕДИ;ПОСЕРЕДЬ", "С;СО",
         "СРЕДИ;СРЕДЬ;СЕРЕДЬ", "ЧЕРЕЗ;ЧРЕЗ"
     ]
     LanguageHelper.__m_prep_cases = dict()
     i = 0
     while i < len(LanguageHelper.__m_preps):
         for v in Utils.splitString(LanguageHelper.__m_preps[i], ';',
                                    False):
             LanguageHelper.__m_prep_cases[v] = LanguageHelper.__m_cases[i]
         i += 1
     LanguageHelper.__m_prep_norms = dict()
     for s in LanguageHelper.__m_prep_norms_src:
         vars0_ = Utils.splitString(s, ';', False)
         i = 1
         while i < len(vars0_):
             LanguageHelper.__m_prep_norms[vars0_[i]] = vars0_[0]
             i += 1
示例#10
0
 def __loadBrands(str0_: str, kind_: 'TransportKind') -> None:
     cars = Utils.splitString(str0_, ';', False)
     vars0_ = list()
     for c in cars:
         its = Utils.splitString(c, ',', False)
         vars0_.clear()
         doubt = False
         for it in its:
             s = it.strip()
             if (not Utils.isNullOrEmpty(s)):
                 if (s == "true"):
                     doubt = True
                 else:
                     vars0_.append(s)
         if (len(vars0_) == 0):
             continue
         for v in vars0_:
             t = TransItemToken.TransTermin(v)
             t.canonic_text = vars0_[0]
             t.kind = kind_
             t.typ = TransItemToken.Typs.BRAND
             t.is_doubt = doubt
             TransItemToken.M_ONTOLOGY.add(t)
示例#11
0
 def _correct(self) -> None:
     names_ = self.names
     for i in range(len(names_) - 1, -1, -1):
         ss = names_[i]
         jj = ss.find(' ')
         if (jj < 0): 
             continue
         if (ss.rfind(' ') != jj): 
             continue
         pp = Utils.splitString(ss, ' ', False)
         if (len(pp) == 2): 
             ss2 = "{0} {1}".format(pp[1], pp[0])
             if (not ss2 in names_): 
                 self.add_slot(StreetReferent.ATTR_NAME, ss2, False, 0)
示例#12
0
 def initByNormalText(self, text: str, lang_: 'MorphLang' = None) -> None:
     """ Быстрая инициализация без морф.вариантов, производится только
      токенизация текста. Используется для ускорения работы со словарём в случае,
      когда изначально известно, что на входе уже нормализованные строки
     
     Args:
         text(str): исходно нормализованный текст
         lang_(MorphLang): возможный язык
     """
     if (Utils.isNullOrEmpty(text)):
         return
     text = text.upper()
     if (text.find('\'') >= 0):
         text = text.replace("'", "")
     tok = False
     sp = False
     for ch in text:
         if (not str.isalpha(ch)):
             if (ch == ' '):
                 sp = True
             else:
                 tok = True
                 break
     if (not tok and not sp):
         tt = TextToken(None, None)
         tt.term = text
         self.terms.append(Termin.Term(tt, False))
     elif (not tok and sp):
         wrds = Utils.splitString(text, ' ', False)
         i = 0
         first_pass2811 = True
         while True:
             if first_pass2811: first_pass2811 = False
             else: i += 1
             if (not (i < len(wrds))): break
             if (Utils.isNullOrEmpty(wrds[i])):
                 continue
             tt = TextToken(None, None)
             tt.term = wrds[i]
             self.terms.append(Termin.Term(tt, False))
     else:
         toks = Morphology.tokenize(text)
         if (toks is not None):
             i = 0
             while i < len(toks):
                 tt = TextToken(toks[i], None)
                 self.terms.append(Termin.Term(tt, False))
                 i += 1
     self.lang = MorphLang(lang_)
示例#13
0
 def parse(str0_: str) -> 'MorphCase':
     """ Восстановить падежи из строки, полученной ToString
     
     Args:
         str0_(str): 
     
     """
     res = MorphCase()
     if (Utils.isNullOrEmpty(str0_)):
         return res
     for s in Utils.splitString(str0_, '|', False):
         i = 0
         while i < len(MorphCase.__m_names):
             if (s == MorphCase.__m_names[i]):
                 res.__set_value(i, True)
                 break
             i += 1
     return res
示例#14
0
 def initialize() -> None:
     if (PhoneHelper.M_PHONE_ROOT is not None):
         return
     PhoneHelper.M_PHONE_ROOT = PhoneHelper.PhoneNode()
     PhoneHelper.M_ALL_COUNTRY_CODES = dict()
     str0_ = EpNerBankInternalResourceHelper.getString(
         "CountryPhoneCodes.txt")
     if (str0_ is None):
         raise Utils.newException(
             "Can't file resource file {0} in Organization analyzer".format(
                 "CountryPhoneCodes.txt"), None)
     for line0 in Utils.splitString(str0_, '\n', False):
         line = line0.strip()
         if (Utils.isNullOrEmpty(line)):
             continue
         if (len(line) < 2):
             continue
         country = line[0:0 + 2]
         cod = line[2:].strip()
         if (len(cod) < 1):
             continue
         if (not country in PhoneHelper.M_ALL_COUNTRY_CODES):
             PhoneHelper.M_ALL_COUNTRY_CODES[country] = cod
         tn = PhoneHelper.M_PHONE_ROOT
         i = 0
         while i < len(cod):
             dig = cod[i]
             wrapnn2462 = RefOutArgWrapper(None)
             inoutres2463 = Utils.tryGetValue(tn.children, dig, wrapnn2462)
             nn = wrapnn2462.value
             if (not inoutres2463):
                 nn = PhoneHelper.PhoneNode()
                 nn.pref = cod[0:0 + i + 1]
                 tn.children[dig] = nn
             tn = nn
             i += 1
         if (tn.countries is None):
             tn.countries = list()
         tn.countries.append(country)
示例#15
0
 def _initialize() -> None:
     if (NumberExHelper._m_postfixes is not None):
         return
     NumberExHelper._m_postfixes = TerminCollection()
     t = Termin._new481("КВАДРАТНЫЙ МЕТР", MorphLang.RU, True, "кв.м.",
                        NumberExType.METER2)
     t.addAbridge("КВ.МЕТР")
     t.addAbridge("КВ.МЕТРА")
     t.addAbridge("КВ.М.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КВАДРАТНИЙ МЕТР", MorphLang.UA, True, "КВ.М.",
                        NumberExType.METER2)
     t.addAbridge("КВ.МЕТР")
     t.addAbridge("КВ.МЕТРА")
     t.addAbridge("КВ.М.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КВАДРАТНЫЙ КИЛОМЕТР", MorphLang.RU, True, "кв.км.",
                        NumberExType.KILOMETER2)
     t.addVariant("КВАДРАТНИЙ КІЛОМЕТР", True)
     t.addAbridge("КВ.КМ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ГЕКТАР", MorphLang.RU, True, "га",
                        NumberExType.GEKTAR)
     t.addAbridge("ГА")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("АР", MorphLang.RU, True, "ар", NumberExType.AR)
     t.addVariant("СОТКА", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КУБИЧЕСКИЙ МЕТР", MorphLang.RU, True, "куб.м.",
                        NumberExType.METER3)
     t.addVariant("КУБІЧНИЙ МЕТР", True)
     t.addAbridge("КУБ.МЕТР")
     t.addAbridge("КУБ.М.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МЕТР", MorphLang.RU, True, "м.",
                        NumberExType.METER)
     t.addAbridge("М.")
     t.addAbridge("M.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МЕТРОВЫЙ", MorphLang.RU, True, "м.",
                        NumberExType.METER)
     t.addVariant("МЕТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИМЕТР", MorphLang.RU, True, "мм.",
                        NumberExType.MILLIMETER)
     t.addAbridge("ММ")
     t.addAbridge("MM")
     t.addVariant("МІЛІМЕТР", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИМЕТРОВЫЙ", MorphLang.RU, True, "мм.",
                        NumberExType.MILLIMETER)
     t.addVariant("МІЛІМЕТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("САНТИМЕТР", MorphLang.RU, True, "см.",
                        NumberExType.SANTIMETER)
     t.addAbridge("СМ")
     t.addAbridge("CM")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("САНТИМЕТРОВЫЙ", MorphLang.RU, True, "см.",
                        NumberExType.SANTIMETER)
     t.addVariant("САНТИМЕТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КВАДРАТНЫЙ САНТИМЕТР", MorphLang.RU, True,
                        "кв.см.", NumberExType.SANTIMETER2)
     t.addVariant("КВАДРАТНИЙ САНТИМЕТР", True)
     t.addAbridge("КВ.СМ.")
     t.addAbridge("СМ.КВ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КУБИЧЕСКИЙ САНТИМЕТР", MorphLang.RU, True,
                        "куб.см.", NumberExType.SANTIMETER3)
     t.addVariant("КУБІЧНИЙ САНТИМЕТР", True)
     t.addAbridge("КУБ.САНТИМЕТР")
     t.addAbridge("КУБ.СМ.")
     t.addAbridge("СМ.КУБ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КИЛОМЕТР", MorphLang.RU, True, "км.",
                        NumberExType.KILOMETER)
     t.addAbridge("КМ")
     t.addAbridge("KM")
     t.addVariant("КІЛОМЕТР", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КИЛОМЕТРОВЫЙ", MorphLang.RU, True, "км.",
                        NumberExType.KILOMETER)
     t.addVariant("КІЛОМЕТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЯ", MorphLang.RU, True, "миль",
                        NumberExType.KILOMETER)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ГРАММ", MorphLang.RU, True, "гр.",
                        NumberExType.GRAMM)
     t.addAbridge("ГР")
     t.addAbridge("Г")
     t.addVariant("ГРАМ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ГРАММОВЫЙ", MorphLang.RU, True, "гр.",
                        NumberExType.GRAMM)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КИЛОГРАММ", MorphLang.RU, True, "кг.",
                        NumberExType.KILOGRAM)
     t.addAbridge("КГ")
     t.addVariant("КІЛОГРАМ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КИЛОГРАММОВЫЙ", MorphLang.RU, True, "кг.",
                        NumberExType.KILOGRAM)
     t.addVariant("КІЛОГРАМОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИГРАММ", MorphLang.RU, True, "мг.",
                        NumberExType.MILLIGRAM)
     t.addAbridge("МГ")
     t.addVariant("МІЛІГРАМ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИГРАММОВЫЙ", MorphLang.RU, True, "мг.",
                        NumberExType.MILLIGRAM)
     t.addVariant("МИЛЛИГРАМОВЫЙ", True)
     t.addVariant("МІЛІГРАМОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ТОННА", MorphLang.RU, True, "т.",
                        NumberExType.TONNA)
     t.addAbridge("Т")
     t.addAbridge("T")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ТОННЫЙ", MorphLang.RU, True, "т.",
                        NumberExType.TONNA)
     t.addVariant("ТОННИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ЛИТР", MorphLang.RU, True, "л.", NumberExType.LITR)
     t.addAbridge("Л")
     t.addVariant("ЛІТР", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ЛИТРОВЫЙ", MorphLang.RU, True, "л.",
                        NumberExType.LITR)
     t.addVariant("ЛІТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИЛИТР", MorphLang.RU, True, "мл.",
                        NumberExType.MILLILITR)
     t.addAbridge("МЛ")
     t.addVariant("МІЛІЛІТР", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИЛЛИЛИТРОВЫЙ", MorphLang.RU, True, "мл.",
                        NumberExType.MILLILITR)
     t.addVariant("МІЛІЛІТРОВИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ЧАС", MorphLang.RU, True, "ч.", NumberExType.HOUR)
     t.addAbridge("Ч.")
     t.addVariant("ГОДИНА", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МИНУТА", MorphLang.RU, True, "мин.",
                        NumberExType.MINUTE)
     t.addAbridge("МИН.")
     t.addVariant("ХВИЛИНА", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("СЕКУНДА", MorphLang.RU, True, "сек.",
                        NumberExType.SECOND)
     t.addAbridge("СЕК.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ГОД", MorphLang.RU, True, "г.", NumberExType.YEAR)
     t.addAbridge("Г.")
     t.addAbridge("ЛЕТ")
     t.addVariant("ЛЕТНИЙ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("МЕСЯЦ", MorphLang.RU, True, "мес.",
                        NumberExType.MONTH)
     t.addAbridge("МЕС.")
     t.addVariant("МЕСЯЧНЫЙ", True)
     t.addVariant("КАЛЕНДАРНЫЙ МЕСЯЦ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ДЕНЬ", MorphLang.RU, True, "дн.", NumberExType.DAY)
     t.addAbridge("ДН.")
     t.addVariant("ДНЕВНЫЙ", True)
     t.addVariant("СУТКИ", True)
     t.addVariant("СУТОЧНЫЙ", True)
     t.addVariant("КАЛЕНДАРНЫЙ ДЕНЬ", True)
     t.addVariant("РАБОЧИЙ ДЕНЬ", True)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("НЕДЕЛЯ", MorphLang.RU, True, "нед.",
                        NumberExType.WEEK)
     t.addVariant("НЕДЕЛЬНЫЙ", True)
     t.addVariant("КАЛЕНДАРНАЯ НЕДЕЛЯ", False)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ПРОЦЕНТ", MorphLang.RU, True, "%",
                        NumberExType.PERCENT)
     t.addVariant("%", False)
     t.addVariant("ПРОЦ", True)
     t.addAbridge("ПРОЦ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ШТУКА", MorphLang.RU, True, "шт.",
                        NumberExType.SHUK)
     t.addVariant("ШТ", False)
     t.addAbridge("ШТ.")
     t.addAbridge("ШТ-К")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("УПАКОВКА", MorphLang.RU, True, "уп.",
                        NumberExType.UPAK)
     t.addVariant("УПАК", True)
     t.addVariant("УП", True)
     t.addAbridge("УПАК.")
     t.addAbridge("УП.")
     t.addAbridge("УП-КА")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("РУЛОН", MorphLang.RU, True, "рулон",
                        NumberExType.RULON)
     t.addVariant("РУЛ", True)
     t.addAbridge("РУЛ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("НАБОР", MorphLang.RU, True, "набор",
                        NumberExType.NABOR)
     t.addVariant("НАБ", True)
     t.addAbridge("НАБ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("КОМПЛЕКТ", MorphLang.RU, True, "компл.",
                        NumberExType.KOMPLEKT)
     t.addVariant("КОМПЛ", True)
     t.addAbridge("КОМПЛ.")
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ПАРА", MorphLang.RU, True, "пар",
                        NumberExType.PARA)
     NumberExHelper._m_postfixes.add(t)
     t = Termin._new481("ФЛАКОН", MorphLang.RU, True, "флак.",
                        NumberExType.FLAKON)
     t.addVariant("ФЛ", True)
     t.addAbridge("ФЛ.")
     t.addVariant("ФЛАК", True)
     t.addAbridge("ФЛАК.")
     NumberExHelper._m_postfixes.add(t)
     for te in NumberExHelper._m_postfixes.termins:
         ty = Utils.valToEnum(te.tag, NumberExType)
         if (not ty in NumberExHelper._m_normals_typs):
             NumberExHelper._m_normals_typs[ty] = te.canonic_text
     NumberExHelper.__m_small_money = TerminCollection()
     t = Termin._new141("УСЛОВНАЯ ЕДИНИЦА", "УЕ", NumberExType.MONEY)
     t.addAbridge("У.Е.")
     t.addAbridge("У.E.")
     t.addAbridge("Y.Е.")
     t.addAbridge("Y.E.")
     NumberExHelper._m_postfixes.add(t)
     for k in range(3):
         str0_ = EpNerCoreInternalResourceHelper.getString(
             ("Money.csv" if k == 0 else
              ("MoneyUA.csv" if k == 1 else "MoneyEN.csv")))
         if (str0_ is None):
             continue
         lang = (MorphLang.RU if k == 0 else
                 (MorphLang.UA if k == 1 else MorphLang.EN))
         if (str0_ is None):
             continue
         for line0 in Utils.splitString(str0_, '\n', False):
             line = line0.strip()
             if (Utils.isNullOrEmpty(line)):
                 continue
             parts = Utils.splitString(line.upper(), ';', False)
             if (parts is None or len(parts) != 5):
                 continue
             if (Utils.isNullOrEmpty(parts[1])
                     or Utils.isNullOrEmpty(parts[2])):
                 continue
             t = Termin()
             t.initByNormalText(parts[1], lang)
             t.canonic_text = parts[2]
             t.tag = NumberExType.MONEY
             for p in Utils.splitString(parts[0], ',', False):
                 if (p != parts[1]):
                     t0 = Termin()
                     t0.initByNormalText(p, None)
                     t.addVariantTerm(t0)
             if (parts[1] == "РУБЛЬ"):
                 t.addAbridge("РУБ.")
             elif (parts[1] == "ГРИВНЯ"):
                 t.addAbridge("ГРН.")
             elif (parts[1] == "ДОЛЛАР"):
                 t.addAbridge("ДОЛ.")
                 t.addAbridge("ДОЛЛ.")
             elif (parts[1] == "ДОЛАР"):
                 t.addAbridge("ДОЛ.")
             NumberExHelper._m_postfixes.add(t)
             if (Utils.isNullOrEmpty(parts[3])):
                 continue
             num = 0
             i = parts[3].find(' ')
             if (i < 2):
                 continue
             wrapnum526 = RefOutArgWrapper(0)
             inoutres527 = Utils.tryParseInt(parts[3][0:0 + i], wrapnum526)
             num = wrapnum526.value
             if (not inoutres527):
                 continue
             vv = parts[3][i:].strip()
             t = Termin()
             t.initByNormalText(parts[4], lang)
             t.tag = (num)
             if (vv != parts[4]):
                 t0 = Termin()
                 t0.initByNormalText(vv, None)
                 t.addVariantTerm(t0)
             if (parts[4] == "КОПЕЙКА" or parts[4] == "КОПІЙКА"):
                 t.addAbridge("КОП.")
             NumberExHelper.__m_small_money.add(t)
示例#16
0
 def initialize() -> None:
     OrgItemNameToken.__m_std_tails = TerminCollection()
     OrgItemNameToken.__m_std_names = TerminCollection()
     OrgItemNameToken.__m_vervot_words = TerminCollection()
     t = Termin("INCORPORATED")
     t.addAbridge("INC.")
     OrgItemNameToken.__m_std_tails.add(t)
     t = Termin("CORPORATION")
     t.addAbridge("CORP.")
     OrgItemNameToken.__m_std_tails.add(t)
     t = Termin("LIMITED")
     t.addAbridge("LTD.")
     OrgItemNameToken.__m_std_tails.add(t)
     t = Termin("AG")
     OrgItemNameToken.__m_std_tails.add(t)
     t = Termin("GMBH")
     OrgItemNameToken.__m_std_tails.add(t)
     for s in [
             "ЗАКАЗЧИК", "ИСПОЛНИТЕЛЬ", "РАЗРАБОТЧИК", "БЕНЕФИЦИАР",
             "ПОЛУЧАТЕЛЬ", "ОТПРАВИТЕЛЬ", "ИЗГОТОВИТЕЛЬ", "ПРОИЗВОДИТЕЛЬ",
             "ПОСТАВЩИК", "АБОНЕНТ", "КЛИЕНТ", "ВКЛАДЧИК", "СУБЪЕКТ",
             "ПРОДАВЕЦ", "ПОКУПАТЕЛЬ", "АРЕНДОДАТЕЛЬ", "АРЕНДАТОР",
             "СУБАРЕНДАТОР", "НАЙМОДАТЕЛЬ", "НАНИМАТЕЛЬ", "АГЕНТ",
             "ПРИНЦИПАЛ", "ПРОДАВЕЦ", "ПОСТАВЩИК", "ПОДРЯДЧИК",
             "СУБПОДРЯДЧИК"
     ]:
         OrgItemNameToken.__m_std_tails.add(Termin._new117(s, s))
     for s in [
             "ЗАМОВНИК", "ВИКОНАВЕЦЬ", "РОЗРОБНИК", "БЕНЕФІЦІАР",
             "ОДЕРЖУВАЧ", "ВІДПРАВНИК", "ВИРОБНИК", "ВИРОБНИК",
             "ПОСТАЧАЛЬНИК", "АБОНЕНТ", "КЛІЄНТ", "ВКЛАДНИК", "СУБ'ЄКТ",
             "ПРОДАВЕЦЬ", "ПОКУПЕЦЬ", "ОРЕНДОДАВЕЦЬ", "ОРЕНДАР",
             "СУБОРЕНДАР", "НАЙМОДАВЕЦЬ", "НАЙМАЧ", "АГЕНТ", "ПРИНЦИПАЛ",
             "ПРОДАВЕЦЬ", "ПОСТАЧАЛЬНИК", "ПІДРЯДНИК", "СУБПІДРЯДНИК"
     ]:
         OrgItemNameToken.__m_std_tails.add(
             Termin._new455(s, MorphLang.UA, s))
     t = Termin("РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ")
     t.addAbridge("РАЗРАБОТКИ ПО")
     OrgItemNameToken.__m_std_names.add(t)
     for s in ["СПЕЦИАЛЬНОСТЬ", "ДИАГНОЗ"]:
         OrgItemNameToken.__m_vervot_words.add(Termin(s))
     for s in ["СПЕЦІАЛЬНІСТЬ", "ДІАГНОЗ"]:
         OrgItemNameToken.__m_vervot_words.add(Termin(s, MorphLang.UA))
     OrgItemNameToken.__m_std_nouns = TerminCollection()
     for k in range(2):
         name = ("NameNouns_ru.dat" if k == 0 else "NameNouns_ua.dat")
         dat = EpNerOrgInternalResourceHelper.getBytes(name)
         if (dat is None):
             raise Utils.newException(
                 "Can't file resource file {0} in Organization analyzer".
                 format(name), None)
         str0_ = OrgItemTypeToken._deflate(dat).decode("UTF-8", 'ignore')
         for line0 in Utils.splitString(str0_, '\n', False):
             line = line0.strip()
             if (Utils.isNullOrEmpty(line)):
                 continue
             if (k == 0):
                 OrgItemNameToken.__m_std_nouns.add(Termin(line))
             else:
                 OrgItemNameToken.__m_std_nouns.add(
                     Termin._new872(line, MorphLang.UA))
示例#17
0
 def initialize() -> None:
     if (UriAnalyzer.__m_schemes is not None): 
         return
     Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = True
     MetaUri.initialize()
     try: 
         UriAnalyzer.__m_schemes = TerminCollection()
         obj = EpNerBankInternalResourceHelper.getString("UriSchemes.csv")
         if (obj is None): 
             raise Utils.newException("Can't file resource file {0} in Organization analyzer".format("UriSchemes.csv"), None)
         for line0 in Utils.splitString(obj, '\n', False): 
             line = line0.strip()
             if (Utils.isNullOrEmpty(line)): 
                 continue
             UriAnalyzer.__m_schemes.add(Termin._new678(line, MorphLang.UNKNOWN, True, 0))
         for s in ["ISBN", "УДК", "ББК", "ТНВЭД", "ОКВЭД"]: 
             UriAnalyzer.__m_schemes.add(Termin._new678(s, MorphLang.UNKNOWN, True, 1))
         UriAnalyzer.__m_schemes.add(Termin._new2573("Общероссийский классификатор форм собственности", "ОКФС", 1, "ОКФС"))
         UriAnalyzer.__m_schemes.add(Termin._new2573("Общероссийский классификатор организационно правовых форм", "ОКОПФ", 1, "ОКОПФ"))
         UriAnalyzer.__m_schemes.add(Termin._new678("WWW", MorphLang.UNKNOWN, True, 2))
         UriAnalyzer.__m_schemes.add(Termin._new678("HTTP", MorphLang.UNKNOWN, True, 10))
         UriAnalyzer.__m_schemes.add(Termin._new678("HTTPS", MorphLang.UNKNOWN, True, 10))
         UriAnalyzer.__m_schemes.add(Termin._new678("SHTTP", MorphLang.UNKNOWN, True, 10))
         UriAnalyzer.__m_schemes.add(Termin._new678("FTP", MorphLang.UNKNOWN, True, 10))
         t = Termin._new678("SKYPE", MorphLang.UNKNOWN, True, 3)
         t.addVariant("СКАЙП", True)
         t.addVariant("SKYPEID", True)
         t.addVariant("SKYPE ID", True)
         UriAnalyzer.__m_schemes.add(t)
         t = Termin._new678("SWIFT", MorphLang.UNKNOWN, True, 3)
         t.addVariant("СВИФТ", True)
         UriAnalyzer.__m_schemes.add(t)
         UriAnalyzer.__m_schemes.add(Termin._new678("ICQ", MorphLang.UNKNOWN, True, 4))
         t = Termin._new2583("основной государственный регистрационный номер", "ОГРН", 5, "ОГРН", True)
         t.addVariant("ОГРН ИП", True)
         UriAnalyzer.__m_schemes.add(t)
         UriAnalyzer.__m_schemes.add(Termin._new2583("Индивидуальный идентификационный номер", "ИИН", 5, "ИИН", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Индивидуальный номер налогоплательщика", "ИНН", 5, "ИНН", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Код причины постановки на учет", "КПП", 5, "КПП", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Банковский идентификационный код", "БИК", 5, "БИК", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("основной государственный регистрационный номер индивидуального предпринимателя", "ОГРНИП", 5, "ОГРНИП", True))
         t = Termin._new2583("Страховой номер индивидуального лицевого счёта", "СНИЛС", 5, "СНИЛС", True)
         t.addVariant("Свидетельство пенсионного страхования", False)
         t.addVariant("Страховое свидетельство обязательного пенсионного страхования", False)
         t.addVariant("Страховое свидетельство", False)
         UriAnalyzer.__m_schemes.add(t)
         UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор предприятий и организаций", "ОКПО", 5, "ОКПО", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор объектов административно-территориального деления", "ОКАТО", 5, "ОКАТО", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор территорий муниципальных образований", "ОКТМО", 5, "ОКТМО", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор органов государственной власти и управления", "ОКОГУ", 5, "ОКОГУ", True))
         UriAnalyzer.__m_schemes.add(Termin._new2583("Общероссийский классификатор Отрасли народного хозяйства", "ОКОНХ", 5, "ОКОНХ", True))
         t = Termin._new2595("РАСЧЕТНЫЙ СЧЕТ", MorphLang.UNKNOWN, True, "Р/С", 6, 20)
         t.addAbridge("Р.С.")
         t.addAbridge("Р.СЧ.")
         t.addAbridge("P.C.")
         t.addAbridge("РАСЧ.СЧЕТ")
         t.addAbridge("РАС.СЧЕТ")
         t.addAbridge("РАСЧ.СЧ.")
         t.addAbridge("РАС.СЧ.")
         t.addAbridge("Р.СЧЕТ")
         t.addVariant("СЧЕТ ПОЛУЧАТЕЛЯ", False)
         t.addVariant("СЧЕТ ОТПРАВИТЕЛЯ", False)
         t.addVariant("СЧЕТ", False)
         UriAnalyzer.__m_schemes.add(t)
         t = Termin._new2596("ЛИЦЕВОЙ СЧЕТ", "Л/С", 6, 20)
         t.addAbridge("Л.С.")
         t.addAbridge("Л.СЧ.")
         t.addAbridge("Л/С")
         t.addAbridge("ЛИЦ.СЧЕТ")
         t.addAbridge("ЛИЦ.СЧ.")
         t.addAbridge("Л.СЧЕТ")
         UriAnalyzer.__m_schemes.add(t)
         t = Termin._new2595("СПЕЦИАЛЬНЫЙ ЛИЦЕВОЙ СЧЕТ", MorphLang.UNKNOWN, True, "СПЕЦ/С", 6, 20)
         t.addAbridge("СПЕЦ.С.")
         t.addAbridge("СПЕЦ.СЧЕТ")
         t.addAbridge("СПЕЦ.СЧ.")
         t.addVariant("СПЕЦСЧЕТ", True)
         t.addVariant("СПЕЦИАЛЬНЫЙ СЧЕТ", True)
         UriAnalyzer.__m_schemes.add(t)
         t = Termin._new2595("КОРРЕСПОНДЕНТСКИЙ СЧЕТ", MorphLang.UNKNOWN, True, "К/С", 6, 20)
         t.addAbridge("КОРР.СЧЕТ")
         t.addAbridge("КОР.СЧЕТ")
         t.addAbridge("КОРР.СЧ.")
         t.addAbridge("КОР.СЧ.")
         t.addAbridge("К.СЧЕТ")
         t.addAbridge("КОР.С.")
         t.addAbridge("К.С.")
         t.addAbridge("K.C.")
         t.addAbridge("К-С")
         t.addAbridge("К/С")
         t.addAbridge("К.СЧ.")
         t.addAbridge("К/СЧ")
         UriAnalyzer.__m_schemes.add(t)
         t = Termin._new2599("КОД БЮДЖЕТНОЙ КЛАССИФИКАЦИИ", "КБК", "КБК", 6, 20, True)
         UriAnalyzer.__m_schemes.add(t)
         UriItemToken.initialize()
     except Exception as ex: 
         raise Utils.newException(ex.__str__(), ex)
     Termin.ASSIGN_ALL_TEXTS_AS_NORMAL = False
     ProcessorService.registerAnalyzer(UriAnalyzer())
示例#18
0
 def __add_factor(f: 'UnitsFactors', u0: 'Unit', abbr_cyr: str,
                  abbr_lat: str, names_ru: str, names_ua: str,
                  names_en: str) -> 'Unit':
     pref_cyr = None
     pref_lat = None
     pref_ru = None
     pref_ua = None
     pref_en = None
     mult = 1
     swichVal = f
     if (swichVal == UnitsFactors.CENTI):
         pref_cyr = "С"
         pref_lat = "C"
         pref_ru = "САНТИ"
         pref_ua = "САНТИ"
         pref_en = "CENTI"
         mult = 0.1
     elif (swichVal == UnitsFactors.DECI):
         pref_cyr = "Д"
         pref_lat = "D"
         pref_ru = "ДЕЦИ"
         pref_ua = "ДЕЦИ"
         pref_en = "DECI"
         mult = 0.01
     elif (swichVal == UnitsFactors.GIGA):
         pref_cyr = "Г"
         pref_lat = "G"
         pref_ru = "ГИГА"
         pref_ua = "ГІГА"
         pref_en = "GIGA"
         mult = (1000000000)
     elif (swichVal == UnitsFactors.KILO):
         pref_cyr = "К"
         pref_lat = "K"
         pref_ru = "КИЛО"
         pref_ua = "КІЛО"
         pref_en = "KILO"
         mult = (1000)
     elif (swichVal == UnitsFactors.MEGA):
         pref_cyr = "М"
         pref_lat = "M"
         pref_ru = "МЕГА"
         pref_ua = "МЕГА"
         pref_en = "MEGA"
         mult = (1000000)
     elif (swichVal == UnitsFactors.MICRO):
         pref_cyr = "МК"
         pref_lat = "MK"
         pref_ru = "МИКРО"
         pref_ua = "МІКРО"
         pref_en = "MICRO"
         mult = 0.0001
     elif (swichVal == UnitsFactors.MILLI):
         pref_cyr = "М"
         pref_lat = "M"
         pref_ru = "МИЛЛИ"
         pref_ua = "МІЛІ"
         pref_en = "MILLI"
         mult = 0.001
     elif (swichVal == UnitsFactors.NANO):
         pref_cyr = "Н"
         pref_lat = "N"
         pref_ru = "НАНО"
         pref_ua = "НАНО"
         pref_en = "NANO"
         mult = 0.0000000001
     elif (swichVal == UnitsFactors.PICO):
         pref_cyr = "П"
         pref_lat = "P"
         pref_ru = "ПИКО"
         pref_ua = "ПІКО"
         pref_en = "PICO"
         mult = 0.0000000000001
     elif (swichVal == UnitsFactors.TERA):
         pref_cyr = "Т"
         pref_lat = "T"
         pref_ru = "ТЕРА"
         pref_ua = "ТЕРА"
         pref_en = "TERA"
         mult = (1000000000000)
     u = Unit._new1733(pref_cyr.lower() + u0.name_cyr,
                       pref_lat.lower() + u0.name_lat,
                       pref_ru.lower() + u0.fullname_cyr,
                       pref_en.lower() + u0.fullname_lat, f, mult, u0,
                       u0.kind, u0.keywords)
     if (f == UnitsFactors.MEGA or f == UnitsFactors.TERA
             or f == UnitsFactors.GIGA):
         u.name_cyr = (pref_cyr + u0.name_cyr)
         u.name_lat = (pref_lat + u0.name_lat)
     UnitsHelper.UNITS.append(u)
     nams = Utils.splitString(names_ru, ';', False)
     t = Termin._new100(pref_ru + nams[0], u)
     i = 1
     while i < len(nams):
         if (not Utils.isNullOrEmpty(nams[i])):
             t.add_variant(pref_ru + nams[i], False)
         i += 1
     for n in nams:
         if (not Utils.isNullOrEmpty(n)):
             t.add_variant(pref_cyr + n, False)
     for n in Utils.splitString(names_ua, ';', False):
         if (not Utils.isNullOrEmpty(n)):
             t.add_variant(pref_ua + n, False)
             t.add_variant(pref_cyr + n, False)
     for n in Utils.splitString(names_en, ';', False):
         if (not Utils.isNullOrEmpty(n)):
             t.add_variant(pref_en + n, False)
             t.add_variant(pref_lat + n, False)
     for n in Utils.splitString(abbr_cyr, ';', False):
         if (not Utils.isNullOrEmpty(n)):
             t.add_abridge(pref_cyr + n)
     for n in Utils.splitString(abbr_lat, ';', False):
         if (not Utils.isNullOrEmpty(n)):
             t.add_abridge(pref_lat + n)
     UnitsHelper.TERMINS.add(t)
     return u