Word2Vec: Skip-gram وCBOW
نظرية Word2Vec، وتطبيقها باستخدام gensim، والعمليات الحسابية على المتجهات (king - man + woman = queen)
Word2Vec: Skip-gram وCBOW درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
من الكلمات إلى المتجهات
يحتاج تعلّم الآلة إلى أرقام، لكن الكلمات رموز. تعمل تضمينات الكلمات على تحويل كل كلمة إلى متجه كثيف، بحيث تكون الكلمات المتشابهة متقاربة في فضاء المتجهات.
فرضية التوزيع
يعتمد Word2Vec على فكرة أن الكلمات التي تظهر في سياقات متشابهة لها معانٍ متشابهة. ومن خلال تعلّم التنبؤ بالسياق، يلتقط النموذج المعنى داخل المتجهات.
بنيتان معماريتان
يحتوي Word2Vec على مخططين للتدريب:
- CBOW يتنبأ بالكلمة المستهدفة من سياقها المحيط
- Skip-gram يتنبأ بالسياق المحيط انطلاقًا من الكلمة المستهدفة
CBOW مقابل Skip-gram
يُعد CBOW أسرع ويعمل جيدًا مع الكلمات الشائعة. أما Skip-gram فأبطأ، لكنه يتعامل بصورة أفضل مع الكلمات النادرة ومجموعات البيانات الصغيرة. وغالبًا ما يكون Skip-gram الخيار الافتراضي عند السعي إلى جودة أعلى.
التدريب باستخدام gensim
تجعل مكتبة gensim استخدام Word2Vec سهلًا. مرّروا إليها sentences المرمّزة (قوائم من قوائم الكلمات)، واضبطوا إعدادات التضمين.
from gensim.models import Word2Vec
sentences = [["the", "cat", "sat"], ["the", "dog", "ran"]]
model = Word2Vec(sentences=sentences, vector_size=100, window=5, min_count=1)المعاملات الأساسية
أهم المعاملات هي:
vector_sizeبُعد التضمين (مثلًا 100-300)windowعرض السياق حول كل كلمةmin_countتجاهل الكلمات التي يقل تكرارها عن هذه القيمة
from gensim.models import Word2Vec
model = Word2Vec(
sentences,
vector_size=200,
window=5,
min_count=5,
)اختيار Skip-gram باستخدام sg=1
يحدد المعامل sg البنية المعمارية: يستخدم sg=0 بنية CBOW (وهي الافتراضية)، بينما يستخدم sg=1 بنية skip-gram.
from gensim.models import Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, sg=1)
# sg=1 -> skip-gramالوصول إلى متجهات الكلمات
توجد المتجهات المدرَّبة في model.wv. افهرسوه باستخدام كلمة للحصول على متجه تلك الكلمة.
vec = model.wv["cat"]
print(vec.shape) # (vector_size,)
print("dog" in model.wv)العثور على كلمات متشابهة
تعيد wv.most_similar الكلمات التي تكون متجهاتها الأقرب، وهي طريقة سريعة لفحص ما تعلمه التضمين.
print(model.wv.most_similar("cat", topn=5))
# returns list of (word, similarity) pairsالحساب المتجهي للكلمات
الخاصية الشهيرة هي أن الحساب على المتجهات يلتقط العلاقات. تؤدي العملية الملك - الرجل + المرأة إلى الاقتراب من الملكة، مما يوضح أن التضمين يرمّز أوجه التشابه.
result = model.wv.most_similar(
positive=["king", "woman"],
negative=["man"],
topn=1,
)
print(result) # often [("queen", 0.7...)]استخدام التضمينات في المهام اللاحقة
لتمثيل جملة، احسبوا متوسط متجهات كلماتها، ثم مرّروه إلى أي مصنّف. كما توفر تضمينات Word2Vec المدرَّبة مسبقًا نقطة بداية قوية عندما تكون بياناتكم قليلة.
import numpy as np
def sentence_vector(words, model):
vecs = [model.wv[w] for w in words if w in model.wv]
return np.mean(vecs, axis=0) if vecs else np.zeros(model.vector_size)تحقق سريع
اختبروا معرفتكم بـ Word2Vec.
خلاصة
الخلاصة: يتعلم Word2Vec متجهات كثيفة للكلمات من السياق. يتنبأ CBOW بكلمة انطلاقًا من السياق (وهو سريع)، بينما يتنبأ skip-gram (sg=1) بالسياق انطلاقًا من كلمة (وهو أفضل للكلمات النادرة). في gensim، اضبطوا vector_size وwindow وmin_count، ثم استخدموا wv.most_similar وأوجه التشابه مثل الملك - الرجل + المرأة.
الأسئلة الشائعة
هل درس «Word2Vec: Skip-gram وCBOW» مجاني؟
نعم — نص درس «Word2Vec: Skip-gram وCBOW» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «Word2Vec: Skip-gram وCBOW»؟
نظرية Word2Vec، وتطبيقها باستخدام gensim، والعمليات الحسابية على المتجهات (king - man + woman = queen) تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «Word2Vec: Skip-gram وCBOW»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- Word2Vec: Skip-gram وCBOW
- تضمينات GloVe وFastText
- تصنيف النصوص باستخدام BERT
- التشابه الدلالي وتضمينات الجمل