Search engine and registry error corrector
Project description
recs-searcher — библиотека для поиска похожих текстов
Библиотека позволяет находить похожие на пользовательский ввод тексты из датасета.
Содержание
Проблематика
Пользовательский ввод может содержать как орфографические, так и реестровые ошибки.
Рассмотрим самые частые ошибки:
- используются сокращения или полные формы слова:
«Литературный институт имени А.М. Горького»
||«Литературный институт им. А.М. Горького»
; - пропущены либо добавлены слова:
«Литературный институт имени А.М. Горького»
||«Институт имени А.М.Горького»
; - пропущены либо добавлены дополнительные символы:
«Сибирский федеральный университет»
||«Сибрский федерааальный универ»
; - слова могут быть в не правильном порядке:
Институт космических и информационных технологий
||Институт информационных и космических технологий
.
Данные проблемы помогает решить разработанный модуль recs-searcher (registry error correction system - searcher)
, основанный на известных NLP-алгоритмах.
Особенности библиотеки:
- модуль универсален для любого датасета;
- содержит API для использования библиотеки;
- содержит множество подмодулей алгоритмов для оптимизации задачи, из которых строится pipeline (предобработка текста, модели для создания эмбеддингов, алгоритмы для эффективного сравнения эмбеддингов, аугментация текста для оценки обученного pipeline);
- возможность интерпретировать результаты обученных pipeline;
- масштабирование библиотеки благодаря имеющимся абстрактным классам.
Установка
pip install recs-searcher
Примеры применения
- Соберём pipeline:
from recs_searcher import (
dataset, # учебные датасеты
preprocessing, # предобработка текста
embeddings, # преобразование текста в эмбеддинги
similarity_search, # быстрые поисковики в пространстве эмбеддингов
augmentation, # аугментация текста для валидации пайплайнов
explain, # интерпретация сходства двух текстов
api, # Пайплайн
)
model_embedding = embeddings.CountVectorizerWrapperEmbedding(
analyzer='char',
ngram_range=(1, 2),
)
pipeline = api.Pipeline(
dataset=['Красноярск', 'Москва', 'Владивосток'],
preprocessing=[preprocessing.TextLower()],
model=model_embedding,
searcher=similarity_search.FaissSearch,
verbose=True,
)
# Pipeline ready!
- Найдём 3 схожих текстов в базе данных на пользовательский ввод "Красный ярск":
pipeline.search('Красный ярск', 3, ascending=True)
# return: pandas.DataFrame
Более подробные примеры кода API.
Пример WEB-интерфейса, в который внедрена данная библиотека.
Автор
- Кобелев Максим — автор и единственный разработчик.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
recs-searcher-0.1.1.tar.gz
(683.5 kB
view details)
Built Distribution
recs_searcher-0.1.1-py3-none-any.whl
(733.7 kB
view details)
File details
Details for the file recs-searcher-0.1.1.tar.gz
.
File metadata
- Download URL: recs-searcher-0.1.1.tar.gz
- Upload date:
- Size: 683.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0d54bcc1a5c17b9acb952f5f2a054f050535bab99c2ff17ee6b18ccdcb2b03c |
|
MD5 | 9f6ef071ba51b2d5f546a8dcef2367ce |
|
BLAKE2b-256 | 6afb300d578631f375d1517ddc39209c20b83466dd3ad1109feb972820ea5dc5 |
File details
Details for the file recs_searcher-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: recs_searcher-0.1.1-py3-none-any.whl
- Upload date:
- Size: 733.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1967a5efdae9215ae672a789b426e0d0e24d76e2d5a707592635e653badb9396 |
|
MD5 | 7f8d525659ae5e96b3eb8e2210401029 |
|
BLAKE2b-256 | 28e85df32b18b42a113015af0c7b87c5551bce81bdd3d82544d7597432f40ad4 |