Достижения в нейронных сетях привели к разработке в таких областях, как компьютерное зрение, распознавание речи и обработку естественного языка (NLP). Одним из наиболее влиятельных недавних событий в НЛП является использование встроенных слов, где слова представлены как векторы в непрерывном пространстве, захватывая многие синтаксические и семантические отношения между ними.
ARAVEC-это предварительно обученный распределенное представление слов (Word Entricing) с открытым исходным кодом, целью которого является предоставление исследовательскому сообществу арабского НЛП бесплатно в использовании и мощных моделях встраивания слов. Первая версия ARAVEC предоставляет шесть различных моделей встраивания слов, созданных сверху из трех различных доменов арабского контента; Твиты и Википедия В этой статье описываются ресурсы, используемые для построения моделей, используемые методы очистки данных, выполняемый этап предварительной обработки, а также детали используемых методов создания слов.
Третья версия ARAVEC предоставляет 16 различных моделей встраивания слов, созданных сверху двух разных доменов арабского контента; Твиты и википедия арабские статьи. Основное различие между этой версией и предыдущими заключается в том, что мы создали два различных типа моделей, модели Unigrams и N-граммы. Мы использовали набор статистических методов для Genrate, наиболее распространенных используемых 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. Вот простой код для загрузки и использования одной из моделей, выполняя эти шаги:
gensim > = 3.4 и nltk > = 3.2, используя либо pip , либо condaPIP установить 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-граммов, используя некоторые самые похожие запросы. Пожалуйста, просмотрите страницу результатов
| Модель | Документы № | Словой № | 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 | Скачать |
| Википедия-Кбоу | 1 800 000 | 662,109 | 300 | Скачать |
| Википедия-Кбоу | 1 800 000 | 662,109 | 100 | Скачать |
| Википедия-Шипграм | 1 800 000 | 662,109 | 300 | Скачать |
| Википедия-Шипграм | 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 | Скачать |
| Википедия-Кбоу | 1 800 000 | 320 636 | 300 | Скачать |
| Википедия-Кбоу | 1 800 000 | 320 636 | 100 | Скачать |
| Википедия-Шипграм | 1 800 000 | 320 636 | 300 | Скачать |
| Википедия-Шипграм | 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.