recs_searcher package

Subpackages

Submodules

recs_searcher.base module

Базовые классы модуля.

class recs_searcher.base.BaseEmbedding[исходный код]

Базовые классы: ABC

Абстрактный класс для эмбеддингов.

_abc_impl = <_abc._abc_data object>
abstract fit(array: Iterable[str]) object[исходный код]

Обучение vectorizer.

Параметры

arrayIterable[str]

Массив с текстом, на котором обучается vectorizer.

Returns

self

fit_transform(array: Iterable[str]) ndarray[исходный код]

Обучение vectorizer и трансформация текста. Выполняет методы fit() и transform() текущего класса.

Параметры

arrayIterable[str]

Массив с текстом, на котором обучаемся и который нужно трансформировать в вектор чисел.

Returns

array: np.ndarray

Массив с закодированными словами в числа.

load(path_folder_load: str, filename: str) None[исходный код]

Загрузка vectorizer из файла.

Параметры

path_folder_loadstr

Путь, где лежит файл.

filenamestr

Название файла для загрузки.

Returns

None

save(path_folder_save: str, filename: str) None[исходный код]

Сохранение vectorizer в файл.

Параметры

path_folder_savestr

Путь сохранения файла.

filenamestr

Название файла для сохранения.

Returns

None

abstract transform(array: Iterable[str]) ndarray[исходный код]

Обучение vectorizer.

Параметры

arrayIterable[str]

Массив с текстом, который нужно трансформировать в вектор чисел.

Returns

array: np.ndarray

Массив с закодированными словами в числа.

class recs_searcher.base.BaseEmbeddingSearch(model: BaseEmbedding, embedding_database, original_array: Iterable[str], metric: str, preprocessing: List[BaseTransformation] = [], clear_array: Iterable[str] | None = None)[исходный код]

Базовые классы: BaseSearch

Абстрактный класс для получения результатов поиска наиболее схожего текста из БД на основе эмбеддингов.

_abc_impl = <_abc._abc_data object>

Поиск наиболее схожих k-векторов из БД на array пользователя.

Параметры

arraynp.ndarray

Пользовательский текст в виде эмбеддинга, которому нужно найти наиболее схожие вектора из БД.

kint

Кол-во выдаваемых результатов.

Returns

list_texts, list_similarity: Tuple[List[str], List[float]]

Вычисленные результаты. В списке list_texts хранится текст, который похож на текст пользователя. В списке list_similarity хранится схожесть пользовательского текста на текст

из бд в виде числа.

Все данные соотносятся по индексу в этих двух списках.

search(text: str, k: int, ascending: bool = False) DataFrame[исходный код]

Поиск наиболее схожих k-текстов из БД на text пользователя.

Параметры

textstr

Пользовательский текст, которому нужно найти наиболее схожий текст из БД.

kint

Кол-во выдаваемых результатов.

ascendingbool

Флаг сортировки полученных результатов. False - убывающая, True - возрастающая сортировка.

Returns

df: pd.DataFrame

Датафрейм с результатами. df.columns = [„text“, „similarity“]

class recs_searcher.base.BaseExplain(model: BaseEmbedding, preprocessing: List[BaseTransformation] = [])[исходный код]

Базовые классы: ABC

Абстрактный класс для интерпретации схожести двух текстовых данных.

_abc_impl = <_abc._abc_data object>
abstract _explain(clear_compared_text: str, clear_original_text: str, n_grams: int = 1, analyzer: Literal['word', 'char'] = 'word', sep: str | None = ' ') Tuple[List[str], List[float], List[Tuple[int, int]]][исходный код]

Поиск наиболее схожих N-грамм из clear_compared_text в clear_original_text.

Параметры

clear_compared_textstr

Пользовательский текст, в котором нужно найти n-граммы, похожие на clear_original_text.

clear_original_textstr

Текст, с которым сравнивается clear_compared_text.

n_gramsint

Длина N-грамм.

analyzer: Literal[„word“, „char“]

Считать схожесть текстов на основе N-грамм слов или символов.

sep: Optional[str]

Разделитель слов.

Returns

text_list: List[str]

Список N-грамм слов или символов.

similarity_list: List[float]

Список близости N-граммы к clear_original_text.

indeces_n_grams_list: List[Tuple[int, int]]

Список кортежей индексов старта и конца N-граммы из text_list.

_preprocessing_text(text: Iterable[str] | str, preprocessing: List[BaseTransformation]) List[str] | str[исходный код]

Предобработка текста.

Параметры

textUnion[Iterable[str], str]

Необработанный текст.

preprocessingList[BaseTransformation]

Список алгоритмов для предобработка текста.

Returns

text: Union[List[str], str]

Обработанный текст.

_split_by_chars(clear_text: str, n_grams: int | None = 1, sep: str | None = ' ') Tuple[List[str], List[Tuple[int, int]]][исходный код]

Получение N-грамм символов.

Параметры

clear_textstr

Предобработанный текст.

n_gramsOptional[int]

Длина N-грамм.

sep: Optional[str]

Разделитель слов.

Returns

n_grams_list: List[str]

Список N-грамм символов.

indeces_n_grams_list: List[Tuple[int, int]]

Список кортежей индексов начала и конца N-граммы из n_grams_list.

_split_by_words(clear_text: str, n_grams: int | None = 1, sep: str | None = ' ') Tuple[List[str], List[Tuple[int, int]]][исходный код]

Получение N-грамм слов.

Параметры

clear_textstr

Предобработанный текст.

n_gramsOptional[int]

Длина N-грамм.

sep: Optional[str]

Разделитель слов.

Returns

n_grams_list: List[str]

Список N-грамм слов.

indeces_n_grams_list: List[Tuple[int, int]]

Список кортежей индексов начала и конца N-граммы из n_grams_list.

explain(compared_text: str, original_text: str, n_grams: Tuple[int, int] | int | None = 1, analyzer: Literal['word', 'char'] | None = 'word', sep: str | None = ' ', k: int | None = 10, ascending: bool | None = True) Tuple[DataFrame, List[Tuple[int, int]]][исходный код]

Поиск наиболее схожих N-грамм из compared_text в original_text.

Параметры

compared_textstr

Пользовательский текст, в котором нужно найти n-граммы, похожие на original_text.

original_textstr

Текст, с которым сравнивается compared_text.

n_gramsOptional[Union[Tuple[int, int], int]]

Длины N-грамм, которые будут оцениваться. Может приниматься либо одно число, либо список чисел.

analyzer: Optional[Literal[„word“, „char“]]

Считать схожесть текстов на основе N-грамм слов или символов.

sep: Optional[str]

Разделитель слов.

kOptional[int]

Кол-во выдаваемых результатов.

ascendingOptional[bool]

Флаг сортировки полученных результатов. False - убывающая, True - возрастающая сортировка.

Returns

df: pd.DataFrame

Датафрейм с результатами. df.columns = [„text“, „similarity“]

indeces_n_grams: List[Tuple[int, int]]

Список кортежей индексов старта и конца самых важных N-грамм из df.

class recs_searcher.base.BaseSearch(original_array: Iterable[str], preprocessing: List[BaseTransformation] = [], clear_array: Iterable[str] | None = None)[исходный код]

Базовые классы: ABC

Абстрактный класс для получения результатов поиска наиболее схожего текста из БД.

_abc_impl = <_abc._abc_data object>
_preprocessing_text(text: Iterable[str] | str, preprocessing: List[BaseTransformation]) List[str] | str[исходный код]

Предобработка текста.

Параметры

textUnion[Iterable[str], str]

Необработанный текст.

preprocessingList[BaseTransformation]

Список алгоритмов для предобработка текста.

Returns

text: Union[List[str], str]

Обработанный текст.

Поиск наиболее схожих текстов из БД на clear_text пользователя.

Параметры

clear_textstr

Пользовательский текст, которому нужно найти наиболее схожие тексты из БД.

kint

Кол-во выдаваемых результатов.

Returns

list_texts, list_similarity: Tuple[List[str], List[float]]

Вычисленные результаты. В списке list_texts хранится текст, который похож на текст пользователя. В списке list_similarity хранится схожесть пользовательского текста на текст

из бд в виде числа.

Все данные соотносятся по индексу в этих двух списках.

search(text: str, k: int, ascending: bool = False) DataFrame[исходный код]

Поиск наиболее схожих k-текстов из БД на text пользователя.

Параметры

textstr

Пользовательский текст, которому нужно найти наиболее схожий текст из БД.

kint

Кол-во выдаваемых результатов.

ascendingbool

Флаг сортировки полученных результатов. False - убывающая, True - возрастающая сортировка.

Returns

df: pd.DataFrame

Датафрейм с результатами. df.columns = [„text“, „similarity“]

class recs_searcher.base.BaseTransformation(seed: int | None = None)[исходный код]

Базовые классы: ABC

Абстрактный класс для трансформаторов текста.

_abc_impl = <_abc._abc_data object>
abstract _transform(array: List[str]) List[str][исходный код]

Преобразование, применяемое к каждому текстовому элементу списка array.

Параметры

arrayList[str]

Список с текстом, который нужно преобразовать. Например, [„Hello! My nam3 is Harry :)“, „Понятно, а я Рон.“].

Returns

array: List[str]

Список с применёнными преобразованиями текста.

transform(array: Iterable[str]) List[str][исходный код]

Применение преобразования к массиву.

Параметры

arrayIterable[str]

Массив с текстом, который нужно преобразовать.

Returns

array: List[str]

Список с применёнными преобразованиями текста.

recs_searcher.base._preprocessing_text(text: Iterable[str] | str, preprocessing: List[BaseTransformation]) List[str] | str[исходный код]

Предобработка текста.

Параметры

textUnion[Iterable[str], str]

Необработанный текст.

preprocessingList[BaseTransformation]

Список алгоритмов для предобработка текста.

Returns

text: Union[List[str], str]

Обработанный текст.

Module contents