Ho 160 bit di dati casuali.Comporre una frase sintetica inglese che conterrebbe 160 bit di informazioni recuperabili
Solo per divertimento, voglio generare una frase pseudo-inglese per "memorizzare" queste informazioni in. Voglio essere in grado di recuperare queste informazioni dalla frase.
Nota: Questa non è una domanda di sicurezza, non mi importa se qualcun altro sarà in grado di recuperare le informazioni o anche rilevare che è lì o no.
Criteri per le frasi migliori, dal più importante al meno:
- Breve
- unico
- dall'aspetto naturale
L'attuale approccio, suggerito here:
Prendi tre liste di 1024 nomi, verbi a aggettivi e aggettivi (scegli quelli più popolari). Generare una frase dal seguente schema, la lettura 20 bit per ogni parola:
Noun verb adjective verb, Noun verb adjective verb, Noun verb adjective verb, Noun verb adjective verb.
Ora, questo sembra essere un buon approccio, ma la frase è un po 'troppo lungo e un po' troppo noiosa.
Ho trovato un corpus di parole here (parte del database vocale).
Dopo qualche filtro ad-hoc, ho calcolato che questo corpus contiene circa
- 50690 aggettivi utilizzabili
- 123585 sostantivi
- 15301 verbi
- 13010 avverbi (non inclusi nel modello, ma menzionato nelle risposte)
Questo mi consente di utilizzare fino a
- 16 bit per aggettivo (in realtà 16.9, ma non riesco a capire come utilizzare bit frazionari)
- 15 bit per s
- 13 bit al verbo
- 13 bit per avverbio
Per il modello nome-verbo-aggettivo-verbo questo fornisce 57 bit per "frase" nella frase. Ciò significa che, se userò tutte le parole che posso ottenere da questo corpus, posso generare tre frasi anziché quattro (160/57 ≈ 2.8).
Noun verb adjective verb, Noun verb adjective verb, Noun verb adjective verb.
Ancora un po 'troppo lungo e noioso.
Eventuali suggerimenti come posso migliorarlo?
Quello che vedo che posso provare:
tenta di comprimere i miei dati in qualche modo prima della codifica. Ma dal momento che i dati sono completamente casuali, solo alcune frasi sarebbero più corte (e, immagino, non di molto).
Migliorare il modello di frase, quindi sarebbe meglio.
Utilizzare diversi motivi, utilizzando la prima parola nella frase per indicare in qualche modo per la futura decodifica quale modello è stato utilizzato. (Ad esempio, utilizzare l'ultima lettera o anche la lunghezza della parola.) Selezionare il modello in base ai primi byte dei dati.
... Non sono così bravo con l'inglese a trovare modelli di frasi migliori. Eventuali suggerimenti?
- Utilizzare più linguistica nel modello. Tempi diversi ecc.
... Immagino, avrei bisogno di un corpus di parole molto migliore di quello che ho ora per quello. Qualche suggerimento dove posso trovarne uno adatto?
Cercare di usare i tempi verbali porterà a complicazioni, poiché non esiste un sistema morfologico regolare in inglese. Per esempio, per la terza persona indicativa attiva plurale, abbiamo una distinzione tesa tra "sono andati" e "loro vanno", ma nessuno tra "si adattano (passato)" e "si adattano (presente)". Dal momento che la disponibilità della distinzione temporale varia su altri dati, è difficile incorporarla nell'algoritmo di archiviazione in modo semplice. –
Mi dispiace, ma mi trovo costretto a suggerire questo come rilevante, anche se non è in realtà risponde completamente alla tua domanda: http://tools.ietf.org/html/rfc1605 – Amber