diff --git a/data/palavras_compostas.csv b/data/palavras_compostas.csv new file mode 100644 index 0000000..f4374fa --- /dev/null +++ b/data/palavras_compostas.csv @@ -0,0 +1,28 @@ +BELO_HORIZONTE +BUMBA_MEU_BOI +CAMPO_GRANDE +FERNANDO_DE_NORONHA +GUARDA_DE_TRÂNSITO +JET_SKI +NÃO_ADIANTAR +NÃO_COMPARECER +NÃO_CONHECER +NÃO_CONSEGUIR +NÃO_DAR +NÃO_DESANIMAR +NÃO_ENTENDER +NÃO_FUMAR +NÃO_INGERIR +NÁO_LIGAR +NÃO_OUVIR +NÃO_PRESTAR +NÃO_USAR +NÃO_VER +OFICINA_MECÂNICA +POR_FAVOR +PORTO_VELHO +REFORÇO_ESCOLAR +RIO_BRANCO +RODÍZIO_DE_CARRO +ROLO_DE_MASSA +TÍTULO_DE_ELEITOR \ No newline at end of file diff --git a/src/AplicaSinonimos.py b/src/AplicaSinonimos.py index ff0a251..d3e5bfd 100644 --- a/src/AplicaSinonimos.py +++ b/src/AplicaSinonimos.py @@ -11,6 +11,9 @@ import csv import sys from nltk.tree import Tree from LerDicionarios import * +from os.path import expanduser +from os import environ, path + class AplicaSinonimos(object): '''Aplica sinonimos após aplicação de regras morfológicas/sintáticas. @@ -24,9 +27,18 @@ class AplicaSinonimos(object): '''Percorre a lista fazendo a substituição pelos sinonimos. ''' lista_corrigida = [] + palavras_compostas = self.carregar_palavras_compostas() for tupla in lista_anotada: sinonimo = self.verificar_sinonimo(tupla[0]) - lista_corrigida.append(sinonimo) + try: + token_composto = lista_corrigida[-1] + "_" + sinonimo + if token_composto.upper() in palavras_compostas: + lista_corrigida[-1] = token_composto + else: + lista_corrigida.append(sinonimo) + except IndexError: + lista_corrigida.append(sinonimo) + try: return " ".join(lista_corrigida) except: @@ -38,4 +50,15 @@ class AplicaSinonimos(object): ''' if self.dicionarios.has_sinonimo(token): return self.dicionarios.get_sinonimo(token) - return token \ No newline at end of file + return token + + def carregar_palavras_compostas(self): + path = self.localizar_arquivo_palavras_compostas() + return set(open(path).read().decode('utf-8').split()) + + def localizar_arquivo_palavras_compostas(self): + if platform.system() == 'Windows': + return environ.get("HOMEDRIVE")+'\\vlibras-libs\\vlibras-translate\data\\palavras_compostas.csv' + elif "TRANSLATE_DATA" in environ: + return path.join(environ.get("TRANSLATE_DATA"), "palavras_compostas.csv") + return expanduser("~")+'/vlibras-translate/data/palavras_compostas.csv' \ No newline at end of file -- libgit2 0.21.2