1.62M
Categories: programmingprogramming lingvisticslingvistics

Бот для изучения литературы на разных языках (английский, французский)

1.

БОТ ДЛЯ ИЗУЧЕНИЯ
ЛИТЕРАТУРЫ НА РАЗНЫХ
ЯЗЫКАХ(АНГЛИЙСКИЙ,
ФРАНЦУЗСКИЙ)
Авторы: Гидиятов Ю. О., ИМОИиВ, гр. 04.3-205, Хабирова А. И.,
ИМОИиВ, гр. 04.3-205, Молчанова П. Н., ИМОИиВ, гр. 04.3-205,
Юркова В. Н., ИМОИиВ, гр. 04.3-205, Иванова Э. С., ИМОИиВ, гр. 04.3205, Серебренников П. С., ИМОИиВ, гр. 04.3-205
1

2.

Идентификация
Гидиятов Юрий Олегович
Серебренникова Полина Сергеевна
Молчанова Полина Николаевна
Хабирова Амалия Ильдаровна
Иванова Элина Сергеевна
Юркова Варвара Николаевна
2

3.

Введение
Проблема
Актуальность
- Трудности при выборе
литературы
- Недостаток
удобных
инструментов
- Высокие затраты времени
на
самостоятельный
поиск
- Для
глобализации
обязательно
знание
нескольких языков
- Потребность
в
интерактивных
инструментах
для
образования
3

4.

Цель и задачи
Цель
Задачи
Создать Telegram-бота, который решил проблему подбора литературы, в
зависимости от ваших предпочтений, языка и уровня.
- Определить, как бот будет подбирать книги и обрабатывать данных о них.
- Стек – python-telegram-bot, хранение(JSON.
4

5.

Алгоритм работы телеграм-бота
/start - Приветствие от бота и сразу же выводится меню с выбором(языка, уровня, типа литературы,
жанра), кнопка рекомендации, кнопка сброса. В сообщении так же для более подробного
ознакомления рекомендуется использовать /help
/help - Объясняется, в чем суть бота, как он работает, объясняются другие команды
В изначальной версии присутствуют - /level, /language, /type, /recommend. Для более лаконичного и
более привлекательного UX эти команды были переделаны в InlineKeyboard, что позволяет не спамить
командами и использовать бота легче
/reset - для спроба выбранных параметров
Команды /previous, /more и /back также были переделаны в Inline
/about - вкратце рассказывает о проекте
5

6.

Технологический стек
Бот
пишется
Библиотека PTB(python-telegram-bot)
на
языке
Python
В процессе работы столкнулись с проблемой использования API. На данный момент, все API которые
мы использовали и тестировали, работали не так, как надо. Были попытки все возможные
переформулировать запросы, изменить подход. Пробовали использовать сторонние библиотеки,
которые анализировали бы текст, и в зависимости от количества слов, определялся бы уровень Книги.
Данный подход нам не подходил, потому что для этого приходилось бы находить текст и описание, а к
учебникам данный метод попросту не применим. В итоге пришли к созданию собственной базы
данных, простой JSON, в который с помощью скрипта можно добавлять книги, не залезая бесконечно в
сам файл. Создавать парсер сайтов тоже был не вариант, потому что сайты, на которых есть книги с
уровнем языка, в правилах пользования запрещали данные процессы.
6

7.

Иллюстративный материал
Минимум - скриншоты
работы бота: поведение
бота на старте и ответы
на основные команды.
Ссылка и/или QR-код на
бота в Telegram.
7

8.

Иллюстративный материал
Минимум - скриншоты
работы бота: поведение
бота на старте и ответы
на основные команды.
Ссылка и/или QR-код на
бота в Telegram.
8

9.

Трудности и решения
Написания скрипта для бота оказалось не такой уж и сложной задачей. Лично мы использовали для
этого PTB. В отличии от aiogram, данная библиотека была более удобной и интуитивно понятной.
Структура языка совсем не сложная, ведь если работает логика, написать код не составит труда,
особенно
если
над
этим
трудится
несколько
человек.
Основная трудность, возникшая у нас, заключалась в использовании нужного API. Их существует много,
которые связаны с книгами, но нету тех, которые бы сортировали их по уровню языка. В метаданных
сайта уровень либо отсутствует, либо указан в своей манере, что затрудняет формирование запроса.
В конечном результате осталось всего два решения: 1. Создать собственную базу данных, которая
будет пополняться вручную (первое время)
2. Написать парсер сайта, где присутствуют книги с уровнями, но это вызывает определенные
трудности, потому что в политике сайта может присутствовать запрет на такого рода действия
В конечном итоге мы сошлись на мнении, что будет лучше создать собственную базу данных в
обычном JSON файле (так как на данном этапе объем данных не слишком большой), но в будущем
лучше перенести его на PostgreSQL или SQLite
9

10.

СПАСИБО ЗА ВНИМАНИЕ!
10
English     Русский Rules