Имам 160 бита произволни данни.
Просто за забавление, искам да генерирам псевдоанглийска фраза, в която да "съхраня" тази информация. Искам да мога да възстановя тази информация от фразата.
Забележка: Това не е защитен въпрос, не ме интересува дали някой друг ще може да възстанови информацията или дори да открие, че е там или не.
Критерии за по-добри фрази, от най-важните до най-малко:
- Къс
- Единствен по рода си
- Естествено изглеждащ
Настоящият подход, предложен тук:
Вземете три списъка с 1024 съществителни, глаголи и прилагателни всеки (като изберете най-популярните). Генерирайте фраза по следния модел, като четете 20 бита за всяка дума:
Noun verb adjective verb, Noun verb adjective verb, Noun verb adjective verb, Noun verb adjective verb.
Това изглежда е добър подход, но фразата е твърде дълга и твърде скучна.
Намерих набор от думи тук (база данни за част от речта).
След известно ad hoc филтриране изчислих, че този корпус съдържа приблизително
- 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.
Все още е малко дълго и скучно.
Някакви съвети как мога да го подобря?
Какво виждам, че мога да опитам:
Опитайте се да компресирате данните ми по някакъв начин преди кодиране. Но тъй като данните са напълно произволни, само някои фрази биха били по-кратки (и, предполагам, не много).
Подобрете шаблона на фразата, за да изглежда по-добре.
Използвайте няколко модела, като използвате първата дума във фразата, за да посочите по някакъв начин за бъдещо декодиране кой модел е бил използван. (Например, използвайте последната буква или дори дължината на думата.) Изберете модел според първите байтове на данните.
...Не съм толкова добър с английския, че да измисля по-добри модели на фрази. Някакви предположения?
- Използвайте повече лингвистика в шаблона. Различни времена и др.
...Предполагам, че ще ми трябва много по-добър корпус от думи, отколкото имам сега за това. Някакви съвети откъде мога да взема подходящ?