recs_searcher package
Subpackages
- recs_searcher.api package
- Submodules
- recs_searcher.api.api module
PipelinePipeline.__clear_dataset()Pipeline.__create_searcher()Pipeline.__fit_transform()Pipeline.__verbose()Pipeline.change_explainer()Pipeline.change_searcher()Pipeline.explain()Pipeline.fine_tuning()Pipeline.get_model()Pipeline.get_preprocessing()Pipeline.load()Pipeline.save()Pipeline.search()Pipeline.validate()
load_pipeline()
- Module contents
- recs_searcher.augmentation package
- recs_searcher.dataset package
- recs_searcher.embeddings package
- recs_searcher.explain package
- recs_searcher.preprocessing package
- recs_searcher.similarity_search package
- recs_searcher.utils package
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>
- abstract _search(array: ndarray, k: int) Tuple[List[str], List[float]][исходный код]
Поиск наиболее схожих 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]
Обработанный текст.
- abstract _search(clear_text: str, k: int) Tuple[List[str], List[float]][исходный код]
Поиск наиболее схожих текстов из БД на 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]
Обработанный текст.