mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-25 17:36:30 +03:00
Update Portuguese Language (#2790)
* Add words to portuguese language _num_words * Add words to portuguese language _num_words * Portuguese - Add/remove stopwords, fix tokenizer, add currency symbols * Extended punctuation and norm_exceptions in the Portuguese language
This commit is contained in:
parent
05b6103a0c
commit
6c498f9ff4
|
@ -6,8 +6,10 @@ from .stop_words import STOP_WORDS
|
|||
from .lex_attrs import LEX_ATTRS
|
||||
from .lemmatizer import LOOKUP
|
||||
from .tag_map import TAG_MAP
|
||||
from .norm_exceptions import NORM_EXCEPTIONS
|
||||
|
||||
from ..tokenizer_exceptions import BASE_EXCEPTIONS
|
||||
from .punctuation import TOKENIZER_INFIXES, TOKENIZER_PREFIXES
|
||||
from ..norm_exceptions import BASE_NORMS
|
||||
from ...language import Language
|
||||
from ...attrs import LANG, NORM
|
||||
|
@ -17,13 +19,14 @@ from ...util import update_exc, add_lookups
|
|||
class PortugueseDefaults(Language.Defaults):
|
||||
lex_attr_getters = dict(Language.Defaults.lex_attr_getters)
|
||||
lex_attr_getters[LANG] = lambda text: 'pt'
|
||||
lex_attr_getters[NORM] = add_lookups(Language.Defaults.lex_attr_getters[NORM], BASE_NORMS)
|
||||
lex_attr_getters[NORM] = add_lookups(Language.Defaults.lex_attr_getters[NORM], BASE_NORMS, NORM_EXCEPTIONS)
|
||||
lex_attr_getters.update(LEX_ATTRS)
|
||||
tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS)
|
||||
stop_words = STOP_WORDS
|
||||
lemma_lookup = LOOKUP
|
||||
tag_map = TAG_MAP
|
||||
|
||||
infixes = TOKENIZER_INFIXES
|
||||
prefixes = TOKENIZER_PREFIXES
|
||||
|
||||
class Portuguese(Language):
|
||||
lang = 'pt'
|
||||
|
|
|
@ -23,7 +23,7 @@ _ordinal_words = ['primeiro', 'segundo', 'terceiro', 'quarto', 'quinto', 'sexto'
|
|||
|
||||
|
||||
def like_num(text):
|
||||
text = text.replace(',', '').replace('.', '')
|
||||
text = text.replace(',', '').replace('.', '').replace('º','').replace('ª','')
|
||||
if text.isdigit():
|
||||
return True
|
||||
if text.count('/') == 1:
|
||||
|
|
23
spacy/lang/pt/norm_exceptions.py
Normal file
23
spacy/lang/pt/norm_exceptions.py
Normal file
|
@ -0,0 +1,23 @@
|
|||
# coding: utf8
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# These exceptions are used to add NORM values based on a token's ORTH value.
|
||||
# Individual languages can also add their own exceptions and overwrite them -
|
||||
# for example, British vs. American spelling in English.
|
||||
|
||||
# Norms are only set if no alternative is provided in the tokenizer exceptions.
|
||||
# Note that this does not change any other token attributes. Its main purpose
|
||||
# is to normalise the word representations so that equivalent tokens receive
|
||||
# similar representations. For example: $ and € are very different, but they're
|
||||
# both currency symbols. By normalising currency symbols to $, all symbols are
|
||||
# seen as similar, no matter how common they are in the training data.
|
||||
|
||||
|
||||
NORM_EXCEPTIONS = {
|
||||
"R$": "$", # Real
|
||||
"r$": "$", # Real
|
||||
"Cz$": "$", # Cruzado
|
||||
"cz$": "$", # Cruzado
|
||||
"NCz$": "$", # Cruzado Novo
|
||||
"ncz$": "$" # Cruzado Novo
|
||||
}
|
18
spacy/lang/pt/punctuation.py
Normal file
18
spacy/lang/pt/punctuation.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
# coding: utf8
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from ..punctuation import TOKENIZER_PREFIXES as BASE_TOKENIZER_PREFIXES
|
||||
from ..punctuation import TOKENIZER_SUFFIXES as BASE_TOKENIZER_SUFFIXES
|
||||
from ..punctuation import TOKENIZER_INFIXES as BASE_TOKENIZER_INFIXES
|
||||
|
||||
_prefixes = ([r'\w{1,3}\$'] + BASE_TOKENIZER_PREFIXES)
|
||||
|
||||
_suffixes = (BASE_TOKENIZER_SUFFIXES)
|
||||
|
||||
_infixes = ([r'(\w+-\w+(-\w+)*)'] +
|
||||
BASE_TOKENIZER_INFIXES
|
||||
)
|
||||
|
||||
TOKENIZER_PREFIXES = _prefixes
|
||||
TOKENIZER_SUFFIXES = _suffixes
|
||||
TOKENIZER_INFIXES = _infixes
|
|
@ -3,67 +3,66 @@ from __future__ import unicode_literals
|
|||
|
||||
|
||||
STOP_WORDS = set("""
|
||||
à às acerca adeus agora ainda algo algumas alguns ali além ambas ambos ano
|
||||
anos antes ao aos apenas apoio apoia apontar após aquela aquelas aquele aqueles
|
||||
aqui aquilo área as assim através atrás até aí
|
||||
à às área acerca ademais adeus agora ainda algo algumas alguns ali além ambas ambos antes
|
||||
ao aos apenas apoia apoio apontar após aquela aquelas aquele aqueles aqui aquilo
|
||||
as assim através atrás até aí
|
||||
|
||||
baixo bastante bem boa bom breve
|
||||
|
||||
cada caminho catorze cedo cento certamente certeza cima cinco coisa com como
|
||||
comprido comprida conhecida conhecido conselho contra corrente custa cá
|
||||
comprida comprido conhecida conhecido conselho contra contudo corrente cuja
|
||||
cujo custa cá
|
||||
|
||||
da daquela daquele dar das de debaixo demais dentro depois desde desligada
|
||||
desligado dessa desse desta deste deve devem deverá dez dezanove dezasseis
|
||||
dezassete dezoito dia diante direita diz dizem dizer do dois dos doze duas dá
|
||||
dão dúvida
|
||||
da daquela daquele dar das de debaixo demais dentro depois des desde dessa desse
|
||||
desta deste deve devem deverá dez dezanove dezasseis dezassete dezoito diante
|
||||
direita disso diz dizem dizer do dois dos doze duas dá dão
|
||||
|
||||
é ela elas ele eles em embora enquanto entre então era és essa essas esse esses
|
||||
esta estado estar estará estas estava este estes esteve estive estivemos
|
||||
estiveram estiveste estivestes estou está estás estão eu exemplo
|
||||
é és ela elas ele eles em embora enquanto entre então era essa essas esse esses esta
|
||||
estado estar estará estas estava este estes esteve estive estivemos estiveram
|
||||
estiveste estivestes estou está estás estão eu eventual exemplo
|
||||
|
||||
falta fará favor faz fazeis fazem fazemos fazer fazes fazia faço fez fim final
|
||||
foi fomos for fora foram forma foste fostes fui
|
||||
|
||||
geral grande grandes grupo
|
||||
|
||||
hoje horas há
|
||||
inclusive iniciar inicio ir irá isso isto
|
||||
|
||||
iniciar inicio ir irá isso isto já
|
||||
já
|
||||
|
||||
lado ligado local logo longe lugar lá
|
||||
lado lhe ligado local logo longe lugar lá
|
||||
|
||||
maior maioria maiorias mais mal mas me meio menor menos meses mesmo meu meus
|
||||
mil minha minhas momento muito muitos máximo mês
|
||||
maior maioria maiorias mais mal mas me meio menor menos meses mesmo meu meus mil
|
||||
minha minhas momento muito muitos máximo mês
|
||||
|
||||
na nada naquela naquele nas nem nenhuma nessa nesse nesta neste no noite nome
|
||||
nos nossa nossas nosso nossos nova novas nove novo novos num numa nunca nuns
|
||||
não nível nós número números
|
||||
na nada naquela naquele nas nem nenhuma nessa nesse nesta neste no nos nossa
|
||||
nossas nosso nossos nova novas nove novo novos num numa nunca nuns não nível nós
|
||||
número números
|
||||
|
||||
obra obrigada obrigado oitava oitavo oito onde ontem onze os ou outra outras
|
||||
outro outros
|
||||
obrigada obrigado oitava oitavo oito onde ontem onze ora os ou outra outras outros
|
||||
|
||||
para parece parte partir pegar pela pelas pelo pelos perto pessoas pode podem
|
||||
poder poderá podia ponto pontos por porque porquê posição possivelmente posso
|
||||
possível pouca pouco povo primeira primeiro próprio próxima próximo puderam pôde
|
||||
põe põem
|
||||
para parece parte partir pegar pela pelas pelo pelos perto pode podem poder poderá
|
||||
podia pois ponto pontos por porquanto porque porquê portanto porém posição
|
||||
possivelmente posso possível pouca pouco povo primeira primeiro próprio próxima
|
||||
próximo puderam pôde põe põem
|
||||
|
||||
qual qualquer quando quanto quarta quarto quatro que quem quer querem quero
|
||||
quais qual qualquer quando quanto quarta quarto quatro que quem quer querem quero
|
||||
questão quieta quieto quinta quinto quinze quê
|
||||
|
||||
relação
|
||||
|
||||
sabe saber se segunda segundo sei seis sem sempre ser seria sete seu seus sexta
|
||||
sexto sim sistema sob sobre sois somente somos sou sua suas são sétima sétimo
|
||||
sexto sim sistema sob sobre sois somente somos sou sua suas são sétima sétimo só
|
||||
|
||||
tal talvez também tanta tanto tarde te tem temos tempo tendes tenho tens tentar
|
||||
tentaram tente tentei ter terceira terceiro teu teus teve tipo tive tivemos
|
||||
tiveram tiveste tivestes toda todas todo todos trabalhar trabalho treze três tu
|
||||
tua tuas tudo tão têm
|
||||
tais tal talvez também tanta tanto tarde te tem temos tempo tendes tenho tens
|
||||
tentar tentaram tente tentei ter terceira terceiro teu teus teve tipo tive
|
||||
tivemos tiveram tiveste tivestes toda todas todo todos treze três tu tua tuas
|
||||
tudo tão têm
|
||||
|
||||
último um uma umas uns usa usar
|
||||
um uma umas uns usa usar último
|
||||
|
||||
vai vais valor veja vem vens ver verdade verdadeira verdadeiro vez vezes viagem
|
||||
vinda vindo vinte você vocês vos vossa vossas vosso vossos vários vão vêm vós
|
||||
vai vais valor veja vem vens ver vez vezes vinda vindo vinte você vocês vos vossa
|
||||
vossas vosso vossos vários vão vêm vós
|
||||
|
||||
zero
|
||||
""".split())
|
||||
|
|
|
@ -67,7 +67,7 @@ for orth in _per_pron + _dem_pron + _und_pron:
|
|||
for orth in [
|
||||
"Adm.", "Dr.", "e.g.", "E.g.", "E.G.", "Gen.", "Gov.", "i.e.", "I.e.",
|
||||
"I.E.", "Jr.", "Ltd.", "p.m.", "Ph.D.", "Rep.", "Rev.", "Sen.", "Sr.",
|
||||
"Sra.", "vs."]:
|
||||
"Sra.", "vs.", "tel.", "pág.", "pag."]:
|
||||
_exc[orth] = [{ORTH: orth}]
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user