[بريندان شيلينغفورد ، يانيس أسيل ، كريس داير]
بالنسبة لهذا العملي ، ستزودك بمدفأة Ipython المكتملة جزئيًا ، وهي بيئة حوسبة بيثون تفاعلية تعتمد على الويب تتيح لنا خلط النص والرمز والمؤامرات التفاعلية.
سنقوم بتدريب نماذج Word2VEC على بيانات TED Talk و Wikipedia ، باستخدام تطبيق Word2Vec المدرج في حزمة Python gensim . بعد تدريب النماذج ، سنقوم بتحليل وتصور التضمينات المستفادة.
على محطة عمل المختبر ، استنساخ المستودع العملي وتشغيل . install-python.sh Shell Script في محطة لتثبيت Anaconda مع Python 3 ، والحزم المطلوبة لهذا العمليات.
قم بتشغيل ipython notebook في دليل المستودع وفتح دفتر practical.ipynb في متصفحك.
رمز لتنزيل مجموعة البيانات والمعالجة المسبقة ، تم تكوينه مسبقًا لتوفير الوقت. ومع ذلك ، فمن المتوقع أن تحتاج إلى القيام بمثل هذه المهمة في العمليات المستقبلية ، بالنظر إلى البيانات الأولية. اقرأها وتأكد من فهمك. في كثير من الأحيان ، يستخدم المرء مكتبة مثل nltk لتبسيط هذه المهمة ، لكننا لم نفعل ذلك هنا وبدلاً من ذلك اخترنا استخدام التعبيرات العادية عبر وحدة Python's re .
قم بعمل قائمة بالكلمات الأكثر شيوعًا وحدوثها. ألق نظرة على أفضل 40 كلمة. قد ترغب في استخدام فئة CountVectorizer الخاصة بـ sklearn.feature_extraction.text أو فئة Counter وحدة collections .
خذ أعلى 1000 كلمة ، ورسم رسم بياني من تهمهم. تم تقديم رمز التخطيط لرسم بياني تفاعلي بالفعل في دفتر الملاحظات.
Handin: أظهر الرسم البياني لتوزيع التردد.
الآن بعد أن أصبح لدينا قائمة معالجة من الجمل ، دعنا ندير تدريب Word2Vec. ابدأ بقراءة وثائق Gensim لـ Word2Vec على https://radimrehurek.com/gensim/models/word2vec.html ، لمعرفة كيفية استخدام فئة Word2Vec . تعلم التضمينات في min_count=10 بحيث يتم تجاهل الكلمات النادرة. يجب أن تستغرق عملية التدريب أقل من نصف دقيقة.
إذا تم model_ted مثيل Word2Vec المدربين ، فيجب أن تكون قادرًا على التحقق من حجم المفردات باستخدام len(model_ted.vocab) ، والتي يجب أن تكون حوالي 14427. حاول استخدام طريقة most_similar() لإرجاع قائمة أكثر الكلمات مماثلة إلى "الرجل" و "الكمبيوتر".
Handin: ابحث عن بضع كلمات مع أقرب جيران مثيرة للاهتمام و/أو مفاجأة.
Handin: ابحث عن مجموعة مثيرة للاهتمام في مؤامرة T sne.
اختياري ، بالنسبة للطلاب المتحمسين: حاول استرجاع متجهين يدويًا من كلمتين باستخدام مشغل الفهرسة كما هو موضح في وثائق Gensim ، ثم كمبيوتر مسافات جيبونية (تذكر أنه يتم تعريفه على أنه np.dot() و np.linalg.norm() ، راجع الوثائق numpy للحصول على التفاصيل. قارن هذا بالمسافة المحسوبة بواسطة وظائف Gensim.
لقد قدمنا رمز التنزيل/المعالجة المسبقة (على غرار الكود السابق) لمجموعة بيانات Wikitext-2. يستخدم الرمز عينة فرعية عشوائية من البيانات بحيث يكون قابلاً للمقارنة مع بيانات TED Talk.
كرر نفس التحليل على النحو الوارد أعلاه ولكن على مجموعة البيانات هذه.
هاندين: ابحث عن بضع كلمات مع أقرب جيران مماثلة.
Handin: ابحث عن مجموعة مثيرة للاهتمام في مؤامرة T sne.
Handin: هل هناك أي اختلافات ملحوظة بين التضمين المستفادة على البيانات مقارنة بتلك المستفادة على بيانات TED Talk؟
إذا كان لديك وقت إضافي ، فحاول أداء مجموعة K-Means (على سبيل المثال باستخدام sklearn.cluster.kmeans ) على التضمينات ، وضبط عدد المجموعات حتى تحصل على مجموعات مثيرة أو ذات معنى.
انظر الجريئة " handin: " الأجزاء أعلاه. على الورق أو شفهياً ، أظهر متظاهرًا عمليًا ردك على هذه للتوقيع.