Bpemb adalah kumpulan embeddings subword pra-terlatih dalam 275 bahasa, berdasarkan encoding byte-pair (BPE) dan dilatih di Wikipedia. Penggunaan yang dimaksudkan adalah sebagai input untuk model saraf dalam pemrosesan bahasa alami.
Situs web ・ Penggunaan ・ Unduh ・ Multibpemb ・ Kertas (PDF) ・ mengutip bpemb
Instal Bpemb dengan Pip:
pip install bpembModel embeddings dan kalimat akan diunduh secara otomatis saat pertama kali Anda menggunakannya.
> >> 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 . gzAnda dapat melakukan dua hal utama dengan Bpemb. Yang pertama adalah segmentasi subword:
# 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"]Jika / bagaimana sebuah kata terbelah tergantung pada ukuran kosa kata. Secara umum, ukuran kosa kata yang lebih kecil akan menghasilkan segmentasi ke dalam banyak subword, sedangkan ukuran kosa kata yang besar akan menghasilkan kata -kata yang sering tidak terpecah:
| Ukuran kosa kata | segmentasi |
|---|---|
| 1000 | ['Str', 'at', 'f', 'ord'] |
| 3000 | ['T', 'at', 'ford'] |
| 5000 | ['T', 'at', 'ford'] |
| 10000 | ['T strat', 'ford'] |
| 25000 | ['S Stratford'] |
| 50000 | ['S Stratford'] |
| 100000 | ['S Stratford'] |
| 200000 | ['S Stratford'] |
Tujuan kedua Bpemb adalah untuk menyediakan embeddings subword pretrained:
# 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 )Untuk menggunakan subword embeddings di jaringan saraf Anda, baik mengkodekan input Anda ke ID subword:
> >> ids = bpemb_zh . encode_ids ( "这是一个中文句子" )
[ 25950 , 695 , 20199 ]
> >> bpemb_zh . vectors [ ids ]. shape
( 3 , 100 ) Atau gunakan metode 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 (Azerbaijani selatan)
BA (Bashkir) ・ Bar (Bavaria) ・ BCL (Bikol Tengah) ・ Be (Belarusia) ・ Bg (Bulgaria) ・ Bi (Bislama) ・ Bjn (Banjar) ・ BM (Bambara) ・ Bn (Bengali) ・ Bo (Tibetan) ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ b. (Bosnian) ・ Bug (Buginese) ・ BXR (Rusia Buriat)
ca (Catalan) ・ cdo (Min Dong Chinese) ・ ce (Chechen) ・ ceb (Cebuano) ・ ch (Chamorro) ・ chr (Cherokee) ・ chy (Cheyenne) ・ ckb (Central Kurdish) ・ co (Corsican) ・ cr (Cree) ・ crh (Crimean Tatar) ・ cs (Czech) ・ csb (Kashubian) ・ Cu (Gereja Slavic) ・ CV (Chuvash) ・ Cy (Welsh)
DA (Denmark) ・ de (Jerman) ・ DIN (Dinka) ・ Diq (Dimli) ・ DSB (Sorbian Bawah) ・ Dty (dotyali) ・ dv (dhivehi) ・ dz (dzongkha)
EE (EWE) ・ El (Yunani Modern) ・ en (Bahasa Inggris) ・ EO (Esperanto) ・ es (Spanyol) ・ et (Estonian) ・ Eu (Basque) ・ ext (Extremaduran)
fa (Persia) ・ ff (fulah) ・ fi (Finlandia) ・ fj (fijian) ・ fo (faroese) ・ fr (Prancis) ・ frp (arpitan) ・ frr (frisian utara) ・ bulu (friulian) ・ fy (frisian barat)
GA (Irlandia) ・ Gag (gagauz) ・ gan (gan cina) ・ gd (skottish gaelic) ・ gl (Galicia) ・ Glk (gilaki) ・ gn (guarani) ・ gom (goan konkani) ・ got (gothic) ・ gu (guarati) ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ GO.
ha (Hausa) ・ hak (Hakka Chinese) ・ haw (Hawaiian) ・ he (Hebrew) ・ hi (Hindi) ・ hif (Fiji Hindi) ・ hr (Croatian) ・ hsb (Upper Sorbian) ・ ht (Haitian) ・ hu (Hungarian) ・ hy (Armenian)
Ia (Interlingua) ・ Id (Indonesia) ・ IE (Interlingue) ・ Ig (Igbo) ・ Ik (Inupiaq) ・ ILO (Iloko) ・ IO (IDO) ・ adalah (Islandia) ・ IT (Italia) ・ iu (inuktitut)
JA (Jepang) ・ Jam (Jamaika Creole English) ・ JBO (Lojban) ・ JV (Jawa)
KA (Georgia) ・ Kaa (Kara-Kalpak) ・ Kab (Kabyle) ・ Kbd (Kabardian) ・ Kbp (Kabiyè) ・ kg (Kongo) ・ Ki (Kikuyu) ・ KK (Kazakh) ・ Kl (KalaAlis) ・ KK (Kazakh) ・ Kl (KalaAlis) ・ KK (Kazakh) ・ KL (KALAADA) ・ KK (KAZAKH) ・ KL (KALAADA) ・ KK (KAZAKH) ・ KL (KALAADA) ・ KK (KAZAKH) ・ KL (KALAADA) ・ KK (KAZAKH) ・ KL (KALAADA) KO (Korea) ・ Koi (Komi-Permyak) ・ Krc (Karachay-Balkar) ・ Ks (Kashmiri) ・ Ksh (Kölsch) ・ Ku (Kurdish) ・ KV (Komi) ・ KW (Cornish) ・ Ky (Kirghiz)
LA (Latin) ・ Lad (Ladino) ・ lb (Luksemburgish) ・ lbe (lak) ・ lez (lezghian) ・ lg (ganda) ・ li (limburgan) ・ LIJ (ligurian) ・ lmo (lombard) ・ ln (lingala) ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ northern ・ ・ ・ ・ ln. (Lithuanian) ・ LTG (Latgalian) ・ LV (Latvian)
mai (Maithili) ・ mdf (Moksha) ・ mg (Malagasy) ・ mh (Marshallese) ・ mhr (Eastern Mari) ・ mi (Maori) ・ min (Minangkabau) ・ mk (Macedonian) ・ ml (Malayalam) ・ mn (Mongolian) ・ mr (Marathi) ・ mrj (Western Mari) ・ ms (Melayu) ・ Mt (Maltese) ・ MWL (Mirandese) ・ My (Burma) ・ Myv (Erzya) ・ MZN (Mazanderani)
na (Nauru) ・ nap (Neapolitan) ・ nds (Low German) ・ ne (Nepali) ・ new (Newari) ・ ng (Ndonga) ・ nl (Dutch) ・ nn (Norwegian Nynorsk) ・ no (Norwegian) ・ nov (Novial) ・ nrm (Narom) ・ nso (Pedi) ・ nv (Navajo) ・NY (Nyanja)
OC (Occitan) ・ olo (livvi) ・ om (oromo) ・ atau (oriya) ・ os (Ossetian)
Pa (Panjabi) ・ PAG (Pangasinan) ・ Pam (pampanga) ・ pap (papiamento) ・ pcd (picard) ・ PDC (Pennsylvania Jerman) ・ pfl (pfaelzisch) ・ PI (Pali) ・ PIH (pitcairn-norfolk) ・ PI (Pali) ・ PIH (pitcairn-norfolk) ・ PI (Pali) ・ PIH (pitcairn-norfolk) ・ PI (Pali) ・ PIH (pitcairn-norfolk) ・ PI (pali) ・ PIH (pitcairn-norfolk) ・ pi (pali) ・ pIH (pitcairn-norfolk) ・ pi (pali) Panjabi) ・ pnt (pontic) ・ ps (pushto) ・ pt (Portugis)
Qu (Quechua)
RM (ROMANSH) ・ RMY (VLAX ROMANI) ・ RN (Rundi) ・ ro (Romanian) ・ ru (Rusia) ・ rue (Rusyn) ・ RW (Kinyarwanda)
sa (Sanskrit) ・ sah (Yakut) ・ sc (Sardinian) ・ scn (Sicilian) ・ sco (Scots) ・ sd (Sindhi) ・ se (Northern Sami) ・ sg (Sango) ・ sh (Serbo-Croatian) ・ si (Sinhala) ・ sk (Slovak) ・ sl (Slovenian) ・ sm (Samoan) ・ sn (Shona) ・ so (Somali) ・ sq (Albanian) ・ sr (Serbian) ・ srn (Sranan Tongo) ・ ss (Swati) ・ st (Southern Sotho) ・ stq (Saterfriesisch) ・ su (Sundanese) ・ sv (Swedish) ・ sw (Swahili) ・ szl (Silesian)
ta (Tamil) ・ tcy (Tulu) ・ te (Telugu) ・ tet (Tetum) ・ tg (Tajik) ・ th (Thai) ・ ti (Tigrinya) ・ tk (Turkmen) ・ tl (Tagalog) ・ tn (Tswana) ・ to (Tonga) ・ tpi (Tok Pisin) ・ tr (Turkish) ・ ts (Tsonga) ・ tt (tatar) ・ tum (tumbuka) ・ tw (twi) ・ ty (tahitian) ・ tyv (tuvinian)
udm (udmurt) ・ ug (uighur) ・ uk (Ukraina) ・ ur (urdu) ・ uz (uzbek)
ve (venda) ・ vec (venetian) ・ vep (veps) ・ vi (vietnam) ・ vls (vlaams) ・ vo (volapük)
WA (Walloon) ・ Perang (Waray) ・ Wo (Wolof) ・ Wuu (Wu China)
xal (kalmyk) ・ xh (xhosa) ・ xmf (Mingrelian)
yi (yiddish) ・ yo (yoruba)
za (zhuang) ・ zea (zeeuws) ・ zh (Cina) ・ zu (zulu)
multi (multibahasa)
Jika Anda menggunakan bpemb dalam pekerjaan akademik, silakan kutip:
@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}
}