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

Ссылки на предыдущие части-





Давайте начнем с использования классификатора, чтобы сделать тестовый прогноз.

#doing a test prediction
test = ["the food was not very good, it was very rotten and tasted bad"]

#transforming for using on the model (using the count vectorizer)
test_vec = cv.transform(test)
#0= not liked
#1= liked the food
classifier.predict(test_vec)[0]

В результате был получен «0», что соответствует классу отрицательного отзыва. Итак, мы можем понять, что модель работает нормально.

Сохранение модели и корпуса текста с помощью Pickle

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



Код для продолжения-

#saving the model
import pickle
filename = 'reviews_classifier.sav'
pickle.dump(classifier, open(filename, 'wb'))

Это сохранит модель классификатора как файл .sav в локальном каталоге вашей записной книжки Jupyter / Python IDE.

Теперь нам также нужно сохранить корпус для дальнейшего использования. В лингвистике и НЛП корпус (буквально на латыни означает тело) относится к совокупности текстов. Здесь в корпусе собраны все отзывы. Корпус нам понадобится, чтобы можно было использовать векторизатор счетчика для нашей модели. Когда мы используем новый ввод, он должен быть таким, чтобы его можно было передать в модель. Так что для этого векторизатору счетчика понадобится корпус. Итак, приступаем к сохранению корпуса.

#saving the corpus

type(corpus)

with open('corpus.data', 'wb') as filehandle:     
# store the data as binary data stream     
    pickle.dump(corpus, filehandle)

Поэтому мы также сохраняем корпус как файл. Он сохраняется как corpus.data.

Создание исполняемого файла .py для запуска классификатора

Мы будем загружать корпус, а также модель из их файлов.

import pickle
from sklearn.feature_extraction.text import CountVectorizer
#model filename
filename = 'reviews_classifier.sav'
loaded_classifier = pickle.load(open(filename, 'rb'))
cv = CountVectorizer(max_features = 2000)
#loading the corpus
with open('corpus.data', 'rb') as filehandle:
    # read the data as binary data stream
    corpus = pickle.load(filehandle)
#fitting the count vectorizer with the corpus
cv.fit_transform(corpus)

Теперь мы будем работать над кодом на Python, сейчас почти все - простой код на Python.

print("Welcome to the Restaurant Review analyser")
print("The output will be either positive or negative.")
print("A count vectorizer was used")
print("---------------------------------------------------")
user_input=input("Enter the review of the restaurant:  ")
test = [user_input]
test_vec = cv.transform(test)
val=loaded_classifier.predict(test_vec)[0]
print("---------------------------------------------------")
if(val==0):
    print("The review entered was negative.")    
    print("The user did not like the restaurant.")
if(val==1):
    print("The review entered was positive.")
    print("The user liked the restaurant.")

Этот код, если он выполняется, предоставит пользователю возможность ввести отзыв на простом английском языке и выдаст результат, в котором отзыв был положительным или отрицательным. Этот проект представляет собой полную реализацию основных техник НЛП.

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

Репозиторий Github со всеми файлами проекта -



Поставьте звезду, если вам нравится работа.

Спасибо.