data_load_books.py - 52AnTIMateria812/YouBook812Bot GitHub Wiki
Основные функции:
- Загрузка данных
def load_books():
# Загрузка данных из CSV файла
books_df = pd.read_csv('data/books.csv')
return books_df
- Загружает данные о книгах из CSV файла
- Проверяет наличие необходимых колонок
- Возвращает DataFrame с данными
- Подготовка данных
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
- Создает очищенные версии названий книг
- Формирует текстовое описание для каждой книги
- Подготавливает данные для создания модели
- Создание и сохранение модели
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 векторизатор
- Формирует матрицу признаков
- Сохраняет модель в файл
- Основной процесс
def main():
# Загрузка данных
books_df = load_books()
# Подготовка данных
books_df = prepare_data(books_df)
# Создание и сохранение модели
create_and_save_model(books_df)
print("Модель успешно создана и сохранена")
- Координирует весь процесс загрузки и подготовки данных
- Создает и сохраняет модель
Использование:
python data/load_books.py
Взаимодействие с другими компонентами:
-
С model.py:
- Создает модель, которую использует
BookRecommender
- Обеспечивает начальные данные для рекомендаций
- Создает модель, которую использует
-
С bot.py:
- Не взаимодействует напрямую
- Подготавливает данные, которые бот использует для рекомендаций
-
С database.py:
- Не взаимодействует напрямую
- Подготавливает данные о книгах, которые могут быть использованы в базе данных
Особенности:
- Запускается отдельно от основного бота
- Используется для первоначальной загрузки данных
- Может быть использован для обновления модели
- Создает необходимые файлы для работы бота
Обработка ошибок:
- Проверяет наличие необходимых файлов
- Валидирует структуру данных
- Обрабатывает ошибки при создании модели
Зависимости:
- pandas
- scikit-learn
- numpy
- joblib
Этот файл является важной частью системы, так как он отвечает за подготовку данных и создание модели рекомендаций, без которых бот не сможет работать корректно.