-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgera_nuvens.py
50 lines (39 loc) · 1.77 KB
/
gera_nuvens.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
"""
Esse script utiliza dos arquivos limpos gerados pelo
script "limpeza" para montar as nuvens de palavra
"""
from os import listdir
from os.path import join, dirname
from wordcloud import WordCloud, ImageColorGenerator
def main():
"""
Função principal que gera todas as nuvens com base
nos planos de governo limpos e salva em arquivos
"""
# Obtém o caminho do diretório atual
diretório_atual = dirname(__file__)
# Obtém o caminho para o arquivo com a fonte
# que será usada no texto das nuvens
fonte = join(diretório_atual, "fonte", "NotoSerif-Regular.ttf")
# Aqui nós criamos o objeto que irá gerar a nuvem de palavras,
# definindo suas dimensões e quantas palavras queremos no máximo,
# as cores que queremos usar e a fonte
word_cloud = WordCloud(width=1080, height=720,
max_words=200, font_path=fonte,
collocations=False)
# Percorre todos os arquivos em planos-de-governo
for arquivo in listdir('planos-de-governo/'):
# Só processaremos arquivos que foram limpos
if arquivo.endswith('limpo.txt'):
# O nome do presidenciável é o nome do arquivo
# menos as 10 últimas letras
presidenciável = arquivo[:-10]
# Exibindo no console que estamos processando o plano atual
print("Processando a nuvem de palavras para {}".format(presidenciável))
# Pega todo o conteúdo do arquivo
conteúdo = open(join('planos-de-governo', arquivo)).read()
# Utilizamos o objeto de WordCloud para gerar a nuvem
# e salvar em um arquivo
word_cloud.generate(conteúdo).to_file('img/{}.png'.format(presidenciável))
if __name__ == "__main__":
main()