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

Существующие проблемы - задаем вопросы

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

Идеи:

Я придумал много идей, в том числе некоторые из основных - создать страницу в facebook, и, хотите верьте, хотите нет, у некоторых из моих друзей нет учетной записи facebook, и их больше беспокоит анонимность и отсутствие конфиденциальности. На Фейсбуке много карнизных капельниц. Может быть, веб-портал. Единственная идея, которая меня запомнила, - это создание анонимного форума. Я был большим поклонником Quora и Reddit. Я подумал, почему бы не создать приложение и, может быть, сделать его официальным в школе. У большинства людей есть телефон, поэтому приложение подойдет им всем.

Как работает приложение:

Я создал приложение с использованием Flutter и Dart, в котором люди могут просто задавать вопросы анонимно, и каждый может отвечать, также анонимно. Приложение совместимо с Android, а также iOS. Когда кто-то отвечает на вопрос, его количество очков или репутация повышается, и они должны иметь определенное количество репутации, чтобы спросить. Количество баллов можно увидеть на вкладке профиля, а также вопросы, заданные самим пользователем. Поскольку приложение было разработано с учетом использования студентами, есть также вкладка для фокусировки, которая представляет собой секундомер. Каждые тридцать минут, потраченных на секундомер, тем больше репутации.

Помимо всего вышеперечисленного, одна из самых важных функций этого приложения не видна пользователям, но очень эффективна. Каждый раз, когда кто-то публикует вопрос или отвечает на него, текст фильтруется с помощью функции firebase, которая определяет соответствие публикации (т. Е. Использует ли она ненормативную лексику) с помощью алгоритма машинного обучения. Это значительно снижает количество утомительного вмешательства модератора, которое является проблемой для любой модерируемой страницы Facebook.

Используемый алгоритм называется Наивный байесовский. Наивный Байес вычисляет вероятность того, что предложение относится к определенному классу. Алгоритм обучается на текстовых файлах из 2-х классов; один класс содержит позитивные текстовые файлы, а другой класс содержит негативные текстовые файлы.

Что касается обучающей части, алгоритм отслеживает количество вхождений каждого слова в соответствующем классе. Затем на заключительном этапе тестирования алгоритм сравнивает логарифмическую вероятность того, что слово окажется в положительном или отрицательном классе. Я использовал логарифмическую вероятность, потому что вероятности могут стать очень маленькими, настолько маленькими, что двойники не могут их обработать (потеря значимости). Если логарифмическая вероятность появления этого слова, скажем, в положительном классе выше, чем в отрицательном классе, значение сохраняется в общей сумме, которая сравнивается в конце. Этот алгоритм обеспечивает точность 81,056%.

Бэкэнд приложения выглядит следующим образом. Приложение использует базы данных Firebase для хранения таких данных, как сообщение, ответы на него и время публикации. Помимо базы данных, приложение использует функции Firebase для определения настроения сообщения. Текст передается функции как параметр. Затем функция запускает алгоритм Наивного Байеса для текста. Затем он возвращает 0 (отрицательное) или 1 (положительное) как значение тональности. Затем приложение использует возвращаемое значение, чтобы определить, отмечать его или нет.

Конечно, эта работа еще не завершена; Я собираюсь продолжить работу над этим приложением. Этот набор данных, который используется сейчас, используется для анализа положительных и отрицательных настроений. В будущем, чтобы установить свои потребности в качестве классификатора ненормативной лексики вместо классификатора положительных и отрицательных настроений, я найду набор данных Kaggle, на котором можно будет тренироваться. Если у Kaggle нет такого набора данных, я создам свой собственный набор данных путем генерации помеченных примеров с заменой слов. Получив этот набор данных, я могу начать экспериментировать с концепцией биграмм для хранения лог-проб. Использование биграмм почти точно такое же, как использование отдельных слов, за исключением того, что вместо хранения отдельных слов они хранят вероятности двух слов за раз. Кроме того, на данный момент я еще не разработал алгоритм «пометки» приложением, хотя я, скорее всего, закончу его после того, как будет завершен наивный байесовский бэкэнд.

В заключение, это был очень веселый проект и один из моих любимых. Результатом созданного мною прототипа стало эстетичное и удобное приложение, обладающее большим потенциалом. Я научился использовать функции и базы данных Firebase. Самое главное, я изучил алгоритм Наивный Байес, его гибкость и некоторые полезные приложения к нему.