Commit 37a7ee72cfef1ddecdd45eaae2de9312220d2ded

Authored by Erickson Silva
1 parent 4841f13a
Exists in master and in 1 other branch devel

Adiciona tratamento de palavras compostas no pós-processamento

data/palavras_compostas.csv 0 → 100644
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
  1 +BELO_HORIZONTE
  2 +BUMBA_MEU_BOI
  3 +CAMPO_GRANDE
  4 +FERNANDO_DE_NORONHA
  5 +GUARDA_DE_TRÂNSITO
  6 +JET_SKI
  7 +NÃO_ADIANTAR
  8 +NÃO_COMPARECER
  9 +NÃO_CONHECER
  10 +NÃO_CONSEGUIR
  11 +NÃO_DAR
  12 +NÃO_DESANIMAR
  13 +NÃO_ENTENDER
  14 +NÃO_FUMAR
  15 +NÃO_INGERIR
  16 +NÁO_LIGAR
  17 +NÃO_OUVIR
  18 +NÃO_PRESTAR
  19 +NÃO_USAR
  20 +NÃO_VER
  21 +OFICINA_MECÂNICA
  22 +POR_FAVOR
  23 +PORTO_VELHO
  24 +REFORÇO_ESCOLAR
  25 +RIO_BRANCO
  26 +RODÍZIO_DE_CARRO
  27 +ROLO_DE_MASSA
  28 +TÍTULO_DE_ELEITOR
0 \ No newline at end of file 29 \ No newline at end of file
src/AplicaSinonimos.py
@@ -11,6 +11,9 @@ import csv @@ -11,6 +11,9 @@ import csv
11 import sys 11 import sys
12 from nltk.tree import Tree 12 from nltk.tree import Tree
13 from LerDicionarios import * 13 from LerDicionarios import *
  14 +from os.path import expanduser
  15 +from os import environ, path
  16 +
14 17
15 class AplicaSinonimos(object): 18 class AplicaSinonimos(object):
16 '''Aplica sinonimos após aplicação de regras morfológicas/sintáticas. 19 '''Aplica sinonimos após aplicação de regras morfológicas/sintáticas.
@@ -24,9 +27,18 @@ class AplicaSinonimos(object): @@ -24,9 +27,18 @@ class AplicaSinonimos(object):
24 '''Percorre a lista fazendo a substituição pelos sinonimos. 27 '''Percorre a lista fazendo a substituição pelos sinonimos.
25 ''' 28 '''
26 lista_corrigida = [] 29 lista_corrigida = []
  30 + palavras_compostas = self.carregar_palavras_compostas()
27 for tupla in lista_anotada: 31 for tupla in lista_anotada:
28 sinonimo = self.verificar_sinonimo(tupla[0]) 32 sinonimo = self.verificar_sinonimo(tupla[0])
29 - lista_corrigida.append(sinonimo) 33 + try:
  34 + token_composto = lista_corrigida[-1] + "_" + sinonimo
  35 + if token_composto.upper() in palavras_compostas:
  36 + lista_corrigida[-1] = token_composto
  37 + else:
  38 + lista_corrigida.append(sinonimo)
  39 + except IndexError:
  40 + lista_corrigida.append(sinonimo)
  41 +
30 try: 42 try:
31 return " ".join(lista_corrigida) 43 return " ".join(lista_corrigida)
32 except: 44 except:
@@ -38,4 +50,15 @@ class AplicaSinonimos(object): @@ -38,4 +50,15 @@ class AplicaSinonimos(object):
38 ''' 50 '''
39 if self.dicionarios.has_sinonimo(token): 51 if self.dicionarios.has_sinonimo(token):
40 return self.dicionarios.get_sinonimo(token) 52 return self.dicionarios.get_sinonimo(token)
41 - return token  
42 \ No newline at end of file 53 \ No newline at end of file
  54 + return token
  55 +
  56 + def carregar_palavras_compostas(self):
  57 + path = self.localizar_arquivo_palavras_compostas()
  58 + return set(open(path).read().decode('utf-8').split())
  59 +
  60 + def localizar_arquivo_palavras_compostas(self):
  61 + if platform.system() == 'Windows':
  62 + return environ.get("HOMEDRIVE")+'\\vlibras-libs\\vlibras-translate\data\\palavras_compostas.csv'
  63 + elif "TRANSLATE_DATA" in environ:
  64 + return path.join(environ.get("TRANSLATE_DATA"), "palavras_compostas.csv")
  65 + return expanduser("~")+'/vlibras-translate/data/palavras_compostas.csv'
43 \ No newline at end of file 66 \ No newline at end of file