Составьте синтетическую английскую фразу, которая будет содержать 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 бит/наречие)
Пример предложения: "Замачивание, привычный губительный, социально-спекулятивный образец и бесстрашный катаклизм, где-то обратный макрокосм ангелически выходит за неустойчиво прерывистый утешитель".