флешка + успокоительный веб-сервис не может запустить модель классификации текста + питон - PullRequest
0 голосов
/ 16 мая 2018

Код, используемый для создания полноценного веб-сервиса API

import numpy as np
import pandas as pd
#need to "conda install flask" for this to work
from flask import Flask, abort, jsonify, request
import pickle

Text_classification_model = pickle.load(open(r"D:\Sentiment_Analysis_Project\Deb\Sentiment_Analysis\Linear_SVC_TEXT_CLASSI_Final_82per_Model.pkl", "rb"))

app = Flask(__name__)

#@app.route("/")
#def hello():
#    return "Hello"

@app.route("/")
def make_predict():
    #all kinds of error checking should go here
    data = request.get_json(force=True)
    #convert our json to a numpy array
    predict_request = data['Clean_Text_Body']
    predict_request = np.array[predict_request]

    #np.array goes in to Linear SVC model, prediction comes out
    y_hat = Text_classification_model.predict(predict_request)

    #return our prediction
    output = [y_hat[0]]
    return jsonify(results=output)

if __name__ == '__main__':
    app.run()

когда он вызывается как файл .py, он выполняется правильно и отображает "http://localhost:5000/" в качестве URL-адреса.

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

import json
import requests

url = "http://localhost:8082/"
data = json.dumps({'Clean_Text_Body':"the product was amazing i just love it"})
headers = {'accept-language': 'en', 'content-type': 'application/json'}
r = requests.post(url, data = data, headers=headers)
Output = json.loads(r.text)['Output'] ##error section
# o/p is string eg: "4"
print("results == ", Output)

выдает следующую ошибку

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python\Anaconda\lib\json\__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "C:\Python\Anaconda\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python\Anaconda\lib\json\decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Используемая модель представляет собой линейную модель SVC для классификации настроений, которая обучается на тексте с двумя уровнями «положительный» и «отрицательный»

Модель предсказывает, имеет ли текст / строка положительное или отрицательное отношение.

1 Ответ

0 голосов
/ 16 мая 2018

Вы используете неправильную функцию запроса!

Вы хотите использовать это: http://docs.python -requests.org / ru / master /

не объект запроса колбы! Вам не нужно использовать from flask import Flask,request,jsonify во втором сценарии!

Вам нужно использовать import requests

, а затем requests.post()

...