import{S as po,i as ho,s as mo,e as n,k as l,w as _,t as a,M as fo,c as s,d as o,m as c,a as r,x as k,h as i,b as d,G as t,g as m,y as b,L as uo,q as v,o as T,B as y,v as go}from"../../chunks/vendor-hf-doc-builder.js";import{D as re}from"../../chunks/Docstring-hf-doc-builder.js";import{C as _o}from"../../chunks/CodeBlock-hf-doc-builder.js";import{I as Ct}from"../../chunks/IconCopyLink-hf-doc-builder.js";function ko(Lt){let w,Te,E,q,ae,I,Ge,ie,Se,ye,P,J,le,x,Qe,ce,Fe,we,z,Ze,C,We,Xe,Ee,Y,Oe,Pe,H,de,Ye,$e,K,He,qe,L,Je,u,Ke,D,et,tt,N,ot,nt,ze,$,U,pe,j,st,he,rt,Ue,h,A,at,me,it,lt,G,ct,ee,dt,pt,ht,M,S,mt,fe,ft,ut,g,Q,gt,ue,_t,kt,F,te,bt,ge,vt,Tt,oe,yt,_e,wt,Et,B,Z,Pt,ke,$t,qt,V,W,Jt,be,zt,Ut,R,X,Mt,O,Bt,ve,Vt,Rt,Me;return I=new Ct({}),x=new Ct({}),L=new _o({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b01vZGVsJTJDJTIwQXV0b1Rva2VuaXplciUwQSUwQXBob2JlcnQlMjAlM0QlMjBBdXRvTW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUyMnZpbmFpJTJGcGhvYmVydC1iYXNlJTIyKSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKCUyMnZpbmFpJTJGcGhvYmVydC1iYXNlJTIyKSUwQSUwQSUyMyUyMElOUFVUJTIwVEVYVCUyME1VU1QlMjBCRSUyMEFMUkVBRFklMjBXT1JELVNFR01FTlRFRCElMEFsaW5lJTIwJTNEJTIwJTIyVCVDMyVCNGklMjBsJUMzJUEwJTIwc2luaF92aSVDMyVBQW4lMjB0ciVDNiVCMCVFMSVCQiU5RG5nJTIwJUM0JTkxJUUxJUJBJUExaV9oJUUxJUJCJThEYyUyMEMlQzMlQjRuZ19uZ2glRTElQkIlODclMjAuJTIyJTBBJTBBaW5wdXRfaWRzJTIwJTNEJTIwdG9yY2gudGVuc29yKCU1QnRva2VuaXplci5lbmNvZGUobGluZSklNUQpJTBBJTBBd2l0aCUyMHRvcmNoLm5vX2dyYWQoKSUzQSUwQSUyMCUyMCUyMCUyMGZlYXR1cmVzJTIwJTNEJTIwcGhvYmVydChpbnB1dF9pZHMpJTIwJTIwJTIzJTIwTW9kZWxzJTIwb3V0cHV0cyUyMGFyZSUyMG5vdyUyMHR1cGxlcyUwQSUwQSUyMyUyMFdpdGglMjBUZW5zb3JGbG93JTIwMi4wJTJCJTNBJTBBJTIzJTIwZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsJTBBJTIzJTIwcGhvYmVydCUyMCUzRCUyMFRGQXV0b01vZGVsLmZyb21fcHJldHJhaW5lZCglMjJ2aW5haSUyRnBob2JlcnQtYmFzZSUyMik=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModel, AutoTokenizer

<span class="hljs-meta">&gt;&gt;&gt; </span>phobert = AutoModel.from_pretrained(<span class="hljs-string">&quot;vinai/phobert-base&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;vinai/phobert-base&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># INPUT TEXT MUST BE ALREADY WORD-SEGMENTED!</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>line = <span class="hljs-string">&quot;T\xF4i l\xE0 sinh_vi\xEAn tr\u01B0\u1EDDng \u0111\u1EA1i_h\u1ECDc C\xF4ng_ngh\u1EC7 .&quot;</span>

<span class="hljs-meta">&gt;&gt;&gt; </span>input_ids = torch.tensor([tokenizer.encode(line)])

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">with</span> torch.no_grad():
<span class="hljs-meta">... </span>    features = phobert(input_ids)  <span class="hljs-comment"># Models outputs are now tuples</span>

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># With TensorFlow 2.0+:</span>
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># from transformers import TFAutoModel</span>
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># phobert = TFAutoModel.from_pretrained(&quot;vinai/phobert-base&quot;)</span>`}}),j=new Ct({}),A=new re({props:{name:"class transformers.PhobertTokenizer",anchor:"transformers.PhobertTokenizer",parameters:[{name:"vocab_file",val:""},{name:"merges_file",val:""},{name:"bos_token",val:" = '<s>'"},{name:"eos_token",val:" = '</s>'"},{name:"sep_token",val:" = '</s>'"},{name:"cls_token",val:" = '<s>'"},{name:"unk_token",val:" = '<unk>'"},{name:"pad_token",val:" = '<pad>'"},{name:"mask_token",val:" = '<mask>'"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.PhobertTokenizer.vocab_file",description:`<strong>vocab_file</strong> (<code>str</code>) &#x2014;
Path to the vocabulary file.`,name:"vocab_file"},{anchor:"transformers.PhobertTokenizer.merges_file",description:`<strong>merges_file</strong> (<code>str</code>) &#x2014;
Path to the merges file.`,name:"merges_file"},{anchor:"transformers.PhobertTokenizer.bos_token",description:`<strong>bos_token</strong> (<code>st</code>, <em>optional</em>, defaults to <code>&quot;&lt;s&gt;&quot;</code>) &#x2014;
The beginning of sequence token that was used during pretraining. Can be used a sequence classifier token.</p>
<div class="course-tip  bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400">
						
<p>When building a sequence using special tokens, this is not the token that is used for the beginning of
sequence. The token used is the <code>cls_token</code>.</p>

					</div>`,name:"bos_token"},{anchor:"transformers.PhobertTokenizer.eos_token",description:`<strong>eos_token</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;&lt;/s&gt;&quot;</code>) &#x2014;
The end of sequence token.</p>
<div class="course-tip  bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400">
						
<p>When building a sequence using special tokens, this is not the token that is used for the end of sequence.
The token used is the <code>sep_token</code>.</p>

					</div>`,name:"eos_token"},{anchor:"transformers.PhobertTokenizer.sep_token",description:`<strong>sep_token</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;&lt;/s&gt;&quot;</code>) &#x2014;
The separator token, which is used when building a sequence from multiple sequences, e.g. two sequences for
sequence classification or for a text and a question for question answering. It is also used as the last
token of a sequence built with special tokens.`,name:"sep_token"},{anchor:"transformers.PhobertTokenizer.cls_token",description:`<strong>cls_token</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;&lt;s&gt;&quot;</code>) &#x2014;
The classifier token which is used when doing sequence classification (classification of the whole sequence
instead of per-token classification). It is the first token of the sequence when built with special tokens.`,name:"cls_token"},{anchor:"transformers.PhobertTokenizer.unk_token",description:`<strong>unk_token</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;&lt;unk&gt;&quot;</code>) &#x2014;
The unknown token. A token that is not in the vocabulary cannot be converted to an ID and is set to be this
token instead.`,name:"unk_token"},{anchor:"transformers.PhobertTokenizer.pad_token",description:`<strong>pad_token</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;&lt;pad&gt;&quot;</code>) &#x2014;
The token used for padding, for example when batching sequences of different lengths.`,name:"pad_token"},{anchor:"transformers.PhobertTokenizer.mask_token",description:`<strong>mask_token</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;&lt;mask&gt;&quot;</code>) &#x2014;
The token used for masking values. This is the token used when training this model with masked language
modeling. This is the token which the model will try to predict.`,name:"mask_token"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/models/phobert/tokenization_phobert.py#L68"}}),S=new re({props:{name:"add_from_file",anchor:"transformers.PhobertTokenizer.add_from_file",parameters:[{name:"f",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/models/phobert/tokenization_phobert.py#L341"}}),Q=new re({props:{name:"build_inputs_with_special_tokens",anchor:"transformers.PhobertTokenizer.build_inputs_with_special_tokens",parameters:[{name:"token_ids_0",val:": typing.List[int]"},{name:"token_ids_1",val:": typing.Optional[typing.List[int]] = None"}],parametersDescription:[{anchor:"transformers.PhobertTokenizer.build_inputs_with_special_tokens.token_ids_0",description:`<strong>token_ids_0</strong> (<code>List[int]</code>) &#x2014;
List of IDs to which the special tokens will be added.`,name:"token_ids_0"},{anchor:"transformers.PhobertTokenizer.build_inputs_with_special_tokens.token_ids_1",description:`<strong>token_ids_1</strong> (<code>List[int]</code>, <em>optional</em>) &#x2014;
Optional second list of IDs for sequence pairs.`,name:"token_ids_1"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/models/phobert/tokenization_phobert.py#L164",returnDescription:`
<p>List of <a href="../glossary#input-ids">input IDs</a> with the appropriate special tokens.</p>
`,returnType:`
<p><code>List[int]</code></p>
`}}),Z=new re({props:{name:"convert_tokens_to_string",anchor:"transformers.PhobertTokenizer.convert_tokens_to_string",parameters:[{name:"tokens",val:""}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/models/phobert/tokenization_phobert.py#L311"}}),W=new re({props:{name:"create_token_type_ids_from_sequences",anchor:"transformers.PhobertTokenizer.create_token_type_ids_from_sequences",parameters:[{name:"token_ids_0",val:": typing.List[int]"},{name:"token_ids_1",val:": typing.Optional[typing.List[int]] = None"}],parametersDescription:[{anchor:"transformers.PhobertTokenizer.create_token_type_ids_from_sequences.token_ids_0",description:`<strong>token_ids_0</strong> (<code>List[int]</code>) &#x2014;
List of IDs.`,name:"token_ids_0"},{anchor:"transformers.PhobertTokenizer.create_token_type_ids_from_sequences.token_ids_1",description:`<strong>token_ids_1</strong> (<code>List[int]</code>, <em>optional</em>) &#x2014;
Optional second list of IDs for sequence pairs.`,name:"token_ids_1"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/models/phobert/tokenization_phobert.py#L218",returnDescription:`
<p>List of zeros.</p>
`,returnType:`
<p><code>List[int]</code></p>
`}}),X=new re({props:{name:"get_special_tokens_mask",anchor:"transformers.PhobertTokenizer.get_special_tokens_mask",parameters:[{name:"token_ids_0",val:": typing.List[int]"},{name:"token_ids_1",val:": typing.Optional[typing.List[int]] = None"},{name:"already_has_special_tokens",val:": bool = False"}],parametersDescription:[{anchor:"transformers.PhobertTokenizer.get_special_tokens_mask.token_ids_0",description:`<strong>token_ids_0</strong> (<code>List[int]</code>) &#x2014;
List of IDs.`,name:"token_ids_0"},{anchor:"transformers.PhobertTokenizer.get_special_tokens_mask.token_ids_1",description:`<strong>token_ids_1</strong> (<code>List[int]</code>, <em>optional</em>) &#x2014;
Optional second list of IDs for sequence pairs.`,name:"token_ids_1"},{anchor:"transformers.PhobertTokenizer.get_special_tokens_mask.already_has_special_tokens",description:`<strong>already_has_special_tokens</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not the token list is already formatted with special tokens for the model.`,name:"already_has_special_tokens"}],source:"https://github.com/huggingface/transformers/blob/main/src/transformers/models/phobert/tokenization_phobert.py#L190",returnDescription:`
<p>A list of integers in the range [0, 1]: 1 for a special token, 0 for a sequence token.</p>
`,returnType:`
<p><code>List[int]</code></p>
`}}),{c(){w=n("meta"),Te=l(),E=n("h1"),q=n("a"),ae=n("span"),_(I.$$.fragment),Ge=l(),ie=n("span"),Se=a("PhoBERT"),ye=l(),P=n("h2"),J=n("a"),le=n("span"),_(x.$$.fragment),Qe=l(),ce=n("span"),Fe=a("Overview"),we=l(),z=n("p"),Ze=a("The PhoBERT model was proposed in "),C=n("a"),We=a("PhoBERT: Pre-trained language models for Vietnamese"),Xe=a(" by Dat Quoc Nguyen, Anh Tuan Nguyen."),Ee=l(),Y=n("p"),Oe=a("The abstract from the paper is the following:"),Pe=l(),H=n("p"),de=n("em"),Ye=a(`We present PhoBERT with two versions, PhoBERT-base and PhoBERT-large, the first public large-scale monolingual
language models pre-trained for Vietnamese. Experimental results show that PhoBERT consistently outperforms the recent
best pre-trained multilingual model XLM-R (Conneau et al., 2020) and improves the state-of-the-art in multiple
Vietnamese-specific NLP tasks including Part-of-speech tagging, Dependency parsing, Named-entity recognition and
Natural language inference.`),$e=l(),K=n("p"),He=a("Example of use:"),qe=l(),_(L.$$.fragment),Je=l(),u=n("p"),Ke=a("This model was contributed by "),D=n("a"),et=a("dqnguyen"),tt=a(". The original code can be found "),N=n("a"),ot=a("here"),nt=a("."),ze=l(),$=n("h2"),U=n("a"),pe=n("span"),_(j.$$.fragment),st=l(),he=n("span"),rt=a("PhobertTokenizer"),Ue=l(),h=n("div"),_(A.$$.fragment),at=l(),me=n("p"),it=a("Construct a PhoBERT tokenizer. Based on Byte-Pair-Encoding."),lt=l(),G=n("p"),ct=a("This tokenizer inherits from "),ee=n("a"),dt=a("PreTrainedTokenizer"),pt=a(` which contains most of the main methods. Users should refer to
this superclass for more information regarding those methods.`),ht=l(),M=n("div"),_(S.$$.fragment),mt=l(),fe=n("p"),ft=a("Loads a pre-existing dictionary from a text file and adds its symbols to this instance."),ut=l(),g=n("div"),_(Q.$$.fragment),gt=l(),ue=n("p"),_t=a(`Build model inputs from a sequence or a pair of sequence for sequence classification tasks by concatenating and
adding special tokens. A PhoBERT sequence has the following format:`),kt=l(),F=n("ul"),te=n("li"),bt=a("single sequence: "),ge=n("code"),vt=a("<s> X </s>"),Tt=l(),oe=n("li"),yt=a("pair of sequences: "),_e=n("code"),wt=a("<s> A </s></s> B </s>"),Et=l(),B=n("div"),_(Z.$$.fragment),Pt=l(),ke=n("p"),$t=a("Converts a sequence of tokens (string) in a single string."),qt=l(),V=n("div"),_(W.$$.fragment),Jt=l(),be=n("p"),zt=a(`Create a mask from the two sequences passed to be used in a sequence-pair classification task. PhoBERT does not
make use of token type ids, therefore a list of zeros is returned.`),Ut=l(),R=n("div"),_(X.$$.fragment),Mt=l(),O=n("p"),Bt=a(`Retrieve sequence ids from a token list that has no special tokens added. This method is called when adding
special tokens using the tokenizer `),ve=n("code"),Vt=a("prepare_for_model"),Rt=a(" method."),this.h()},l(e){const p=fo('[data-svelte="svelte-1phssyn"]',document.head);w=s(p,"META",{name:!0,content:!0}),p.forEach(o),Te=c(e),E=s(e,"H1",{class:!0});var Be=r(E);q=s(Be,"A",{id:!0,class:!0,href:!0});var Dt=r(q);ae=s(Dt,"SPAN",{});var Nt=r(ae);k(I.$$.fragment,Nt),Nt.forEach(o),Dt.forEach(o),Ge=c(Be),ie=s(Be,"SPAN",{});var jt=r(ie);Se=i(jt,"PhoBERT"),jt.forEach(o),Be.forEach(o),ye=c(e),P=s(e,"H2",{class:!0});var Ve=r(P);J=s(Ve,"A",{id:!0,class:!0,href:!0});var At=r(J);le=s(At,"SPAN",{});var Gt=r(le);k(x.$$.fragment,Gt),Gt.forEach(o),At.forEach(o),Qe=c(Ve),ce=s(Ve,"SPAN",{});var St=r(ce);Fe=i(St,"Overview"),St.forEach(o),Ve.forEach(o),we=c(e),z=s(e,"P",{});var Re=r(z);Ze=i(Re,"The PhoBERT model was proposed in "),C=s(Re,"A",{href:!0,rel:!0});var Qt=r(C);We=i(Qt,"PhoBERT: Pre-trained language models for Vietnamese"),Qt.forEach(o),Xe=i(Re," by Dat Quoc Nguyen, Anh Tuan Nguyen."),Re.forEach(o),Ee=c(e),Y=s(e,"P",{});var Ft=r(Y);Oe=i(Ft,"The abstract from the paper is the following:"),Ft.forEach(o),Pe=c(e),H=s(e,"P",{});var Zt=r(H);de=s(Zt,"EM",{});var Wt=r(de);Ye=i(Wt,`We present PhoBERT with two versions, PhoBERT-base and PhoBERT-large, the first public large-scale monolingual
language models pre-trained for Vietnamese. Experimental results show that PhoBERT consistently outperforms the recent
best pre-trained multilingual model XLM-R (Conneau et al., 2020) and improves the state-of-the-art in multiple
Vietnamese-specific NLP tasks including Part-of-speech tagging, Dependency parsing, Named-entity recognition and
Natural language inference.`),Wt.forEach(o),Zt.forEach(o),$e=c(e),K=s(e,"P",{});var Xt=r(K);He=i(Xt,"Example of use:"),Xt.forEach(o),qe=c(e),k(L.$$.fragment,e),Je=c(e),u=s(e,"P",{});var ne=r(u);Ke=i(ne,"This model was contributed by "),D=s(ne,"A",{href:!0,rel:!0});var Ot=r(D);et=i(Ot,"dqnguyen"),Ot.forEach(o),tt=i(ne,". The original code can be found "),N=s(ne,"A",{href:!0,rel:!0});var Yt=r(N);ot=i(Yt,"here"),Yt.forEach(o),nt=i(ne,"."),ne.forEach(o),ze=c(e),$=s(e,"H2",{class:!0});var Ie=r($);U=s(Ie,"A",{id:!0,class:!0,href:!0});var Ht=r(U);pe=s(Ht,"SPAN",{});var Kt=r(pe);k(j.$$.fragment,Kt),Kt.forEach(o),Ht.forEach(o),st=c(Ie),he=s(Ie,"SPAN",{});var eo=r(he);rt=i(eo,"PhobertTokenizer"),eo.forEach(o),Ie.forEach(o),Ue=c(e),h=s(e,"DIV",{class:!0});var f=r(h);k(A.$$.fragment,f),at=c(f),me=s(f,"P",{});var to=r(me);it=i(to,"Construct a PhoBERT tokenizer. Based on Byte-Pair-Encoding."),to.forEach(o),lt=c(f),G=s(f,"P",{});var xe=r(G);ct=i(xe,"This tokenizer inherits from "),ee=s(xe,"A",{href:!0});var oo=r(ee);dt=i(oo,"PreTrainedTokenizer"),oo.forEach(o),pt=i(xe,` which contains most of the main methods. Users should refer to
this superclass for more information regarding those methods.`),xe.forEach(o),ht=c(f),M=s(f,"DIV",{class:!0});var Ce=r(M);k(S.$$.fragment,Ce),mt=c(Ce),fe=s(Ce,"P",{});var no=r(fe);ft=i(no,"Loads a pre-existing dictionary from a text file and adds its symbols to this instance."),no.forEach(o),Ce.forEach(o),ut=c(f),g=s(f,"DIV",{class:!0});var se=r(g);k(Q.$$.fragment,se),gt=c(se),ue=s(se,"P",{});var so=r(ue);_t=i(so,`Build model inputs from a sequence or a pair of sequence for sequence classification tasks by concatenating and
adding special tokens. A PhoBERT sequence has the following format:`),so.forEach(o),kt=c(se),F=s(se,"UL",{});var Le=r(F);te=s(Le,"LI",{});var It=r(te);bt=i(It,"single sequence: "),ge=s(It,"CODE",{});var ro=r(ge);vt=i(ro,"<s> X </s>"),ro.forEach(o),It.forEach(o),Tt=c(Le),oe=s(Le,"LI",{});var xt=r(oe);yt=i(xt,"pair of sequences: "),_e=s(xt,"CODE",{});var ao=r(_e);wt=i(ao,"<s> A </s></s> B </s>"),ao.forEach(o),xt.forEach(o),Le.forEach(o),se.forEach(o),Et=c(f),B=s(f,"DIV",{class:!0});var De=r(B);k(Z.$$.fragment,De),Pt=c(De),ke=s(De,"P",{});var io=r(ke);$t=i(io,"Converts a sequence of tokens (string) in a single string."),io.forEach(o),De.forEach(o),qt=c(f),V=s(f,"DIV",{class:!0});var Ne=r(V);k(W.$$.fragment,Ne),Jt=c(Ne),be=s(Ne,"P",{});var lo=r(be);zt=i(lo,`Create a mask from the two sequences passed to be used in a sequence-pair classification task. PhoBERT does not
make use of token type ids, therefore a list of zeros is returned.`),lo.forEach(o),Ne.forEach(o),Ut=c(f),R=s(f,"DIV",{class:!0});var je=r(R);k(X.$$.fragment,je),Mt=c(je),O=s(je,"P",{});var Ae=r(O);Bt=i(Ae,`Retrieve sequence ids from a token list that has no special tokens added. This method is called when adding
special tokens using the tokenizer `),ve=s(Ae,"CODE",{});var co=r(ve);Vt=i(co,"prepare_for_model"),co.forEach(o),Rt=i(Ae," method."),Ae.forEach(o),je.forEach(o),f.forEach(o),this.h()},h(){d(w,"name","hf:doc:metadata"),d(w,"content",JSON.stringify(bo)),d(q,"id","phobert"),d(q,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),d(q,"href","#phobert"),d(E,"class","relative group"),d(J,"id","overview"),d(J,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),d(J,"href","#overview"),d(P,"class","relative group"),d(C,"href","https://www.aclweb.org/anthology/2020.findings-emnlp.92.pdf"),d(C,"rel","nofollow"),d(D,"href","https://huggingface.co/dqnguyen"),d(D,"rel","nofollow"),d(N,"href","https://github.com/VinAIResearch/PhoBERT"),d(N,"rel","nofollow"),d(U,"id","transformers.PhobertTokenizer"),d(U,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),d(U,"href","#transformers.PhobertTokenizer"),d($,"class","relative group"),d(ee,"href","/docs/transformers/main/en/main_classes/tokenizer#transformers.PreTrainedTokenizer"),d(M,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),d(g,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),d(B,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),d(V,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),d(R,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),d(h,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,p){t(document.head,w),m(e,Te,p),m(e,E,p),t(E,q),t(q,ae),b(I,ae,null),t(E,Ge),t(E,ie),t(ie,Se),m(e,ye,p),m(e,P,p),t(P,J),t(J,le),b(x,le,null),t(P,Qe),t(P,ce),t(ce,Fe),m(e,we,p),m(e,z,p),t(z,Ze),t(z,C),t(C,We),t(z,Xe),m(e,Ee,p),m(e,Y,p),t(Y,Oe),m(e,Pe,p),m(e,H,p),t(H,de),t(de,Ye),m(e,$e,p),m(e,K,p),t(K,He),m(e,qe,p),b(L,e,p),m(e,Je,p),m(e,u,p),t(u,Ke),t(u,D),t(D,et),t(u,tt),t(u,N),t(N,ot),t(u,nt),m(e,ze,p),m(e,$,p),t($,U),t(U,pe),b(j,pe,null),t($,st),t($,he),t(he,rt),m(e,Ue,p),m(e,h,p),b(A,h,null),t(h,at),t(h,me),t(me,it),t(h,lt),t(h,G),t(G,ct),t(G,ee),t(ee,dt),t(G,pt),t(h,ht),t(h,M),b(S,M,null),t(M,mt),t(M,fe),t(fe,ft),t(h,ut),t(h,g),b(Q,g,null),t(g,gt),t(g,ue),t(ue,_t),t(g,kt),t(g,F),t(F,te),t(te,bt),t(te,ge),t(ge,vt),t(F,Tt),t(F,oe),t(oe,yt),t(oe,_e),t(_e,wt),t(h,Et),t(h,B),b(Z,B,null),t(B,Pt),t(B,ke),t(ke,$t),t(h,qt),t(h,V),b(W,V,null),t(V,Jt),t(V,be),t(be,zt),t(h,Ut),t(h,R),b(X,R,null),t(R,Mt),t(R,O),t(O,Bt),t(O,ve),t(ve,Vt),t(O,Rt),Me=!0},p:uo,i(e){Me||(v(I.$$.fragment,e),v(x.$$.fragment,e),v(L.$$.fragment,e),v(j.$$.fragment,e),v(A.$$.fragment,e),v(S.$$.fragment,e),v(Q.$$.fragment,e),v(Z.$$.fragment,e),v(W.$$.fragment,e),v(X.$$.fragment,e),Me=!0)},o(e){T(I.$$.fragment,e),T(x.$$.fragment,e),T(L.$$.fragment,e),T(j.$$.fragment,e),T(A.$$.fragment,e),T(S.$$.fragment,e),T(Q.$$.fragment,e),T(Z.$$.fragment,e),T(W.$$.fragment,e),T(X.$$.fragment,e),Me=!1},d(e){o(w),e&&o(Te),e&&o(E),y(I),e&&o(ye),e&&o(P),y(x),e&&o(we),e&&o(z),e&&o(Ee),e&&o(Y),e&&o(Pe),e&&o(H),e&&o($e),e&&o(K),e&&o(qe),y(L,e),e&&o(Je),e&&o(u),e&&o(ze),e&&o($),y(j),e&&o(Ue),e&&o(h),y(A),y(S),y(Q),y(Z),y(W),y(X)}}}const bo={local:"phobert",sections:[{local:"overview",title:"Overview"},{local:"transformers.PhobertTokenizer",title:"PhobertTokenizer"}],title:"PhoBERT"};function vo(Lt){return go(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Po extends po{constructor(w){super();ho(this,w,vo,ko,mo,{})}}export{Po as default,bo as metadata};
