BPEMB는 BYTE-PAIR 인코딩 (BPE)을 기반으로 275 개 언어로 미리 훈련 된 서브 워드 임베드 모음이며 Wikipedia에서 교육을 받았습니다. 의도 된 사용은 자연어 처리에서 신경 모델에 대한 입력입니다.
웹 사이트 ・ 사용법 age 다운로드 ・ Multibpemb ・ 종이 (PDF) ・ CITING BPEMB
PIP로 BPEMB를 설치하십시오.
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 . gzBPEMB로 두 가지 주요 작업을 수행 할 수 있습니다. 첫 번째는 서브 워드 세분화입니다.
# 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', 'Ford'] |
| 25000 | [ '스트랫 포드'] |
| 50000 | [ '스트랫 포드'] |
| 100000 | [ '스트랫 포드'] |
| 200000 | [ '스트랫 포드'] |
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 )신경망에 서브 워드 임베딩을 사용하려면 입력을 서브 워드 ID로 인코딩합니다.
> >> 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) ・ geng (옛 영어) ・ 아라비아 (공식 아라비아)・ ast (asturian) ・ atj (atikamekw) ・ av (avaric) ・ ay (aymara) ・ az (아제르바이잔) ・ azb (남부 아제르바이 자니)
BA (Bashkir) ・ bar (바이에르) ・ bcl (중앙 비키 컬) ・ be be (벨로루시어) ・ bg (bulgarian) ・ bi (bislama) ・ bjn (banjar) ・ bm (bambara) ・ bn (벵골어) ・ bo (tibetan) ・ br (bishnupria) ・ br (bishnupria) (Bosnian) n 버그 (Buginese) ・ BXR (Russia Buriat)
Ca (Catalan) al cdo (Min Dong Chinese) ・ ce (Chechen) ・ ceb (Cebuano) ・ chy (Cherokee) ・ chy (Cheyenne) ・ ckb (Central Kurdish) ・ co (Corsican) cr (cree) ・ crh (Crimean tatar) ・ csech (czech) rsb. (Kashubian) ub cu (Church Slavic) ・ cv (chuvash) ・ cy (웨일스 어)
da (덴마크)) de (독일어) ・ din (dinka) ・ diq (dimli) ・ dsb (Lower Sorbian) ・ dty (dotyali) ・ dv (dhivehi) ・ dz (dzongkha)
ee (ee) e el (현대 그리스어) ・ en (영어) ・ eo (Esperanto) ・ es (스페인어) ・ et (에스토니아) ・ eu (바스크) ・ ext (Extremaduran)
fa (페르시아)) ff (fulah) ・ fi (핀란드) ・ fj (피지안) ・ fo (faroese) ・ fr (프랑스) ・ frp (아르피탄) ・ frr (북부 프리시아어) ・ fur (Friulian) ・ fy (서부 프리시아어)
GA (Irish) GAG (GAGAUZ) ・ 간 (GAGAUZ) (GAN Chinese) ・ gd (Scottish Gaelic) ・ GL (Galici) ・ GLK (Gilaki) ・ gn (Guan gom (Goan Konkani) (Goan Konkani) ・ GOT (Gothic) ・ Gu (Gujarati) ・ GV (Manx).
ha (hausa) us hak (hakka chinese) ・ haw (하와이) ・ He (히브리어) ・ hi (힌디어) ・ hif (피지 힌디어) ・ hr (크로아티아) ・ hsb (어퍼 소르비아)
IA (Interlingua) ・ id (인도네시아) ・ ・ ・ it (interlingue) ・ ig (igbo) ・ ik (inupiaq) ・ ilo (iloko) ・ io (ido) ・ is (icelandic) ・ it (이탈리아) ・ iu (inuktitut).
ja (일본어))
ka (Georgian) ・ kaa (Kara-kalpak) ・ kab (kabyle) ・ kbd (kabardian) ・ kbp (Kabiyè) ・ kg (kongo) ・ ki (kikuyu) ・ kk (Kazakh) ・ kl (Kalaallisut) ・ Km (kanda) (한국) ・ 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 (Limburgan) ・ lij (Ligurian) ・ lmo (lombard) ・ ln (Lingala) ・ lo (lingala) ・ lui (Lit. Lith) LTG (Latgalian) ・ LV (Latvian)
mai (maithili) ・ mdf (moksha) ・ mg (malagasy) ・ mh (마샬) ・ mhr (동부 마리) ・ mi (마오리) ・ min (Minangkabau) ・ mk (Macedonian) ・ ml (Malayalam) ・ mn (mongolian) ・ mr (marathi) ・ mr (marathi) ・ Mr (marathi) (Malay) ・ mt (Maltese) ・ mwl (mirandese) ・ my (burmese) ・ myv (erzya) ・ mzn (Mazanderani)
na (nauru) aur nap (Neapolitan) ・ nds (낮은 독일어) ・ ne (네팔) ・ new (newari) ・ ng (ndonga) ・ nl (네덜란드) ・ nn (Norwegian nynorsk) ・ no (norwegian) nov (novial) ・ nv (nava) ・ nv (pedi) ・ nv (pedi) ・ nv (nava) NY (Nyanja)
OC (Occitan) it Olo (livvi) ・ OM (Oromo) ・ 또는 (oriya) ・ OS (Ossetian)
PA (panjabi) ・ pag (pangasinan) ・ pam (pampanga) ・ pap (papiamento) ・ pcd (Picard) ・ pdc (Pennsylvania German) ・ pfl (pfaelzisch) ・ pi (pali) ・ pih (pitcairn-norf) ・ pl (polm) ・ pn (plms). panjabi)) pnt (pontic) ・ ps (pushto) ・ pt (포르투갈어)
Qu (Quechua)
RM (ROMANSH) ・ rmy (Vlax Romani) ・ rn (Rundi) ・ ro (루마니아어) ・ Ru (러시아어) ・ Rue (Rusyn) ・ rw (Kinyarwanda)
SA (SANSKRIT) ・ SAH (YAKUT) ・ SC (SARDINIAN) ・ SCN (SICILIAN) ・ SCO (SCOTS) ・ SD (SINDHI) ・ SE (NORTHER SAMI) ・ SG (SANGO) ・ SH (Serbo-Croatian) ・ Si (Sinhala) ・ SK (Slovenian) ・ SK (Slovenian) < Sn (shona) ・ so (소말리아) ・ sq (알바니아) ・ sr (Serbian) ・ srn (sranan tongo) ・ ss (swati) ・ st (Southern Sotho) ・ stq (saterfriessch) ・ su (sundanese) ・ sv (swahili) ・ swahili (swahili) ・ swahili).
ta (tail) tam tcy (tulu) ・ te (telugu) ・ tet (tetum) ・ tg (tajik) ・ th (Thai) ・ ti (tigrinya) ・ tk (turkmen) ・ tl (twan) ・ tn (tswana) to (통가) ・ tpi (tok pisin) ・ tr (tok pisin) (tsonga) ong tt (tatar) ・ tum (tumbuka) ・ tw (twi) ・ ty (tahitian) ・ tyv (tuvinian)
Udm (Udmurt) ・ UG (Uighur) ・ UK (우크라이나) ・ ur (우르두어) ・ uz (uzbek)
ve (venda) end vec (베네치아) ・ vep (Veps) ・ vi (베트남) ・ vls (vlaams) ・ vo (volapük)
WA (WALLOON)) WAR (WARAY) ・ WO (WOLOF) ・ WUU (Wu Chinese)
xal (Kalmyk) ・ xh (xhosa) ・ xmf (mingrelian)
Yi (이디시어) ・ yo (요 루바)
ZA (Zhuang) ・ Zea (Zeeuws) ・ Zh (중국어) ・ Zu (Zulu)
다중 (다국어)
학업에서 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}
}