|
--- |
|
license: mit |
|
language: |
|
- en |
|
metrics: |
|
- accuracy |
|
library_name: sklearn |
|
pipeline_tag: text-classification |
|
tags: |
|
- code |
|
--- |
|
|
|
|
|
## Model Training |
|
|
|
The sentiment analysis model is trained using a Support Vector Machine (SVM) classifier with a linear kernel. The cleaned text data is transformed into a bag-of-words representation using the CountVectorizer. The trained model is saved as `Sentiment_classifier_model.joblib`, and the corresponding TF-IDF vectorizer is saved as `vectorizer_model.joblib`. |
|
|
|
|
|
|
|
|
|
|
|
|
|
- from huggingface_hub import hf_hub_download |
|
- import joblib |
|
- from sklearn.preprocessing import LabelEncoder |
|
|
|
# Download the sentiment analysis model |
|
- model = joblib.load( |
|
hf_hub_download("DineshKumar1329/Sentiment_Analysis", "sklearn_model.joblib") |
|
) |
|
|
|
# Load the TF-IDF vectorizer |
|
tfidf_vectorizer = joblib.load('/content/vectorizer_model.joblib') # Replace with your path |
|
|
|
def clean_text(text): |
|
# Implement your text cleaning logic here (e.g., lowercase, remove punctuation, etc.) |
|
# This example simply lowercases the text |
|
return text.lower() |
|
|
|
def predict_sentiment(user_input): |
|
"""Predicts sentiment for a given user input.""" |
|
cleaned_text = clean_text(user_input) |
|
input_matrix = tfidf_vectorizer.transform([cleaned_text]) |
|
prediction = model.predict(input_matrix)[0] |
|
|
|
if isinstance(model.classes_, LabelEncoder): |
|
prediction = model.classes_.inverse_transform([prediction])[0] |
|
|
|
return prediction |
|
|
|
# Get user input |
|
user_input = input("Enter a sentence: ") |
|
|
|
# Predict sentiment |
|
predicted_sentiment = predict_sentiment(user_input) |
|
|
|
print(f"Predicted Sentiment: {predicted_sentiment}") |
|
|
|
# Optional: Save predictions (modify paths as needed) |
|
try: |
|
df_existing = pd.read_excel('/content/output_predictions.xlsx') |
|
except FileNotFoundError: |
|
df_existing = pd.DataFrame() |
|
|
|
new_prediction = pd.DataFrame({'User_Input': [user_input], 'Predicted_Sentiment': [predicted_sentiment]}) |
|
df_combined = pd.concat([df_existing, new_prediction], ignore_index=True) |
|
df_combined.to_excel('/content/output_predictions.xlsx', index=False) |
|
|