Lingua-PT-PLNbase
view release on metacpan or search on metacpan
lib/Lingua/PT/PLNbase.pm view on Meta::CPAN
} else {
$par =~ s/\s+/\n/g;
return $par
}
}
sub tratar_pontuacao_interna {
use utf8::all;
my $par = shift;
# print "Estou no pontuação interna... $par\n";
for ($par) {
# proteger o §
s/§/§§/g;
# tratar das reticências
s/\.\.\.+/§/g;
s/\+/\+\+/g;
# tratar de iniciais seguidas por ponto, eventualmente com
# parênteses, no fim de uma frase
s/([A-Z])\. ([A-Z])\.(\s*[])]*\s*)$/$1+ $2+$3 /g;
# iniciais com espaço no meio...
s/ a\. C\./ a+C+/g;
s/ d\. C\./ d+C+/g;
# tratar dos pontos nas abreviaturas
s/\.º/º+/g;
s/º\./+º/g;
s/\.ª/+ª/g;
s/ª\./ª+/g;
#só mudar se não for ambÃguo com ponto final
s/º\. +([^A-ZÃÃÃÃÃÃÃÃ\«])/º+ $1/g;
# formas de tratamento
s/Ex\./Ex+/g; # Ex.
s/ ex\./ ex+/g; # ex.
s/Exa(s*)\./Exa$1+/g; # Exa., Exas.
s/ exa(s*)\./ exa$1+/g; # exa., exas
s/Pe\./Pe+/g;
s/Dr(a*)\./Dr$1+/g; # Dr., Dra.
s/ dr(a*)\./ dr$1+/g; # dr., dra.
s/ drs\./ drs+/g; # drs.
s/Eng(a*)\./Eng$1+/g; # Eng., Enga.
s/ eng(a*)\./ eng$1+/g; # eng., enga.
s/([Ss])r(t*)a\./$1r$2a+/g; # Sra., sra., Srta., srta.
s/([Ss])r(s*)\./$1r$2+/g; # Sr., sr., Srs., srs.
s/ arq\./ arq+/g; # arq.
s/Prof(s*)\./Prof$1+/g; # Prof., Profs.
s/Profa(s*)\./Profa$1+/g; # Profa., Profas.
s/ prof(s*)\./ prof$1+/g; # prof., profs.
s/ profa(s*)\./ profa$1+/g; # profa., profas.
s/\. Sen\./+ Sen+/g; # senador (vem sempre depois de Av. ou R. ...)
s/ua Sen\./ua Sen+/g; # senador (depois [Rr]ua ...)
s/Cel\./Cel+/g; # coronel
s/ d\. / d+ /g; # d. Luciano
# partes de nomes (pospostos)
s/ ([lL])da\./ $1da+/g; # limitada
s/ cia\./ cia+/g; # companhia
s/Cia\./Cia+/g; # companhia
s/Jr\./Jr+/g;
# moradas
s/Av\./Av+/g;
s/ av\./ av+/g;
s/Est(r*)\./Est$1+/g;
s/Lg(o*)\./Lg$1+/g;
s/ lg(o*)\./ lg$1+/g;
s/T(ra)*v\./T$1v+/g; # Trav., Tv.
s/([^N])Pq\./$1Pq+/g; # Parque (cuidado com CNPq)
s/ pq\./ pq+/g; # parque
s/Jd\./Jd+/g; # jardim
s/Ft\./Ft+/g; # forte
s/Cj\./Cj+/g; # conjunto
s/ ([lc])j\./ $1j+/g; # conjunto ou loja
# $par=~s/ al\./ al+/g; # alameda tem que ir para depois de et.al...
# Remover aqui uns warningzitos
s/Tel\./Tel+/g; # Tel.
s/Tel(e[fm])\./Tel$1+/g; # Telef., Telem.
s/ tel\./ tel+/g; # tel.
s/ tel(e[fm])\./ tel$1+/g; # telef., telem.
s/Fax\./Fax+/g; # Fax.
s/ cx\./ cx+/g; # caixa
# abreviaturas greco-latinas
s/ a\.C\./ a+C+/g;
s/ a\.c\./ a+c+/g;
s/ d\.C\./ d+C+/g;
s/ d\.c\./ d+c+/g;
s/ ca\./ ca+/g;
s/etc\.([.,;])/etc+$1/g;
s/etc\.\)([.,;])/etc+)$1/g;
s/etc\. --( *[a-záéÃóúâêà ,])/etc+ --$1/g;
s/etc\.(\)*) ([^A-ZÃÃÃÃÃÃÃ])/etc+$1 $2/g;
s/ et\. *al\./ et+al+/g;
s/ al\./ al+/g; # alameda
s/ q\.b\./ q+b+/g;
s/ i\.e\./ i+e+/g;
s/ibid\./ibid+/g;
s/ id\./ id+/g; # se calhar é preciso ver se não vem sempre precedido de um (
s/op\.( )*cit\./op+$1cit+/g;
s/P\.S\./P+S+/g;
# unidades de medida
s/([0-9][hm])\. ([^A-ZÃÃÃÃÃÃÃÃ])/$1+ $2/g; # 19h., 24m.
s/([0-9][km]m)\. ([^A-ZÃÃÃÃÃÃÃÃ])/$1+ $2/g; # 20km., 24mm.
s/([0-9]kms)\. ([^A-ZÃÃÃÃÃÃÃÃ])/$1+ $2/g; # kms. !!
s/(\bm)\./$1+/g; # metros no MINHO
# outros
s/\(([Oo]rgs*)\.\)/($1+)/g; # (orgs.)
s/\(([Ee]ds*)\.\)/($1+)/g; # (eds.)
s/séc\./séc+/g;
( run in 3.475 seconds using v1.01-cache-2.11-cpan-df04353d9ac )