Составьте синтетическую английскую фразу, которая будет содержать 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, но я могу » t Рисунок, как использовать дробные биты)
  • 15 бит на существительное
  • 13 бит на глагол
  • 13 бит на наречие

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

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

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

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

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

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

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

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

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

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

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

10
задан Community 23 May 2017 в 12:11
поделиться