Compose synthetischer englischer Satz, der 160 Bits der wiederherstellbaren Daten enthalten würde

StackOverflow https://stackoverflow.com/questions/4698229

  •  11-10-2019
  •  | 
  •  

Frage

Ich habe 160 Bits von Zufallsdaten.

Just for fun, möchte ich pseudo-englischen Begriff „store“ diese Informationen in generieren. Ich möchte von der Phrase mit diesen Daten wiederherstellen können.

Hinweis: Dies ist keine Sicherheitsfrage, ist mir egal, wenn jemand anderes in der Lage sein wird, die Informationen zu erholen oder sogar erkennen, dass es gibt oder nicht.

Kriterien für eine bessere Sätze, von den meisten wichtig für die am wenigsten:

  • Short
  • Unique
  • Natürlich aussehende

Der derzeitige Ansatz, schlägt hier :

Nehmen Sie drei Listen von 1024 Substantive, Verben und Adjektive jeweils (Kommissionierung beliebtesten). Generieren Sie einen Satz folgende Muster, das Lesen 20 Bits für jedes Wort:

Noun verb adjective verb,
Noun verb adjective verb,
Noun verb adjective verb,
Noun verb adjective verb.

Nun scheint dies ein guter Ansatz zu sein, aber der Begriff ist ein wenig zu lang und ein bisschen zu langweilig.

Ich habe eine Sammlung von Wörtern gefunden hier (Wortart-Datenbank).

Nach einiger Ad-hoc-Filterung, ich berechnet, dass dieser Korpus enthält, etwa

  • 50690 verwendbar Adjektive
  • 123.585 Substantiven
  • 15301 Verben
  • 13010 Adverbien (nicht im Muster, aber in Antworten erwähnt)

Dies ermöglicht es mir, um die Nutzung von bis

  • 16 Bit pro Adjektiv (tatsächlich 16,9, aber ich kann nicht verstehen, wie gebrochene Bits verwenden)
  • 15 Bit pro Nomen
  • 13 Bit pro Verb
  • 13 Bit pro Adverb

Für Substantiv-Verb-Adjektiv-Verb-Muster ergibt dies 57 Bits pro "Satz" in Ausdruck. Dies bedeutet, dass, wenn ich alle Worte verwenden, werde ich aus diesem Korpus bekommen, habe ich drei Sätze erzeugen kann statt vier (160/57 ˜ 2,8).

Noun verb adjective verb,
Noun verb adjective verb,
Noun verb adjective verb.

Immer noch ein bisschen zu lang und langweilig.

Für Hinweise, wie kann ich es verbessern?

Was ich sehe, dass ich versuchen kann:

  • Versuchen Sie, meine Daten irgendwie vor der Codierung zu komprimieren. Aber da die Daten vollständig zufällig sind, nur einige Sätze wären kürzer (und, glaube ich, nicht viel).

  • Satz Muster verbessern, so dass es besser aussehen würde.

  • Verwenden Sie mehrere Muster, das erste Wort in Begriff irgendwie für zukünftige Decodierung zeigen unter Verwendung der Muster verwendet wurde. (Verwenden Sie zum Beispiel die letzten Buchstaben oder auch die Länge des Wortes.) Wählen Sie Muster entsprechend die ersten drei Bytes der Daten.

... Ich bin nicht so gut mit Englisch mit besserem Ausdruck Mustern zu kommen. Irgendwelche Vorschläge?

  • Verwenden Sie mehr Linguistik im Muster. Verschiedene Zeiten usw.

... Ich denke, ich müsste viel besseres Wort corpus als ich jetzt habe dafür. Für Hinweise, wo kann ich eine passende bekommen?

War es hilfreich?

Lösung

würde ich das Hinzufügen Adverbien zu Ihrer Liste prüfen. Hier ist ein Muster, das ich kam mit:

<Adverb>, the
    <adverb> <adjective>, <adverb> <adjective> <noun> and the
    <adverb> <adjective>, <adverb> <adjective> <noun>
<verb> <adverb> over the <adverb> <adjective> <noun>.

Das kann 181 Bit Daten kodieren. Ich abgeleitet diese Zahl mit Listen, die ich vor einiger Zeit aus WordNet Daten aus (wahrscheinlich ein bisschen, weil ich eingeschlossen zusammengesetzte Wörter):

  • 12650 verwendbar Substantive (13,6 bits / Substantiv, abgerundet)
  • 5247 verwendbar Adjektive (12,3 bits / Adjektiv)
  • 5009 verwendbar Verben (12,2 bits / verb)
  • 1512 verwendbar Adverbien (10,5 bits / Adverb)

Beispielsatz: „Einweichen, die gewohnheitsmäßig doof, sozial spekulatives Feld und der furchtlos umwälzende, irgendwo reziproke Makrokosmos foreclose angelically über die unvermeidlich intermittierenden Tröster“

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top