/usr/local/lib/python3.6/site-packages/sacremoses/__pycache__
Edit: /usr/local/lib/python3.6/site-packages/sacremoses/__pycache__/truecase.cpython-36.pyc (11778B)
3
EgH @ s d dl mZ d dlZd dlmZmZ d dlmZ d dlm Z d dl
mZ d dlm
Z
d dlmZmZ d dlZejd d k rd dlZd dlZejZejed
e
ZG dd deZG d
d deZddgZdS ) )print_functionN)defaultdictCounter)partial)chain) text_type)Perluniprops)parallelize_preprocessgrouper zTYou should really be using Python3!!! Tick tock, tick tock, https://pythonclock.org/c s e Zd ZdZedjejdZedjejdZ edjejdZ
d$ fdd Zd%d
dZd&d
dZ
d'ddZd(ddZd)ddZd*ddZd+ddZedd Zdd Zdd Zd d! Zd"d# Z ZS ),MosesTruecaserz
This is a Python port of the Moses Truecaser from
https://github.com/moses-smt/mosesdecoder/blob/master/scripts/recaser/train-truecaser.perl
https://github.com/moses-smt/mosesdecoder/blob/master/scripts/recaser/truecase.perl
Lowercase_LetterUppercase_LetterNutf8c sz t t| j tjdj| j| j| j| _ tjd| _
ddddh| _ddd d
ddd
dh| _|| _
|| _|rv| j|| _dS )a.
:param load_from:
:type load_from:
:param is_asr: A flag to indicate that model is for ASR. ASR input has
no case, make sure it is lowercase, and make sure known are cased
eg. 'i' to be uppercased even if i is known.
:type is_asr: bool
z[{}{}{}]z(<.*(?<=>))(.*)((?=)[^>]*>).:?!(["'z'z"z[z]N)superr __init__recompileformatr r Titlecase_LetterSKIP_LETTERS_REGEXZXML_SPLIT_REGXSENT_ENDDELAYED_SENT_STARTencodingis_asr_load_modelmodel)selfZ load_fromr# r" ) __class__ =/usr/local/lib/python3.6/site-packages/sacremoses/truecase.pyr - s$ zMosesTruecaser.__init__Fc C s d}g }xt |D ]\}}tjd|r*qn|| jkr6q| rL|| jkrLd}q| jj|s^d}qd}|sld}n"|r|d j rd}n|dkrd}d}|dkr|j|j ||f qW |S )z
This function checks through each tokens in a sentence and returns the
appropriate weight of each surface token form.
Tz(<\S[^>]*>)Fr g?) enumerater searchr! r r islowerappendlower)r&