Skip to main content

Search engine and registry error corrector

Project description

GitHub Workflow Status (branch) Read the docs

PyPI PyPI - Downloads

recs-searcher — библиотека для поиска похожих текстов

Библиотека позволяет находить похожие на пользовательский ввод тексты из датасета.

Содержание

  1. Проблематика
  2. Особенности библиотеки
  3. Установка
  4. Примеры применения

Проблематика

Пользовательский ввод может содержать как орфографические, так и реестровые ошибки.

Рассмотрим самые частые ошибки:

  • используются сокращения или полные формы слова: «Литературный институт имени А.М. Горького» || «Литературный институт им. А.М. Горького»;
  • пропущены либо добавлены слова: «Литературный институт имени А.М. Горького» || «Институт имени А.М.Горького»;
  • пропущены либо добавлены дополнительные символы: «Сибирский федеральный университет» || «Сибрский федерааальный универ»;
  • слова могут быть в не правильном порядке: Институт космических и информационных технологий || Институт информационных и космических технологий.

Данные проблемы помогает решить разработанный модуль recs-searcher (registry error correction system - searcher), основанный на известных NLP-алгоритмах.

Особенности библиотеки:

  • модуль универсален для любого датасета;
  • содержит API для использования библиотеки;
  • содержит множество подмодулей алгоритмов для оптимизации задачи, из которых строится pipeline (предобработка текста, модели для создания эмбеддингов, алгоритмы для эффективного сравнения эмбеддингов, аугментация текста для оценки обученного pipeline);
  • возможность интерпретировать результаты обученных pipeline;
  • масштабирование библиотеки благодаря имеющимся абстрактным классам.

Установка

pip install recs-searcher

Примеры применения

  1. Соберём 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!
  1. Найдём 3 схожих текстов в базе данных на пользовательский ввод "Красный ярск":
pipeline.search('Красный ярск', 3, ascending=True)
# return: pandas.DataFrame

Документация.

Более подробные примеры кода API.

Пример WEB-интерфейса, в который внедрена данная библиотека.

Автор

Project details


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 hashes)

Uploaded Source

Built Distribution

recs_searcher-0.1.1-py3-none-any.whl (733.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page