Atualizado: 04/11/2024

Programa de Contagem de Palavras - Python

Neste artigo, exploraremos como manipular strings em Python com um exemplo prático: um programa que conta a frequência de palavras em um arquivo de texto. O código é simples e ilustra técnicas fundamentais de processamento de texto.

O código é o seguinte:

# Programa para contar palavras em um arquivo
import os

def get_words(filename):
    """Lê o arquivo, processa o texto e retorna uma lista de palavras ordenadas."""
    with open(filename, encoding="utf8") as file:
        text = file.read()
    # Remove pontuações e normaliza o texto
    text = text.replace("\n", " ")
    for char in ",.?!":
        text = text.replace(char, "")
    text = text.lower()
    # Divide o texto em palavras e ordena
    words = text.split()
    words.sort()
    return words

def get_words_dict(words):
    """Cria um dicionário de frequência a partir de uma lista de palavras."""
    words_dict = {}
    for word in words:
        words_dict[word] = words_dict.get(word, 0) + 1
    return words_dict

def main():
    """Função principal para executar o programa."""
    filename = input("Digite o caminho do arquivo: ")
    if not os.path.exists(filename):
        print("O arquivo especificado não existe.")
    else:
        words = get_words(filename)
        words_dict = get_words_dict(words)
        print(f"Número total de palavras: {len(words)}")
        print(f"Número de palavras únicas: {len(words_dict)}")
        print("Palavras utilizadas:")
        for word, count in words_dict.items():
            print(word.ljust(20), count)

if __name__ == "__main__":
    main()

Explicação do código:

Funçãoget_words

  1. Entrada: Recebe o nome de um arquivo de texto.

  2. Processamento:

    • Lê todo o conteúdo do arquivo.

    • Remove caracteres de pontuação (,, ., ?, !).

    • Converte o texto para letras minúsculas, normalizando o conteúdo.

    • Substitui quebras de linha por espaços.

    • Divide o texto em palavras usando espaços como delimitadores.

    • Ordena as palavras alfabeticamente.

  3. Saída: Retorna uma lista ordenada de palavras.

Funçãoget_words_dict

  1. Entrada: Recebe uma lista de palavras.

  2. Processamento:

    • Cria um dicionário onde cada chave é uma palavra única e o valor associado é o número de ocorrências dessa palavra.

    • Usa o método dict.get() para incrementar a contagem de palavras de forma simplificada.

  3. Saída: Retorna um dicionário de frequência de palavras.

Funçãomain

  1. Processamento:

    • Solicita ao usuário o caminho do arquivo.

    • Verifica se o arquivo existe usando os.path.exists(). Se o arquivo não for encontrado, exibe uma mensagem de erro.

    • Caso o arquivo exista:

      • Chama get_words para obter a lista de palavras.

      • Chama get_words_dict para criar o dicionário de frequência.

      • Exibe estatísticas: número total de palavras, número de palavras únicas e a lista de palavras com suas contagens.

  2. Saída: Exibe os resultados no console.

Para testar o programa, crie um arquivo de texto com o seguinte conteúdo:

Python é incrível. Python é simples e poderoso!

Salve o arquivo como texto.txt e execute o programa. Você deve ver a seguinte saída:

Número total de palavras: 6
Número de palavras únicas: 5
Palavras utilizadas:
e                    2
incrível             1
poderoso             1
python               2
simples              1
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com