Sravanth/sentiment-analysis-api
0
1#Develop an API server on python using Fast API for the model created in the previous step.2 3from string import punctuation 4from nltk.tokenize import word_tokenize5import nltk6from nltk.corpus import stopwords7from nltk.stem import WordNetLemmatizer8from os.path import dirname, join, realpath9import joblib10import uvicorn11from fastapi import FastAPI12import requests as r13 14#from pyramid_swagger import add_swagger_view15 16 17 18 19 20 21app = FastAPI(22 title="Sentiment Analysis API",23 description="A simple API that use NLP model to predict the sentiment of the airline reviews",24 version="0.1",25)26 27# Load the model28model = joblib.load('sentiment_classifier.pkl')29vectorizer = joblib.load('vectorizer.pkl')30 31class Inference:32 def __init__(self, model, vectorizer):33 self.model = model34 self.vectorizer = vectorizer35 36 def get_sentiment(self, review):37 new_review = [review]38 new_review = self.vectorizer.transform(new_review)39 pred = self.model.predict(new_review)40 if pred == 1:41 return 'Positive'42 else:43 return 'Negative'44 45inference = Inference(model, vectorizer)46 47@app.get("/")48def home():49 return {"message": "Welcome to Sentiment Analysis API"}50 51@app.get("/predict/{review}")52def predict_sentiment(review: str):53 return {"sentiment": inference.get_sentiment(review)}54 55#app.include_router(swagger_ui_bundle, tags=["Swagger UI"])56#app.include_router(swagger_ui_expose, tags=["Swagger UI"])57 58 59 60 61 62 63 