- PVSM.RU - https://www.pvsm.ru -
Я довольно давно поставил себе цель научиться запоминать числа, в основном просто как задача для саморазвития, очевидной практической выгоды не нашел. Однако хочется запоминать телефонные номера, маршруты транспорта, даты. Мне было трудно найти и начать пользоваться готовым решением, зато захотелось поработать над своим.
Поскольку основным недостатком найденных систем я считаю сложность составления слов для некоторых чисел, то хотелось бы считать именно количество слов.
Вместо того, чтобы использовать какую-либо книгу, я использовал готовый частотный словарь [2]. Словарь основан на национальном корпусе [3] русского языка, который, в свою очередь, включает анализ многих книг, стихотворений разных жанров.
Частотный словарь доступен в виде csv-файла, [4], который я решил проанализировать. Ниже скриншоты из Jupyter Notebook, для желающих в конце статьи имеется ссылка на github.
Как видно, данные содержат:
Я выбрал одну меритку часоты, поскольку мне важно только ранжирование. Методом проб и ошибок оказалось, что существительные — это "s".
Таким образом, осталось два столбца и 22050 слов.
Однако среди этих слов есть много, которых я не знаю. Кроме того, я не хочу, чтобы основными в коде были "редкие" буквы, поэтому я решил отобрать слова, в которых таких редких букв нет. Как позже оказалось, идея не очень рабочая, но тем не менее.
Выбрав "простые" и "сложные" буквы, посчитаем их количество. Кроме того, выведем общее количество согласных букв в слове.
Отметим:
Далее я подумал, что нужно отобрать слова с 2-3 согласными, без "сложных" букв, а также выбрать те, которые я знаю. Можно отрезать по своему усмотрению список отсортированный по частоте. Как позже я узнал, это идея тоже не очень, т.к. распределение слов неравномерное: всё-таки среди редких слов много известных.
Так или иначе, в "хорошие" слова попало 2500 слов, поскольку я не знаю, что такое тейп и спуд. Из них 707 слов кодировали числа от 10 до 99 и 1793 числа от 100 до 999. Тут надо отметить, что 707 слов — это не так уж много для 90 чисел, меньше 10 слов на число, и это вместе с абстрактными и неизвестными.
Далее я задал следующие функции:
Таким образом, для проверки любого мэппинга достаточно его задать и вызвать функцию тестирования.
Первой мне попалась система Джордано. На ней основаны многие мобильые приложения для обучения мнемонике, она упоминается и в интернете, см., например, тут [6].
Именно она мне показалась сложной в работе. Попробуйте, например, придумать слова для 84 или 11. Отмечу, что в приложениях есть уже готовые образы для чисел, но тогда нужно запомнить именно их, сто штук. В этом случае есть еще вариант запомнить какие-то свои, себе близкие образы.
Так или иначе, результаты теста такие:
Результаты по всем словам трудно сходу проинтерпретировать, а для "простых" слов видно, что для 22 чисел вообще нет ни одного слова.
Другой мэппинг, основанный на том, с какой буквы начинается название цифры, приводится на одном сайте саморазвития [7]. Проверим:
Как видно, стало сильно хуже, для 8 цифр вообще нет слов. Отмечу, что например мало слов где есть только две согласных буквы Р. Но и тем более плохая идея использовать для кода только редкие буквы вроде Ш и Ч.
В процессе подбора системы получше были следующие этапы:
Я понял, что важна не частота встречания букв в слове в целом, а частота их нахождения на 1 и на 2 месте в слове (для кодирования двухзначных чисел). Нужно, чтобы для каждой цифры были такие буквы, чтобы вероятность найти одну из этих букв в начале или в конце слова была одинаковая.
Считаем частоты на 1 месте, на 2 месте и на 2 местах сразу:
Мне далее показалось проще скопировать вывод в табличный редактор и подобрать шифр так, чтобы частоты были максимально равномерно распределены между кодируемыми цифрами.
Посмотрим на результат:
Как видно, для "простых" слов всё равно остались некодируемые буквы. Например, потому что никакое слово не содержит РР, а буквы Ч в "простых" словах не было. В итоге я решил, что правильнее считать по всем буквам.
Посмотрим на слова, которые вошли в итоговый список для некоторых чисел:
Как видно, по факту слов подходит несколько меньше. Мы не можем использовать уныние, войну, вину, вонь, веяние, новое, новь, а также слова, которых не знаем. Однако всё равно остается много хороших слов для всех чисел, в том числе трехзначных.
Код ноутбука, данные и текст статьи лежат тут: Github [8]
Надеюсь, вам понравилось, а также буду рад советам:
Автор: unkinddragon
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/229397
Ссылки в тексте:
[1] Мозг: http://www.braintools.ru
[2] частотный словарь: http://dict.ruslang.ru/freq.php
[3] корпусе: http://www.ruscorpora.ru
[4] csv-файла,: http://dict.ruslang.ru/Freq2011.zip
[5] введнии к словарю: http://dict.ruslang.ru/freq.pdf
[6] тут: http://dic.academic.ru/dic.nsf/ruwiki/44014#.D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D0.BD.D0.BE.D0.B9_.D0.BC.D0.B5.D1.82.D0.BE.D0.B4_.D0.B7.D0.B0.D0.BF.D0.BE.D0.BC.D0.B8.D0.BD.D0.B0.D0.BD.D0.B8.D1.8F_.D0.B2_.D1.81.D0.BE.D0.B2.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.BE.D0.B9_.D0.BC.D0.BD.D0.B5.D0.BC.D0.BE.D0.BD.D0.B8.D0.BA.D0.B5
[7] сайте саморазвития: https://4brain.ru/memory/mnemotehniki.php#3
[8] Github: https://github.com/unkinddragon/bestmnemonic
[9] Источник: https://geektimes.ru/post/284296/
Нажмите здесь для печати.