Strumento di Analisi e Visualizzazione della Frequenza dei Caratteri
Strumento gratuito di analisi della frequenza dei caratteri. Visualizza istantaneamente i modelli di distribuzione delle lettere. Perfetto per crittografia, compressione dei dati, rilevamento della codifica di testo e analisi linguistica.
Analisi di Frequenza dei Caratteri
Documentazione
Che cos'è l'analisi della frequenza dei caratteri?
L'analisi della frequenza dei caratteri consiste nel contare quante volte compare ciascun carattere in un testo. Comprende lettere, cifre, spazi, segni di punteggiatura e qualsiasi altro simbolo presente nel testo. Il risultato è una semplice tabella o un grafico: un carattere, un conteggio.
Questo strumento accetta qualsiasi testo incollato o digitato e conta automaticamente ogni carattere. Crea un grafico a barre dei conteggi, così i caratteri più comuni risaltano a colpo d'occhio. Posizionando il puntatore su una barra o toccandola viene mostrato il conteggio esatto del carattere.
La tecnica è antica. Lo studioso arabo Al-Kindi la descrisse nel 9º secolo come metodo per decifrare cifrari semplici. Oggi viene usata anche nella compressione dei dati, nei controlli ortografici e di codifica e nell'identificazione di base delle lingue.
Come calcolare la frequenza dei caratteri
Il calcolo manuale della frequenza dei caratteri prevede tre passaggi:
- Scorrere il testo un carattere alla volta, includendo spazi e segni di punteggiatura.
- Tenere un conteggio progressivo per ogni carattere distinto. Un carattere nuovo parte da 1; un carattere ripetuto aggiunge 1 al conteggio esistente.
- Elencare ogni carattere con il conteggio finale.
Questo strumento fa la stessa cosa automaticamente, usando una struttura dati chiamata tabella hash (una tabella di ricerca che memorizza un valore associato a una chiave). Per ogni carattere del testo, verifica se quel carattere ha già una voce nella tabella. Se sì, aggiunge 1 al conteggio memorizzato. Altrimenti, crea una nuova voce con un conteggio di 1. Questo metodo esamina ogni carattere esattamente una volta, quindi il tempo necessario cresce in proporzione diretta alla lunghezza del testo, non più rapidamente.
Dopo il conteggio, lo strumento elenca i risultati in ordine alfabetico per carattere. Attualmente non offre un'opzione per ordinarli invece in base al conteggio.
La frequenza dei caratteri in percentuale
I conteggi da soli possono essere difficili da confrontare tra testi di lunghezza diversa. Per questo motivo, la frequenza viene spesso espressa come percentuale del numero totale di caratteri:
Qui, indica quante volte compare il carattere , mentre è il numero totale di caratteri nel testo. Questo strumento riporta i conteggi grezzi e il numero totale di caratteri, non una colonna delle percentuali, ma la percentuale di qualsiasi carattere si può calcolare dividendo il suo conteggio per il totale e moltiplicando per 100.
Esempio svolto
Si consideri la parola "mississippi", che contiene 11 caratteri e non contiene spazi né segni di punteggiatura.
Il conteggio di ogni lettera dà:
| Carattere | Conteggio | Percentuale |
|---|---|---|
| i | 4 | 36,4% |
| m | 1 | 9,1% |
| p | 2 | 18,2% |
| s | 4 | 36,4% |
La tabella è ordinata alfabeticamente (i, m, p, s), in accordo con l'ordine usato dallo strumento per i risultati. I conteggi ammontano a 11, la lunghezza totale della parola. Per ottenere la colonna delle percentuali, ogni conteggio è stato diviso per 11 e moltiplicato per 100, per esempio 4 ÷ 11 × 100 ≈ 36,4%.
Come usare questo strumento
Digitare o incollare il testo nella casella di input. Lo strumento lo analizza immediatamente, senza alcun pulsante da premere. Man mano che il testo cambia, l'elenco dei caratteri e il grafico a barre si aggiornano di conseguenza.
La sezione dei risultati mostra:
- Un grafico a barre con una barra per ogni carattere. Le barre più alte indicano che il carattere compare più spesso.
- Il numero totale di caratteri del testo, inclusi spazi e segni di punteggiatura.
- Il conteggio esatto di un carattere alla volta, mostrato quando si posiziona il puntatore sulla barra corrispondente o la si tocca.
Un pulsante "Copia" formatta i risultati come testo semplice, con un carattere e il relativo conteggio per riga, pronto per essere incollato in un foglio di calcolo o in un documento. In questo output gli spazi sono indicati con "spazio", per evitare che vengano scambiati per righe vuote.
Nel normale testo inglese, lettere come E, T, A, O e I sono generalmente tra le più comuni. Un testo in cui lettere rare come Q o Z compaiono con frequenza insolitamente alta potrebbe essere codificato, cifrato o scritto in un'altra lingua.
Usi dell'analisi della frequenza dei caratteri
Decifrazione dei cifrari a sostituzione
Un cifrario a sostituzione sostituisce ogni lettera di un messaggio con un'altra lettera o un simbolo, usando la stessa sostituzione per tutto il messaggio. Poiché la sostituzione è coerente, il modello di frequenza della lingua originale sopravvive nel testo cifrato. In inglese, la lettera E compare circa nel 12–13% dei casi. Se un simbolo in un testo cifrato compare all'incirca con quella frequenza, è un candidato probabile per rappresentare la E. Per secoli questo è stato il metodo principale per decifrare i cifrari a sostituzione, prima che la crittografia moderna lo rendesse obsoleto per tutto tranne che per enigmi e documenti storici.
Compressione dei dati
I formati di compressione come ZIP e GZIP usano la frequenza dei caratteri attraverso un approccio chiamato codifica di Huffman. Ai caratteri frequenti vengono assegnati codici binari brevi, mentre ai caratteri rari codici più lunghi. Poiché i caratteri comuni occupano meno spazio a ogni occorrenza, l'intero file si riduce senza perdita di informazioni.
Individuazione dei problemi di codifica
Un testo che visualizza caratteri strani e inattesi (come "é" al posto di "é") indica spesso una mancata corrispondenza tra la codifica dei caratteri con cui è stato salvato un file e quella usata per leggerlo. Un grafico della frequenza che mostra un picco insolito di simboli strani, invece delle lettere comuni, può aiutare a confermare un problema di codifica.
Identificazione della lingua
Lingue diverse hanno distribuzioni tipiche dei caratteri diverse. L'inglese privilegia E, T e A. Il tedesco usa molte più occorrenze di E e N, oltre a lettere come ä, ö e ü che non compaiono affatto in inglese. Confrontare le frequenze dei caratteri di un testo con profili linguistici noti offre un metodo rapido e approssimativo per ipotizzarne la lingua.
Stile di scrittura e attribuzione dell'autore
Poiché gli scrittori tendono ad avere abitudini costanti nell'uso della punteggiatura e delle lettere, i modelli a livello di carattere possono costituire un piccolo elemento di prova per identificare l'autore. Da sola, la frequenza dei caratteri raramente dimostra chi abbia scritto qualcosa; funziona meglio insieme alla scelta delle parole, alla lunghezza delle frasi e ad altri indicatori stilistici.
Altri metodi di analisi del testo
La frequenza dei caratteri non è l'unico modo per analizzare un testo.
- Frequenza delle parole conta le parole intere invece dei caratteri. È più vicina al significato del testo ed è comune nella ricerca delle parole chiave e nell'analisi degli argomenti.
- Analisi degli n-grammi esamina brevi sequenze di caratteri o parole, come coppie o triple. Le tastiere predittive e il completamento automatico la usano per indovinare la lettera o la parola successiva.
- Analisi del sentimento valuta se un testo ha un tono positivo, negativo o neutro, usando metodi che vanno ben oltre il semplice conteggio.
- Analisi della leggibilità, come il punteggio di Flesch-Kincaid, stima quanto sia difficile leggere un testo in base alla lunghezza delle frasi e delle parole.
Domande frequenti
Che cosa indica l'analisi della frequenza dei caratteri?
Mostra con quale frequenza compare ogni carattere in un testo. La lettura del risultato può rivelare modelli utili per la crittografia, la compressione, l'individuazione di errori di codifica o l'ipotesi sulla lingua di un testo.
Come ordina i risultati questo strumento?
Ordina i caratteri alfabeticamente. Non esiste un'opzione per ordinarli invece in base al conteggio. I caratteri più e meno comuni devono essere individuati leggendo il grafico a barre oppure scorrendo i conteggi nel testo copiato.
Lo strumento mostra le percentuali?
No. Riporta il conteggio grezzo di ogni carattere e il numero totale di caratteri. Una percentuale si può calcolare dividendo il conteggio di un carattere per il totale e moltiplicando per 100.
L'analisi della frequenza dei caratteri può decifrare la crittografia moderna?
No. Funziona solo contro cifrari a sostituzione semplici, nei quali un carattere rappresenta sempre lo stesso carattere sostitutivo. La crittografia moderna, come AES, produce un risultato privo di un modello coerente di questo tipo, quindi i conteggi delle frequenze non rivelano nulla del messaggio originale.
Lo strumento conta spazi e segni di punteggiatura?
Sì. Viene contato ogni carattere dell'input, inclusi spazi, tabulazioni, interruzioni di riga e segni di punteggiatura. Nei testi ordinari, gli spazi sono spesso il singolo carattere più comune.
Quanto testo serve per ottenere modelli affidabili?
Alcune centinaia di caratteri costituiscono un minimo ragionevole. Un testo molto breve può mostrare frequenze che differiscono notevolmente dal modello previsto per il solo effetto del caso. Campioni più lunghi, di almeno mille caratteri, tendono a corrispondere più da vicino ai modelli linguistici noti.
Riferimenti
- MDN Web Docs: Map — documentazione sulla struttura dati della tabella hash usata per contare i caratteri in modo efficiente.
- Shannon, C. E. (1951). "Prediction and entropy of printed English." The Bell System Technical Journal, 30(1), 50-64.
- Huffman, D. A. (1952). "A Method for the Construction of Minimum-Redundancy Codes." Proceedings of the IRE, 40(9), 1098-1101.
- Codifica di Huffman — Wikipedia