-
Notifications
You must be signed in to change notification settings - Fork 0
/
exemplos_agrupamento.py
77 lines (68 loc) · 3.06 KB
/
exemplos_agrupamento.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# -*- coding: utf-8 -*-
from util_agrupamento_rapido import AgrupamentoRapido
from util_doc2vec_rapido import Doc2VecRapido
from exemplos import carregar_paragrafos
import os
import pandas as pd
import json
#######################################################################
# Exemplo de uso da classes: Doc2VecRapido e AgrupamentoRapido
# Esse código, dicas de uso e outras informações:
# -> https://github.com/luizanisio/Doc2VecRapido
# Luiz Anísio
#######################################################################
def agrupar_pasta():
pasta = './textos_legislacoes'
modelo = './meu_modelo'
similaridade = 90
plotar = False
arquivo_saida = './agrupamento.xlsx'
arquivo_cache = './tmpcache/cache.json'
os.makedirs(os.path.split(arquivo_cache)[0], exist_ok=True)
util = AgrupamentoRapido.agrupar_arquivos(pasta_modelo=modelo,
pasta_arquivos=pasta,
similaridade=similaridade,
epocas = 100,
plotar = plotar,
arquivo_saida = arquivo_saida,
arquivo_cache = arquivo_cache,
coluna_texto = True)
def agrupar_arquivo_com_vetores():
arquivo = './vetorizados/parag_legislacoes.json'
df = pd.read_json(arquivo, lines = True)
dados = df.to_dict(orient='records')
modelo = ''
similaridade = 90
plotar = False
arquivo_saida = './agrupamento.xlsx'
arquivo_cache = './tmpcache/cache.json'
print(f'Preparando para agrupar {len(dados)} documentos')
os.makedirs(os.path.split(arquivo_cache)[0], exist_ok=True)
util = AgrupamentoRapido(dados = dados,
pasta_modelo= modelo,
similaridade=similaridade,
plotar = plotar,
coluna_texto = True,
arquivo_saida_excel = arquivo_saida)
def criar_vetorizados():
arq_saida = './vetorizados/parag_legislacoes.json'
if os.path.isfile(arq_saida):
print(f'Arquivo "{arq_saida}" já existe com documentos vetorizados!')
return
textos_tags = carregar_paragrafos('./textos_legislacoes', 100)
print(f'Vetorizando {len(textos_tags)} parágrafos das legislações')
#textos_tags = textos_tags[:100]
docs = [{'texto': texto} for texto, _ in textos_tags]
dv = Doc2VecRapido(pasta_modelo='./meu_modelo')
dv.vetorizar_dados(docs)
os.makedirs(os.path.split(arq_saida)[0], exist_ok=True)
with open(arq_saida,'w') as f:
for d in docs:
f.write(json.dumps(d) + '\n')
print(f'Arquivo com {len(docs)} documentos vetorizados criado com sucesso!')
if __name__ == '__main__':
# exemplo 1 - agrupar arquivos de um apasta de textos
# agrupar_pasta()
# exemplos 2 - agrupar textos de um dataframe
criar_vetorizados() # cria o arquivo com textos vetorizados
agrupar_arquivo_com_vetores()