mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-26 18:06:29 +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 .lex_attrs import LEX_ATTRS
|
||||||
from .lemmatizer import LOOKUP
|
from .lemmatizer import LOOKUP
|
||||||
from .tag_map import TAG_MAP
|
from .tag_map import TAG_MAP
|
||||||
|
from .norm_exceptions import NORM_EXCEPTIONS
|
||||||
|
|
||||||
from ..tokenizer_exceptions import BASE_EXCEPTIONS
|
from ..tokenizer_exceptions import BASE_EXCEPTIONS
|
||||||
|
from .punctuation import TOKENIZER_INFIXES, TOKENIZER_PREFIXES
|
||||||
from ..norm_exceptions import BASE_NORMS
|
from ..norm_exceptions import BASE_NORMS
|
||||||
from ...language import Language
|
from ...language import Language
|
||||||
from ...attrs import LANG, NORM
|
from ...attrs import LANG, NORM
|
||||||
|
@ -17,13 +19,14 @@ from ...util import update_exc, add_lookups
|
||||||
class PortugueseDefaults(Language.Defaults):
|
class PortugueseDefaults(Language.Defaults):
|
||||||
lex_attr_getters = dict(Language.Defaults.lex_attr_getters)
|
lex_attr_getters = dict(Language.Defaults.lex_attr_getters)
|
||||||
lex_attr_getters[LANG] = lambda text: 'pt'
|
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)
|
lex_attr_getters.update(LEX_ATTRS)
|
||||||
tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS)
|
tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS)
|
||||||
stop_words = STOP_WORDS
|
stop_words = STOP_WORDS
|
||||||
lemma_lookup = LOOKUP
|
lemma_lookup = LOOKUP
|
||||||
tag_map = TAG_MAP
|
tag_map = TAG_MAP
|
||||||
|
infixes = TOKENIZER_INFIXES
|
||||||
|
prefixes = TOKENIZER_PREFIXES
|
||||||
|
|
||||||
class Portuguese(Language):
|
class Portuguese(Language):
|
||||||
lang = 'pt'
|
lang = 'pt'
|
||||||
|
|
|
@ -23,7 +23,7 @@ _ordinal_words = ['primeiro', 'segundo', 'terceiro', 'quarto', 'quinto', 'sexto'
|
||||||
|
|
||||||
|
|
||||||
def like_num(text):
|
def like_num(text):
|
||||||
text = text.replace(',', '').replace('.', '')
|
text = text.replace(',', '').replace('.', '').replace('º','').replace('ª','')
|
||||||
if text.isdigit():
|
if text.isdigit():
|
||||||
return True
|
return True
|
||||||
if text.count('/') == 1:
|
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("""
|
STOP_WORDS = set("""
|
||||||
à às acerca adeus agora ainda algo algumas alguns ali além ambas ambos ano
|
à às área acerca ademais adeus agora ainda algo algumas alguns ali além ambas ambos antes
|
||||||
anos antes ao aos apenas apoio apoia apontar após aquela aquelas aquele aqueles
|
ao aos apenas apoia apoio apontar após aquela aquelas aquele aqueles aqui aquilo
|
||||||
aqui aquilo área as assim através atrás até aí
|
as assim através atrás até aí
|
||||||
|
|
||||||
baixo bastante bem boa bom breve
|
baixo bastante bem boa bom breve
|
||||||
|
|
||||||
cada caminho catorze cedo cento certamente certeza cima cinco coisa com como
|
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
|
da daquela daquele dar das de debaixo demais dentro depois des desde dessa desse
|
||||||
desligado dessa desse desta deste deve devem deverá dez dezanove dezasseis
|
desta deste deve devem deverá dez dezanove dezasseis dezassete dezoito diante
|
||||||
dezassete dezoito dia diante direita diz dizem dizer do dois dos doze duas dá
|
direita disso diz dizem dizer do dois dos doze duas dá dão
|
||||||
dão dúvida
|
|
||||||
|
|
||||||
é ela elas ele eles em embora enquanto entre então era és essa essas esse esses
|
é és ela elas ele eles em embora enquanto entre então era essa essas esse esses esta
|
||||||
esta estado estar estará estas estava este estes esteve estive estivemos
|
estado estar estará estas estava este estes esteve estive estivemos estiveram
|
||||||
estiveram estiveste estivestes estou está estás estão eu exemplo
|
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
|
falta fará favor faz fazeis fazem fazemos fazer fazes fazia faço fez fim final
|
||||||
foi fomos for fora foram forma foste fostes fui
|
foi fomos for fora foram forma foste fostes fui
|
||||||
|
|
||||||
geral grande grandes grupo
|
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
|
maior maioria maiorias mais mal mas me meio menor menos meses mesmo meu meus mil
|
||||||
mil minha minhas momento muito muitos máximo mês
|
minha minhas momento muito muitos máximo mês
|
||||||
|
|
||||||
na nada naquela naquele nas nem nenhuma nessa nesse nesta neste no noite nome
|
na nada naquela naquele nas nem nenhuma nessa nesse nesta neste no nos nossa
|
||||||
nos nossa nossas nosso nossos nova novas nove novo novos num numa nunca nuns
|
nossas nosso nossos nova novas nove novo novos num numa nunca nuns não nível nós
|
||||||
não nível nós número números
|
número números
|
||||||
|
|
||||||
obra obrigada obrigado oitava oitavo oito onde ontem onze os ou outra outras
|
obrigada obrigado oitava oitavo oito onde ontem onze ora os ou outra outras outros
|
||||||
outro outros
|
|
||||||
|
|
||||||
para parece parte partir pegar pela pelas pelo pelos perto pessoas pode podem
|
para parece parte partir pegar pela pelas pelo pelos perto pode podem poder poderá
|
||||||
poder poderá podia ponto pontos por porque porquê posição possivelmente posso
|
podia pois ponto pontos por porquanto porque porquê portanto porém posição
|
||||||
possível pouca pouco povo primeira primeiro próprio próxima próximo puderam pôde
|
possivelmente posso possível pouca pouco povo primeira primeiro próprio próxima
|
||||||
põe põem
|
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ê
|
questão quieta quieto quinta quinto quinze quê
|
||||||
|
|
||||||
relação
|
relação
|
||||||
|
|
||||||
sabe saber se segunda segundo sei seis sem sempre ser seria sete seu seus sexta
|
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
|
tais tal talvez também tanta tanto tarde te tem temos tempo tendes tenho tens
|
||||||
tentaram tente tentei ter terceira terceiro teu teus teve tipo tive tivemos
|
tentar tentaram tente tentei ter terceira terceiro teu teus teve tipo tive
|
||||||
tiveram tiveste tivestes toda todas todo todos trabalhar trabalho treze três tu
|
tivemos tiveram tiveste tivestes toda todas todo todos treze três tu tua tuas
|
||||||
tua tuas tudo tão têm
|
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
|
vai vais valor veja vem vens ver vez vezes vinda vindo vinte você vocês vos vossa
|
||||||
vinda vindo vinte você vocês vos vossa vossas vosso vossos vários vão vêm vós
|
vossas vosso vossos vários vão vêm vós
|
||||||
|
|
||||||
zero
|
zero
|
||||||
""".split())
|
""".split())
|
||||||
|
|
|
@ -67,7 +67,7 @@ for orth in _per_pron + _dem_pron + _und_pron:
|
||||||
for orth in [
|
for orth in [
|
||||||
"Adm.", "Dr.", "e.g.", "E.g.", "E.G.", "Gen.", "Gov.", "i.e.", "I.e.",
|
"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.",
|
"I.E.", "Jr.", "Ltd.", "p.m.", "Ph.D.", "Rep.", "Rev.", "Sen.", "Sr.",
|
||||||
"Sra.", "vs."]:
|
"Sra.", "vs.", "tel.", "pág.", "pag."]:
|
||||||
_exc[orth] = [{ORTH: orth}]
|
_exc[orth] = [{ORTH: orth}]
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user