BPEMB เป็นคอลเลกชันของการฝังคำใต้ subword ที่ผ่านการฝึกอบรมมาแล้วใน 275 ภาษาโดยใช้การเข้ารหัสแบบไบต์คู่ (BPE) และได้รับการฝึกฝนเกี่ยวกับ Wikipedia การใช้งานที่ตั้งใจไว้คือการป้อนข้อมูลสำหรับแบบจำลองระบบประสาทในการประมวลผลภาษาธรรมชาติ
เว็บไซต์ ・ การใช้งาน ・ ดาวน์โหลด ・ Multibpemb ・ Paper (PDF) ・ อ้างถึง BPEMB
ติดตั้ง BPEMB ด้วย PIP:
pip install bpembรุ่น Embeddings และ SentencePiece จะถูกดาวน์โหลดโดยอัตโนมัติในครั้งแรกที่คุณใช้
> >> 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"]ถ้า / วิธีการแยกคำขึ้นอยู่กับขนาดคำศัพท์ โดยทั่วไปขนาดคำศัพท์ที่เล็กกว่าจะให้การแบ่งส่วนเป็นคำย่อยจำนวนมากในขณะที่ขนาดคำศัพท์ขนาดใหญ่จะส่งผลให้คำบ่อยๆไม่ถูกแยก:
| ขนาดคำศัพท์ | การแบ่งส่วน |
|---|---|
| 1,000 | ['str', 'at', 'f', 'ord'] |
| 3,000 | ['str', 'at', 'Ford'] |
| 5,000 | ['str', 'at', 'Ford'] |
| 10,000 | ['strat', 'Ford'] |
| 25,000 | ['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 )หากต้องการใช้ subword embeddings ในเครือข่ายประสาทของคุณไม่ว่าจะเข้ารหัสอินพุตของคุณลงใน ID Subword:
> >> 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 an (aragonese)・ ast (Asturian) ・ atj (atikamekw) ・ av (avaric) ・ ay (Aymara) ・ AZ (Azerbaijani) ・ AZB (South Azerbaijani)
ba (bashkir) ・ bar (bavarian) ・ bcl (bikol กลาง) ・ be (belarusian) ・ bg (บัลแกเรีย) ・ bi (bislama) ・ bjn (Banjar) ・ bm (bambara) ・ bn (bengali) (บอสเนีย) ・ บั๊ก (Buginese) ・ BXR (รัสเซีย Buriat)
Ca (Catalan) ・ CDO (Min Dong Chinese) ・ CE (Chechen) ・ Ceb (Cebuano) ・ ch (Chamorro) ・ Chr (Cherokee) ・ Chy (Cheyenne) ・ CKB (Central Kurdish) (Kashubian) ・ Cu (โบสถ์ Slavic) ・ CV (Chuvash) ・ Cy (Welsh)
da (เดนมาร์ก) ・ de (เยอรมัน) ・ din (dinka) ・ diq (dimli) ・ dsb (sorbian ล่าง) ・ dty (dotyali) ・ dv (dhivehi) ・ dz (dzongkha)
EE (EWE) ・ el (กรีกสมัยใหม่) ・ en (ภาษาอังกฤษ) ・ EO (Esperanto) ・ es (สเปน) ・ et (เอสโตเนีย) ・ eu (บาสก์) ・ ext (Extremaduran)
FA (เปอร์เซีย) ・ ff (fulah) ・ fi (ฟินแลนด์) ・ fj (ฟิจิ) ・ fo (faroese) ・ fr (ฝรั่งเศส) ・ frp (arpitan) ・ frr (Frisian เหนือ) ・ ขน (Friulian)
Ga (ไอริช) ・ Gag (Gagauz) ・ Gan (Gan Chinese) ・ gd (Scottish Gaelic) ・ gl (กาลิเซีย) ・ glk (gilaki) ・ gn (guarani) ・ gom (Goan Konkani) ・ Got (Gothic) ・ gujarati)
Ha (Hausa) ・ Hak (Hakka Chinese) ・ Haw (Hawaiian) ・ เขา (ฮีบรู) ・ สวัสดี (ภาษาฮินดี) ・ hif (ฟิจิภาษาฮินดี) ・ ชม. (โครเอเชีย) ・ HSB (Sorbian ตอนบน)
ia (interlingua) ・ id (อินโดนีเซีย) ・ IE (interlingue) ・ ig (igbo) ・ ik (inupiaq) ・ ilo (iloko) ・ io (ido) ・ คือ (ไอซ์แลนด์) ・ มัน (อิตาลี)
JA (ญี่ปุ่น) ・ Jam (Jamaican Creole English) ・ JBO (Lojban) ・ JV (Javanese)
ka (จอร์เจีย) ・ kaa (kara-kalpak) ・ kab (kabyle) ・ kbd (kabardian) ・ kbp (kabiyè) ・ kg (kongo) ・ ki (kikuyu) ・ kk (kazakh) KO (เกาหลี) ・ Koi (Komi-Permyak) ・ KRC (Karachay-Balkar) ・ KS (Kashmiri) ・ Ksh (Kölsch) ・ Ku (Kurdish) ・ KV (Komi) ・ KW (Cornish)
la (ละติน) ・ lad (ladino) ・ lb (ลักเซมเบิร์ก) ・ lbe (lak) ・ lez (lezghian) ・ lg (ganda) ・ li (limburgan) ・ lij (Ligurian) ・ lmo (Lombard) (ลิทัวเนีย) ・ LTG (Latgalian) ・ LV (ลัตเวีย)
mai (maithili) ・ mdf (moksha) ・ mg (Malagasy) ・ mh (Marshallese) ・ mhr (Eastern Mari) ・ mi (Maori) ・ min (minangkabau) ・ mk (macedonian) ・ ml (malayalam) (มาเลย์) ・ mt (มอลตา) ・ MWL (Mirandese) ・ ฉัน (พม่า) ・ Myv (Erzya) ・ MZN (Mazanderani)
Na (นาอูรู) ・ NAP (Neapolitan) ・ nds (ภาษาเยอรมันต่ำ) ・ ne (nepali) ・ ใหม่ (newari) ・ ng (ndonga) ・ nl (ดัตช์) ・ nn (Norwegian nynorsk) ・ no (norwegian) NY (Nyanja)
oc (occitan) ・ olo (livvi) ・ om (oromo) ・ หรือ (oriya) ・ OS (Ossetian)
PA (Panjabi) ・ PAG (Pangasinan) ・ Pam (Pampanga) ・ Pap (Papiamento) ・ PCD (Picard) ・ PDC (Pennsylvania German) ・ PFL (Pfaelzisch) (Western Panjabi) ・ PNT (Pontic) ・ PS (pushto) ・ pt (โปรตุเกส)
QU (Quechua)
RM (Romansh) ・ rmy (Vlax Romani) ・ rn (rundi) ・ ro (โรมาเนีย) ・ ru (รัสเซีย) ・ rue (rusyn) ・ rw (Kinyarwanda)
SA (ภาษาสันสกฤต) ・ SAH (Yakut) ・ SC (Sardinian) ・ SCN (Sicilian) ・ Sco (Scots) ・ SD (Sindhi) ・ SE (Sami Northern) ・ SG (Sango) ・ SH (SmaCON) ・ SMIAN・ SN (Shona) ・ SO (โซมาลี) ・ SQ (ชาวแอลเบเนีย) ・ Sr (เซอร์เบีย) ・ SRN (Sranan Tongo) ・ SS (Swati) ・ St (SOTHO) ・ SwAH ・ Sw (Swediss)
ta (ทมิฬ) ・ tcy (tulu) ・ te (telugu) ・ tet (tetum) ・ tg (tajik) ・ th (ไทย) ・ ti (tigrinya) ・ tk (turkmen) ・ tl (tagalog) ・ tn (tswana) (tsonga) ・ tt (tatar) ・ tum (tumbuka) ・ tw (twi) ・ ty (ทาฮิติ) ・ tyv (Tuvinian)
UDM (Udmurt) ・ UG (Uighur) ・ สหราชอาณาจักร (ยูเครน) ・ ur (Urdu) ・ uz (Uzbek)
ve (Venda) ・ VEC (Venetian) ・ VEP (VEPS) ・ VI (เวียดนาม) ・ VLS (VLAAMS) ・ VO (Volapük)
WA (Walloon) ・ สงคราม (Waray) ・ wo (wolof) ・ wuu (วูจีน)
Xal (Kalmyk) ・ XH (Xhosa) ・ XMF (Mingrelian)
Yi (Yiddish) ・ yo (Yoruba)
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}
}