神经网络的进步导致了计算机视觉,语音识别和自然语言处理(NLP)等领域的发展。 NLP中最有影响力的最新发展之一是使用单词嵌入,其中单词在连续空间中表示为向量,从而捕获了其中许多句法和语义关系。
ARAVEC是一个预先训练的分布式单词表示(单词嵌入)开源项目,旨在为阿拉伯NLP研究社区提供免费使用和强大的单词嵌入模型。 ARAVEC的第一个版本提供了建立在三个不同的阿拉伯内容域之上的六个不同单词嵌入模型。 Tweets和Wikipedia本文介绍了用于构建模型的资源,使用的数据清洁技术,进行的预处理步骤以及所使用的单词嵌入创建技术的细节。
ARAVEC的第三版提供了16个不同的单词嵌入模型,建立在两个不同的阿拉伯内容域之上。推文和维基百科阿拉伯文章。这个版本与以前的区别之间的主要区别在于,我们生产了两种不同类型的模型,杂物和n-grams模型。我们利用一组统计技术来构成每个数据域中最常用的N-gram。
总代币超过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.2PIP安装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-size | 下载 |
|---|---|---|---|---|
| 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 | 下载 |
| 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-size | 下载 |
|---|---|---|---|---|
| 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 | 下载 |
| 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.