title: Analisador de frequência de palavras description: Leia um bloco de texto e relate as palavras mais comuns.
Analisador de frequência de palavras
Mira Olá. Fui encarregada de extrair informações dos registros de missão e existem centenas deles. Preciso de algo que pegue um arquivo de texto, conte quantas vezes cada palavra aparece e me mostre os principais resultados. Quero descobrir quais tópicos continuam aparecendo sem ler tudo manualmente.
O que você está construindo
Digite texto ou um nome de arquivo para ler: sample.txt
Top 10 palavras:
the 42
and 31
python 18
is 16
you 14
...O que você vai precisar
- Strings - dividir texto em palavras, remover pontuação, converter para minúsculas
- Dictionaries - contar quantas vezes cada palavra aparece
- Lists - classificar e fatiar os principais resultados
- Files and exceptions - ler de um arquivo de texto
- Lambda, comprehensions, and zip - list comprehensions e
sorted()com um argumento key funcionam bem aqui
Dicas
Normalize antes de contar. Converta tudo para minúsculas e remova a pontuação antes de construir sua contagem. Caso contrário "Python" e "python" e "Python," contariam como palavras diferentes.
Um dicionário faz a contagem. Percorra as palavras. Se a palavra já é uma chave, incremente sua contagem. Se não for, adicione-a com uma contagem de 1. .get() com um valor padrão torna isso elegante.
Classificar um dicionário por valor. sorted() aceita um argumento key=. Passe uma lambda que retorna o valor para cada chave para classificar por frequência.
Ir além
Depois que a análise principal funcionar:
- Stop words. Ignore palavras comuns como "the", "and", "is". Defina um conjunto de stop words e pule qualquer palavra que apareça nele.
- Top N configurável. Deixe o usuário especificar quantos resultados mostrar em vez de sempre mostrar 10.
- Saída visual. Imprima cada palavra com uma barra feita de caracteres repetidos proporcionais à sua contagem. Até uma versão simples torna a saída muito mais legível.

