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

Имам 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.

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

Някакви съвети как мога да го подобря?

Какво виждам, че мога да опитам:

  • Опитайте се да компресирате данните ми по някакъв начин преди кодиране. Но тъй като данните са напълно произволни, само някои фрази биха били по-кратки (и, предполагам, не много).

  • Подобрете шаблона на фразата, за да изглежда по-добре.

  • Използвайте няколко модела, като използвате първата дума във фразата, за да посочите по някакъв начин за бъдещо декодиране кой модел е бил използван. (Например, използвайте последната буква или дори дължината на думата.) Изберете модел според първите байтове на данните.

...Не съм толкова добър с английския, че да измисля по-добри модели на фрази. Някакви предположения?

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

...Предполагам, че ще ми трябва много по-добър корпус от думи, отколкото имам сега за това. Някакви съвети откъде мога да взема подходящ?


person Alexander Gladysh    schedule 15.01.2011    source източник
comment
Опитът да се използват времена ще доведе до усложнения, тъй като в английския език няма правилна морфологична система. Например, за трето лице, множествено число активен индикатив, имаме разграничение между те са отишли ​​и те отиват, но няма разграничение между те са подходящи (минало) и те са подходящи (настояще). Тъй като наличността на разликата във времето варира в зависимост от други данни, е трудно да я включите във вашия алгоритъм за съхранение по прост начин.   -  person Steven    schedule 15.01.2011
comment
Съжалявам, но смятам, че съм принуден да предложа това като уместно, независимо дали всъщност отговаря напълно на въпроса ви или не: tools.ietf.org/html/rfc1605   -  person Amber    schedule 16.01.2011


Отговори (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 бита/наречие)

Примерно изречение: „Попиващият, обичайно шантавият, социално спекулативен образец и безстрашно катаклизмичният, някъде реципрочен макрокосмос се застъпват ангелски над неизбежно непостоянния утешител.“

person PleaseStand    schedule 15.01.2011
comment
Браво, благодаря. Освен че тогава бих направил фраза от две или три изречения, тази е малко твърде неестествена. (Също така: Вашето число за прилагателни е много по-малко от моето - може би съм сбъркал нещо?) - person Alexander Gladysh; 15.01.2011
comment
Бих искал да направя допълнение: Използвайте подхода на английското кодиране, но го изпейте в песен, която обичате. Когато направих това, успях да запомня 70 станции на метрото! - person Nayuki; 10.08.2011