Часть 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-странице.
Это полный комплексный проект по внедрению автоматизированной системы оценки эссе. Гип Гип Ура!!!
Обзор:
- Вы можете попробовать разные модели нейронных сетей, как указано в папке моделей, и попытаться проверить разную точность и посмотреть, сможете ли вы увеличить оценку.
- Вы также можете использовать здесь предварительно обученные модели, такие как GloVe, FastText или другие современные модели, как часть трансферного обучения, которые используются в настоящее время.
3. Если какой-то код вы не можете понять, то, пожалуйста, погуглите его для лучшего понимания, благодаря этому ваши концепции станут намного яснее.
4. Упомянуты 2 исследовательские работы, которые полезно пройти, чтобы вы могли попрактиковаться, и они также дают четкое представление о проекте в целом.
Пожалуйста, пройдите Часть 1 и Часть 2 для полного понимания и выполнения проекта с данной ссылкой на Github.
Ссылки:
- Особая благодарность за репозиторий Ronit Mankad на Github, который я разветвил и получил исчерпывающее представление об этом проекте.
- Ссылки взяты из Википедии и других сайтов.
- Нейронный подход к автоматизированной оценке эссе
- Автоматическая оценка текста с использованием нейронных сетей
Если вам действительно нравится эта серия статей, хлопайте в ладоши, следуйте за мной и наслаждайтесь невероятной мощью искусственного интеллекта, как и миньоны ниже.