신경망의 발전으로 인해 컴퓨터 비전, 음성 인식 및 자연어 처리 (NLP)와 같은 분야의 발전이 이루어졌습니다. NLP에서 가장 영향력있는 최근 개발 중 하나는 단어 임베딩을 사용하는 것입니다. 단어는 연속 공간에서 벡터로 표시되어 많은 구문 및 의미 적 관계를 포착합니다.
ARAVEC는 미리 훈련 된 분산 단어 표현 (Word Embedding) 오픈 소스 프로젝트로, 아랍어 NLP 연구 커뮤니티에 무료로 사용하고 강력한 단어 임베딩 모델을 제공하는 것을 목표로합니다. ARAVEC의 첫 번째 버전은 3 개의 다른 아랍어 컨텐츠 영역 위에 구축 된 6 개의 다른 단어 임베딩 모델을 제공합니다. 트윗과 위키 백과이 논문은 모델 구축에 사용 된 리소스, 사용 된 데이터 청소 기술, 수행 된 전처리 단계, 사용 된 단어 임베딩 작품 기술의 세부 사항에 대해 설명합니다.
ARAVEC의 세 번째 버전은 2 개의 다른 아랍어 컨텐츠 영역 위에 구축 된 16 개의 다른 단어 임베딩 모델을 제공합니다. 트윗 및 위키 백과 아랍어 기사. 이 버전과 이전 버전의 주요 차이점은 우리가 두 가지 유형의 모델 인 Unigrams와 N-Grams 모델을 생산했다는 것입니다. 우리는 통계 기술 세트를 사용하여 각 데이터 도메인에서 가장 일반적인 N- 그램을 장려합니다.
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 라이브러리를 사용하여 구축되었습니다. 다음은 다음을 수행하여 모델 중 하나를로드 및 사용하기위한 간단한 코드입니다.
pip 또는 conda 사용하여 gensim > = 3.4 및 nltk > = 3.2 설치PIP 설치 Gensim NLTK
Conda 설치 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 크기 | 다운로드 |
|---|---|---|---|---|
| 트위터 -Cbow | 66,900,000 | 1,476,715 | 300 | 다운로드 |
| 트위터 -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 | 다운로드 |
| Wikipedia-cbow | 1,800,000 | 662,109 | 300 | 다운로드 |
| Wikipedia-cbow | 1,800,000 | 662,109 | 100 | 다운로드 |
| Wikipedia-Skipgram | 1,800,000 | 662,109 | 300 | 다운로드 |
| Wikipedia-Skipgram | 1,800,000 | 662,109 | 100 | 다운로드 |
| 모델 | 문서 번호 | 어휘 번호 | VEC 크기 | 다운로드 |
|---|---|---|---|---|
| 트위터 -Cbow | 66,900,000 | 1,259,756 | 300 | 다운로드 |
| 트위터 -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 | 다운로드 |
| Wikipedia-cbow | 1,800,000 | 320,636 | 300 | 다운로드 |
| Wikipedia-cbow | 1,800,000 | 320,636 | 100 | 다운로드 |
| Wikipedia-Skipgram | 1,800,000 | 320,636 | 300 | 다운로드 |
| Wikipedia-Skipgram | 1,800,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.