Спин-офф: векторная модель для поиска по справочникам номенклатуры в кровавом энтерпрайзе

Oct 25, 2016 14:08

Пока готовятся остальные материалы по char & word language modelling, в голову проникла странная мысль. Или скорее вопрос для постановки задачи. Допустим, есть у нас набор справочников с описаниями всяких инженерных штук, типа такого:



Тут мы имеем описание для стали в виде набора пар атрибут-значение атрибута. Атрибуты могут быть текстовые "Марка материала", числовые "Плотность", диапазоны "Содержание углерода" и другие.

Нетрудно заметить, что перед нами обычная "документная" модель. В качестве виртуального документа выступает объект с неким содержанием. Если представить, что перед нами виртуальная файловая система, то мы видим файл с названием "Сталь 11ЮА ГОСТ 803-81" среди множества аналогичных файлов.

Как можно реализовать поиск в таком массиве документов на основе векторного представления документов? Можно ли использовать что-то, завязанное на SVD?

Проблема в том, что просто привести значения параметров к текстовому описания нельзя. Легко понять причину: два документа "резьба 6.00000001" и "резьба 5.99999999" будут различны в любых алгоритмах сравнения строк. Строковое представление числовой информации требует другого подхода к сравнению.

Что еще хуже того, диапазонное представление параметров - это другой тип сравнения похожести.

Другими словами, в одном документе перемешаны несколько метрик для оценки близости. И разные группы объектов могут иметь разный набор параметров, то есть разную итоговую метрику:



Поэтому нельзя просто взять текстовую визуализацию такого документа, разбить его на термы и запихнуть в LSA или даже в старый добрый обратный индекс с Jaccard coefficient.

Но очень хочется получить все бонусы векторного представления документов в виде учета семантики. Как это сделать?

vector space model, vector model, поисковый движок

Previous post Next post
Up