Model Description
This model is a Binary classification model trained on the Liar Dataset using the BERT (bert-base-uncased) architecture. The primary task is to classify news articles into different categories, making it suitable for fake news detection. BERT (Bidirectional Encoder Representations from Transformers) is a transformer-based model known for its effectiveness in natural language processing tasks.
The model classifies the input text into 2 classes, True (Real News) or False (Fake News).
The original labels include 'true', 'mostly-true', 'half-true', 'barely-true', 'false', and 'pants-fire'. In this custom mapping, statements labeled as 'true', 'mostly-true', and 'half-true' are all categorized as 'true', while 'barely-true', 'false', and 'pants-fire' are grouped under the 'false' category. This mapping simplifies the classification task into a binary problem, aiming to distinguish between truthful and non-truthful statements.
Bias: The model may inherit biases present in the training data, and it's important to be aware of potential biases in the predictions.
Code Implementation
# Load model directly
from transformers import AutoTokenizer, AutoModelForSequenceClassification
# Load the pre-trained model and tokenizer
tokenizer = AutoTokenizer.from_pretrained(
"Arjun24420/BERT-FakeNews-BinaryClassification")
model = AutoModelForSequenceClassification.from_pretrained(
"Arjun24420/BERT-FakeNews-BinaryClassification")
def predict(text):
# Tokenize the input text and move tensors to the GPU if available
inputs = tokenizer(text, padding=True, truncation=True,
max_length=512, return_tensors="pt")
# Get model output (logits)
outputs = model(**inputs)
probs = outputs.logits.softmax(1)
# Get the probabilities for each class
class_probabilities = {class_mapping[i]: probs[0, i].item()
for i in range(probs.shape[1])}
return class_probabilities
# Define class labels mapping
class_mapping = {
0: 'reliable',
1: 'unreliable',
}
- Downloads last month
- 10