Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Mão na Massa LDAP - 1 Profissional por Máquina
Configure um serviço de Diretórios baseado no servidor OpenLDAP!
Dia 6 de Dezembro - São Paulo
Saiba mais


 

Aprenda inglês em casa

Baixe gratuitamente as duas primeiras aulas

English for Reading and Listening

Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.

Saiba mais e faça sua inscrição

Você está aqui: Home  → Arquivo Dicas-L

 

Mão na Massa - LDAP

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Publicar em del.icio.us

Contagem de Palavras

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 02 de Novembro de 2001

Várias vezes eu mencionei aqui um material que criei para autoestudo da língua inglesa chamado "As Palavras Mais Comuns da Língua Inglesa".

Para fazer esta contagem eu usei o bom e velho Unix. Originalmente eu utilizava vários comandos do próprio Unix, o que descrevo em http://www.dicas-l.com.br/dicas-l/19970311.shtml.

Lendo o manual de Awk do pacote gawk-doc-3.0.6-4cl (Conectiva Linux), chamado "Effective AWK Programming", eu descobri uma outra maneira de se fazer isto. Eu fiz algumas modificações no script, que incluo no final desta mensagem (o script original se encontra na página 225 do livro).

Eu já fiz o documento para inglês. Alguém se habilita a escrever "As Palavras mais Comuns do Espanhol, Francês, Russo,..." ?? :-) É só arrumar os textos e rodar este script.

Para gerar os relatórios, eu uso a shell abaixo:


  #!/bin/bash
   
  for file in *.txt
  do
     echo "==============================================================" >> $file-report
     echo $file > $file-report
     echo "==============================================================" >> $file-report
     awk -f /home/queiroz/bin/wordcount.awk $file > $file-report
  done
  --------------------

A seguir, o arquivo wordcount.awk:

  --------------------
  {
   $0 = tolower($0)
   gsub(/``/, " ", $0)
   gsub(/''/, " ", $0)
   gsub(/[^a-z' \t]/, " ", $0)
   for (i = 1; i <= NF; i++)
    freq[$i]++
   total += NF
  }
   
  END {
    sort = "sort +1 -nr"
    for (word in freq)
     printf "%-10s\t%-10d\t%-2.3f\n",word,freq[word],(freq[word] * 100)/total | sort
     print "----------------------------"
     print "Total de Palavras = " total
     print "----------------------------"
  }
  --------------------

A seguir, um exemplo de relatório. Na primeira coluna temos a palavra, na segunda o número de ocorrências da mesma no texto, e na terceira e última coluna, o percentual de ocorrência da palavra no texto analisado.

  --------------------
  you             12              6.218
  it              11              5.699
  jude            9               4.663
  hey             9               4.663
  to              8               4.145
  make            8               4.145
  let             7               3.627
  her             7               3.627
  and             7               3.627
  your            6               3.109
  don't           6               3.109
  better          6               3.109
  then            4               2.073
  the             4               2.073
  a               4               2.073
  remember        3               1.554
  begin           3               1.554
  you'll          2               1.036
  world           2               1.036
  under           2               1.036
  that            2               1.036
  take            2               1.036
  start           2               1.036
  song            2               1.036
  skin            2               1.036
  out             2               1.036
  know            2               1.036
  it's            2               1.036
  into            2               1.036
  heart           2               1.036
  go              2               1.036
  get             2               1.036
  ``` . um monte de linhas omitidas
  anytime         1               0.518
  afraid          1               0.518
  ad              1               0.518
   ----------------------------
   Total de Palavras = 193
   ----------------------------

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.03/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (390 votos)

Recomende este site
Recomendar este artigo


Versão para impressão


Opinião dos Leitores

gu
02 Jan 2008, 14:28
Bom
Carlos Illan
25 Nov 2007, 08:58
Sem querer abusar demais, mas eu queria transformar esse código em uma macro do OO ou do M$Word para auxiliar em análises de textos.

Poderia explicar o código do wordcount.awk?
*Nome:
Email:
Me notifique sobre novos comentários nessa pagina
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Mão na Massa LDAP - 1 Profissional por Máquina
Configure um serviço de Diretórios baseado no servidor OpenLDAP!
Dia 6 de Dezembro - São Paulo
Saiba mais

Biblioteca

Redes - Guia Prático
Por Carlos. E. Morimoto

Hardware - o Guia Definitivo
Por Carlos. E. Morimoto

Kurumin 7 - Guia Prático
Por Carlos. E. Morimoto

Linux: Ferramentas Técnicas, 2ed
Por Carlos. E. Morimoto

VPN: Virtual Private Network
Por Lino Sarlo da Silva

MySQL - Guia do Programador
Por André Milani

Sistemas de Banco de Dados
Por Ramez E. Elmasri e Shamkant Navathe

Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto

Extreme Programming
Por Vinicius Manhaes Teles

Google Hacking
Por JOHNNY LONG

Elite da Tropa
Por Luis Eduardo Soares, Andre Batista e Rodrigo Pimentel

Harry Potter e as Relíquias da Morte
Por J.K. Rowling

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

PHP para Quem Conhece PHP
Por Juliano Niederauer

O Conhecimento em Rede
Por Carlos Nepomuceno e Marcos Cavalcanti

Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson

Redes de Computadores
Por Andrew S. Tanembaum

Marley e Eu: a Vida e o Amor ao Lado do Pior Cão do Mundo
Por John Grogan

Deus, um delírio
Por Richard Dawkins

Java: Como Programar
Por Harvey M. Deitel e Paul J. Deitel

Descobrindo o Linux: Entenda o Sistema Operacional GNU/Linux
Por Joao Eriberto Mota Filho

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

1808
Por Laurentino Gomes

UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson