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

https://medium.com/p/a51b8c6290d4/edit

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

Итак, с помощью наивного байесовского алгоритма мы ранее обучили нашу модель машинного обучения. Итак, для прогнозирования результата, будь то спам или ветчина. Нам нужны две вещи.

  1. Этот word_dict помогает нам подсчитать количество вхождений всех слов из word_dict во входной почте, поэтому нам нужно экспортировать word_dict .
  2. Во-вторых, этот объект классификатора (в нашем случае классификатором является clf), в котором хранится вся логика того, является ли электронная почта спамом или ветчиной. Поэтому мы также экспортируем этот объект классификатора, т.е. clf .

Итак, наша цель — экспортировать эти две вещи (word_dict и объект-классификатор, который хранится в clf) из файла Jupiter Notebook в PyCharm для создания веб-сайта: —
Здесь вы можете увидеть, как мы экспортируем эти две вещи (word_dict и объект классификатора, который хранится в clf ) из файла Jupiter Notebook в PyCharm с помощью Pickle .

Ниже код выполняется в том же блокноте Jupiter, где вы обучаете свою модель, мы шаг за шагом видим, как мы экспортируем: -

  1. Сначала мы импортируем рассол с помощью import pickle.
  2. Затем мы сериализуем clf в файл с именем 'models.pkl' с двоичным режимом записи, то есть 'wb', используя Syntax-
    pickle.dump(clf, open('models. pkl','wb'))
  3. Затем мы сериализуем word_dict в другой файл 'myStrings.pkl' с записью двоичного режима, который является "wb", используя синтаксис-
    pickle.dump(word_dict, open('myStrings. pkl','wb'))

:: Теперь откройте свой PyCharm и создайте каталог с именем «Email-Spam-Classifier», а внутри каталога создайте имя файла python «app» с расширением python, которое является py, и создайте другой каталог внутри Email-Spam-Classifier. каталог, который является шаблонами, и внутри шаблонов создайте еще один файл «index.html».

Теперь перейдите в блокнот Jupiter и скопируйте эти два файла 'models.pkl' и 'myStrings.pkl', которые хранятся в том же каталоге, где находится файл вашего блокнота Jupiter, и вставьте эти файлы в папку Каталог Email-spam-Classifier в PyCharm.

Теперь мы собираемся работать над PyCharm: -

Мы собираемся создать наш веб-сайт с помощью Flask. Если вы не знаете, как использовать Flask, не беспокойтесь, в нашем случае мы собираемся создать простой веб-сайт, в котором мы будем использовать только базовую часть flask.

Сначала откройте файл app.py в PyCharm и для использования Flask. Сначала мы устанавливаем flask с помощью этой команды: -
pip install flask в терминале в payCharm.

Теперь импортируйте flask в файл app.py с помощью Command from flask import Flask
Теперь создайте переменную app, которая будет равна (__name__) класса Flask.
синтаксис: - приложение=Flask(__name__)

Теперь пришло время импортировать этот файл pickle «mystrings.pkl» и «models.pkl» в файл app.py, поэтому после app=Flask(__name__) вы пишете этот код
word_dict=pickle.load(open("mystrings.pkl", "rb"))
clf=pickle.load(open('models.pkl', 'rb'))

Теперь мы создаем декоратор и прикрепляем функцию с этим декоратором, которая возвращает файл index.html для рендеринга этого файла index.html, который мы используем render_template, который импортируется из flask .
синтаксис:-
@app.route('/')
def home():
return render_template('index.html') #в этой строке требуется одна вкладка .

И, наконец, мы запускаем наше приложение.
синтаксис:-
if __name__==”__main__”:
app.run(debug=True) требуется #one tab в этой строке кода.

Теперь мы собираемся создать форму в index.html, которая принимает ввод от пользователя и показывает вывод.

index.html

Здесь, на этом рисунке, вы можете видеть, что у нас есть форма, метод которой — POST, а действие — «/predict», это означает, что ваш запрос отправляется через POST, и действие показывает, кто срабатывает после отправки формы, это означает, что данные, введенные пользователем в том виде, который получен функцией прогнозирования файла app.py.

Теперь html отправляет эти данные, т.е. введенное электронное письмо, в функцию прогнозирования, теперь внутри функции прогнозирования мы получаем это электронное письмо с помощью метода запроса, для которого мы собираемся импортировать запрос из фляги. После импорта внутри функции прогнозирования мы получаем это электронное письмо и сохраняем в переменной с именем new_email.
синтаксис: - new_email=request.form.get('email')

Теперь мы разделяем new_email и проверяем количество вхождений всех слов word_dict, присутствующих в new_email, и сохраняем в одном образце имени списка
, затем меняем этот список на массив Numpy, который выглядит так: -

Затем мы передаем это new_email нашему классификатору, который предсказывает, является ли new_email спамом или ветчиной. а затем отправьте результат в index.html с помощью переменной и, наконец, отобразите этот результат на веб-странице.

Вот код функции прогнозирования: -

После прогнозирования результата отправляем обратно в index.html в переменной «label»
, а затем в index.html проверяем значение label и показываем результат в соответствии с условием. просто посмотрите ниже для большего понимания: -

Вы также можете увидеть этот код на картинке index.html выше.