Spaces:
Sleeping
Sleeping
| from flask import Flask, request, render_template | |
| import pandas as pd | |
| import nltk | |
| from nltk.tokenize import word_tokenize | |
| from nltk.corpus import stopwords | |
| from nltk.stem import WordNetLemmatizer | |
| from transformers import pipeline | |
| # Initialize Flask app | |
| app = Flask(__name__) | |
| # Download NLTK resources | |
| nltk.download('punkt') | |
| nltk.download('stopwords') | |
| nltk.download('wordnet') | |
| # Initialize NLTK components | |
| lemmatizer = WordNetLemmatizer() | |
| stop_words = set(stopwords.words('english')) | |
| # Load Hugging Face pipelines | |
| sentiment_pipeline = pipeline("sentiment-analysis", model="distilbert/distilbert-base-uncased-finetuned-sst-2-english") | |
| ner_pipeline = pipeline("ner", model="dbmdz/bert-large-cased-finetuned-conll03-english", aggregation_strategy="simple") | |
| # Function to preprocess text | |
| def preprocess_text(text): | |
| # Tokenize | |
| tokens = word_tokenize(text) | |
| # Remove stop words and lemmatize | |
| cleaned_tokens = [lemmatizer.lemmatize(token.lower()) for token in tokens if token.isalpha() and token.lower() not in stop_words] | |
| return ' '.join(cleaned_tokens) | |
| def home(): | |
| return render_template('index.html') | |
| def analyze(): | |
| if request.method == 'POST': | |
| comments = request.form['comments'] | |
| cleaned_comments = preprocess_text(comments) | |
| # Analyze sentiment | |
| sentiment_result = sentiment_pipeline(cleaned_comments)[0] | |
| # Analyze entities | |
| entities_result = ner_pipeline(cleaned_comments) | |
| # Prepare results for rendering | |
| result = { | |
| 'original_comment': comments, | |
| 'cleaned_comment': cleaned_comments, | |
| 'sentiment': sentiment_result, | |
| 'entities': entities_result | |
| } | |
| return render_template('result.html', result=result) | |
| if __name__ == '__main__': | |
| app.run(debug=True) |