/usr/local/lib/python3.6/site-packages/sacremoses/__pycache__
NameSizeModeActions
chinese.cpython-36.pyc147100644editdlrm
cli.cpython-36.pyc65190644editdlrm
corpus.cpython-36.pyc49150644editdlrm
indic.cpython-36.pyc9490644editdlrm
normalize.cpython-36.pyc48290644editdlrm
sent_tokenize.cpython-36.pyc7210644editdlrm
subwords.cpython-36.pyc46500644editdlrm
tokenize.cpython-36.pyc165930644editdlrm
truecase.cpython-36.pyc117780644editdlrm
util.cpython-36.pyc51300644editdlrm
__init__.cpython-36.pyc2990644editdlrm
__main__.cpython-36.pyc2240644editdlrm
Edit: /usr/local/lib/python3.6/site-packages/sacremoses/__pycache__/tokenize.cpython-36.pyc (16593B)
3 Egz@sddlZddlmZddlmZddlmZddlmZddlm Z m Z eZ eZ Gddde ZGd d d e Zdd gZdS) N) text_type) Perluniprops)NonbreakingPrefixes)is_cjk)VIRAMASNUKTASc2seZdZdZedjejdZedjejddje dje Z edjejdZ edjejdZ edjejddje dje ZedjejdZdZdZdZdZdZdje dfZdje ddfZdZdZdZdjedfZdjedfZdjedfZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'd0jed1d2fZ(d3jed1d2fZ)d4jed1d2fZ*d5je e dfZ+d6je dd7fZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZdZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdjeddfZZdjeeddfZ[djeddfZ\djeddfZ]djeddfZ^eZe[e\e]e^gZ_djeddfZ`djeddfZadjeddfZbdjeddfZce`eaebecgZddZedZfdZgdZhdZidZjdZkeeeee e!e"e#e$e%e&e(e)e*e+e,e-e.e/e0e1e2e3e4e5e6e7e8e9e:e;ee?e@eAeBeCeDeEeFeGeHeIeJeKeLeMeNg2Zle'eOePeQeReSeTeUeVeWg ZmeReSeTeUeVeWeXeYgZnegeheiejekgZoddddgZpdfdd ZqddZrddZsddZtddZuddZvddZwddZxdddZydddZzZ{S)MosesTokenizerz This is a Python port of the Moses Tokenizer from https://github.com/moses-smt/mosesdecoder/blob/master/scripts/tokenizer/tokenizer.perl IsNIsAlnumIsScIsSoIsAlphaIsLower\s+ [\000-\037] +^  $z([^{}\s\.'\`\,\-]) \1 z ([{alphanum}])\-(?=[{alphanum}]))alphanumz\1 @-@ \.([\.]+) DOTMULTIDOTMULTI\.([^\.]) DOTDOTMULTI  DOTMULTI\. DOTDOTMULTIz ([^{}])[,]z\1 , z [,]([^{}])z , \1z ([{}])[,]$^```` ^"^`([^`])` \1^'` ([ ([{<])"\1 `` ([ ([{<])``([ ([{<])`([^`])\1 ` \2 ([ ([{<])'\1 ` \.\.\. _ELLIPSIS_ _ELLIPSIS_z([^{numbers}])[,]([^{numbers}]))Znumbersz\1 , \2z([{numbers}])[,]([^{numbers}])z([^{numbers}])[,]([{numbers}])z([;:@#\$%&{}{}])z([{alphanum}])\/([{alphanum}])z $1 \@\/\@ $2([^.])([.])([\]\)}>"']*) ?$\1 \2\3([?!])([\]\[\(\){}<>])\(-LRB-\)-RRB-\[-LSB-\]-RSB-\{-LCB-\}-RCB--- -- ^$" '' ([^'])' \1 ' ([^'])' '([sSmMdD])  '\1 'll  'll 're  're 've  've n't  n't 'LL  'LL 'RE  'RE 'VE  'VE N'T  N'T ([Cc])annot \1an not ([Dd])'ye  \1' ye ([Gg])imme \1im me ([Gg])onna \1on na ([Gg])otta \1ot ta ([Ll])emme \1em me ([Mm])ore'n \1ore 'n '([Tt])is  '\1 is '([Tt])was '\1 was ([Ww])anna \1an na  *^ * *$&&\||<<>>\''\""[]]z([^{alpha}])[']([^{alpha}]))alphaz\1 ' \2z([^{alpha}{isn}])[']([{alpha}]))risnz([{alpha}])[']([^{alpha}])z([{alpha}])[']([{alpha}])z\1 '\2z([{isn}])[']([s]))rz([^{alpha}])[']([{alpha}])z\1' \2 ' \.' ?$ . ' z <\/?\S+\/?>z#<\S+( [a-zA-Z0-9]+\="?[^"]")+ ?\/?>z#<\S+( [a-zA-Z0-9]+\='?[^']')+ ?\/?>z'[\w\-\_\.]+\@([\w\-\_]+\.)+[a-zA-Z]{2,}z/(http[s]?|ftp):\/\/[^:\/\s]+(\/\w+)*\/[\w\-\.]+z"((https?|ftp|rsync)://|www\.)[^ ]*z@[a-zA-Z0-9_]+z#[a-zA-Z0-9_]+enNc sttj|_ddtj|D_|rg_t|dB}x:|D]2}|j}|rF|j d rF|jkrFjj |qFWWdQRXfddjD_ jdkrd }jdkr|t d j tjd 7}jdkr|t d j tjd 7}jdkrF|t d j tjd 7}|t d j tjd7}|t d j tjd 7}j|7_j|7_djjdf_djjddf_djjddf_dS)NcSsg|] }|jqS)strip).0Z_nbprr=/usr/local/lib/python3.6/site-packages/sacremoses/tokenize.py 1sz+MosesTokenizer.__init__..r#cs$g|]}j|r|jddqS)rr)has_numeric_only rpartition)rw)selfrrr?szhjakocjkr ZHangulHanHiraganaKatakanaz([^{}\s\.'\`\,\-])z \1 z ([{alphanum}])\-(?=[{alphanum}]))rz\1 @-@ z([{alphanum}])\/([{alphanum}])z $1 \@\/\@ $2)rrrr)rr)rr)rr)superr__init__langnonbreaking_prefixeswordsNONBREAKING_PREFIXESopenr startswithappendNUMERIC_ONLY_PREFIXESrjoin perlunipropscharsrr formatPAD_NOT_ISALNUMAGGRESSIVE_HYPHEN_SPLITINTRATOKEN_SLASHES)rrZ custom_nonbreaking_prefixes_fileZfinlineZ cjk_chars) __class__)rrr*s<           zMosesTokenizer.__init__cCs@tjdd|}x,tjd|r:tjdd|}tjdd|}qW|S)Nz \.([\.]+)z DOTMULTI\1z DOTMULTI\.zDOTMULTI\.([^\.])zDOTDOTMULTI \1r)resubsearch)rtextrrrreplace_multidots[s z MosesTokenizer.replace_multidotscCs.xtjd|rtjdd|}qWtjdd|S)Nrz DOTMULTI.ZDOTMULTI.)rrr)rrrrrrestore_multidotsbsz MosesTokenizer.restore_multidotscCst|jt|j S)N)set differencer)rrrrrislowergszMosesTokenizer.islowercCstt|jt|jS)N)anyr intersectionr)rrrrr isanyalphajszMosesTokenizer.isanyalphacCsttjd|S)Nz[\s]+(\#NUMERIC_ONLY\#))boolrr)rrrrrrmszMosesTokenizer.has_numeric_onlycCs|j}t|}xt|D]\}}tjd|}|r|jd}d|krN|j|s||jkrb||jks||dkr||dr|j ||ddrq||jkr|d|krtjd||drq|d||<qWdj |S)Nz ^(\S+)\.$rrz^[0-9]+z .r) splitlen enumeraterrgrouprrrrr)rrtokensZ num_tokensitokenZtoken_ends_with_periodprefixrrrhandles_nonbreaking_prefixesps&        z+MosesTokenizer.handles_nonbreaking_prefixescCs&x |jD]\}}tj|||}qW|S)N)MOSES_ESCAPE_XML_REGEXESrr)rrregexp substitutionrrr escape_xmlszMosesTokenizer.escape_xmlFcCsft|}x |jD]\}}tj|||}qW|j|}x |jD]\}}tj|||}q.ZTHISISPROTECTEDrfrit)rr)rDEDUPLICATE_SPACE ASCII_JUNKrrrstrzfillreplacerrrrCOMMA_SEPARATE_1COMMA_SEPARATE_2COMMA_SEPARATE_3rENGLISH_SPECIFIC_APOSTROPHEFR_IT_SPECIFIC_APOSTROPHENON_SPECIFIC_APOSTROPHErTRAILING_DOT_APOSTROPHErrr) rrZaggressive_dash_splitsrescapeZprotected_patternsrrZprotected_tokensrrZ substituitionr)rrtokenizesT            zMosesTokenizer.tokenize)rr)rr )rr)rr )rr )rr)rr)rr)rr)r r)r!r")r#r$)r%r&)r'r&)r(r))r*r+)r,r-)r.r,)r/r0)r1r)r2r)r3r4)r5r6)r7r8)r9r:)r;r<)r=r>)r?r@)rAr)rBr)rCrD)rErF)rGrF)rHrI)rJrK)rLrM)rNrO)rPrQ)rRrS)rTrU)rVrW)rXrY)rZr[)r\r])r^r_)r`ra)rbrc)rdre)rfrg)rhri)rjrk)rlrm)rnr)ror )rpr )rqrr)rsrt)rurv)rwrx)ryrz)r{r|)r7r})r~r)ryr)rr)rN)F)FFTN)|__name__ __module__ __qualname____doc__rrrrr rrr r r rrrrZ MID_STRIPZ LEFT_STRIPZ RIGHT_STRIPrrrZ REPLACE_DOT_WITH_LITERALSTRING_1Z REPLACE_DOT_WITH_LITERALSTRING_2Z REPLACE_DOT_WITH_LITERALSTRING_3rrrZDIRECTIONAL_QUOTE_1ZDIRECTIONAL_QUOTE_2ZDIRECTIONAL_QUOTE_3ZDIRECTIONAL_QUOTE_4ZDIRECTIONAL_QUOTE_5ZDIRECTIONAL_QUOTE_6ZDIRECTIONAL_QUOTE_7ZDIRECTIONAL_QUOTE_8ZREPLACE_ELLIPSISZRESTORE_ELLIPSISZCOMMA_1ZCOMMA_2ZCOMMA_3ZSYMBOLSrZ FINAL_PERIODZPAD_QUESTION_EXCLAMATION_MARKZPAD_PARENTHESISZCONVERT_PARENTHESIS_1ZCONVERT_PARENTHESIS_2ZCONVERT_PARENTHESIS_3ZCONVERT_PARENTHESIS_4ZCONVERT_PARENTHESIS_5ZCONVERT_PARENTHESIS_6ZPAD_DOUBLE_DASHESZPAD_START_OF_STRZPAD_END_OF_STRZCONVERT_DOUBLE_TO_SINGLE_QUOTESZHANDLES_SINGLE_QUOTESZ APOSTROPHEZ CONTRACTION_1Z CONTRACTION_2Z CONTRACTION_3Z CONTRACTION_4Z CONTRACTION_5Z CONTRACTION_6Z CONTRACTION_7Z CONTRACTION_8Z CONTRACTION_9ZCONTRACTION_10ZCONTRACTION_11ZCONTRACTION_12ZCONTRACTION_13ZCONTRACTION_14ZCONTRACTION_15ZCONTRACTION_16ZCONTRACTION_17ZCONTRACTION_18ZCONTRACTION_19ZCLEAN_EXTRA_SPACE_1ZCLEAN_EXTRA_SPACE_2ZCLEAN_EXTRA_SPACE_3ZESCAPE_AMPERSANDZ ESCAPE_PIPEZESCAPE_LEFT_ANGLE_BRACKETZESCAPE_RIGHT_ANGLE_BRACKETZESCAPE_SINGLE_QUOTEZESCAPE_DOUBLE_QUOTEZESCAPE_LEFT_SQUARE_BRACKETZESCAPE_RIGHT_SQUARE_BRACKETZ EN_SPECIFIC_1Z EN_SPECIFIC_2Z EN_SPECIFIC_3Z EN_SPECIFIC_4Z EN_SPECIFIC_5rZFR_IT_SPECIFIC_1ZFR_IT_SPECIFIC_2ZFR_IT_SPECIFIC_3ZFR_IT_SPECIFIC_4rrrZBASIC_PROTECTED_PATTERN_1ZBASIC_PROTECTED_PATTERN_2ZBASIC_PROTECTED_PATTERN_3ZBASIC_PROTECTED_PATTERN_4ZBASIC_PROTECTED_PATTERN_5rrrZBASIC_PROTECTED_PATTERNSZWEB_PROTECTED_PATTERNSrrrrrrrrrr __classcell__rr)rrrs&&   1) rc6seZdZdZedjejdZedjejdZ edjejdZ djZ e j dd fZdkZdlZdmZdnZdoZdpZdqZdrZdsZdtZduZeeeeeeeeeeeg Zdddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;dd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRg6ZdSdTdUdVdWgZdXdYd/d1dZd[d\d]d^g Zd_jed jeed jeed jeZdvfdadb Z dcddZ!dwdfdgZ"dxdhdiZ#Z$S)yMosesDetokenizerz This is a Python port of the Moses Detokenizer from https://github.com/moses-smt/mosesdecoder/blob/master/scripts/tokenizer/detokenizer.perl r r rr  \@\-\@ -z {2,}r||<ru>rw"rC''[[]r~&rq&bar;&bra;&ket;NnAaÄäZssaZSsaussäuSsäZstaustäZStauStäZhunZHunZhynZHynZhanruhänuHänuhönuHönunZUnZynZYnZanZAnuänuÄnuönuÖnseenZSeenZllaZLlaulläuLläZltaZLtaultäuLtäZlleZLleZksiZKsiZkseZKseZttaZTtaZineZInenisiZmmeZnneZnsaruköpaupäZkaanukäänZkinz^({})({})?({})$rcstt|j||_dS)N)rrrr)rr)rrrrszMosesDetokenizer.__init__cCs&x |jD]\}}tj|||}qW|S)N)MOSES_UNESCAPE_XML_REGEXESrr)rrrrrrr unescape_xmlszMosesDetokenizer.unescape_xmlTc Cs<djdj|}t|}|j\}}tj|||}|r>|j|}dddddd}d}d} |j}xtt |D]\} } t | dr|j dkr| dkrt || dd$r| | 7} n | || 7} d}qntj d|j d | r| || 7} d}qntj d | r,|j d krtj d | r| d7} | | 7} d}qn|j d krf| dkrftj dj|j| rf| | 7} d}qn|j dkr| dkrtj d|d%rtj d|d&rtj d| r| | 7} d}qn|j d'kr | t|dkr tj dj|j| r tj dj|j|| dr | || 7} d}qn|j dkr| t|dkrtj dj|j| rtj d|| drtj d|| dtjr| || || d7} t|dd}qntj d| r| } tj d| rd} |j| d|| <|j dkr| dkrd|| <|j dkr| dkrd|| <|| ddkr|j d krr| d krr| dkrrtj d!|| drr| | 7} d}n | || 7} d}|| d7<n| | 7} d}|| d7<qn|j d"krtj d#|| drtj |j| r| || 7} d}qn| || 7} d}qnW|j\}}tj||| } | j} |r4| S| jS)(z Python port of the Moses detokenizer. :param tokens: A list of strings, i.e. tokenized text. :type tokens: list(str) :return: str z {} rr)rrCz```z''r rrz^[u\(\[\{\¿\¡]+$z^[\,\.\?\!\:\;\\\%\}\]\)]+$rz^[\?\!\:\;\\\%]$rz^['][{}]csz^[0-9]+$z^[.,]$rgaz[{}][']$z^[{}]ru^[-–]$z ^li$|^mail.*Nu^[\'\"„“`]+$u^[„“”]+$rCu„u“rz[s]$fiz:$r)rrr)rrrrrrrrriterrrrr rrrnextget FINNISH_REGEX ONE_SPACEr) rrrunescaperrrZ quote_countsZ prepend_spaceZdetokenized_textrrZnormalized_quorrrrs                     zMosesDetokenizer.tokenizecCs|j|||S)z&Duck-typing the abstract *tokenize()*.)r)rrrrrrr detokenize8szMosesDetokenizer.detokenize)rr)rr)rru)rrw)rrC)rr)rr)rr~)rrq)rr)rr)rr~)r)TT)TT)%rrrrrrrrr rr rrcompiler ZUNESCAPE_FACTOR_SEPARATORZUNESCAPE_LEFT_ANGLE_BRACKETZUNESCAPE_RIGHT_ANGLE_BRACKETZUNESCAPE_DOUBLE_QUOTEZUNESCAPE_SINGLE_QUOTEZ UNESCAPE_SYNTAX_NONTERMINAL_LEFTZ!UNESCAPE_SYNTAX_NONTERMINAL_RIGHTZUNESCAPE_AMPERSANDZ UNESCAPE_FACTOR_SEPARATOR_LEGACYZ'UNESCAPE_SYNTAX_NONTERMINAL_LEFT_LEGACYZ(UNESCAPE_SYNTAX_NONTERMINAL_RIGHT_LEGACYrZFINNISH_MORPHSET_1ZFINNISH_MORPHSET_2ZFINNISH_MORPHSET_3rr rrrrrrr)rrrs   r)rsixrZsacremoses.corpusrrZsacremoses.utilrZsacremoses.indicrrrrobjectrr__all__rrrrs     #