Часть 3. Создание веб-приложения для проекта и развертывание модели ML

Пожалуйста, пройдите Часть 1, Часть 2 и Часть 3 для полного понимания и выполнения проекта с данным Github.

2. /mysite/grader/views.pyдляполучения контекста с веб-страницы иоценки эссе из сохраненной модели.

  • Библиотеки Django и utils импортируются, когда всякий раз, когда пользователь просматривает веб-приложение, будет вызываться первая индексная функция, которая будет внутренне вызывать файл index.html и загружать его.
  • Определение эссе вызовет файл эссе.html, в котором будут перечислены все эссе, где пользователь или студент может выбрать, какое эссе он хочет написать.

  • Определение вопроса берет данные из формы с точки зрения содержания. Написанное учащимся эссе будет отправлено в виде почтового запроса и сохранено в содержании.
content = form.cleaned_data.get('answer')
  • содержимое было преобразовано в testdataVectors с использованием приведенного ниже кода, где используется сохраненная модель Word2Vec вместе с ранее определенными функциями getAvgFeatureVec.
num_features = 300
                model = word2vec.KeyedVectors.load_word2vec_format(os.path.join(current_path, "deep_learning_files/word2vec.bin"), binary=True)
                clean_test_essays = []
                clean_test_essays.append(essay_to_wordlist( content, remove_stopwords=True ))
                testDataVecs = getAvgFeatureVecs( clean_test_essays, model, num_features )
                testDataVecs = np.array(testDataVecs)
                testDataVecs = np.reshape(testDataVecs, (testDataVecs.shape[0], 1, testDataVecs.shape[1]))
  • Теперь веса модели final_lstm.h5 загружены, и прогнозирование выполняется с точки зрения оценки.
lstm_model = get_model()
  lstm_model.load_weights(os.path.join(current_path, "deep_learning_files/final_lstm.h5"))
preds = lstm_model.predict(testDataVecs)
if math.isnan(preds):
                    preds = 0
                else:
                    preds = np.around(preds)

                if preds < 0:
                    preds = 0
                if preds > question.max_score:
                    preds = question.max_score
            else:
                preds = 0

essay = Essay.objects.create(
                content=content,
                question=question,
                score=preds
            )
        return redirect('essay', question_id=question.set, essay_id=essay.id)
    else:
        form = AnswerForm()

    context = {
        "question": question,
        "form": form,
    }
    return render(request, 'grader/question.html', context)
  • Здесь предсказанная оценка была передана обратно в question.html, и оценка была показана на html-странице.

Это полный комплексный проект по внедрению автоматизированной системы оценки эссе. Гип Гип Ура!!!

Обзор:

  1. Вы можете попробовать разные модели нейронных сетей, как указано в папке моделей, и попытаться проверить разную точность и посмотреть, сможете ли вы увеличить оценку.
  2. Вы также можете использовать здесь предварительно обученные модели, такие как GloVe, FastText или другие современные модели, как часть трансферного обучения, которые используются в настоящее время.

3. Если какой-то код вы не можете понять, то, пожалуйста, погуглите его для лучшего понимания, благодаря этому ваши концепции станут намного яснее.

4. Упомянуты 2 исследовательские работы, которые полезно пройти, чтобы вы могли попрактиковаться, и они также дают четкое представление о проекте в целом.

Пожалуйста, пройдите Часть 1 и Часть 2 для полного понимания и выполнения проекта с данной ссылкой на Github.

Ссылки:

  1. Особая благодарность за репозиторий Ronit Mankad на Github, который я разветвил и получил исчерпывающее представление об этом проекте.
  2. Ссылки взяты из Википедии и других сайтов.
  3. Нейронный подход к автоматизированной оценке эссе
  4. Автоматическая оценка текста с использованием нейронных сетей

Если вам действительно нравится эта серия статей, хлопайте в ладоши, следуйте за мной и наслаждайтесь невероятной мощью искусственного интеллекта, как и миньоны ниже.