Contando a frequência de palavras em um arquivo usando Python

Já se perguntou sobre uma maneira rápida de saber no que um documento está focando? Qual é o seu tema principal? Deixe-me dar-lhe este truque simples. Liste as palavras únicas mencionadas no documento e, em seguida, verifique quantas vezes cada palavra foi mencionada (frequência). Dessa forma, você terá uma indicação do que o documento trata principalmente. Mas isso não funcionaria facilmente manualmente, então precisamos de algum processo automatizado, não é?

Sim, um processo automatizado tornará isso muito mais fácil. Vamos ver como podemos listar as diferentes palavras únicas em um arquivo de texto e verificar a frequência de cada palavra usando Python.

Arquivo de teste

Neste tutorial, usaremos test.txt como nosso arquivo de teste. Vá em frente e faça o download, mas não abra! Vamos fazer um pequeno jogo. O texto dentro deste arquivo de teste é de um dos meus tutoriais no Envato Tuts+. Com base na frequência das palavras, vamos adivinhar de qual dos meus tutoriais este texto foi extraído.

Que comece o jogo!

Expressões regulares

Como vamos aplicar um padrão em nosso jogo, precisamos usar expressões regulares (regex). Se “expressões regulares” é um termo novo para você, esta é uma boa definição da Wikipedia:

Uma sequência de caracteres que define um padrão de pesquisa, principalmente para uso em correspondência de padrões com strings, ou correspondência de strings, ou seja, operações do tipo “localizar e substituir”. O conceito surgiu na década de 1950, quando o matemático americano Stephen Kleene formalizou a descrição de uma linguagem regular, e entrou em uso comum com os utilitários de processamento de texto Unix ed, um editor, e grep, um filtro

Se você quiser saber mais sobre expressões regulares antes de prosseguir com este tutorial, você pode ver meu outro tutorial Expressões regulares em Python e voltar novamente para continuar este tutorial.

Construindo o programa

Vamos trabalhar passo a passo na construção deste jogo. A primeira coisa que queremos fazer é armazenar o arquivo de texto em uma variável string.

Agora, para facilitar a aplicação da nossa expressão regular, vamos transformar todas as letras do nosso documento em letras minúsculas, usando a função lower(), da seguinte forma:

Vamos escrever nossa expressão regular que retornaria todas as palavras com o número de caracteres no intervalo [3-15]. Começando de 3 ajudará a evitar palavras que podemos não estar interessados ​​em contar sua frequência como E se, do, dentro, etc., e palavras com comprimento maior que 15 podem não ser palavras corretas. A expressão regular para esse padrão tem a seguinte aparência:

b está relacionado a limite de palavras. Para obter mais informações sobre o limite de palavras, você pode verificar este tutorial.

A expressão regular acima pode ser escrita da seguinte forma:

Como queremos percorrer várias palavras no documento, podemos usar o findall função:

Retornar todas as correspondências não sobrepostas de padronizar dentro corda, como uma lista de strings. o corda é verificado da esquerda para a direita e as correspondências são retornadas na ordem encontrada. Se um ou mais grupos estiverem presentes no padrão, retorne uma lista de grupos; esta será uma lista de tuplas se o padrão tiver mais de um grupo. Partidas vazias são incluídas no resultado, a menos que toquem no início de outra partida.

Neste ponto, queremos encontrar a frequência de cada palavra no documento. O conceito adequado para usar aqui é Dicionários do Python, pois precisamos key-value pares, onde key é o palavrae as value representa o frequência palavras apareceram no documento.

Assumindo que declaramos um dicionário vazio frequency = { }o parágrafo acima ficaria assim:

Agora podemos ver nossas chaves usando:

Por fim, para obter a palavra e sua frequência (número de vezes que ela apareceu no arquivo de texto), podemos fazer o seguinte:

Vamos montar o programa na próxima seção e ver como é a saída.

Juntando tudo

Tendo discutido o programa passo a passo, vamos agora ver como o programa se parece:

Se você executar o programa, deverá obter algo como o seguinte:

Terminal Mac OS XTerminal Mac OS XTerminal Mac OS X

Vamos voltar ao nosso jogo. Passando pelas frequências de palavras, o que você acha que o arquivo de teste (com conteúdo do meu outro tutorial Python) estava falando?

(Dica: verifique a palavra com a frequência máxima).

Originally posted 2022-07-15 09:59:51.

Deixe uma resposta