Этот репозиторий содержит эквивалент существующего интерактивного приложения Streamlit, который объясняет результаты детальной классификации настроений, подробно описанной в этой средней серии.
Реализован ряд классификаторов, а их результаты объяснены с помощью объяснителя LIME. Классификаторы были обучены на наборе данных Stanford Sentiment Treebank (SST-5). Метками классов являются любые из [1, 2, 3, 4, 5]
, где 1
— очень отрицательное, а 5
— очень положительное.
Streamlit — это легкая, минималистичная среда для создания информационных панелей на Python. Основная задача Streamlit — предоставить разработчикам возможность быстро создавать прототипы своих пользовательских интерфейсов, используя как можно меньше строк кода. Вся тяжелая работа, обычно необходимая для развертывания веб-приложения, такая как определение внутреннего сервера и его маршрутов, обработка HTTP-запросов и т. д., абстрагируется от пользователя. В результате становится очень легко быстро реализовать веб-приложение независимо от опыта разработчика.
Сначала настройте виртуальную среду и установите ее из requirements.txt
:
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
Для дальнейшего развития просто активируйте существующую виртуальную среду.
source venv/bin/activate
После того, как виртуальная среда настроена и активирована, запустите приложение, используя команду ниже.
streamlit run app.py
Введите предложение, выберите тип классификатора и нажмите кнопку Explain results
. Затем мы можем наблюдать признаки (т. е. слова или токены), которые способствовали тому, что классификатор предсказал конкретную метку класса.
Интерфейсное приложение берет образец текста и выводит объяснения LIME для различных методов. Приложение развертывается с помощью Heroku по следующему адресу: https://sst5-explainer-streamlit.herokuapp.com/.
Поиграйте со своими собственными текстовыми примерами, как показано ниже, и посмотрите детальное объяснение результатов тональности!
ПРИМЕЧАНИЕ. Поскольку модели на основе PyTorch (Flair и причинный преобразователь) довольно дороги для выполнения вывода (для них требуется графический процессор), эти методы не развертываются. Однако их можно запустить в локальном экземпляре приложения.