o
    }o™i?  ã                   @   sT   d Z ddlZddlZddlZddlmZ ddgZdd„ Zd eƒ d ¡Z	d	d„ Z
dS )
z| Code from
https://github.com/NVIDIA/DeepLearningExamples/blob/
master/PyTorch/Translation/Transformer/fairseq/tokenizer.py
é    N)ÚdefaultdictÚget_unicode_categoriesÚtokenize_enc                  C   s:   t tƒ} ttttjd ƒƒD ]}| t |¡  	|¡ q| S )Né   )
r   ÚlistÚmapÚchrÚrangeÚsysÚ
maxunicodeÚunicodedataÚcategoryÚappend)ÚcatsÚc© r   úh/home/ubuntu/.local/lib/python3.10/site-packages/nemo/collections/common/tokenizers/fairseq_tokenizer.pyr   #   s   Ú ÚNoc                 C   s†  |   ¡ } d|  d } t dd| ¡} t dd| ¡} t dd| ¡} t dd| ¡} t dd| ¡} t dt d	 d
| ¡} t dd| ¡} t dd| ¡} t d| ¡r`t dd| ¡} t dd| ¡} t d| ¡sLt dd| ¡} t dd| ¡} t dd| ¡} t dd| ¡} t dd| ¡} t dd| ¡} t dd| ¡} t dd| ¡} |  ¡ }d} tt|ƒƒD ]-}|| }t d |¡}|rÉ| d!¡}|t|ƒd! krÅ	 |d" }n|d" }|d7 }| |7 } q¤t d#d| ¡} t dd| ¡} t dd| ¡} t d$d%| ¡} t d| ¡rt dd&| ¡} t d| ¡sõt d'd(| ¡} t d)d*| ¡} t d+d,| ¡} t d-d.| ¡} t d/d0| ¡} t d1d2| ¡} t d3d4| ¡} t d5d6| ¡} t d7d8| ¡} | S )9Nú z\s+z[\x00-\x1F]r   z\ +z^ z $z([^\s\.\'\`\,\-\w]|[_z])z \g<1> z(\w)\-(?=\w)z
\g<1> @-@ z	\.([\.]+)z DOTMULTI\g<1>z
DOTMULTI\.zDOTMULTI\.([^\.])zDOTDOTMULTI \g<1>ÚDOTDOTMULTIz	([\D])[,]z\g<1> , z	[,]([\D])z , \g<1>z(\d)[,]$z\g<1> ,z([\W\d])[\']([\W\d])z\g<1> \' \g<2>z(\W)[\']([\w\D])z([\w\D])[\']([\W\d])z([\w\D])[\']([\w\D])z\g<1> \'\g<2>z([\W\d])[\']([s])z	^(\S+)\.$r   z .z +z\.\' ?$z . ' z	DOTMULTI.ÚDOTMULTIÚ.z\&z&amp;z\|z&#124;z\<z&lt;z\>z&gt;z\'z&apos;z\"z&quot;z\[z&#91;z\]z&#93;)	ÚstripÚreÚsubÚNUMERICSÚsearchÚsplitr	   ÚlenÚgroup)ÚlineÚwordsÚiÚwordÚmatchÚprer   r   r   r   -   sh   þ


ÿ)Ú__doc__r   r
   r   Úcollectionsr   Ú__all__r   Újoinr   r   r   r   r   r   Ú<module>   s   