Страницы: 1
RSS
Настройка распознавания текста надстройки fuzzy lookup
 
Всем привет!
Подскажите распознаёт ли данная надстройка по написанию одинаковые символы, но на разных языках.
В настройках подобного не нашёл, при том что бегунок выставляю до упора в право
Труба 32х3.5, В 20   ГОСТ 8733-74, ГОСТ 8734-75*Труба 32x3.5, В 20 ГОСТ 8733-74, ГОСТ   8734-75*
 
adamm, здравствуйте
Цитата
adamm: распознаёт ли
не знаю наверняка, но сомневаюсь, т.к. вариантов того же "крестика" (буква "ха" или "икс" на RU-EN клавиатуре) в Юникоде полно (и в обрабатываемых данных я встречал кроме "клавиатурных" ещё ~3 варианта) и прогонять по всем вряд ли целесообразно
Лично я перед сравнением строк готовлю их, преобразуя в более простые, без многих (не определяющих) символов, в одном регистре,  а также преобразуя в латиницу кириллические символы с визульным подобием (ABCEHKMOPTXY)

При точном поиске дополнительно удаляю пробелы, т.к. даже "сжатие" не спасёт при "12мм" и "12 мм"
При неточном поиске ограничиваюсь заменой неразрывных пробелов на обычные, т.к. там используются перестановки слов местами

В таком случае, я сам даю гарантию подобия подобного и это мне нравится, т.к. ложное подобие — это куда лучше, чем не найденное подобие  ;)
Изменено: Jack Famous - 22.10.2020 09:46:17
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, спасибо!
 
А есть ли ограничение по количеству строк? При сравнении 35000 строк по три столбца на 2000 строке комп зависает напроч, включение индексирования не помогает.
По итогам скрепил три столбца, что бы произвести сравнение по двум столбцам, заметно шустрее стал работать
Изменено: adamm - 22.10.2020 14:44:57
 
Доброе время суток
Цитата
adamm написал:
комп зависает
Вполне естественно. Просто почитайте про алгоритмы нечёткого сравнения строк. Сложность сравнения двух строк по 33 символа в каждой почти 1000 операций (они все N * M по сложености, где N, M - число символов в строке). Допустим операция из N * M требует 100 тактов процессора
У вас сравнений строк 65 000 * 2 000, итого 130 000 сравнений строк. Пусть у вас крутой комп с 4ГГц частотой. Тогда умножить поделить такое сравнение завершиться через 3250 секунд. Просто подождите :)
 
Спасибо Андрей!
 
Не разу не использовал, почитал, полезная вещь!
Может такую функцию напилить, какие нюансы?
Видел функцию у Николая (с подсчетом совпадающих символов?), тоже как вариант.
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал:
Может такую функцию напилить, какие нюансы?
Привет, Виталий.
Попробуй. Правда алгоритм, зашитый в Fuzzy Lookup, но как вариант пока можно рассмотреть расстояние по Левенштейну и LCS. В файле формульное решение. Естественно, если реализовывать кодом, то N x N матрицу в обоих случаях можно не строит. Да и чуть отсечь по краевым задачам можно. Но всё равно алгоритм N x M.
 
bedvit, Андрей VG, я давно ищу аналог Fuzzy Lookup, но всё найденное пока сильно слабее
Лучшее, что нашёл: СРАВНЕНИЕ ТЕКСТА ПО ЧАСТИ ПРЕДЛОЖЕНИЯ

А также варианты для ознакомления:
Простая метрика сходства текстовых строк
Нечёткий поиск
Изменено: Jack Famous - 23.10.2020 10:23:53
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
сильно слабее
Привет, Алексей.
А чем расстояние Левенштейна сильно слабее СРАВНЕНИЕ ТЕКСТА ПО ЧАСТИ ПРЕДЛОЖЕНИЯ? Тем что по исходной постановке не имеет проблем с порядком слов? Так такой алгоритм чуть строже чем тот, на который исходно Виталий дал ссылку. Потом, да его несколько усилили - не смотрел уже.
 
Андрей VG, привет))
Цитата
Андрей VG: чем расстояние Левенштейна сильно слабее СРАВНЕНИЕ ТЕКСТА ПО ЧАСТИ ПРЕДЛОЖЕНИЯ?
я немного про другое. На данный момент для меня лучшие результаты выдаёт надстройка мелкомягких, но, если смотреть в сторону самостоятельного решения на VBA, не требующего подключений внешних данных (кроме штатных библиотек), то Димина функция отлично подходит. Вариант от Николая Владимировича мне не очень подходит…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
то Димина функция отлично подходит. Вариант от Николая Владимировича мне не очень подходит…
Тут не поспоришь, у Павлова очень наивный подход к сопоставлению. Я полагал, что вы с вышеуказанными алгоритмами работали.
 
Цитата
Андрей VG: Я полагал, что вы с вышеуказанными алгоритмами работали
ну во-первых не "вы", а "ты"  :D
Там такая серьёзная математика, что сам боюсь браться, надо МСН подключать или нашу бригаду  :idea:
Вариант Димы мне понятен, прозрачен (подробен) и довольно надёжен, поэтому именно на его основе сделал себе макрос (поделюсь скоро), но там дополнительно используется серьёзная предварительная обработка строк с удалением "неопределяющих" символов
"Простую метрику" давно не трогал и не помню, а "Нечёткий поиск" даже запустить не удалось т.к. всю память съел
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Всем привет. Тема довольно серьезная. Но кажется, что полезная. Сам не раз сталкивался. Нужно выбрать оптимальный алгоритм. Читаю интернеты.
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit: Тема довольно серьезная. Но кажется, что полезная
и серьёзная и полезная  :D

Выкладываю макросы для стандартизации строки и/или чисел в них. Основные (для вызова) — первые два (для диапазона и для элемента), остальные - вспомогательные, для работы
Это первая версия и довольно сырая, к тому же не претендует на универсальность - писал из реалий своих данных
Основной инструмент, используемый в коде - регулярные выражения
Код написан под раннее связывание, так что убедитесь, что у вас подключена библиотеки со скрина
Код
Изменено: Jack Famous - 23.10.2020 15:56:30
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх