BPEMB عبارة عن مجموعة من التضمينات الفرعية التي تم تدريبها مسبقًا في 275 لغة ، استنادًا إلى ترميز بايت بير (BPE) وتدريب على ويكيبيديا. استخدامه المقصود هو مدخلات للنماذج العصبية في معالجة اللغة الطبيعية.
موقع ・ الاستخدام ・ تنزيل ・ multibpemb ・ paper (pdf) ・ Citing BPEMB
تثبيت BPEMB مع PIP:
pip install bpembسيتم تنزيل التضمينات ونماذج الحكام تلقائيًا في المرة الأولى التي تستخدمها فيها.
> >> from bpemb import BPEmb
# load English BPEmb model with default vocabulary size (10k) and 50-dimensional embeddings
> >> bpemb_en = BPEmb ( lang = "en" , dim = 50 )
downloading https : // nlp . h - its . org / bpemb / en / en . wiki . bpe . vs10000 . model
downloading https : // nlp . h - its . org / bpemb / en / en . wiki . bpe . vs10000 . d50 . w2v . bin . tar . gzيمكنك القيام شيئين رئيسيين مع BPEMB. الأول هو تجزئة الكلمات الفرعية:
# apply English BPE subword segmentation model
> >> bpemb_en . encode ( "Stratford" )
[ '▁strat' , 'ford' ]
# load Chinese BPEmb model with vocabulary size 100k and default (100-dim) embeddings
> >> bpemb_zh = BPEmb ( lang = "zh" , vs = 100000 )
# apply Chinese BPE subword segmentation model
> >> bpemb_zh . encode ( "这是一个中文句子" ) # "This is a Chinese sentence."
[ '▁这是一个' , '中文' , '句子' ] # ["This is a", "Chinese", "sentence"]إذا / كيف يتم تقسيم كلمة يعتمد على حجم المفردات. عمومًا ، سيؤدي حجم المفردات الأصغر إلى تجزئة في العديد من الكلمات الفرعية ، في حين أن حجم المفردات الكبير سيؤدي إلى عدم تقسيم كلمات متكررة:
| حجم المفردات | تجزئة |
|---|---|
| 1000 | ['str' ، 'at' ، 'f' ، 'ord'] |
| 3000 | ['str' ، 'at' ، 'ford'] |
| 5000 | ['str' ، 'at' ، 'ford'] |
| 10000 | ['strat' ، 'فورد'] |
| 25000 | ['stratford'] |
| 50000 | ['stratford'] |
| 100000 | ['stratford'] |
| 200000 | ['stratford'] |
الغرض الثاني من BPEMB هو توفير تضمينات من الكلمات الفرعية المسبقة:
# Embeddings are wrapped in a gensim KeyedVectors object
> >> type ( bpemb_zh . emb )
gensim . models . keyedvectors . Word2VecKeyedVectors
# You can use BPEmb objects like gensim KeyedVectors
> >> bpemb_en . most_similar ( "ford" )
[( 'bury' , 0.8745079040527344 ),
( 'ton' , 0.8725000619888306 ),
( 'well' , 0.871537446975708 ),
( 'ston' , 0.8701574206352234 ),
( 'worth' , 0.8672043085098267 ),
( 'field' , 0.859795331954956 ),
( 'ley' , 0.8591548204421997 ),
( 'ington' , 0.8126075267791748 ),
( 'bridge' , 0.8099068999290466 ),
( 'brook' , 0.7979353070259094 )]
> >> type ( bpemb_en . vectors )
numpy . ndarray
> >> bpemb_en . vectors . shape
( 10000 , 50 )
> >> bpemb_zh . vectors . shape
( 100000 , 100 )لاستخدام تضمينات الكلمات الفرعية في شبكتك العصبية ، إما تشفير إدخالك في معرفات الكلمات الفرعية:
> >> ids = bpemb_zh . encode_ids ( "这是一个中文句子" )
[ 25950 , 695 , 20199 ]
> >> bpemb_zh . vectors [ ids ]. shape
( 3 , 100 ) أو استخدم طريقة embed :
# apply Chinese subword segmentation and perform embedding lookup
> >> bpemb_zh . embed ( "这是一个中文句子" ). shape
( 3 , 100 )ab (Abkhazian) ・ ace (Achinese) ・ ady (Adyghe) ・ af (Afrikaans) ・ ak (Akan) ・ als (Alemannic) ・ am (Amharic) ・ an (Aragonese) ・ ang (Old English) ・ ar (Arabic) ・ arc (Official Aramaic) ・ arz (Egyptian Arabic) ・ as (Assamese)・ AST (Asturian) ・ atj (atikamekw) ・ av (avaric) ・ ay (aymara) ・ Az (Azerbaijani) ・ Azb (جنوب أذربيجاني)
ba (bashkir) ・ bar (bavarian) ・ bcl (central bikol) ・ be (belarusian) ・ bg (bulgarian) ・ bi (bislama) ・ bjn (banjar) ・ bm (bambara) ・ bn (bengali) ・ bo (tibetan) ・ bpy (bishnupri) (البوسني) ・ علة (buginese) ・ BXR (روسيا بورات)
CA (CATALAN) ・ CDO (Min Dong Chinese) ・ CE (CHECHEN) ・ CEB (Cebuano) ・ ch (Chamorro) ・ cher (cherokee) ・ chy (cheenne) ・ ckb (csech) ・ co (corsican) ・ cr (cree) (kashubian) ・ cu (الكنيسة السلافية) ・ السيرة الذاتية (chuvash) ・ cy (الويلزية)
DA (الدنماركي) ・ de (الألمانية) ・ din (dinka) ・ diq (dimli) ・ dsb (السفلى السفلي) ・ dty (dotyali) ・ dv (dhivehi) ・ dz (dzongkha)
EE (EWE) ・ el (اليونانية الحديثة) ・ en (الإنجليزية) ・ eo (esperanto) ・ es (الإسبانية) ・ et (itsonian) ・ EU (الباسك) ・ تحويلة (Extremaduran)
FA (الفارسية) ・ ff (fulah) ・ fi (الفنلندية) ・ fj (fijian) ・ fo (faroese) ・ fr (French) ・ FRP (Arpitan) ・ frr (Northern Frisian) ・ fur (frian) ・ fy (Western Frisian)
GA (الأيرلندي) ・ GAG (Gagauz) ・ GAN (GAN الصينية) ・ GD (GALIC SCOTTISH) ・ GL (GALICAN)
ها (هاوسا) ・ هاك (هاكا الصينية) ・ هاو (هاواي) ・ هو (العبرية) ・ hi (الهندية) ・ hif (fiji hindi) ・ hr (الكرواتية) ・ hsb (سوربيان العلوي)
IA (interlingua) ・ id (Indonesian) ・ ie (interlingue) ・ ig (Igbo) ・ ik (inupiaq) ・ ilo (iloko) ・ io (ido) ・ IS (Icelandic) ・ it (Italian) ・ iu (inuktitut)
JA (اليابانية) ・ Jam (جامايكي كريول الإنجليزية) ・ JBO (Lojban) ・ JV (Javanese)
كا (جورجيان) ・ kaa (kara-kalpak) ・ kab (kabyle) ・ kbd (kabardian) ・ kbp (kabiyè) ・ kg (kongo) ・ ki (kikuy) Ko (الكورية) ・ Koi (Komi-permyak) ・ KRC (Karachay-Balkar) ・ KS (Kashmiri) ・ KSH (Kölsch) ・ Ku (Kurdish) ・ KV (Komi) ・ KW (Cornish) ・ Ky (Kirghiz)
la (latin) ・ lad (ladino) ・ lb (luxembourgish) ・ lbe (lak) ・ lez (lezghian) ・ lg (ganda) ・ li (liveburgan)・ LTG (Latgalian) ・ LV (لاتفيان)
Mai (Maithili) ・ MDF (moksha) ・ mg (malagasy) ・ mh (Marshallese) ・ mhr (eastern Mari) ・ mi (maori) ・ min (minangkabau) ・ mk (marathian) ・ ml (malayalam) ・ mn (mongoLian) ・ marati (Marathi) ・ marathi (marathi) ・ mar. (الملايو) ・ mT (المالطية) ・ mwl (mirandese) ・ my (burmese) ・ myv (erzya) ・ mzn (Mazanderani)
na (nauru) ・ nap (neapolitan) ・ nds (منخفض الألمانية) ・ ne (nepali) ・ جديد (newari) ・ ng (ndonga) ・ nl (dutch) ・ nn (no -nso) نيويورك (نيانجا)
OC (occitan) ・ olo (livvi) ・ om (oromo) ・ أو (oriya) ・ OS (Ossetian)
PA (panjabi) ・ pag (pangasinan) ・ pam (pampanga) ・ pap (papiamento) ・ pcd (picard) ・ pdc (pennsylvania german panjabi) ・ pnt (pontic) ・ ps (pushto) ・ pt (البرتغالية)
Qu (Quechua)
rm (Romansh) ・ rmy (vlax romani) ・ rn (rundi) ・ ro (روماني)
sa (sanskrit) ・ sah (yakut) ・ sc (sardinian) ・ scn (sicilian) ・ sco (الاسكتلنديين)・ sn (shona) ・ هكذا (صومالي) ・ sq (الألباني) ・ sr (الصربية) ・ srn (sranan tongo) ・ ss (swati) ・ st (southern sotho)
ta (tamil) ・ tcy (tulu) ・ te (telugu) ・ tet (tetum) ・ tg (tajik) ・ th (thai) ・ ti (tigrinya) ・ tk (turkmen) ・ tl (tramalog) ・ tn (tswana) ・ to (tonga) (tsonga) ・ tt (tatar) ・ tum (tumbuka) ・ tw (twi) ・ ty (tahitian) ・ tyv (tuvinian)
udm (udmurt) ・ ug (uighur) ・ المملكة المتحدة (الأوكرانية) ・ ur (urdu) ・ uz (uzbek)
VE (Venda) ・ VEC (VENETIAN) ・ VEP (VEPS) ・ VI (VIENMASE) ・ VLS (VLAAMS) ・ vo (volapük)
WA (Walloon) ・ WAR (WARAY) ・ WO (WOLOF) ・ Wuu (Wu Chinese)
xal (kalmyk) ・ xh (xhosa) ・ xmf (mingrelian)
يي (يديش) ・ يو (يوروبا)
ZA (Zhuang) ・ zea (zeeuws) ・ zh (الصينية) ・ Zu (Zulu)
Multi (متعدد اللغات)
إذا كنت تستخدم BPEMB في العمل الأكاديمي ، فيرجى الاستشهاد:
@InProceedings{heinzerling2018bpemb,
author = {Benjamin Heinzerling and Michael Strube},
title = "{BPEmb: Tokenization-free Pre-trained Subword Embeddings in 275 Languages}",
booktitle = {Proceedings of the Eleventh International Conference on Language Resources and Evaluation (LREC 2018)},
year = {2018},
month = {May 7-12, 2018},
address = {Miyazaki, Japan},
editor = {Nicoletta Calzolari (Conference chair) and Khalid Choukri and Christopher Cieri and Thierry Declerck and Sara Goggi and Koiti Hasida and Hitoshi Isahara and Bente Maegaard and Joseph Mariani and Hélène Mazo and Asuncion Moreno and Jan Odijk and Stelios Piperidis and Takenobu Tokunaga},
publisher = {European Language Resources Association (ELRA)},
isbn = {979-10-95546-00-9},
language = {english}
}