BPEMBは、バイトペアエンコード(BPE)に基づいて、ウィキペディアでトレーニングされた275の言語で事前に訓練されたサブワード埋め込みのコレクションです。その目的の使用は、自然言語処理におけるニューラルモデルの入力としてです。
ウェブサイト・使用量
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で2つの主要なことを行うことができます。最初はサブワードセグメンテーションです。
# 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 | ['s str'、 'at'、 'f'、 'ord'] |
| 3000 | ['s str'、 'at'、 'ford'] |
| 5000 | ['s str'、 'at'、 'ford'] |
| 10000 | ['w strat'、 'ford'] |
| 25000 | ['o stratford'] |
| 50000 | ['o stratford'] |
| 100000 | ['o stratford'] |
| 200000 | ['o stratford'] |
BPEMBの2番目の目的は、前提条件のサブワード埋め込みを提供することです。
# 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)・ast(asturian)・atj(atikamekw)av(avaric)・ay(aymara)・az(azerbaijani)・azb(南アゼルバイジャン)
BA(Bashkir)・Bar(バイエルン)・Bcl(中央ビコル)be(ベラルーシ人)・BG(ブルガリア語)・bi(bislama)・bjn(banjar)・bm(bambara) (ボスニア)・バグ(ブギーネーゼ)・bxr(ロシア・ブリアット)
CA(カタロニア)・CDO(Min Dong中国)CE(チェチェン)・CEB(CEBUANO)・CH(Chamorro)・Chr(Cherokee) (カシュビアン)・cu(教会のスラブ)・cv(チュヴァッシュ)・cy(ウェールズ)
da(デンマーク語)de(ドイツ語)・din(dinka)・diq(dimli)
EE(ewe)・el(現代ギリシャ語)・en(英語)・eo(esperanto)・es(スペイン語)・et(エストニア)・eu(バスク)
fa(ペルシャ)・ff(fulah)・fi(フィンランド語)・fj(フィジアン)・fo(ファローズ)・fr(フランス語)・frp(arpitan)・frr(北フリジアン)・fur(フリリアン)
GA(アイルランド)・ギャグ(ガガウズ)・ガン(ガンガン)・GD(スコットランドゲール語)・GL(ガリシア語)・GLK(giLaki)・gn(guarani)・gom(goan konkani)
ha(hausa)・hak(hakka bishen)・Haw(ハワイ語)
IA(Interlingua)・ID(インドネシア)・IE(Interlingue)・Ig(Igbo)・IK(inupiaq)・Ilo(iloko)・io(Ido)・(アイスランド語)・(イタリア語)
JA(日本)・ジャム(ジャマイカのクレオール英語)
KA(ジョージアン)・KAA(KARA-KALPAK)・KAB(Kabyle) KO(韓国)・Koi(Komi-Permyak)・Krc(Karachay-Balkar)・KS(Kashmiri)・Ksh(Kölsch)・KU(Kurdish)・KV(Komi)・KW(cornish)・ky(kirghiz)
la(ラテン)ラッド(ラディーノ)・lb(ルクセンブルギッシュ)・lbe(lak)・lez(レズギアン)・lg(ganda)・li(limburgan)・LTG(ラトガリアン)・LV(ラトビア)
Mai(Maithili)・MDF(Moksha)・MG(マラガシー)・MH(Marshallese)・MHR(東マリ) (マレー)・MT(マルタ)・MWL(ミランデーゼ)・my(ビルマ)・myv(erzya)・mzn(マザンデーニ)
na(nauru)・nap(ナポリタン)・nds(低ドイツ語)・NY(NYANJA)
oc(occitan)・olo(livvi)om(oromo)・または(oriya)・os(ossetian)
PA(パンジャビ)・パグ(パンガシナン)・パム(パンパンガ)・パプ(パピアメント) (西パンジャブ)・PNT(ポンティック)・PS(プッシュ)・PT(ポルトガル語)
QU(Quechua)
rm(ロマンシュ)・rmy(vlax romani)・rn(rundi)・ro(ルーマニア語)・ru(ロシア語)・ru(rusyn)・rw(kinyarwanda)
Sa(Sanskrit)・Sah(Yakut)・SC(Sardinian)・sn(shona)so(somali)・sq(albanian)・sr(serbian)・srn(sranan tongo)
Ta(Tamil)・Tcy(Tulu)・Te(Telugu)・Tet(Tetum)・TG(Tajik)(Thai) (Tsonga)・TT(Tatar)・Tum(Tumbuka)・TW(TWI)・TY(タヒチアン)・TYV(Tuvinian)
udm(udmurt)・ug(uighur)・uk(ウクライナ)・ur(urdu)・uz(uzbek)
Ve(Venda)・VEC(Venetian)・VEP(VEPS)・VI(ベトナム人)・VLS(VLAAMS)
wa(walloon)・woray)
xal(kalmyk)・xh(xhosa)・xmf(mingrelian)
yi(yiddish)・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}
}