Kemajuan dalam jaringan saraf telah menyebabkan perkembangan di bidang seperti visi komputer, pengenalan suara dan pemrosesan bahasa alami (NLP). Salah satu perkembangan terkini yang paling berpengaruh dalam NLP adalah penggunaan embeddings kata, di mana kata -kata direpresentasikan sebagai vektor dalam ruang kontinu, menangkap banyak hubungan sintaksis dan semantik di antara mereka.
ARAVEC adalah proyek open source kata (embedding) terdistribusi yang terlatih sebelumnya yang bertujuan untuk menyediakan komunitas penelitian NLP Arab dengan model embedding kata gratis dan kuat. Versi pertama Aravec menyediakan enam model embedding kata yang berbeda yang dibangun di atas tiga domain konten Arab yang berbeda; Tweet dan Wikipedia Makalah ini menjelaskan sumber daya yang digunakan untuk membangun model, teknik pembersihan data yang digunakan, langkah preprocessing yang dilakukan, serta rincian teknik pembuatan penyembatan kata yang digunakan.
Versi ketiga Aravec menyediakan 16 model embedding kata yang berbeda yang dibangun di atas dua domain konten Arab yang berbeda; Tweet dan artikel Arab Wikipedia. Perbedaan utama antara versi ini dan yang sebelumnya, adalah bahwa kami menghasilkan dua jenis model, unigram, dan model N-gram yang berbeda. Kami menggunakan serangkaian teknik statistik untuk membuat genrate n-gram yang paling umum digunakan dari setiap domain data.
Dengan total token lebih dari 1,169,075,128 token.
Lihatlah bagaimana model Ngrams diwakili:
Silakan lihat halaman hasil untuk lebih banyak pertanyaan.
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.
Model -model ini dibangun menggunakan perpustakaan Gensim Python. Berikut kode sederhana untuk memuat dan menggunakan salah satu model dengan mengikuti langkah -langkah ini:
gensim > = 3.4 dan nltk > = 3.2 Menggunakan pip atau condaPip Instal Gensim NLTK
conda instal gensim nltk
Twittert-CBOW ]Kode notebook
# -*- 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 ]Untuk melihat apa yang dapat kita dapatkan dari model N-gram menggunakan beberapa kueri yang paling mirip. Silakan lihat halaman Hasilnya
| Model | Dokumen No. | Kosakata No. | Ukuran VEC | Unduh |
|---|---|---|---|---|
| Twitter-top | 66.900.000 | 1.476.715 | 300 | Unduh |
| Twitter-top | 66.900.000 | 1.476.715 | 100 | Unduh |
| Twitter-Skipgram | 66.900.000 | 1.476.715 | 300 | Unduh |
| Twitter-Skipgram | 66.900.000 | 1.476.715 | 100 | Unduh |
| Wikipedia-CBOW | 1.800.000 | 662.109 | 300 | Unduh |
| Wikipedia-CBOW | 1.800.000 | 662.109 | 100 | Unduh |
| Wikipedia-Skipgram | 1.800.000 | 662.109 | 300 | Unduh |
| Wikipedia-Skipgram | 1.800.000 | 662.109 | 100 | Unduh |
| Model | Dokumen No. | Kosakata No. | Ukuran VEC | Unduh |
|---|---|---|---|---|
| Twitter-top | 66.900.000 | 1.259.756 | 300 | Unduh |
| Twitter-top | 66.900.000 | 1.259.756 | 100 | Unduh |
| Twitter-Skipgram | 66.900.000 | 1.259.756 | 300 | Unduh |
| Twitter-Skipgram | 66.900.000 | 1.259.756 | 100 | Unduh |
| Wikipedia-CBOW | 1.800.000 | 320.636 | 300 | Unduh |
| Wikipedia-CBOW | 1.800.000 | 320.636 | 100 | Unduh |
| Wikipedia-Skipgram | 1.800.000 | 320.636 | 300 | Unduh |
| Wikipedia-Skipgram | 1.800.000 | 320.636 | 100 | Unduh |
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.