جارٍ تحميل الدرس...
في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
معالجة اللغة الطبيعية العربية - الدرس 3
تحويل النصوص إلى أرقام: الترميز الأحادي الساخن، وحقيبة الكلمات، وTF-IDF، وتضمينات الكلمات
One-Hot، حقيبة الكلمات BoW، TF-IDF) ومكثفة متعلمة (Word2Vec، GloVe)5 جمل إنجليزية كمثال توضيحي طوال هذا الدرسVocabulary)vocab = sorted(set(word for sentence in texts for word in sentence.split()))vocab يبنى من كل كلمة فريدة عبر نصوص المدونةMachine learning is awesomeOne-Hot Encoding)One-Hot Encoding1، والباقي على 0.def one_hot_encode(word):
vec = np.zeros(len(vocab))
if word in word_to_index:
vec[word_to_index[word]] = 1
return vecscikit-learnfrom sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(sparse_output=False, handle_unknown='ignore')
encoder.fit(vocab_np)handle_unknown='ignore' يتجنب الأخطاء عند وجود كلمات خارج المفرداتBinary Encoding) - أبسط صور حقيبة الكلمات1 إذا ظهرت الكلمة في الوثيقة، و0 إذا لم تظهر - بلا عدdef binary_transform(text):
output = np.zeros(len(vocab))
words = set(text.split())
for i, v in enumerate(vocab):
output[i] = v in words
return outputCountVectorizerfrom sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(binary=True)
vec.fit(texts)binary=True يعطي الوجود أو الغياب بدلا من العد5 وثائق × مفردات من 43 كلمة في هذا المثال)Bag of Words) - عد الكلماتfrom sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer()
vec.fit(texts)the تظهر مرتين في الجملة الأولى، فتعطى قيمة 2 بدلا من 1 فقطTF-IDF - حقيبة كلمات موزونةTerm Frequency) في معكوس تكرار الوثيقة (Inverse Document Frequency)from sklearn.feature_extraction.text import TfidfVectorizer
vec = TfidfVectorizer()
vec.fit(texts)سمة واحدة
نقطة على خط
سمتان
متجه ثنائي الأبعاد
خمس سمات
متجه خماسي الأبعاد (Big Five)
Cosine Similarity)1 يعني أن المتجهين يشيران إلى اتجاه متشابه - أي تشابه أكبر300 بعد على حد سواء)Word2Vec: نموذجا CBOW وSkip-GramCBOW (Continuous Bag of Words)Skip-Gramimport gensim
word2vec_model = gensim.models.KeyedVectors.load_word2vec_format(
"GoogleNews-vectors-negative300.bin", binary=True)
word2vec_model["king"][:10]GloVe: تضمينات قائمة على التوارد المشتركWord2Vec، يقوم GloVe بتحليل مصفوفة توارد الكلمات المشترك (Co-occurrence Matrix)glove_embeddings = {}
with open("glove.6B.100d.txt", encoding="utf-8") as f:
for line in f:
values = line.split()
glove_embeddings[values[0]] = np.asarray(values[1:], dtype="float32")One-Hot، الترميز الثنائي، حقيبة الكلمات، TF-IDF) تعد الكلمات لكنها تتجاهل المعنى والترتيبTF-IDF يمنح الكلمات النادرة ذات الدلالة وزنا أعلى من الكلمات الشائعةWord2Vec (بنموذجيه CBOW وSkip-Gram) وGloVe يتعلمان تضمينات مكثفة تلتقط العلاقات الدلاليةMahmoud Abas|تقنيات تمثيل النصوص في معالجة اللغة الطبيعية (بما يشمل البيانات العربية)