LINUX.ORG.RU

RapidFuzz 3.0.0 и rapidfuzz-cpp 1.11.2 - библиотеки для нечёткого сравнения строк

 , , , ,


4

1

rapidfuzz-cpp - быстрая, SIMD-оптимизированная библиотека на языке C++, реализующая несколько алгоритмов нечёткого сравнения строк и вычисления метрик:

RapidFuzz - основанная на rapidfuzz-cpp библиотека для языка Python.

Лицензия: MIT.

Изменения:

  • расстояние Хэмминга может использоваться для строк с разной длиной;
  • в rapidfuzz.fuzz и rapidfuzz.process удалена поддержка булевских функций препроцессора;
  • удалён модуль rapidfuzz.string_metric. Теперь все функции доступны в модуле rapidfuzz.distance;
  • добавлена поддержка произвольных хэшируемых последовательностей Python;
  • в process.cdist добавлена поддержка None и float("nan");
  • другие изменения.

Исправления:

  • исправлено деление на ноль в SIMD-реализации нормализованных метрик;
  • исправлена обработка score_cutoff > 1.0 в алгоритмах Джаро и Джаро - Винклер.

>>> Подробности

★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

А зачем она такая быстрая нужна? Сейчас даже 2d игры тормозят благодаря паттернам ради паттернов и чтению книг вредителей типа Мартина, а тут какая-то экономия на спичках для разовой операции

uwuwuu
()
Ответ на: комментарий от dataman

Генетические алгоритмы, насколько помню, кто-то из любителей 10 лет назад пробовал применить к перебору параметров компиляции ядра. У нас на факультете даже курсовые 25 лет назад на эту тему писали студенты. НИВЦ имел солидную библиотеку наработок на ФОРТРАН и на Си.

i_am_not_ai
()
Ответ на: комментарий от i_am_not_ai

к перебору параметров компиляции ядра

В итоге хорошо подбирало? :)

yu-boot ★★★★
()
Ответ на: комментарий от uwuwuu

А зачем она такая быстрая нужна?

тут какая-то экономия на спичках для разовой операции

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

Если выкроить 100 мс на каждом сегменте, на проект из 2000 сегментов выйдет 200 выиграных секунд, или 3 минуты 20 секунд. Согласен, это немного, но работать тем приятнее, чем быстрее всё прогружается. Возможно, снижение утомления позволит перевести больше за день.

Есть еще обработка естественного языка. Для меня это темный лес, но догадываюсь, что там полно задач, где нужно обработать огромные объемы текста. Где может использоваться поиск нечетких собпадений? Допустим, в том же поиске, если, допустим, прикрутить распознавание синонимов. Или в системах выявления плагиата.

Vidrele ★★
()
Ответ на: комментарий от Vidrele

использовать технологии предполагаемого противника товарищ майор запрещает? оно же open-source по это самое или я совсем не в кассу?

dummy ★★
()
Последнее исправление: dummy (всего исправлений: 2)
Ответ на: комментарий от dummy

По-моему, ты кому-то совсем не тому отвечал.

hobbit ★★★★★
()
Ответ на: комментарий от gns

Ну Postgres и MySQL не используют сторонние либы в своих движках главным образом из-за лицензионных ограничений, да и речь тащем та про питоновскую либу

uwuwuu
()
Ответ на: комментарий от uwuwuu

речь тащем та про питоновскую либу

Она лишь вторая скрипка.

dataman ★★★★
() автор топика
Ответ на: комментарий от uwuwuu

А что, полнотекстовым поиском только СУБД занимаются? Всякие секвенаторы, генетики, искатели структуры белка и прочие товарищи ученые в области больших данных (aka Data Scientists) почему-то питон как раз очень любят. Там какой-то странной математики понаписали в ассортименте. И в питон, как я понмаю, только биндинги из основной библиотеки на крестах сделали. Дергать SIMD только из Питона — бессмысленно, только на преобразовании параметров на вызове весь профит потерять можно.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от gns

Всякие секвенаторы, генетики, искатели структуры белка

таких людей в мире еще меньше чем активных разработчиков ядра линукса

uwuwuu
()
Ответ на: комментарий от uwuwuu

Даладно! В любом универе на любом биофаке, плюс мединституты, плюс вся фарма.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.