Составьте синтетическую английскую фразу, которая будет содержать 160 бит восстанавливаемой информации

У меня есть 160 бит случайных данных.

Просто для удовольствия, я хочу создать псевдоанглийскую фразу, чтобы "сохранить" эту информацию. Я хочу, чтобы иметь возможность восстановить эту информацию из этой фразы.

Примечание.. Это не вопрос безопасности, мне все равно, сможет ли кто-то другой восстановить информацию или даже обнаружить, что она есть или нет.

Критерии для лучших фраз, от самых важных до наименьших:

  • Короткие
  • Уникальный
  • Природный вид

Текущий подход, предложенный здесь:

Возьмите три списка из 1024 существительных, глаголов и прилагательных каждый (выбор наиболее популярных). Создайте фразу по следующему шаблону, считывая 20 бит для каждого слова:

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

Теперь это хороший подход, но фраза слишком длинная и немного скучная.

Я нашел состав слов здесь (часть базы данных речей).

После некоторой специальной фильтрации я подсчитал, что этот корпус содержит приблизительно

  • 50690 используемых прилагательных
  • 123585 существительные
  • 15301 глаголов
  • 13010 наречия (не включены в шаблон, но упоминаются в ответах)

Это позволяет мне использовать до

  • 16 бит на каждое прилагательное (на самом деле 16.9, но я не могу понять, как использовать дробные биты)
  • 15 бит на существительное
  • 13 бит на глагол
  • 13 бит на каждое наречие

Для шаблона существительного-глагола-прилагательного-глагола это дает 57 бит на "предложение" во фразе. Это означает, что если я буду использовать все слова, которые я могу получить из этого корпуса, я могу сгенерировать три предложения вместо четырех (160/57 ≈ 2.8).

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

Все еще слишком долго и скучно.

Любые подсказки, как я могу улучшить его?

Что я вижу, что я могу попробовать:

  • Попытайтесь каким-то образом сжать мои данные перед кодированием. Но поскольку данные полностью случайны, только некоторые фразы будут короче (и, я думаю, не намного).

  • Улучшите шаблон фразы, чтобы он выглядел лучше.

  • Используйте несколько шаблонов, используя первое слово во фразе, чтобы как-то указать для будущего декодирования, какой шаблон использовался. (Например, используйте последнюю букву или даже длину слова.) Выберите шаблон в соответствии с первым байтом данных.

... Я не так хорош с английским, чтобы придумать лучшие фразовые модели. Любые предложения?

  • Используйте более лингвистику в шаблоне. Различные времена и т.д.

... Полагаю, мне понадобится гораздо лучше слово corpus, чем сейчас. Любые подсказки, где я могу получить подходящий вариант?

Ответ 1

Я хотел бы добавить наречия в ваш список. Вот шаблон, который я придумал:

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

Это может кодировать 181 бит данных. Я получил эту цифру, используя списки, которые я сделал некоторое время назад из данных WordNet (возможно, это было немного, потому что я включил составные слова):

  • 12650 используемых существительных (13.6 бит/существительное, округленное вниз)
  • 5247 применимых прилагательных (12.3 бит/прилагательное)
  • 5009 полезных глаголов (12.2 бит/глагол)
  • 1512 используемых наречий (10.5 бит/наречие)

Пример предложения: "Замачивание, привычный губительный, социально-спекулятивный образец и бесстрашный катаклизм, где-то обратный макрокосм ангелически выходит за неустойчиво прерывистый утешитель".