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 @@
  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 29 \ No newline at end of file
... ...
src/AplicaSinonimos.py
... ... @@ -11,6 +11,9 @@ import csv
11 11 import sys
12 12 from nltk.tree import Tree
13 13 from LerDicionarios import *
  14 +from os.path import expanduser
  15 +from os import environ, path
  16 +
14 17  
15 18 class AplicaSinonimos(object):
16 19 '''Aplica sinonimos após aplicação de regras morfológicas/sintáticas.
... ... @@ -24,9 +27,18 @@ class AplicaSinonimos(object):
24 27 '''Percorre a lista fazendo a substituição pelos sinonimos.
25 28 '''
26 29 lista_corrigida = []
  30 + palavras_compostas = self.carregar_palavras_compostas()
27 31 for tupla in lista_anotada:
28 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 42 try:
31 43 return " ".join(lista_corrigida)
32 44 except:
... ... @@ -38,4 +50,15 @@ class AplicaSinonimos(object):
38 50 '''
39 51 if self.dicionarios.has_sinonimo(token):
40 52 return self.dicionarios.get_sinonimo(token)
41   - return token
42 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 66 \ No newline at end of file
... ...