Каталог решений - Степень сходства двух наименований справочника

Степень сходства двух наименований справочника

Степень сходства двух наименований справочника

В наличии

Статья посвящена исследованию следующего вопроса: необходимо сравнить 2 наименования справочников с целью вычисления их степени сходства. По задумке, степень сходства должна выражаться в процентах.

Категория:

Описание

Задача возникла при попытках поиска элементов справочника номенклатуры для обновления значений реквизитов. Суть проблемы заключалась в неуникальности реквизитов для поиска (артикул, например) в пределах всего справочника, что приводило к ложной подстановке обновляемых реквизитов. 

В итоге, в качестве решения проблемы разработана модель сравнения наименования найденного элемента справочника с наименованием элемента, необходимого для обновления реквизитов. Таким образом, мы отсеиваем полностью несовпадающие по наименованию элементы справочника при неуникальных остальных реквизитах, по которым мы пытаемся спозиционироваться на элемент.

Существуют масса алгоритмов определения степени сходства 2-х текстов, после изучения которых, был выработан следующий алгоритм:

  1. Вычисляем длины наименований
  2. Принимаем за эталон наибольшую длину (для организации цикла)
  3. Принимаем наименование с наибольшей длиной за эталонную строку
  4. Попарно вычисляем число вхождений в обоих наименованиях каждого символа из эталонной строки
  5. Удаляем из наименований символы, для которых произведён поиск
  6. Складываем общее количество вхождений для каждого наименования
  7. После цикла вычисляем степень сходства по формуле (результат в процентах):
(Вхождение1/Вхождение2)*100

has been added to your cart:
Оформление заказа