File size: 2,955 Bytes
18a08fa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
SentimentBERT
Overview

SentimentBERT is a BERT-based model fine-tuned for sentiment analysis on text data. It can classify text into three categories: NEGATIVE, NEUTRAL, and POSITIVE. The model has been trained on a diverse dataset of social media posts, product reviews, and news articles.
Model Architecture

This model is based on the BERT (Bidirectional Encoder Representations from Transformers) architecture. It consists of 12 transformer layers, 12 attention heads, and a hidden size of 768. The model has been fine-tuned on a large dataset of labeled sentiment data spanning multiple domains and languages.
Intended Use

This model is designed to analyze text and determine the sentiment expressed within it. It can be used for:

    Social media monitoring and brand reputation management
    Customer feedback analysis and sentiment tracking
    Market research and consumer opinion analysis
    Content moderation and filtering
    Financial market sentiment analysis

Limitations

    The model may not perform well on domain-specific jargon or slang not present in the training data
    It may struggle with detecting sarcasm, irony, and nuanced emotional expressions
    Performance may vary across different languages and cultural contexts
    The model's performance may degrade on very short texts (less than 3 words) or extremely long texts
    The model may have biases present in the training data

Example Code

from transformers import AutoTokenizer, AutoModelForSequenceClassificationimport torch# Load model and tokenizertokenizer = AutoTokenizer.from_pretrained("username/sentimentbert")model = AutoModelForSequenceClassification.from_pretrained("username/sentimentbert")# Function to predict sentimentdef predict_sentiment(text):    inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True, max_length=512)    with torch.no_grad():        outputs = model(**inputs)        predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)    predicted_class = torch.argmax(predictions, dim=1).item()    confidence = predictions[0][predicted_class].item()        sentiment_map = {0: "NEGATIVE", 1: "NEUTRAL", 2: "POSITIVE"}    return sentiment_map[predicted_class], confidence# Example usagetext = "I really enjoyed the movie, the acting was superb!"sentiment, confidence = predict_sentiment(text)print(f"Text: {text}")print(f"Predicted sentiment: {sentiment} (confidence: {confidence:.2f})")

 
Training Data 

The model was trained on a combination of publicly available sentiment analysis datasets including: 

     SST-2 (Stanford Sentiment Treebank)
     IMDB movie reviews
     Amazon product reviews
     Twitter sentiment datasets
     Customer feedback datasets from various industries
     

Evaluation Results 

The model achieves the following performance metrics on a held-out test set: 

     Accuracy: 92.3%
     F1 Score (macro): 0.91
     Precision (macro): 0.92
     Recall (macro): 0.91