tag questions endings nlp steganography

nlp - questions - Componer una frase sintética en inglés que contendría 160 bits de información recuperable



tag endings (1)

Consideraría agregar adverbios a su lista. Aquí hay un patrón que se me ocurrió:

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

Esto puede codificar 181 bits de datos. Obtuve esta figura usando listas que hice hace un tiempo de datos de WordNet (probablemente un poco desactualizado porque incluí palabras compuestas):

  • 12650 sustantivos utilizables (13.6 bits / sustantivo, redondeado hacia abajo)
  • 5247 adjetivos utilizables (12.3 bits / adjetivo)
  • 5009 verbos utilizables (12.2 bits / verbo)
  • 1512 adverbios utilizables (10.5 bits / adverbio)

Frase de ejemplo: "Remojo, la muestra habitualmente espeluznante, socialmente ridícula, y el macrocosmos recíproco intrépidamente cataclísmico en algún lugar, se cierran angelicalmente sobre el consolador inevitablemente intermitente".

Tengo 160 bits de datos aleatorios.

Solo por diversión, quiero generar una frase pseudo-inglesa para "almacenar" esta información. Quiero poder recuperar esta información de la frase.

Nota: Esta no es una pregunta de seguridad, no me importa si otra persona podrá recuperar la información o incluso detectar que está allí o no.

Criterios para mejores frases, de lo más importante a lo menos:

  • Corto
  • Único
  • De aspecto natural

El enfoque actual, sugerido aquí :

Toma tres listas de 1024 sustantivos, verbos y adjetivos cada uno (seleccionando los más populares). Genere una frase según el siguiente patrón, leyendo 20 bits para cada palabra:

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

Ahora, este parece ser un buen enfoque, pero la frase es demasiado larga y demasiado aburrida.

He encontrado un corpus de palabras aquí (parte de la base de datos del habla).

Después de un poco de filtrado ad-hoc, calculé que este corpus contiene, aproximadamente

  • 50690 adjetivos utilizables
  • 123585 nombres
  • 15301 verbos
  • 13010 adverbios (no incluidos en el patrón, pero mencionados en las respuestas)

Esto me permite usar hasta

  • 16 bits por adjetivo (en realidad 16.9, pero no puedo imaginar cómo usar bits fraccionarios)
  • 15 bits por sustantivo
  • 13 bits por verbo
  • 13 bits por adverbio

Para el patrón sustantivo-verbo-adjetivo-verbo, esto da 57 bits por "oración" en la frase. Esto significa que, si usaré todas las palabras que pueda obtener de este corpus, puedo generar tres oraciones en lugar de cuatro (160/57 ≈ 2.8).

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

Todavía es demasiado largo y aburrido.

¿Alguna pista de cómo puedo mejorarla?

Lo que veo que puedo probar:

  • Intente comprimir mis datos de alguna manera antes de codificar. Pero dado que los datos son completamente aleatorios, solo algunas frases serían más cortas (y, supongo, no mucho).

  • Mejore el patrón de frase, para que se vea mejor.

  • Use varios patrones, usando la primera palabra en la frase para indicar de alguna manera para la decodificación futura qué patrón se utilizó. (Por ejemplo, use la última letra o incluso la longitud de la palabra.) Elija el patrón de acuerdo con los primeros bytes de los datos.

... No soy tan bueno con el inglés para crear mejores patrones de frase. ¿Alguna sugerencia?

  • Usa más lingüística en el patrón. Diferentes tiempos verbales, etc.

... Supongo que necesitaría un corpus de palabras mucho mejor que el que tengo ahora para eso. ¿Alguna pista de dónde puedo obtener una adecuada?