Team Ai
Apppublic

Sravanth/sentiment-analysis-api

sourceHugging Faceupdated 4y agoView on Hugging Face
0likes
app.py63 linesDownload Raw Back to root
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