Inference Unlimited

بناء أداة تحليل المشاعر الخاصة بك باستخدام LLM

المقدمة

تحليل المشاعر هو عملية تحديد النبرة العاطفية للنص، والتي يمكن تطبيقها في العديد من المجالات مثل التسويق، خدمة العملاء، أو أبحاث الرأي العام. في هذا المقال، سنعرض لك كيفية بناء أداة تحليل المشاعر الخاصة بك باستخدام النماذج اللغوية الكبيرة (LLM).

اختيار النموذج

الخطوة الأولى هي اختيار النموذج اللغوي المناسب. يمكننا اختيار بين:

للمثال الخاص بنا، سنستخدم Hugging Face Transformers مع نموذج DistilBERT، وهو نسخة خفيفة من BERT وتتناسب جيدًا مع مهام تحليل المشاعر.

تثبيت المكتبات المطلوبة

لبدء العمل، نثبيت المكتبات اللازمة:

pip install transformers torch pandas

تحميل النموذج والمشفّر

بعد ذلك، تحميل النموذج والمشفّر:

from transformers import pipeline

# تحميل الأداة الجاهزة لتحليل المشاعر
sentiment_pipeline = pipeline("sentiment-analysis")

إعداد البيانات

أعدنا مجموعة بيانات للاختبار. يمكننا استخدام مثال بسيط:

texts = [
    "أحب هذا المنتج، هو رائع!",
    "لا أوصيك به، أنا متضايق جدًا.",
    "منتج متوسط، لا شيء استثنائي.",
    "العملية مرضية، لكن السعر مرتفع جدًا."
]

تحليل المشاعر

الآن، يمكننا إجراء تحليل المشاعر لنصوصنا:

results = sentiment_pipeline(texts)

for text, result in zip(texts, results):
    print(f"النص: {text}")
    print(f"المشاعر: {result['label']} (التأكد: {result['score']:.2f})")
    print("---")

تعديل النموذج

إذا أردنا تعديل النموذج لبياناتنا الخاصة، يمكننا استخدام مكتبة Hugging Face Transformers لتدريب النموذج على مجموعة بياناتنا.

from transformers import AutoTokenizer, AutoModelForSequenceClassification
from transformers import Trainer, TrainingArguments
import pandas as pd
from sklearn.model_selection import train_test_split

# مثال مجموعة بيانات
data = pd.DataFrame({
    "text": ["أحب هذا المنتج", "لا أوصيك به", "منتج متوسط"],
    "label": [1, 0, 0]  # 1 - إيجابي، 0 - سلبي
})

# تقسيم البيانات إلى مجموعة تدريب ومجموعة اختبار
train_texts, test_texts, train_labels, test_labels = train_test_split(
    data["text"], data["label"], test_size=0.2
)

# تحميل المشفر والنموذج
model_name = "distilbert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)

# تشفير البيانات
train_encodings = tokenizer(list(train_texts), truncation=True, padding=True)
test_encodings = tokenizer(list(test_texts), truncation=True, padding=True)

# فئة لإدارة البيانات
class SentimentDataset(torch.utils.data.Dataset):
    def __init__(self, encodings, labels):
        self.encodings = encodings
        self.labels = labels

    def __getitem__(self, idx):
        item = {key: torch.tensor(val[idx]) for key, val in self.encodings.items()}
        item["labels"] = torch.tensor(self.labels[idx])
        return item

    def __len__(self):
        return len(self.labels)

train_dataset = SentimentDataset(train_encodings, train_labels)
test_dataset = SentimentDataset(test_encodings, test_labels)

# إعدادات التدريب
training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=16,
    per_device_eval_batch_size=64,
    warmup_steps=500,
    weight_decay=0.01,
    logging_dir="./logs",
    logging_steps=10,
)

# تدريب النموذج
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=test_dataset
)

trainer.train()

نشر النموذج

بعد تدريب النموذج، يمكننا حفظه واستخدامه لتحليل المشاعر:

model.save_pretrained("./custom_sentiment_model")
tokenizer.save_pretrained("./custom_sentiment_model")

# تحميل النموذج المعدل
custom_model = AutoModelForSequenceClassification.from_pretrained("./custom_sentiment_model")
custom_tokenizer = AutoTokenizer.from_pretrained("./custom_sentiment_model")

# مثال تحليل
custom_pipeline = pipeline("sentiment-analysis", model=custom_model, tokenizer=custom_tokenizer)
print(custom_pipeline("هذا المنتج رائع!"))

الخاتمة

في هذا المقال، عرضنا لك كيفية بناء أداة تحليل المشاعر الخاصة بك باستخدام النماذج اللغوية الكبيرة. شرحنا خطوة بخطوة اختيار النموذج، إعداد البيانات، تحليل المشاعر، وتعديل النموذج لتلبية احتياجاتك. بفضل هذه الأداة، يمكنك تحليل النبرة العاطفية للنصوص بفعالية في مختلف المجالات.

Język: AR | Wyświetlenia: 6

← Powrót do listy artykułów