diff --git a/src/AplicaSinonimos.py b/src/AplicaSinonimos.py index 8c87247..7805856 100644 --- a/src/AplicaSinonimos.py +++ b/src/AplicaSinonimos.py @@ -27,26 +27,10 @@ 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]) - try: - token_composto_2 = lista_corrigida[-1] + "_" + sinonimo - token_composto_3 = lista_corrigida[-2] + "_" + lista_corrigida[-1] + "_" + sinonimo - if token_composto_2.upper() in palavras_compostas: - lista_corrigida[-1] = token_composto_2 - elif token_composto_3.upper() in palavras_compostas: - lista_corrigida.pop() - lista_corrigida[-1] = token_composto_3 - else: - lista_corrigida.append(sinonimo) - except IndexError: - lista_corrigida.append(sinonimo) - - try: - return " ".join(lista_corrigida) - except: - return " ".join([str(x[0]) for x in lista_anotada]) + lista_corrigida.append(sinonimo) + return self.verificar_palavra_composta(lista_corrigida) # Verifica se há sinonimo do token def verificar_sinonimo(self, token): @@ -56,6 +40,18 @@ class AplicaSinonimos(object): return self.dicionarios.get_sinonimo(token) return token + def verificar_palavra_composta(self, lista): + palavras_compostas = self.carregar_palavras_compostas() + try: + sentenca_corrigida = "_".join(lista).upper() + except: + sentenca_corrigida = "_".join([str(x[0]) for x in lista]).upper() + + for p in palavras_compostas: + if p in sentenca_corrigida: + sentenca_corrigida = sentenca_corrigida.replace(p, p.replace("_", "#*#")) + return sentenca_corrigida.replace("_", " ").replace("#*#", "_") + def carregar_palavras_compostas(self): path = self.localizar_arquivo_palavras_compostas() return set(open(path).read().decode('utf-8').split()) -- libgit2 0.21.2