#0
by Вадимыч
Посоветуйте пожалуйста алгоритм нечёткого сравнения строк. Мне нужно сравнивать названия контрагентов, т.е. строки в среднем от 10 до 25 символов. Перевёл один хороший алгоритм в Delphi на 1С, но он работает ужасно долго! Где-то по 10-20 мин на одно сравнение! Помогите пожалуйста! //------------------------- Нечеткое сравнение -------------------- Функция Соответствие(с1, с2, А, Б) ГлобальнаяСумма = 0; Мах = 0; //~Цикел: //Если Сред(А, с1, 1)=Сред(Б, с2, 1) Тогда // ГлобальнаяСумма = ГлобальнаяСумма + 1; // Если (с1<СтрДлина(А)) И (с2<СтрДлина(Б)) Тогда // с1 = с1 + 1; // с2 = с2 + 1; // Перейти ~Цикел; // КонецЕсли; //КонецЕсли; Пока Сред(А, с1, 1)=Сред(Б, с2, 1) Цикл ГлобальнаяСумма = ГлобальнаяСумма + 1; Если (с1<СтрДлина(А)) И (с2<СтрДлина(Б)) Тогда с1 = с1 + 1; с2 = с2 + 1; Иначе Прервать; КонецЕсли КонецЦикла; Если (с1<СтрДлина(А)) И (с2<СтрДлина(Б)) Тогда Сумм = Соответствие(с1+1, с2+1, А, Б); Если (Мах<Сумм) Тогда Мах = Сумм; КонецЕсли; КонецЕсли; Если с1<СтрДлина(А) Тогда Сумм = Соответствие(с1+1, с2, А, Б); Если (Мах<Сумм) Тогда Мах = Сумм; КонецЕсли; КонецЕсли; Если с2<СтрДлина(Б) Тогда Сумм = Соответствие(с1, с2+1, А, Б); Если (Мах<Сумм) Тогда Мах = Сумм; КонецЕсли; КонецЕсли; Возврат ГлобальнаяСумма + Мах; КонецФункции Функция НечеткоеСравнение(Строка1, Строка2) Возврат Соответствие(1, 1, Строка1, Строка2) * 2.0/(СтрДлина(Строка1) + СтрДлина(Строка2)) * 100; // Процент соответствия КонецФункции //--------------------------------------------------------------
#5
by yukon
может не стоит изобретать велосипед? попробуй, посмотри здесь strmatch - Нечеткое сравнение и поиск строк и здесь [P2P] "Удар По Бездуховности" v.1.0д
#8
by insider
кто код смотрел: обработка по пробелам слова вычленяет и потом по ним ищет? тогда это просто...
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Расходный кассовый ордер
- Пропали субконто в проводках документов
- Проведение по партиям в УПП
- Коприрование элемента справочника
- Множественный отбор в журналах средствами 1С.
- ЗУП 2.5 Расчетная ведомость не формируется
- Дробное число прописью
- Запрет на интерактивный отбор
- v7: конвертация базы из паруса в 1С
- Пропадает выделение поля ввода
- проблема с пакетным запуском.
- как переименовать колонку в твблице значений
- Перенос данных из одной формы в другую
- разрешить редактирование КИ в списке
- Конвертация данных 2.0 Перегрузка элементов в определенную папку
- Есть проблема со считыванием штрих кода сканером
- Погашение ссуды, займа, кредита.
- Одновременно весовой и штучный учет
- Печать документов через COMConnector из внешней программы
- v7: Ошибка в регистре расчета в 8,1