NLP-Assistant / modules /classifier.py
zykrix
Initial commit
4a86a4b
from .models import classifier
label_map = {
"LABEL_0": "Business",
"LABEL_1": "Entertainment",
"LABEL_2": "Health",
"LABEL_3": "Science",
"LABEL_4": "Sports",
"LABEL_5": "Technology",
"LABEL_6": "Politics",
"LABEL_7": "World"
}
def classify_text(text):
chunk_size = 1024
chunks = [text[i:i + chunk_size] for i in range(0, len(text), chunk_size)]
label_scores = {}
for i, chunk in enumerate(chunks):
try:
results = classifier(chunk)
for res in results:
label = res['label']
score = res['score']
label_scores[label] = label_scores.get(label, 0) + score
except Exception as e:
print(f"⚠️ Error classifying chunk {i+1}: {e}")
continue
if not label_scores:
return "⚠️ Could not classify any chunk."
final_label = max(label_scores, key=label_scores.get)
confidence = round(label_scores[final_label] / len(chunks), 3)
readable_label = label_map.get(final_label, final_label)
return f"{readable_label.upper()} (Aggregated Score: {confidence})"