data_load_books.py - 52AnTIMateria812/YouBook812Bot GitHub Wiki

Основные функции:

  1. Загрузка данных
def load_books():
    # Загрузка данных из CSV файла
    books_df = pd.read_csv('data/books.csv')
    return books_df
  • Загружает данные о книгах из CSV файла
  • Проверяет наличие необходимых колонок
  • Возвращает DataFrame с данными
  1. Подготовка данных
def prepare_data(books_df):
    # Очистка и нормализация данных
    books_df['clean_title'] = books_df['title'].str.lower().str.strip()
    books_df['content'] = books_df.apply(
        lambda x: f"{x['title']} {x['author']} {x['genre']} {x['description']}", 
        axis=1
    )
    return books_df
  • Создает очищенные версии названий книг
  • Формирует текстовое описание для каждой книги
  • Подготавливает данные для создания модели
  1. Создание и сохранение модели
def create_and_save_model(books_df):
    # Создание TF-IDF векторизатора
    vectorizer = TfidfVectorizer(
        stop_words='english',
        max_features=5000,
        ngram_range=(1, 2)
    )
    
    # Создание TF-IDF матрицы
    tfidf_matrix = vectorizer.fit_transform(books_df['content'])
    
    # Сохранение модели
    joblib.dump((books_df, tfidf_matrix, vectorizer), 'data/model.joblib')
  • Создает TF-IDF векторизатор
  • Формирует матрицу признаков
  • Сохраняет модель в файл
  1. Основной процесс
def main():
    # Загрузка данных
    books_df = load_books()
    
    # Подготовка данных
    books_df = prepare_data(books_df)
    
    # Создание и сохранение модели
    create_and_save_model(books_df)
    
    print("Модель успешно создана и сохранена")
  • Координирует весь процесс загрузки и подготовки данных
  • Создает и сохраняет модель

Использование:

python data/load_books.py

Взаимодействие с другими компонентами:

  1. С model.py:

    • Создает модель, которую использует BookRecommender
    • Обеспечивает начальные данные для рекомендаций
  2. С bot.py:

    • Не взаимодействует напрямую
    • Подготавливает данные, которые бот использует для рекомендаций
  3. С database.py:

    • Не взаимодействует напрямую
    • Подготавливает данные о книгах, которые могут быть использованы в базе данных

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

  • Запускается отдельно от основного бота
  • Используется для первоначальной загрузки данных
  • Может быть использован для обновления модели
  • Создает необходимые файлы для работы бота

Обработка ошибок:

  • Проверяет наличие необходимых файлов
  • Валидирует структуру данных
  • Обрабатывает ошибки при создании модели

Зависимости:

  • pandas
  • scikit-learn
  • numpy
  • joblib

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