mercoledì 5 novembre 2014

Contaggio parole, righe, lettere e occorrenze

Il conteggio delle parole, righe, lettere è un'operazione che può essere fatta facilmente.
Per esempio per sapere il numero di lettere di un testo basta:

put the number of chars of field "esempio"

mentre per sapere il numero di parole basta:

put the number of words of field "esempio"

Per sapere il numero di righe, il codice è:

put the number of lines of field "esempio"

Adesso affrontiamo il caso di sapere il numero di occorrenze di una parola all'interno di un testo il codice è:

repeat for each word w in field "esempio"
   add 1 to theCount[w]
end repeat

put the text of field "Parola da cercare" into pcerca

put theCount[pcerca]

Anche se può sembrare strano che contiamo tutte le parole e le mettiamo nell'array theCount, il computer generalmente fa molto prima così rispetto a: cercare la parola, aggiungere il valore, continuare a cercare la parola. Chiaramente Il vantaggio di questo metodo risiede anche nel fatto che se il testo non cambia, potete riutilizzare theCount più volte senza doverlo ricalcolare.
Questo sistema l'ho provato su tutta la Divina Commedia e in meno di un secondo mi ha detto che contiene 349 volte la parola "tu".

Per chiarezza sottolineo che l'array theCount è un grandissimo array creato dal ciclo FOR contenente tutte le parole, nel caso della divina commedia è composto così:
  • theCount["in"] = 1065
  • theCount["mezzo"] = 45
  • theCount["del"] = 549
  • theCount["cammin"] = 15
  • theCount["di"] = 1835
  • theCount["nostra"] =58
  • theCount["vita"] = 61
  • ...