Пока готовятся остальные материалы по char & word language modelling, в голову проникла странная мысль. Или скорее вопрос для постановки задачи. Допустим, есть у нас набор справочников с описаниями всяких инженерных штук, типа такого:
Тут мы имеем описание для стали в виде набора пар атрибут-значение атрибута. Атрибуты могут быть текстовые "Марка материала", числовые "Плотность", диапазоны "Содержание углерода" и другие.
Нетрудно заметить, что перед нами обычная "документная" модель. В качестве виртуального документа выступает объект с неким содержанием. Если представить, что перед нами виртуальная файловая система, то мы видим файл с названием "Сталь 11ЮА ГОСТ 803-81" среди множества аналогичных файлов.
Как можно реализовать поиск в таком массиве документов на основе
векторного представления документов? Можно ли использовать
что-то, завязанное на SVD?
Проблема в том, что просто привести значения параметров к текстовому описания нельзя. Легко понять причину: два документа "резьба 6.00000001" и "резьба 5.99999999" будут различны в любых алгоритмах сравнения строк. Строковое представление числовой информации требует другого подхода к сравнению.
Что еще хуже того, диапазонное представление параметров - это другой тип сравнения похожести.
Другими словами, в одном документе перемешаны несколько метрик для оценки близости. И разные группы объектов могут иметь разный набор параметров, то есть разную итоговую метрику:
Поэтому нельзя просто взять текстовую визуализацию такого документа, разбить его на термы и запихнуть в LSA или даже в старый добрый обратный индекс с
Jaccard coefficient.
Но очень хочется получить все бонусы векторного представления документов в виде учета семантики. Как это сделать?