Les progrès des réseaux de neurones ont conduit à des développements dans des domaines comme la vision par ordinateur, la reconnaissance vocale et le traitement du langage naturel (PNL). L'un des développements récents les plus influents de la PNL est l'utilisation d'incorporation de mots, où les mots sont représentés comme des vecteurs dans un espace continu, capturant de nombreuses relations syntaxiques et sémantiques entre elles.
ARAVEC est un projet open source distribué pré-formé (intégration des mots) qui vise à fournir à la communauté de recherche en arabe NLP avec des modèles d'intégration de mots gratuits et puissants. La première version d'ARAVEC fournit six modèles d'intégration de mots différents construits en haut de trois domaines de contenu arabe différents; Tweets et Wikipedia Cet article décrit les ressources utilisées pour la construction des modèles, les techniques de nettoyage des données utilisées, l'étape de prétraitement effectuée, ainsi que les détails des techniques de création de mots utilisés.
La troisième version d'Aravec fournit 16 modèles d'intégration de mots différents construits au-dessus de deux domaines de contenu arabe différents; Tweets et articles arabes Wikipedia. La principale différence entre cette version et les précédentes est que nous avons produit deux types différents de modèles, unigrammes et n-grammes. Nous avons utilisé un ensemble de techniques statistiques pour gérer les n-grammes les plus courants de chaque domaine de données.
Par des jetons totaux de plus de 1,169,075,128 jetons.
Jetez un œil à la façon dont les modèles NGRAMS sont représentés:
Veuillez consulter la page de résultats pour plus de requêtes.
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.
Ces modèles ont été construits à l'aide de la bibliothèque Gensim Python. Voici un code simple pour le chargement et l'utilisation de l'un des modèles en suivant ces étapes:
gensim > = 3,4 et nltk > = 3.2 en utilisant pip ou condapip install gensim nltk
conda installer gensim nltk
Twittert-CBOW ]Codes de cahier
# -*- 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 ]Pour jeter un œil à ce que nous pouvons contenir des modèles N-grammes en utilisant les requêtes les plus similaires. Veuillez consulter la page des résultats
| Modèle | Docs No. | Vocabulaire n ° | VEC | Télécharger |
|---|---|---|---|---|
| Twitter-cbow | 66 900 000 | 1 476 715 | 300 | Télécharger |
| Twitter-cbow | 66 900 000 | 1 476 715 | 100 | Télécharger |
| Twitter-Skipgram | 66 900 000 | 1 476 715 | 300 | Télécharger |
| Twitter-Skipgram | 66 900 000 | 1 476 715 | 100 | Télécharger |
| Wikipedia-cbow | 1 800 000 | 662,109 | 300 | Télécharger |
| Wikipedia-cbow | 1 800 000 | 662,109 | 100 | Télécharger |
| Wikipedia-skipgram | 1 800 000 | 662,109 | 300 | Télécharger |
| Wikipedia-skipgram | 1 800 000 | 662,109 | 100 | Télécharger |
| Modèle | Docs No. | Vocabulaire n ° | VEC | Télécharger |
|---|---|---|---|---|
| Twitter-cbow | 66 900 000 | 1 259 756 | 300 | Télécharger |
| Twitter-cbow | 66 900 000 | 1 259 756 | 100 | Télécharger |
| Twitter-Skipgram | 66 900 000 | 1 259 756 | 300 | Télécharger |
| Twitter-Skipgram | 66 900 000 | 1 259 756 | 100 | Télécharger |
| Wikipedia-cbow | 1 800 000 | 320 636 | 300 | Télécharger |
| Wikipedia-cbow | 1 800 000 | 320 636 | 100 | Télécharger |
| Wikipedia-skipgram | 1 800 000 | 320 636 | 300 | Télécharger |
| Wikipedia-skipgram | 1 800 000 | 320 636 | 100 | Télécharger |
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.