strmatch - Нечеткое сравнение и поиск строк

Программирование - Инструментарий

Компонента для нечеткого сравнения строк.
Это репост моей публикации из "Клуба профессионалов 1С"

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

 

Т.к. на базе этой компоненты существуют разработки, предлагаемые на инфостарте, я решил разместить и саму компоненту также тут. Автор я сам, никакого плагиата :)

Важное замечание 1. Значения, выдаваемые компонентой, это НЕ ПРОЦЕНТЫ (!!!).
Сами по себе цифры ничего не значат, показательно то, что для более похожих строк они больше. Основной use case использования: взять строку-образец, сравнить по очереди со списком строк для поиска наиболее похожих. Для ускорения многократного сравнения разных образцов с одним и тем же набором строк предусмотрен механизм создания внутренних кешей.

Важное замечание 2. Компонента не может ответить на вопрос: "Есть искомая строка среди списка или нет". Она только выберет строки из предложенного списка наиболее похожие на образец. Если результат показался странным, значит остальные строки, по мнению внутреннего алгоритма, похожи на образец не более, чем выбранные.

 В комплекте идет:

  • bildlist.txt - история версий
  • FuzSearch.ert - пример использования
  • readme.txt - описание и информация о том как подключить
  • StrMatch.als - файл синтаксис-помошника по компоненте
  • StrMatch.dll - сама компонента. Версия 2.1.0 от 4 февраля 2005г.

Для работы требуется:

    Проверить, есть ли в папке system32 файлы:
    mfc71.dll и msvcr71.dll - если нет, то найти в инете и поместить их туда

 

Какая-либо работа над компонентой прекращена и не планируется в обозримом будущем. Найденные исходники выложены сюда:

https://github.com/5k0rp/StrMatch

Возможно, исходники не самые свежие, т.к. в какой-то момент они терялись из-за умершего диска. Как и что удалось восстановить - не помню.

Скачать файлы

Наименование Файл Версия Размер
Архив с компонентой и описанием
.zip 38,30Kb
18.11.13
190
.zip 2.1.0 38,30Kb 190 Скачать

См. также

Комментарии
1. Юрий Гончарук (yukon) 71 18.11.13 12:00 Сейчас в теме
Отлично.

Версия под NativeAPI планируется?
2. Михаил Ражиков (tango) 475 18.11.13 12:12 Сейчас в теме
единственная вк, которая принесла пользу
поправьте "пример оспользования" в тексте
3. Sk0rp Моя (Sk0rp) 104 18.11.13 13:10 Сейчас в теме
(1) yukon, Какое-либо развитие компоненты не планируется. Была в свое время написана для конкретного проекта. Исходники если найду позже тоже выложу.
4. Sk0rp Моя (Sk0rp) 104 18.11.13 13:10 Сейчас в теме
(2) tango, Спасибо. Исправил.
5. Яков Коган (Yashazz) 2121 18.11.13 17:14 Сейчас в теме
Судя по als-файлу, это та самая компонента времён 7.7 и сайта hare.ru, или нет? И вы, sk0rp, её автор?
6. Sk0rp Моя (Sk0rp) 104 18.11.13 17:46 Сейчас в теме
(5) Yashazz, дважды "да". Действительно впервые она выклыдавалась мной у кролика.
7. Алексей 1 (AlX0id) 19.11.13 12:54 Сейчас в теме
мм.. это типа можно для распознавания голоса использовать? )
8. Михаил Ражиков (tango) 475 19.11.13 13:07 Сейчас в теме
(7) AlX0id, скорее для идентификации автора по образцам текстов
9. Sk0rp Моя (Sk0rp) 104 19.11.13 14:00 Сейчас в теме
(7) AlX0id, нет. Анализируется только текст.
10. Яков Коган (Yashazz) 2121 19.11.13 20:58 Сейчас в теме
(6) Тогда искреннее большое спасибо, она в те времена изрядно пригодилась. А теперь - большинство будет юзать полнотекстовый поиск, а про расстояние Левенштейна и прочую ересь вообще никто не знает )))
DrAku1a; Valet; +2 Ответить
11. Lemkus Смирноов (Lemkus) 20.11.13 10:49 Сейчас в теме
Чем эта компонента лучше полнотекстового поиска?
12. Максим Кузнецов (Makushimo) 151 20.11.13 12:00 Сейчас в теме
А можете написать статью про алгоритм работы этой компоненты?
в картинках и на пальцах.
очень интересно
13. Андрей Овсянкин (Evil Beaver) 4250 20.11.13 12:00 Сейчас в теме
Вроде звучит клёво, но не пойму сходу, в каких практических задачах ее можно применить?
14. Михаил Ражиков (tango) 475 20.11.13 12:02 Сейчас в теме
(13) Evil Beaver, синхронизация справочников
15. Яков Коган (Yashazz) 2121 20.11.13 12:05 Сейчас в теме
(11) У полнотекстового поиска есть куча недостатков. Например, область индексации динамически не управляется и любое перестроение кушает время.
16. Максим Кузнецов (Makushimo) 151 20.11.13 12:26 Сейчас в теме
(15) Yashazz,
можно подробнее?
какие конкретно недостатки у полнотекстового поиска,
которые однозначно склоняют к поиску альтернативы?
например, эта компонента в публикации
17. Андрей Овсянкин (Evil Beaver) 4250 20.11.13 12:47 Сейчас в теме
(14) tango, ну может быть... хотя нечеткая синхронизация такого может насинхронизировать....
В синхронизации, как раз идентичность сущностей крайне важна. А так, сегодня у меня отображалось в один объект, а завтра кто-то поменял наименование, его рейтинг в нечетком поиске вырос, и стало отображаться в другой объект...
Но, как вариант первичного слияния двух замусоренных баз с поиском правых и виноватых, да, наверное, можно что-то придумать :)
18. Михаил Ражиков (tango) 475 20.11.13 12:52 Сейчас в теме
(17) Evil Beaver, разумеется, обработка полуавтоматическая.
ускорение работы оператора вполне реальное
второе применение - подбор в 1с из ексельного файлика (т.н. "проблема номенклатуры поставщика")
alex_sv; Sk0rp; +2 Ответить
19. Михаил Хаов (мх) 16 20.11.13 13:30 Сейчас в теме
Спасибо за эту компоненту.
До сих пор используем ее (работаем на 7,7)
(17) Evil Beaver Используем для (первичной) привязки номенклатуры поставщика к собственному справочнику товаров
20. Sk0rp Моя (Sk0rp) 104 20.11.13 13:37 Сейчас в теме
(11) Lemkus, области использования практически не пересекаются. Сравнивать не имеет смысла.

(12) Makushimo, много было взято из metaphone:
http://en.wikipedia.org/wiki/Metaphone
Существует его адаптация и для русского языка.
Затем считается количество совпавших звуков и последовательностей звуков (чем длиннее тем больше вес).
Цифры обрабатываются отдельно.

(13) Evil Beaver, изначально писалось как часть системы для полуавтоматической загрузки сканированных накладных поставщиков. Понятия электронного обмена в то время практически не существовало: была машина со сборной солянкой грузов от 50 поставщиков, коробка из 200 - 300 бумажных накладных и закрытый почти на неделю оптовый склад, т.к. операторам требовалось до 5 дней на обработку. С введением этой системы склад перестал закрываться на время приема вообще, а качество ввода накладных выросло.
21. Андрей Овсянкин (Evil Beaver) 4250 20.11.13 18:37 Сейчас в теме
> Сравнение производится по звучанию.
Прикольно, а это как вообще? Падонкафский езыг тоже понимает?
22. Lemkus Смирноов (Lemkus) 21.11.13 11:00 Сейчас в теме
(20)
Видимо, я плохо понимаю, что значит "Сравнение производится по звучанию"

Про полнотекстовый поиск в СП:
# - нечеткий поиск слов с заданным количеством отличий от указанного (если не указано, то = 1); пример: запрос "#Система" найдет "систама", "сивтема"; запрос "Система#2" найдет "ситтама", "сеттема";

Разве это не то же самое, что в компоненте, в чем отличия?
23. Sk0rp Моя (Sk0rp) 104 21.11.13 12:24 Сейчас в теме
(22) Lemkus, не совсем.
Для компоненты будут практически одинаковыми названия:
Whiskey Jack Daniels 500ml
500 Виски жек денил
Whi5key 500 мл /ack Dan|e1s /при распознавании грязного текста/
При этом расстояние Левингштейна между ними очень велико.
orfos; Torin99; Evil Beaver; Lemkus; +4 Ответить 1
24. Андрей Овсянкин (Evil Beaver) 4250 21.11.13 14:25 Сейчас в теме
(23) Sk0rp, Круть, дайте две!
Если мне вдруг что-то такое потребуется, буду знать, где скачивать! :)
25. Михаил Ражиков (tango) 475 21.11.13 14:30 Сейчас в теме
да, пожалуй, нынешнее поколение, учившее "полнотекстовый поиск", воспринимает это со своими оттенками эмоций
прикольно, что во времена 77 это воспринималось как будто так и надо
26. Вадим Никонов (V.Nikonov) 116 21.11.13 18:49 Сейчас в теме
Недавно мучился с синхронизацией расползшихся ИБ. Начал писать собственный алгоритм пословного сравнения... Работало чуть лучше полнотекстового поиска, но не совсем удовлетворяло. Были большие проблемы с сокращением наименований (Молочный - мол.; Шоколадный - Шок; и т.п.). Предлагаемый алгоритм не только нивелирует перестановку слов, но и должен качественно отлавливать всевозможные (разумные) сокращения!
Спасибо Автору!!!
27. Вадим Никонов (V.Nikonov) 116 21.11.13 18:57 Сейчас в теме
А возможности скормить компоненте эталон и массив для поиска сложно? На выходе получить отсортированный массив? На низком уровне обрабатывать большой массив легче...
28. Яков Коган (Yashazz) 2121 22.11.13 00:42 Сейчас в теме
(16) Так написал же - область индексации неуправляемая. У меня, допустим, три обалденных регистра сведений отмечены как используемые к полнотекстовому, но обновлял я лишь один регистр и искать хочу по нему - а обновление/слияние прочешет все три, степень гибкости маловата, время и ресурс жалко. Или я чего не знаю про полнотекстовый штатный?
29. Андрей Овсянкин (Evil Beaver) 4250 22.11.13 11:56 Сейчас в теме
(25) tango, вброс не засчитан. Я, конечно, помоложе Вас буду (судя по фотке), но эмоции мои не от того, что я не представляю себе что такое нечеткий поиск, а от того, что теперь такой инструмент есть в общественном доступе. И да, я вряд ли в состоянии написать подобное, поскольку матчастью не владею. Но никому не дано знать все, верно же? Вы вот можете написать точно такую же полностью самостоятельно?
30. Михаил Ражиков (tango) 475 22.11.13 12:07 Сейчас в теме
(29) Evil Beaver, начиная от "вброс" и далее везде. о чем вы хотите поговорить?
отмечу только, что сабж общедоступен со времен hare.ru - вы не прочитали камент или настолько молоды?
31. Андрей Овсянкин (Evil Beaver) 4250 22.11.13 13:09 Сейчас в теме
(30) tango, да, я настолько молод, что "во времена hare.ru" у меня не было интернетов :) Поговорить, я собственно, ни о чем не хочу, непонятна была причина вашей иронии про "эмоции молодого поколения". Что не так с эмоциями?
32. Михаил Ражиков (tango) 475 22.11.13 13:27 Сейчас в теме
(31) Evil Beaver, не вижу предмета для иронии, извините
**
наверное, это "репутация"
33. Sk0rp Моя (Sk0rp) 104 22.11.13 13:45 Сейчас в теме
(27) V.Nikonov, именно так и работают кеши. Массив строк загружается один раз и предрассчитывается. Затем с ним можно быстро сравнивать различные образцы, получая на выходе отсортированные ключи (передаются вместе со строкой). Одновременно может быть неограниченное количество созданных кешей.
34. Андрей Овсянкин (Evil Beaver) 4250 22.11.13 14:00 Сейчас в теме
(32) tango, чья "репутация", простите? И что вы хотели этим сказать?
35. Ийон Тихий (cool.vlad4) 41 22.11.13 14:01 Сейчас в теме
(11) Lemkus, тем, что они разные и по разному работают и ищут. во-первых надо заставить хоть как-то полнотекстовый искать "по созвучанию" (с помощью строк поиска, всякими # и прочее), во-вторых полнотекстовый не спрашивает, где искать он ищет во всем объекте, кушает дофига ресурсов и тормозной как не зная кто.
(0) если она была бы под Native, это было бы очень клево. а так компонента очень полезная.
36. Sk0rp Моя (Sk0rp) 104 22.11.13 14:56 Сейчас в теме
(1) yukon, (35) cool.vlad4, не совсем понимаю, что вы называете "Native".
Компонента создана по технологии создания внешних компонент с ИТС. Реализует интерфейс расширения языка.
37. Андрей Овсянкин (Evil Beaver) 4250 22.11.13 14:58 Сейчас в теме
(36) Sk0rp, они имеют в виду новый вид API внешних компонент, которые не использует COM. Называется Native API и применяется в 8.2 наряду с COM-компонентами.
38. Михаил Ражиков (tango) 475 22.11.13 15:14 Сейчас в теме
39. Sk0rp Моя (Sk0rp) 104 22.11.13 15:14 Сейчас в теме
(37) Evil Beaver, ясно, спасибо.
Думаю если еще не существует, то появится в ближайшее время обертка, которая позволит любую старую компоненту подключать через новый интерфейс.
40. Ийон Тихий (cool.vlad4) 41 22.11.13 15:32 Сейчас в теме
(39) Sk0rp, это ближайшее время уже 2-3 года. этот 1С-ский native появился не вчера, его плюс в том, что работает на сервере, в том числе и на nix-ксах(поэтому мне не совсем понятна, какая в этом случае будет обертка, но все возможно), и не требует регистрации.
41. Алексей Ко (Жолтокнижниг) 239 26.11.13 10:25 Сейчас в теме
(39) Sk0rp, наврятли появится, т.к. Native поддерживает меньше типов данных (только простые, даже массивы не умеет). Так что придется городить кучу костылей или делать конкретные реализации для каждой COM-вк, но пользы от этого 0.
42. Андрей Леутин (Torin99) 193 26.11.13 17:10 Сейчас в теме
А не могли бы Вы сказать, что взято за меру "похожести"? "редакционное расстояние", "мера Джаккарда", "метод триад", расстояние Левенштейна ?
43. Sk0rp Моя (Sk0rp) 104 26.11.13 18:22 Сейчас в теме
44. Андрей Леутин (Torin99) 193 26.11.13 18:48 Сейчас в теме
Все классно, кроме одного -- не хочет работать под операционкой на моем серваке -- Windows Server R2 2008
И добавление указанных Вами длл-ек -- mfc71.dll и msvcr71.dll -- проблему не решает...
45. Sk0rp Моя (Sk0rp) 104 27.11.13 01:54 Сейчас в теме
(44) Torin99, как правило помогает однократный запуск 1С от имени администратора. На новых системах у компоненты не хватает прав, что бы зарегистрироваться. После этого можно запускать 1С как обычно. Существуют и другие, более специфичные, способы обойти проблемe нехватки прав, но это за рамками обсуждения самой компоненты.
Могу добавить, что я длительное время её использовал на W2k8 Server R2 x64
46. ugroblin (ugroblin) 05.12.13 16:14 Сейчас в теме
Спасибо за хорошую вещь. Попробовал, очень понравилось.

Вопрос по выдаваемому коэффициенту. В описании указано "Коэффициент не маштабирован, т.е. его максимальное значение не ограничено". Почему сделано именно так?

Лично мне удобнее использовать нормированный. Так значительно удобнее проводить анализ результатов, отсев по уровню сходности.
StrMatch.Сравнить(А,Б)/StrMatch.Сравнить(А,А)
47. Sk0rp Моя (Sk0rp) 104 05.12.13 16:45 Сейчас в теме
(46) ugroblin, потому, что там не линейный коэффициент, как переводить его в линейную шкалу процентов не понятно. А по здравому размышлению - не нужно. Все равно интересуют самые похожие из известных.
К стати, StrMatch.Сравнить(А,Б)/StrMatch.Сравнить(А,А) может давать единицу для широкого класса значений Б. А падение значения будет очень сильно зависеть от длины A. Кому-то это может подойти, но не как общее решение для всех.
48. Кирилл Володько (kilo81) 09.12.13 16:55 Сейчас в теме
Привет. Оценил эту ДЛЛ-ку в ПиКе. Очень крутая штука.
:) Терь там на 8-ке работают с ней же.
49. Сергей Коцюра (CheBurator) 3403 12.12.13 17:14 Сейчас в теме
Компонента меганужная.
у меня на ней крутилоась фармация обработка поставщиков - целая система.
для радиодеталей человеку под заказ делал.
сейчас успешно работает на видеодисках.
и еще много где, сейчас уже не упомню за большое количество лет.
.
пример для 7.7 рабочий загрузку заявки покупателя можно посмотреть здесь
http://infostart.ru/public/14255/
.
50. Сергей Коцюра (CheBurator) 3403 12.12.13 17:17 Сейчас в теме
Пока единственную вещь не удалось забороть, может автор подскажет.
делаю все как обычно, в результате получаю их хеша последовательность похожих на оригинал наименований - все отлично! но при этом индексы сравнения почему-то возвращаются нулевые..

Проявляется эта фигня эпизодически.
есть куча обработко - клоны одной и той же. отличаются незначительно, отличия не касаются работы ссо стрматч, одни обработки - нормально все, другие некоторые их меньше - индекс сравнения - нулевой...
.
????
51. Alexey (alexd73) 04.01.14 14:25 Сейчас в теме
Привет!
Может быть есть какая-то возможность все-таки провести зависимость от длины искомых фраз? Т.е. у длинной строки значение под 800, а у короткой 50-100.

Т.е. при загрузке накладной можно выводить первые три значения (например), если нет точного соответствия, но хотелось бы ограничивать конкретные промахи. Например коэффициент ниже 50 для строки в 10 символов и ниже 300 для строки под 100 символов.
можно конечно поэксприментировать, но может быть кто-то делал опытные исследования такой зависимости?
52. Sk0rp Моя (Sk0rp) 104 05.01.14 16:46 Сейчас в теме
(51) alexd73, конечно такая возможность есть. Проблема в том, что их не одна и выбрать среди множества я не представляю как. Но вы вполне можете в своих обработках дополнить логику обычным 1С-ным кодом, масштабируя полученный индекс длиной строки или ограничивая количество вариантов. Как было указано выше - максимальный индекс для конкретной строки можно получить сравнением с нею же. Остальное на Ваше усмотрение.
53. Sk0rp Моя (Sk0rp) 104 05.01.14 16:55 Сейчас в теме
(50) CheBurator, в старых версиях (стоит проверить на какой это возникает) был баг, приводящий к разным чудесам, если передаваемые для получения результата переменные к этому моменту еще не типизированы. Еще есть вариант, что индекс сравнения и правда ноль :)
А вообще Вам могу выслать исходники, пока сам не потерял :) - попробуйте сами разобраться.
54. Сергей Коцюра (CheBurator) 3403 05.01.14 17:12 Сейчас в теме
(53) ну что индекс сравнения = 0 - очень маловероятно, а вот вариант с нетипизированными переменными - спасибо за наводку, посмотрю.
.
Вопрос: выложенная компонента в публикации - последней версии?
.
Исходники можно скинуть на e.meil@mail.ru - разобраться я в них вряд ли разберусь, но в запасниках пусть будет - хуже от этого не станет.
55. Сергей Коцюра (CheBurator) 3403 05.01.14 17:14 Сейчас в теме
56. Ийон Тихий (cool.vlad4) 41 05.01.14 19:16 Сейчас в теме
(53) Sk0rp, тогда если несложно и мне, пожалуйста, исходники (все таки хочется, если получится перевести компоненту на native) (а еще лучше их в публикации может выложить?)
Tallas; d0dger; Evil Beaver; +3 Ответить
57. Андрей Овсянкин (Evil Beaver) 4250 05.01.14 21:06 Сейчас в теме
Если не жалко выложите исходники в публикации. Глядишь - будет новый виток развития
Jill; d0dger; +2 Ответить
58. Павел (d0dger) 79 27.02.14 15:31 Сейчас в теме
Пытаюсь применить компоненту в качестве исправления опечаток вводимых наименований. Наткнулся на эту компоненту, очень интересно, но вероятно не лучшее решение под мою задачу.
За исходники на 1c8x@ukr.net или в публикации буду благодарен...
59. yinfo (FireFox_Manager) 13.08.14 13:54 Сейчас в теме
Вещь!
Вопрос к автору - можно ли использовать компоненту в своих коммерческих разработках?
60. Sk0rp Моя (Sk0rp) 104 15.08.14 14:24 Сейчас в теме
(59) yinfo, да, можно. С указанием имени и авторства используемой компоненты.
61. yinfo (FireFox_Manager) 21.08.14 07:39 Сейчас в теме
(60) Sk0rp, для указания авторства мне нужно знать, как вас зовут - в профиле нет этой информации. И ссылка на источник - ссылка на эту публикацию или у вас есть другая страничка?
62. Tim72 1 21.08.14 21:35 Сейчас в теме
(60)Sk0rp, доброго времени суток! Можете поделиться исходниками? Естественно, распространение с указанием авторства. Буду признателен.
Mail: avparshin@ukr.net
63. Sk0rp Моя (Sk0rp) 104 25.08.14 19:19 Сейчас в теме
(61) yinfo, В архиве с компонентой все есть.
(62) Tim72, Выложу для всех куда-нибудь как руки дойдут.
64. Богдан Суконнов (bogdan_sukonnov) 56 27.08.14 14:04 Сейчас в теме
Для меня главным минусом компоненты является то, что она всегда хоть что-то да находит, а коэффициенты абсолютно безотносительны. Пока решил попробовать в массив поиска добавлять и искомую строку, идея в том, что коэффициент по ней будет хоть каким-то ориентиром. Если есть другие варианты - подскажите, пожалуйста.
65. Андрей (sttt) 112 15.10.14 02:29 Сейчас в теме
(63) Sk0rp, буду признателен если пришлете исходники: nohd@yandex.ru
66. Jill Jill (Jill) 9 21.11.14 09:32 Сейчас в теме
Я бы еще добавил что в x64 OS необходимо проверять наличие mfc71.dll и msvcr71.dll в C:\Windows\SysWOW64 и класть именно туда.
Как в (44), например.
67. Иван Иванов (Famza) 80 26.11.14 12:31 Сейчас в теме
Может скажу глупость, но у меня итоговые таблицы получаются очень разными при сравнении двух массивов строк, те ТабИтог1 = Сравнить(Массив1, Массив2) очень отличается от ТабИтог2 = Сравнить(Массив2, Массив1) по количеству элементов. Обработка в 7.7: Массив1 - строки Наименование из Ехеля, Массив2 - строки Наименование из справочника 7.7.
Ось ХР СП3, StrMatch.dll 2.1.0
68. Сергей Коцюра (CheBurator) 3403 06.12.14 19:36 Сейчас в теме
(53) Проверил - насчет того что не выдает индекс сравнения.
см. скриншот - демо ошибки: http://screencast.com/t/0DbCzWI0h - выделенные зеленым должны стоять с самой верхней строки списка

Проблема в том, что если в
СравнитьСКэшем(<Ид>, <Стр>, <Кол>) - если "Кол" будет больше чем размер кеша - вылазит вот такая бяка с нулевыми индексами сравнения...
Поэтому надо определять так, чтобы Кол = Мин(СколькоВыдатьПохожих,РазмерКэша)
69. Сергей Коцюра (CheBurator) 3403 06.12.14 19:38 Сейчас в теме
70. Иван Иванов (Famza) 80 06.12.14 22:48 Сейчас в теме
Еще есть одно замечание. Строка поиска, например, "топор", в кэш помимо данной строки добавлена большая куча строк типа "кольцо стопорное 1234567890" и тд. Если при отборе количество наименований содержащих "топор" большое, то "топор" не то что не получает максимальный индекс, но и вообще не попадает в выборку. Такое ощущение, что поиск в самом деле настолько "нечеткий", что не видит полного совпадения вплоть до длины слова. Аналогично не определились "тяга", "реле" и тд. - вместо них подобрались более длинные с маркировкой типа "тяга поперечная ХХХХХХ", " реле ХХХ". А если увеличивать количество выбираемых похожих слов, то процесс поиска затягивается чрезвычайно.
Вразумите, мож что надо сделать помимо того что указано в примере?
ЗЫ. Свою задачу решил, но пришлось использовать несколько проверок дополнительных. И хотя для 14300 позиций не определились вообще только 18, не находить по полному соответствию как-то... неправильно.
71. Сергей Коцюра (CheBurator) 3403 09.01.15 20:33 Сейчас в теме
(70) тут совпадения по фонетическому зваучанию.
на коротких словах работает плохо.
на длинных - оч.хорошо, даже если значительная часть слова совпадает а разнятся малой частью
72. Sk0rp Моя (Sk0rp) 104 25.03.15 15:35 Сейчас в теме
Какая-либо работа над компонентой прекращена и не планируется в обозримом будущем. Найденные исходники выложены сюда:

https://github.com/5k0rp/StrMatch

Возможно, исходники не самые свежие, т.к. в какой-то момент они терялись из-за умершего диска. Как и что удалось восстановить - не помню.
Evil Beaver; tormozit; NFF; sttt; st00; Belomor; Tim72; Famza; yukon; cool.vlad4; +10 Ответить 2
73. Иван Иванов (Famza) 80 09.06.15 14:02 Сейчас в теме
(72), Очень жаль. Вещь таки нужная
74. Антон Харченко (AntonH851) 3 14.07.15 15:23 Сейчас в теме
А у меня при вызове ПодключитьВнешнююКомпоненту 1С прекращает работу, при этом никаких ошибок, уже все перепробовали...
75. Антон Харченко (AntonH851) 3 15.07.15 11:05 Сейчас в теме
На каких операционных системах она работает вообще?
76. Tim72 1 31.08.15 11:43 Сейчас в теме
(72), Огромное спасибо за исходники!
Работаю в аптечном бизнесе 12 лет -- компонента очень сильно помогает искать название лекарств по фонетике (не все же покупатели знают из точное написание ;-) ).
77. Илья Едовин (e-ilyich) 7 21.11.15 13:19 Сейчас в теме
StrMatch.dll в win 8 x64 не могу зарегистрировать
без регистрации ругается что нет у меня msvcr71.dll

хотя я все что в инструкции сказано сделал в system32 положил файлики MFC71.dll, msvcr71.dll
может под восьмерку нужно какието специальные файлики ?
78. Юрий Гончарук (yukon) 71 30.11.15 18:13 Сейчас в теме
(77) e-ilyich,
сказано сделал в system32 положил файлики MFC71.dll, msvcr71.dll


Для 32-битных приложений в 64-битной системе, нужно выкладывать в C:\Windows\SysWOW64

Времена меняются, инструкция написана еще в те времена, когда 64-битные клиентские ОС были далеким будущим.
79. Сергей Старых (tormozit) 4446 17.04.16 13:24 Сейчас в теме
Спасибо. Реализовал с помощью этой ВК нечеткий поиск дублей в инструменте "Поиск дублей и замена ссылок" в подсистеме "Инструменты разработчика".
80. Сергей Коцюра (CheBurator) 3403 18.04.16 01:17 Сейчас в теме
(79) о! на это дело надо посмотреть, как у тебя это получилось... учти что для коротких строк работает плохо. чем длиннее строка, тем лучше. В ряде случаем нужно подымать/опускать вес чисел.
81. Сергей Старых (tormozit) 4446 18.04.16 08:17 Сейчас в теме
(80) В каждой паре я нормализую разницу веса к весу наибольшего из пары и сравниваю с порогом.
82. Игорь Steelvan (Steelvan) 30 18.04.16 09:18 Сейчас в теме
(79) tormozit,


Реализовали как Native ?
83. Сергей Старых (tormozit) 4446 18.04.16 09:35 Сейчас в теме
(82) Нет. Здесь же только COM вариант ВК. Его и использовал.
Оставьте свое сообщение