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 hashes)
Built Distribution
recs_searcher-0.1.1-py3-none-any.whl
(733.7 kB
view hashes)
Close
Hashes for recs_searcher-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1967a5efdae9215ae672a789b426e0d0e24d76e2d5a707592635e653badb9396 |
|
MD5 | 7f8d525659ae5e96b3eb8e2210401029 |
|
BLAKE2b-256 | 28e85df32b18b42a113015af0c7b87c5551bce81bdd3d82544d7597432f40ad4 |