Итак, мы здесь! На краю второй оценки. На этой неделе я сделал пару важных дел.

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

Как видите, результаты немного случайны. Кроме того, язык не является формальным. (Причина в том, что он был обучен на очень популярном Cornell Movie Dialogue Corpus и нуждался в дополнительной настройке гиперпараметров). Такое поведение может быть не идеальным для чат-бота Doctor ChatBot, где точность имеет первостепенное значение.

Затем я перешел к созданию поискового бота на основе нашего набора данных. Наш собственный набор данных гарантирует, что ответы будут более предсказуемыми и содержательными. невозможно создать набор данных, который бы подходил для всех ситуаций, как по усилиям, так и по времени. Так что я просто тренировал его для горстки нет. предложений в начале (скажем, 5–10). Для этого я использовал Rasa Framework.

В структуре одним из компонентов является Rasa NLU для обработки естественного языка. Таким образом, даже если моего запроса нет среди этих 5–10, но он чем-то похож, он распознает намерение и сопоставляется с предопределенными действиями. Еще одна интересная особенность Rasa заключается в том, как вы можете настроить ее в соответствии со своими потребностями. Например, поскольку он использует Keras для обучения модели, поэтому мы можем даже настраивать такие параметры, как слои LSTM, матрицы точности и т. Д., В соответствии с нашими потребностями.

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

if (req.body) {
    progress.findAll({
        include: [localUser],
        where: {badge: req.body.badge},
        order: [
            ['score', 'DESC'],
        ]
    }

Итак, на этот раз это была моя недельная работа GSoC. Я вернусь на следующей неделе! Быть в курсе. :D