|
Нечеткий поиск
Злопчинский, Tatitutu, Hmster, who respawn, ldo6, dark70, Garykom, sdf, Шурик71, PR, Волшебник, novichok79, Djelf, mmg, Zamestas, AndreyZhukov, Михаил Козлов, craxx, Sneer, Tarlich, ansh15, Greeen, AAA, НовыйЯ, maxab72, d4rkmesa, LoneMan, youalex, Кирпич, Ботаник Гарден Меран, _Batoo, scaramouche, Chameleon1980, DiMel_77, ndrv, PuhUfa, vbus, lubitelxml, Irbis, Double_Medved, Олдж, Гипервизор, PLUT, 2S, Valdis2007, Timon1405, repin_mike, phabeZ, DimR_71, МаленькийВопросик, Hawk_1c, Бычье сердце, SleepyHead, Мультук, unenu, Страждущий, Федя Тяпкин, Bad_Aleks, formista2000, patapum, Franchiser, shuhard, Многолетний Апельсин, СвинТуз, pablo_escobar, John D, Eiffil123
| ☑ |
0
repin_mike
24.06.25
✎
17:15
|
Как на языке 1С оценить меру похожести строк? Например, строки "Иванов Петр Юрьевич" "Иванов Пётр Юрьевич" и "Иванов.Петр.Юрьевич " скорее похожи, а "Иванов Юрий Петрович" скорее не похожа на предыдущие?
|
|
1
PR
24.06.25
✎
17:18
|
(0) Замени все ё на е
Замени все точки на пробелы
Разбей строку на подстроки по пробелам
Отсортируй по наименованию
Сравни получившиеся массивы
|
|
2
dark70
24.06.25
✎
17:19
|
в запросе ПОДОБНО "%Иванов%" , например.
|
|
3
PR
24.06.25
✎
17:20
|
А вообще гугли "Методы нечеткого сравнения текстов"
|
|
4
PR
24.06.25
✎
17:20
|
(2) "Иванов Иванов Иванов" и "Иванов Петр Сергеевич" равны?
|
|
5
Timon1405
24.06.25
✎
17:21
|
(0) wiki:Расстояние_Левенштейна
как запрограммировать на 1с спросите у дипсика
|
|
6
PR
24.06.25
✎
17:21
|
|
|
7
dark70
24.06.25
✎
17:25
|
(4) Нет. Но как вариант поиска.
|
|
8
PR
24.06.25
✎
17:31
|
(7) И почему нет?
Все найдется
Таких никому не нужных нерабочих недовариантов можно дохрена накидать
Но зачем?
|
|
9
PR
24.06.25
✎
17:33
|
Щас еще особо умные персонажи вспомнят, что 1С теперь умеет в регулярки, начнут наперебой умничать, что все нужно через них делать, не вдаваясь в детали, что именно и как именно делать
|
|
10
dark70
24.06.25
✎
17:40
|
(8) Автор не обозначил критериев оценок "скорее похоже чем нет". А если задать проценты похожести, то "Подобно" вполне подойдет.
Хотя бы вот
https://catalog.mista.ru/1c/tools/445962/
|
|
11
Волшебник
24.06.25
✎
17:59
|
(4) а бывают полные однофамильцы, которые не равны.
Или хотя бы уволенный сотрудник, который не равен вновь принятому, хотя физлицо совпадает.
|
|
12
dark70
24.06.25
✎
18:01
|
Вообще-то здесь речь о строках, а ФИО как пример.
|
|
13
PR
24.06.25
✎
18:02
|
(10) Рассуждения спеца за соточку
|
|
14
PR
24.06.25
✎
18:03
|
(11) Ну, это уже не сравнение строк
|
|
15
Волшебник
24.06.25
✎
18:03
|
Можно привести строки к минимальной длине, потом отбрасывать по одному символу справа и сравнивать. Если совпало, то длина строки будет мерой похожести.
|
|
16
Волшебник
24.06.25
✎
18:11
|
(5) Я поддерживаю это решение. Там алгоритм на 10 строчек кода, три цикла
|
|
17
Злопчинский
24.06.25
✎
18:40
|
На ИС штуки к реализации разных методов нечеткого поиска.
|
|
18
Злопчинский
24.06.25
✎
18:41
|
(5) strmatch.dll на гем вроде базируется с добавками...
|
|
19
Волшебник
24.06.25
✎
21:20
|
Функция РасстояниеЛевенштейна на языке 1С
Функция РасстояниеЛевенштейна(Строка1, Строка2)
len1 = СтрДлина(Строка1)
len2 = СтрДлина(Строка2)
// Создаем матрицу (len1+1) x (len2+1)
матрица = Новый Массив(len1 + 1)
Для i = 0 По len1 Цикл
матрица[i] = Новый Массив(len2 + 1)
КонецЦикла
// Инициализация первой строки
Для j = 0 По len2 Цикл
матрица[0][j] = j
КонецЦикла
// Инициализация первого столбца
Для i = 0 По len1 Цикл
матрица[i][0] = i
КонецЦикла
// Заполнение матрицы
Для i = 1 По len1 Цикл
Для j = 1 По len2 Цикл
символ1 = Сред(Строка1, i, 1)
символ2 = Сред(Строка2, j, 1)
cost = ?(символ1 = символ2, 0, 1)
матрица[i][j] = Мин(
матрица[i-1][j] + 1, // Удаление
матрица[i][j-1] + 1, // Вставка
матрица[i-1][j-1] + cost // Замена или совпадение
)
КонецЦикла
КонецЦикла
Возврат матрица[len1][len2]
КонецФункции
Я не проверял. Это творчество Qwen. Очевидно не хватает точки с запятой ";"
|
|
20
Djelf
гуру
24.06.25
✎
21:23
|
(18) это для 7.7, на 8ку вроде никто это не портировал, но там это не требуется, 8ка же, там все есть...
Так ведь?
(19) гадя невероятная
|
|
21
Волшебник
24.06.25
✎
21:23
|
(20) Простите великодушно.
Функция на самом деле очень интересная. Можно искать номенклатуру по артикулу или по части штрих|QR-кода.
|
|
22
Злопчинский
24.06.25
✎
23:52
|
(20) штатная strmatch и с 8ой работает, на ис тоже были решения
|
|