Работая с языком часто приходится сталкиваться со структурой данных — мультисловарь взвешенных строк. Например у вас есть слово лето и ассоциации к нему:
жара 1.0
море 0.85
солнце 0.82
отдых 0.74
пляж 0.72
отдых на пляже 0.03
Вот и получается, что слову лето соответствует множество взвешенных слов-ассоциаций.
Соответственно набор взвешенных слов получил у нас название Doublap (double map). А словарь таких наборов — HDoublap (hierarchical double map). Или, сокращённо, HDP.
Формат записи на диск прямо следует из устройства структуры данных:
- строки, начинающиеся с # считаются комментариями;
- пустые строки игнорируются;
- строка, не начинающаяся с пробела является ключом первого уровня;
- строка, начинающаяся с двух пробелов является ключом второго уровня, после которого через пробел следует вес. Вне зависимости от локали, десятичным разделителем является точка.
- в ключах пробельные символы заменены знаком подчёркивания;
Таким образом пример выше будет записан в файле следующим образом:
лето
жара 1.0
море 0.85
солнце 0.82
отдых 0.74
пляж 0.72
отдых_на_пляже 0.03
Как мы уже писали выше, в компьютерной лингвистике иерархические взвешенные карты — естественная структура данных. Но если записать её в CSV, то сразу теряется наглядность и простота восприятия человеком.
HDP совмещает в себе естественное представления иерархии, с которым удобно работать человеку и простоту чтения такого формата машиной. Ещё одним важнейшим преимуществом является возможность поиска по файлу в формате HDP любым текстовым редактором с поддержкой регулярных выражений.
Формат данных имеет строго практическое назначение и подразумевает в качестве ключей слова и выражения русского и английского языка. Для записи произвольных данных, например где ключ первого уровня может начинаться с решётки, он не подойдет — но для этого всегда есть более детально проработанный CSV.