Skip to content

hse-ling-python/project-222-katykool

Repository files navigation

Это бот-игра Кати Шерстневой, разработанный в качестве итогового проекта по программированию.

Играй по ссылке

Бот основан на векторной модели. Использованная модель скачана с NLPL Word Vectors Repository. Модель (ruwikiruscorpora_upos_skipgram_300_2_2019) обучена на НКРЯ и русской Википедии 2018 года. Ссылка на скачивание модели.

Для создания игровой базы слов из модели были выбраны только существительные, существующие в русском языке (для проверки части речи была использоана библиотека pymorphy, для исключения слов с опечатками проводилась проверка на существование существительных в модели Navec (проект Natasha), обученной только на художественных текстах.) Программа выбирает два случайных слова из списка частотных существительных русского языка (скачан с сайта Нового частотного словаря русской лексики и очищен вручную от слишком абстрактных слов). Далее программа вычисляет вектор-сумму выбранных векторов. Это существительное является ответом.

Для исключения случаев типа окно+экран = телеэкран проводится проверка: косинусное расстояние между ответ-вектором и каким-либо из загаданных векторов должно быть не больше 0.6.

Пользователь вводит ответ-существительное. Если оно существует в модели, программа считает векторное расстояние между вводом пользователя и реальным ответ-вектором, которое переводит в проценты и выдает пользователю. Количество попыток ввода не ограничено.

Запуск и интерфейс бота

Для запуска создайте api.txt с API бота и запустите файл bot.py.

Бот имеет главное меню, из которого с помощью кнопок можно перейти в раздел Инструкция (где пользователю выдается инструкция к игре), Узнать больше о боте (контакты разработчика), Играть (начало игрового процесса).

По команде играть пользователю выдается два случайных слова, а пользователь неограниченное число раз (пока не угадает) угадывает их сумму. С помощью команды /stop пользователь может сдаться и узнать ответ.

Репозиторий

Файл requirements.txt содержит необходимые зависимости.

Файл bot.py запускает тг-бот. Ссылка на pythonanywhere

Файлы freq_nouns.txt, all_nouns.txt, freq_1000.txt -- файлы с существительными, используемыми в процессе игры.

Файл vecGuessr.ipynb содержит предобработку модели.

В папке model находится скачанная векторная молель; в файле noun_model.txt -- обработанная векторная модель, содержащая только существительные.

Разбалловка:

Бот:

  • 2 балла: бот работает, имеет понятный для пользователя интерфейс: описание (в том числе, в README в папке с проектом), команды, помощь и т.п.
  • 3 балла: используется морфологический (PyMorphy) парсинг и векторная модель
  • 1 балл: есть интересный функционал: кнопки
  • 2 балла: код проекта выложен в репозиторий, а также на pythonanywhere. Т.е. телеграм-бот должен работать вне зависимости от того, запущен ли код на вашем/чьем-то другом компьютере. Ссылка на ваше pythonanywhereapp должна быть в README в папке с проектом

About

project-222-katykool created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors