Skip to content

QABotsBase.py

Zahar A. Ponimash edited this page Feb 6, 2024 · 1 revision

Документация к файлу "QABotsBase.py"

Файл QABotsBase.py включает в себя определения нескольких классов для создания и работы с ретривел-ботами (Retrieval Bots) и вопросно-ответными ботами (QA Bots), использующими методы машинного обучения и обработки естественного языка.

Классы

1. RetriBotStruct

Описание: Класс для структуры ретривел-бота.

Атрибуты:

  • knn: Модель k-ближайших соседей.
  • embedder: Модель для векторизации текста.
  • answers: Список ответов.

Методы:

  • __init__(path, knn, embedder, answers): Инициализация структуры.
  • to(device): Перемещение модели на указанное устройство.
  • get_knn(): Получение модели KNN.
  • get_embedder(): Получение модели векторизации.
  • get_ans_list(): Получение списка ответов.
  • save(path): Сохранение структуры в файл.
  • load(path): Загрузка структуры из файла.

2. QABotStruct

Описание: Класс для структуры вопросно-ответного бота.

Атрибуты:

  • retri_bot: Экземпляр RetriBotStruct.
  • qa: Модель для генерации ответов на вопросы.

Методы:

  • __init__(path, retri_bot, qa): Инициализация структуры.
  • get_retri_bot(): Получение ретривел-бота.
  • get_qa(): Получение QA модели.
  • save(path): Сохранение структуры в файл.
  • load(path): Загрузка структуры из файла.

3. RetriBot

Описание: Класс для ретривел-бота.

Атрибуты:

  • main_knn: Модель KNN.
  • sModel: Модель векторизации текста.
  • max_words: Максимальное количество слов.
  • texts: Список текстов для ответов.

Методы:

  • __init__(bot, max_words, device): Инициализация бота.
  • _get_vect(q): Получение вектора из вопроса.
  • cut(text, max_len): Обрезка текста.
  • get_answers(q, top_k): Получение ответов на вопрос.

4. QABot

Описание: Класс для вопросно-ответного бота.

Атрибуты:

  • retr: Экземпляр RetriBot.
  • qa: QA модель.

Методы:

  • __init__(bot, max_words, device): Инициализация бота.
  • qa_get_answer(text, q, top_k): Получение ответа на вопрос.
  • search(text, q, confidence): Поиск ответа на вопрос.
  • get_prompt(q, confidence, top_k_search): Получение текста для ответа.

5. SimpleTransformer

Описание: Класс-заглушка для трансформации векторов.

Методы:

  • __init__(): Инициализация класса.
  • transform(vects): Трансформация векторов.

6. KnnBot

Описание: Класс для поискового бота на базе модели векторизации и метода ближайших соседей.

Атрибуты:

  • knn: Модель KNN.
  • model: Модель векторизации текста.
  • mean, std: Параметры для нормализации векторов.
  • vect_transformer: Функция преобразования векторов (PCA, LDA, VAE и тп)

Методы:

  • __init__(knn, sbert, mean, std, vect_transformer, dim, n_neighbors, eps): Инициализация бота.
  • clean_string(text): Очистка и нормализация строки.
  • get_vect(q): Получение вектора из вопроса.
  • __get_answer_text(text_q): Получение текста ответа.
  • get_answer(q): Получение ответа на вопрос.

Общее применение

Эти классы предназначены для создания и работы с интеллектуальными вопросно-ответными системами, которые используют как традиционные методы машинного обучения (например, KNN для поиска похожих текстов), так и более сложные модели обработки естественного языка для генерации ответов на заданные вопросы.

Clone this wiki locally