Vai al contenuto

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

Calcolatore di caricamento...
📚

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 prende qualsiasi testo incollato o digitato e conta automaticamente ogni carattere. Elenca ogni carattere univoco accanto al suo conteggio e disegna un grafico a barre, così i caratteri più frequenti risaltano a colpo d'occhio.

La tecnica è antica. Lo studioso arabo Al-Kindi la descrisse intorno all'anno 850 d.C. come metodo per violare cifrari semplici. Oggi viene usata anche nella compressione dei dati, nei controlli di ortografia e di codifica e nell'identificazione di base della lingua.

Come calcolare la frequenza dei caratteri

Il calcolo manuale della frequenza dei caratteri prevede tre passaggi:

  1. Scorrere il testo un carattere alla volta, includendo spazi e segni di punteggiatura.
  2. Tenere un conteggio progressivo per ogni carattere distinto. Un carattere nuovo parte da 1; un carattere ripetuto aggiunge 1 al conteggio esistente.
  3. 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:

f(c)=ncN×100%f(c) = \frac{n_c}{N} \times 100\%

Qui, ncn_c indica quante volte compare il carattere cc, mentre NN è 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 pratico

Si consideri la parola "mississippi", che contiene 11 caratteri e non contiene spazi né segni di punteggiatura.

Il conteggio di ogni lettera dà:

CarattereConteggioPercentuale
i436,4%
m19,1%
p218,2%
s436,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

Digita o incolla 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.
  • Un elenco di ogni carattere con il suo conteggio esatto.

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, E, T, A, O e I sono le cinque lettere più comuni. Un testo in cui lettere rare come Q o Z compaiono insolitamente spesso può 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 con un simbolo, usando la stessa sostituzione dall'inizio alla fine. Poiché la sostituzione è costante, lo schema di frequenza della lingua originale sopravvive nel testo cifrato. In inglese, la lettera E costituisce circa il 12% di tutte le lettere. Se un simbolo di un testo cifrato compare con una frequenza simile, è un forte candidato a rappresentare la E. Per secoli è stato il metodo principale per violare i cifrari a sostituzione, prima che la crittografia moderna lo rendesse obsoleto per tutto tranne rompicapi e documenti storici.

Compressione dei dati

Il formato di compressione DEFLATE, usato dall'utilità gzip, combina il metodo LZ77 con la codifica di Huffman. Un codice di Huffman si costruisce a partire dalle frequenze dei simboli. I caratteri frequenti ricevono codici binari brevi, quelli rari codici più lunghi. Poiché i caratteri comuni occupano meno spazio per occorrenza, l'intero file si riduce senza perdere alcuna informazione.

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 di caratteri diverse. L'inglese privilegia E, T e A. Il tedesco usa inoltre lettere come ä, ö e ü, che in inglese non compaiono affatto. Confrontare le frequenze dei caratteri di un testo con profili linguistici noti offre un modo rapido e approssimativo per indovinarne la lingua.

Stile di scrittura e attribuzione dell'autore

Poiché gli scrittori tendono ad avere abitudini costanti nell'uso della punteggiatura e delle lettere, gli schemi 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 schemi 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 in ordine alfabetico. Non esiste un'opzione per ordinarli invece per conteggio; i caratteri più e meno frequenti vanno individuati scorrendo i conteggi o leggendo il grafico a barre.

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 uno schema 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 schemi affidabili?

Non esiste un minimo fisso. Un testo molto breve può mostrare frequenze molto diverse dallo schema atteso per puro caso. I campioni più lunghi tendono a corrispondere meglio agli schemi noti della lingua.

Riferimenti

  1. Naskręcki, B., Adam Mickiewicz University. Elements of Cryptanalysis, Chapter 3: Frequency Analysis. Analisi delle frequenze — il trattato di Al-Kindi sull'analisi delle frequenze, scritto intorno all'anno 850 d.C.
  2. Cornell University, Department of Mathematics. English Letter Frequency. Tabella della frequenza delle lettere inglesi — E al 12,02%, seguita da T, A, O e I, in un campione di 40.000 parole.
  3. IETF. RFC 1951: DEFLATE Compressed Data Format Specification version 1.3. RFC 1951 — DEFLATE combina LZ77 e la codifica di Huffman; i codici di Huffman si costruiscono a partire dalle frequenze dei simboli.