📋 المحتوى المنظم
📖 محتوى تعليمي مفصّل
نوع: محتوى تعليمي
%%capture
import nltk # import the nltk library for nlp.
import re # import the re library for regular expressions.
import numpy as np # used for numeric computations
from collections import Counter # used to count the frequency of elements in a given list
from sklearn.manifold import TSNE # Tool used for Dimensionality Reduction.
# download the 'stopwords' tool from the nltk library. It includes very common words for different languages
nltk.download('stopwords')
from nltk.corpus import stopwords # import the 'stopwords' tool.
stop=set(stopwords.words('english')) # load the set of english stopwords.
نوع: محتوى تعليمي
تُستخدم الدالة الآتية لاحقًا لتحديد عينة من الكلمات التمثيلية من مجموعة بيانات هيئة الإذاعة البريطانية. يحدّد المقطع البرمجي الكلمات الخمسين الأكثر تكرارًا على وجه التحديد من الأقسام الإخبارية الخمسة لهيئة الإذاعة البريطانية مع استثناء الكلمات المستبعدة (Stopwords) وهي الكلمات الإنجليزية الشائعة جدًا والكلمات التي لم تُضمّن في نموذج الكلمة إلى المتجه (Word2Vec) المدرب مسبقًا.
نوع: محتوى تعليمي
def get_sample(bbc_docs:list,
bbc_labels:list
):
نوع: محتوى تعليمي
بعض الكلمات الإنجليزية الشائعة التي تُعد كلمات مستبعدة (Stopwords) هي the (ال) و a (أ) و is (يكون) و are (يكونون).
نوع: محتوى تعليمي
word_sample=set() # a sample of words from the BBC dataset
# for each BBC news section
for label in ['business', 'entertainment', 'politics', 'sport', 'tech']:
# get all the words in this news section, ignore stopwords.
# for each BBC doc and for each word in the BBC doc
# if the word belongs to the label and is not a stopword and is included in the Word2Vec model
label_words=[word for i in range(len(bbc_docs))
for word in re.findall(r'\b\w+\b',bbc_docs[i].lower())
if bbc_labels[i]==label and
word not in stop and
word in model_wv]
نوع: محتوى تعليمي
cnt=Counter(label_words) # count the frequency of each word in this news section.
# get the top 50 most frequent words in this section.
top50=[word for word,freq in cnt.most_common(50)]
# add the top50 words to the word sample.
word_sample.update(top50)
نوع: محتوى تعليمي
word_sample=list(word_sample) # convert the set to a list.
return word_sample
word_sample=get_sample(bbc_docs,bbc_labels)
نوع: METADATA
وزارة التعليم
165
Ministry of Education
2023 - 1447
📄 النص الكامل للصفحة
%%capture import nltk # import the nltk library for nlp.
import re # import the re library for regular expressions.
import numpy as np # used for numeric computations from collections import Counter # used to count the frequency of elements in a given list from sklearn.manifold import TSNE # Tool used for Dimensionality Reduction.# download the 'stopwords' tool from the nltk library. It includes very common words for different languages nltk.download('stopwords')from nltk.corpus import stopwords # import the 'stopwords' tool.stop=set(stopwords.words('english')) # load the set of english stopwords.تُستخدم الدالة الآتية لاحقًا لتحديد عينة من الكلمات التمثيلية من مجموعة بيانات هيئة الإذاعة البريطانية. يحدّد المقطع البرمجي الكلمات الخمسين الأكثر تكرارًا على وجه التحديد من الأقسام الإخبارية الخمسة لهيئة الإذاعة البريطانية مع استثناء الكلمات المستبعدة (Stopwords) وهي الكلمات الإنجليزية الشائعة جدًا والكلمات التي لم تُضمّن في نموذج الكلمة إلى المتجه (Word2Vec) المدرب مسبقًا.def get_sample(bbc_docs:list,
bbc_labels:list
):بعض الكلمات الإنجليزية الشائعة التي تُعد كلمات مستبعدة (Stopwords) هي the (ال) و a (أ) و is (يكون) و are (يكونون).word_sample=set() # a sample of words from the BBC dataset# for each BBC news section for label in ['business', 'entertainment', 'politics', 'sport', 'tech']:# get all the words in this news section, ignore stopwords.
# for each BBC doc and for each word in the BBC doc
# if the word belongs to the label and is not a stopword and is included in the Word2Vec model label_words=[word for i in range(len(bbc_docs))
for word in re.findall(r'\b\w+\b',bbc_docs[i].lower())
if bbc_labels[i]==label and word not in stop and word in model_wv]cnt=Counter(label_words) # count the frequency of each word in this news section.# get the top 50 most frequent words in this section.
top50=[word for word,freq in cnt.most_common(50)]
# add the top50 words to the word sample.
word_sample.update(top50)word_sample=list(word_sample) # convert the set to a list.
return word_sample word_sample=get_sample(bbc_docs,bbc_labels)2023 - 1447
🎴 بطاقات تعليمية للمراجعة
عدد البطاقات: 4 بطاقة لهذه الصفحة
ما هو الغرض الأساسي من استخدام الدالة `get_sample` كما هو موضح في النص؟
الإجابة: الغرض الأساسي هو تحديد عينة من الكلمات التمثيلية من مجموعة بيانات هيئة الإذاعة البريطانية (BBC)، مع استثناء الكلمات الشائعة جدًا (Stopwords) والكلمات غير الموجودة في نموذج `Word2Vec` المدرب مسبقًا.
الشرح: الدالة `get_sample` مصممة لاستخراج كلمات ذات معنى ومميزة من مجموعة بيانات BBC، وذلك عن طريق فلترة الكلمات غير المهمة أو التي لا تضيف قيمة تحليلية، مثل الكلمات الشائعة جدًا أو تلك غير المدعومة في نموذج `Word2Vec`.
تلميح: فكر في ما تحاول الدالة استخلاصه من النص وما تستبعده.
ما هي أنواع الكلمات التي يتم استبعادها عند محاولة الحصول على عينة من الكلمات التمثيلية؟
الإجابة: يتم استبعاد نوعين من الكلمات: الكلمات الإنجليزية الشائعة جدًا (Stopwords) والكلمات التي لم تُضمّن في نموذج `Word2Vec` المدرب مسبقًا.
الشرح: تحديد الكلمات التمثيلية يتطلب إزالة الضوضاء. في هذا السياق، الضوضاء تتمثل في الكلمات الشائعة جدًا التي لا تحمل معنى مميزًا (Stopwords)، وأيضًا الكلمات التي لا يمكن تحليلها أو ربطها بالنموذج اللغوي المستخدم (`Word2Vec`).
تلميح: اذكر الصنفين الرئيسيين للكلمات التي تستبعدها الدالة.
كيف تقوم الدالة `get_sample` بتحديد 'أكثر 50 كلمة تكرارًا' لكل قسم إخباري؟
الإجابة: تقوم الدالة أولاً بتجميع جميع الكلمات في قسم إخباري معين (مع تجاهل الكلمات المستبعدة والكلمات غير الموجودة في `Word2Vec`)، ثم تستخدم `Counter` لحساب تكرار كل كلمة، وأخيرًا تستخرج أكثر 50 كلمة تكرارًا منها.
الشرح: الخطوة الحاسمة لتحديد الكلمات الأكثر تمثيلاً هي حساب تكرارها. `Counter` هي أداة فعالة لهذا الغرض، حيث تسمح بتصنيف الكلمات حسب عدد مرات ظهورها، مما يسهل اختيار الكلمات الأكثر شيوعًا.
تلميح: ما هي الخطوات الرئيسية المتبعة بعد جمع الكلمات وقبل استخراج العينة؟
لماذا يتم استثناء الكلمات الشائعة جدًا (Stopwords) عند اختيار الكلمات التمثيلية؟
الإجابة: يتم استبعاد الكلمات الشائعة جدًا (Stopwords) لأنها غالبًا ما تكون أدوات لغوية (مثل حروف الجر، الضمائر، أدوات التعريف) لا تحمل معنى جوهريًا أو تمثيليًا للمحتوى، وبالتالي لا تساعد في فهم السياق أو تحديد المواضيع الرئيسية.
الشرح: الكلمات مثل 'the'، 'a'، 'is' تظهر بكثرة في أي نص باللغة الإنجليزية، ولكنها لا تعكس طبيعة النص أو الموضوع الذي يتناوله. إزالتها تساعد في التركيز على الكلمات التي تعبر عن المفاهيم والأفكار الحقيقية.
تلميح: فكر في دور هذه الكلمات في بنية الجملة مقارنة بالكلمات التي تحمل معنى.