Leia um arquivo texto.txt e conte a quantas vezes cada palavra ocorre no texto, criando dois vetores distintos ou utilizando a estrutura de dicionários. Você tem ainda que considerar que o texto possui pontuação e números, que não deverão fazer parte da contagem.
Passo 1
Beleza, vamos lá! O que você precisa fazer nesse exercício é ler um arquivo chamado
texto.txt
e contar quantas vezes cada palavra aparece nesse texto. Para isso, vamos usar estruturas de dados que nos ajudem a armazenar essas contagens, como dois vetores (listas) separados ou um dicionário. Além disso, precisamos garantir que sinais de pontuação e números não sejam incluídos na contagem das palavras. Vamos usar conceitos de manipulação de arquivos, processamento de strings e estruturas de dados em programação para resolver isso.Passo 2
Primeiro, precisamos abrir e ler o conteúdo do arquivo
texto.txt
. Em Python, usamos a função open()
para isso. Vamos abrir o arquivo no modo de leitura:with open('texto.txt', 'r', encoding='utf-8') as arquivo:
conteudo = arquivo.read()
Aqui,
conteudo
vai armazenar todo o texto presente no arquivo.Passo 3
Agora que temos o conteúdo do arquivo, precisamos remover a pontuação e os números para que apenas as palavras fiquem. Para isso, podemos usar a biblioteca
string
do Python, que possui uma lista de caracteres de pontuação que podemos eliminar:import string
# Remove pontuação e números
tabela_traducao = str.maketrans('', '', string.punctuation + string.digits)
conteudo_limpo = conteudo.translate(tabela_traducao)
Explicando:
str.maketrans()
cria uma tabela de tradução que remove todos os caracteres de pontuação e dígitos. Depois, translate()
aplica essa tabela ao conteúdo do texto.Passo 4
Com o texto limpo, vamos transformar todas as letras em minúsculas para evitar contar a mesma palavra com letras maiúsculas e minúsculas como diferentes:
conteudo_limpo = conteudo_limpo.lower()
Isso ajuda a padronizar as palavras para a contagem.
Passo 5
Agora, vamos dividir o texto em palavras individuais. Para isso, usamos o método
split()
, que separa o texto onde há espaços:palavras = conteudo_limpo.split()
Agora,
palavras
é uma lista contendo todas as palavras do texto.Passo 6
Vamos contar a frequência de cada palavra. Podemos fazer isso de duas maneiras: usando dois vetores (listas) separados ou utilizando um dicionário. Vou mostrar como fazer com um dicionário, que é mais eficiente para esse tipo de tarefa.
frequencia = {}
for palavra in palavras:
if palavra in frequencia:
frequencia[palavra] += 1
else:
frequencia[palavra] = 1
Aqui, percorremos cada palavra na lista
palavras
. Se a palavra já estiver no dicionário frequencia
, incrementamos seu contador. Caso contrário, adicionamos a palavra ao dicionário com um contador inicial de 1.Passo 7
Por fim, vamos exibir o resultado da contagem:
for palavra, contagem in frequencia.items():
print(f"A palavra '{palavra}' aparece {contagem} vezes.")
Isso vai mostrar cada palavra e quantas vezes ela apareceu no texto.
Passo 8
with open(‘texto.txt’, ‘r’, encoding=‘utf-8’) as arquivo:
conteudo = arquivo.read()
conteudo = arquivo.read()
Passo 9
tabela_traducao = str.maketrans(’’, ‘’, string.punctuation + string.digits)
conteudo_limpo = conteudo.translate(tabela_traducao)
conteudo_limpo = conteudo.translate(tabela_traducao)
Passo 10
conteudo_limpo = conteudo_limpo.lower()
Passo 11
palavras = conteudo_limpo.split()
Passo 12
frequencia = {}
for palavra in palavras:
if palavra in frequencia:
frequencia[palavra] += 1
else:
frequencia[palavra] = 1
if palavra in frequencia:
frequencia[palavra] += 1
else:
frequencia[palavra] = 1
Passo 13
for palavra, contagem in frequencia.items():
print(f"A palavra ‘{palavra}’ aparece {contagem} vezes.")
print(f"A palavra ‘{palavra}’ aparece {contagem} vezes.")
Resposta
Esse código vai ler o arquivo
texto.txt
, limpar o texto removendo pontuação e números, contar quantas vezes cada palavra aparece e exibir esses resultados de forma clara. Experimente rodar e veja a contagem das palavras do seu texto!