أدت التطورات في الشبكات العصبية إلى تطورات في مجالات مثل رؤية الكمبيوتر والتعرف على الكلام ومعالجة اللغة الطبيعية (NLP). واحدة من أكثر التطورات الحديثة نفوذا في NLP هي استخدام تضمينات الكلمات ، حيث يتم تمثيل الكلمات كمتجهات في مساحة مستمرة ، والتقاط العديد من العلاقات النحوية والدلالية بينها.
ARAVEC هو مشروع تمثيل الكلمات الموزعة مسبقًا (تضمين الكلمات) مفتوح المصدر يهدف إلى تزويد مجتمع أبحاث NLP العربي بحرية الاستخدام ونماذج تضمين الكلمات القوية. يوفر الإصدار الأول من ARAVEC ستة نماذج مختلفة لتضمين الكلمات المبنية على رأس ثلاثة مجالات محتوى عربي مختلف ؛ تويت وويكيبيديا تصف هذه الورقة الموارد المستخدمة لبناء النماذج ، وتقنيات تنظيف البيانات المستخدمة ، وخطوة المعالجة المسبقة ، وكذلك تفاصيل تقنيات إنشاء الكلمات المستخدمة.
يوفر الإصدار الثالث من ARAVEC 16 نموذجًا مختلفًا لتضمين الكلمات المبني على قمة مجالات محتوى عربي مختلفين ؛ التغريدات والمقالات العربية ويكيبيديا. الفرق الرئيسي بين هذا الإصدار والإصدار السابق ، هو أن قمنا بإنتاج نوعين مختلفين من النماذج ، ونماذج unigrams ونماذج n-grams. لقد استخدمنا مجموعة من التقنيات الإحصائية لتجنيد N-Grams الأكثر شيوعًا لكل مجال بيانات.
بموجب إجمالي الرموز المميزة التي تزيد عن 1,169,075,128 رمزًا.
ألقِ نظرة على كيفية تمثيل نماذج ngrams:
يرجى عرض صفحة النتائج لمزيد من الاستفسارات.
Abu Bakr Soliman, Kareem Eisa, and Samhaa R. El-Beltagy, “AraVec: A set of Arabic Word Embedding Models for use in Arabic NLP”, in proceedings of the 3rd International Conference on Arabic Computational Linguistics (ACLing 2017), Dubai, UAE, 2017.
تم بناء هذه النماذج باستخدام مكتبة Gensim Python. إليك رمز بسيط للتحميل واستخدام أحد النماذج باتباع هذه الخطوات:
gensim > = 3.4 و nltk > = 3.2 باستخدام pip أو condaPIP تثبيت Gensim NLTK
كوندا تثبيت Gensim NLTK
Twittert-CBOW ]رموز دفتر
# -*- coding: utf8 -*-
import gensim
import re
import numpy as np
from nltk import ngrams
from utilities import * # import utilities.py module
# ============================
# ====== N-Grams Models ======
t_model = gensim . models . Word2Vec . load ( 'models/full_grams_cbow_100_twitter.mdl' )
# python 3.X
token = clean_str ( u'ابو تريكه' ). replace ( " " , "_" )
# python 2.7
# token = clean_str(u'ابو تريكه'.decode('utf8', errors='ignore')).replace(" ", "_")
if token in t_model . wv :
most_similar = t_model . wv . most_similar ( token , topn = 10 )
for term , score in most_similar :
term = clean_str ( term ). replace ( " " , "_" )
if term != token :
print ( term , score )
# تريكه 0.752911388874054
# حسام_غالي 0.7516342401504517
# وائل_جمعه 0.7244222164154053
# وليد_سليمان 0.7177559733390808
# ...
# =========================================
# == Get the most similar tokens to a compound query
# most similar to
# عمرو دياب + الخليج - مصر
pos_tokens = [ clean_str ( t . strip ()). replace ( " " , "_" ) for t in [ 'عمرو دياب' , 'الخليج' ] if t . strip () != "" ]
neg_tokens = [ clean_str ( t . strip ()). replace ( " " , "_" ) for t in [ 'مصر' ] if t . strip () != "" ]
vec = calc_vec ( pos_tokens = pos_tokens , neg_tokens = neg_tokens , n_model = t_model , dim = t_model . vector_size )
most_sims = t_model . wv . similar_by_vector ( vec , topn = 10 )
for term , score in most_sims :
if term not in pos_tokens + neg_tokens :
print ( term , score )
# راشد_الماجد 0.7094649076461792
# ماجد_المهندس 0.6979793906211853
# عبدالله_رويشد 0.6942606568336487
# ...
# ====================
# ====================
# ==============================
# ====== Uni-Grams Models ======
t_model = gensim . models . Word2Vec . load ( 'models/full_uni_cbow_100_twitter.mdl' )
# python 3.X
token = clean_str ( u'تونس' )
# python 2.7
# token = clean_str('تونس'.decode('utf8', errors='ignore'))
most_similar = t_model . wv . most_similar ( token , topn = 10 )
for term , score in most_similar :
print ( term , score )
# ليبيا 0.8864325284957886
# الجزائر 0.8783721327781677
# السودان 0.8573237061500549
# مصر 0.8277812600135803
# ...
# get a word vector
word_vector = t_model . wv [ token ]لإلقاء نظرة على ما يمكننا استعادته من نماذج N-Grams باستخدام بعض الاستعلامات الأكثر مماثلة. يرجى عرض صفحة النتائج
| نموذج | مستندات رقم | المفردات رقم | حجم VEC | تحميل |
|---|---|---|---|---|
| Twitter-Cbow | 66،900،000 | 1،476،715 | 300 | تحميل |
| Twitter-Cbow | 66،900،000 | 1،476،715 | 100 | تحميل |
| Twitter-Skipgram | 66،900،000 | 1،476،715 | 300 | تحميل |
| Twitter-Skipgram | 66،900،000 | 1،476،715 | 100 | تحميل |
| ويكيبيديا كبو | 1800،000 | 662،109 | 300 | تحميل |
| ويكيبيديا كبو | 1800،000 | 662،109 | 100 | تحميل |
| ويكيبيديا-سكيبجرام | 1800،000 | 662،109 | 300 | تحميل |
| ويكيبيديا-سكيبجرام | 1800،000 | 662،109 | 100 | تحميل |
| نموذج | مستندات رقم | المفردات رقم | حجم VEC | تحميل |
|---|---|---|---|---|
| Twitter-Cbow | 66،900،000 | 1،259،756 | 300 | تحميل |
| Twitter-Cbow | 66،900،000 | 1،259،756 | 100 | تحميل |
| Twitter-Skipgram | 66،900،000 | 1،259،756 | 300 | تحميل |
| Twitter-Skipgram | 66،900،000 | 1،259،756 | 100 | تحميل |
| ويكيبيديا كبو | 1800،000 | 320،636 | 300 | تحميل |
| ويكيبيديا كبو | 1800،000 | 320،636 | 100 | تحميل |
| ويكيبيديا-سكيبجرام | 1800،000 | 320،636 | 300 | تحميل |
| ويكيبيديا-سكيبجرام | 1800،000 | 320،636 | 100 | تحميل |
Abu Bakr Soliman, Kareem Eisa, and Samhaa R. El-Beltagy, “AraVec: A set of Arabic Word Embedding Models for use in Arabic NLP”, in proceedings of the 3rd International Conference on Arabic Computational Linguistics (ACLing 2017), Dubai, UAE, 2017.