import{S as Cc,i as Oc,s as Ac,e as n,k as u,w as g,t,M as Nc,c as i,d as a,m as c,a as l,x as _,h as o,b as m,N as Ta,G as e,g as p,y as b,q as v,o as x,B as j,v as Tc}from"../../chunks/vendor-hf-doc-builder.js";import{T as na}from"../../chunks/Tip-hf-doc-builder.js";import{Y as Gc}from"../../chunks/Youtube-hf-doc-builder.js";import{I as Ga}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{C as O}from"../../chunks/CodeBlock-hf-doc-builder.js";import{C as zc}from"../../chunks/CourseFloatingBanner-hf-doc-builder.js";function Ic(S){let d,P,h,E,k;return{c(){d=n("p"),P=t("\u270F\uFE0F "),h=n("strong"),E=t("Experimente!"),k=t(" Clique em alguns dos URLs na carga JSON acima para ter uma ideia de que tipo de informa\xE7\xE3o cada issue do GitHub est\xE1 vinculado.")},l(f){d=i(f,"P",{});var w=l(d);P=o(w,"\u270F\uFE0F "),h=i(w,"STRONG",{});var D=l(h);E=o(D,"Experimente!"),D.forEach(a),k=o(w," Clique em alguns dos URLs na carga JSON acima para ter uma ideia de que tipo de informa\xE7\xE3o cada issue do GitHub est\xE1 vinculado."),w.forEach(a)},m(f,w){p(f,d,w),e(d,P),e(d,h),e(h,E),e(d,k)},d(f){f&&a(d)}}}function Rc(S){let d,P,h,E,k,f,w,D,$,q,A,H,C;return{c(){d=n("p"),P=t("\u26A0\uFE0F N\xE3o compartilhe um notebook com seu "),h=n("code"),E=t("GITHUB_TOKEN"),k=t(" colado nele. Recomendamos que voc\xEA exclua a \xFAltima c\xE9lula depois de execut\xE1-la para evitar o vazamento dessas informa\xE7\xF5es acidentalmente. Melhor ainda, armazene o token em um arquivo "),f=n("em"),w=t(".env"),D=t(" e use a "),$=n("a"),q=n("code"),A=t("python-dotenv"),H=t(" library"),C=t(" para carreg\xE1-lo automaticamente para voc\xEA como uma vari\xE1vel de ambiente."),this.h()},l(T){d=i(T,"P",{});var y=l(d);P=o(y,"\u26A0\uFE0F N\xE3o compartilhe um notebook com seu "),h=i(y,"CODE",{});var N=l(h);E=o(N,"GITHUB_TOKEN"),N.forEach(a),k=o(y," colado nele. Recomendamos que voc\xEA exclua a \xFAltima c\xE9lula depois de execut\xE1-la para evitar o vazamento dessas informa\xE7\xF5es acidentalmente. Melhor ainda, armazene o token em um arquivo "),f=i(y,"EM",{});var V=l(f);w=o(V,".env"),V.forEach(a),D=o(y," e use a "),$=i(y,"A",{href:!0,rel:!0});var R=l($);q=i(R,"CODE",{});var G=l(q);A=o(G,"python-dotenv"),G.forEach(a),H=o(R," library"),R.forEach(a),C=o(y," para carreg\xE1-lo automaticamente para voc\xEA como uma vari\xE1vel de ambiente."),y.forEach(a),this.h()},h(){m($,"href","https://github.com/theskumar/python-dotenv"),m($,"rel","nofollow")},m(T,y){p(T,d,y),e(d,P),e(d,h),e(h,E),e(d,k),e(d,f),e(f,w),e(d,D),e(d,$),e($,q),e(q,A),e($,H),e(d,C)},d(T){T&&a(d)}}}function Sc(S){let d,P,h,E,k,f,w,D,$,q,A,H,C,T,y,N,V,R,G,B;return{c(){d=n("p"),P=t("\u270F\uFE0F "),h=n("strong"),E=t("Experimente!"),k=t(" Calcule o tempo m\xE9dio que leva para fechar as issues em \u{1F917} Datasets. Voc\xEA pode achar a fun\xE7\xE3o "),f=n("code"),w=t("Dataset.filter()"),D=t(" \xFAtil para filtrar os pull requests e as issues abertas, e voc\xEA pode usar a fun\xE7\xE3o "),$=n("code"),q=t("Dataset.set_format()"),A=t(" para converter o conjunto de dados em um "),H=n("code"),C=t("DataFrame"),T=t(" para que voc\xEA possa manipular facilmente os timestamps "),y=n("code"),N=t("created_at"),V=t(" e "),R=n("code"),G=t("closed_at"),B=t(". Para pontos de b\xF4nus, calcule o tempo m\xE9dio que leva para fechar os pull requests.")},l(ps){d=i(ps,"P",{});var z=l(d);P=o(z,"\u270F\uFE0F "),h=i(z,"STRONG",{});var X=l(h);E=o(X,"Experimente!"),X.forEach(a),k=o(z," Calcule o tempo m\xE9dio que leva para fechar as issues em \u{1F917} Datasets. Voc\xEA pode achar a fun\xE7\xE3o "),f=i(z,"CODE",{});var ia=l(f);w=o(ia,"Dataset.filter()"),ia.forEach(a),D=o(z," \xFAtil para filtrar os pull requests e as issues abertas, e voc\xEA pode usar a fun\xE7\xE3o "),$=i(z,"CODE",{});var bs=l($);q=o(bs,"Dataset.set_format()"),bs.forEach(a),A=o(z," para converter o conjunto de dados em um "),H=i(z,"CODE",{});var la=l(H);C=o(la,"DataFrame"),la.forEach(a),T=o(z," para que voc\xEA possa manipular facilmente os timestamps "),y=i(z,"CODE",{});var pa=l(y);N=o(pa,"created_at"),pa.forEach(a),V=o(z," e "),R=i(z,"CODE",{});var ua=l(R);G=o(ua,"closed_at"),ua.forEach(a),B=o(z,". Para pontos de b\xF4nus, calcule o tempo m\xE9dio que leva para fechar os pull requests."),z.forEach(a)},m(ps,z){p(ps,d,z),e(d,P),e(d,h),e(h,E),e(d,k),e(d,f),e(f,w),e(d,D),e(d,$),e($,q),e(d,A),e(d,H),e(H,C),e(d,T),e(d,y),e(y,N),e(d,V),e(d,R),e(R,G),e(d,B)},d(ps){ps&&a(d)}}}function Uc(S){let d,P,h,E,k,f,w,D,$,q,A;return{c(){d=n("p"),P=t("\u270F\uFE0F "),h=n("strong"),E=t("Experimente!"),k=t(" Use seu nome de usu\xE1rio e senha do Hugging Face Hub para obter um token e criar um reposit\xF3rio vazio chamado "),f=n("code"),w=t("github-issues"),D=t(". Lembre-se de "),$=n("strong"),q=t("nunca salvar suas credenciais"),A=t(" no Colab ou em qualquer outro reposit\xF3rio, pois essas informa\xE7\xF5es podem ser exploradas por agentes mal-intencionados.")},l(H){d=i(H,"P",{});var C=l(d);P=o(C,"\u270F\uFE0F "),h=i(C,"STRONG",{});var T=l(h);E=o(T,"Experimente!"),T.forEach(a),k=o(C," Use seu nome de usu\xE1rio e senha do Hugging Face Hub para obter um token e criar um reposit\xF3rio vazio chamado "),f=i(C,"CODE",{});var y=l(f);w=o(y,"github-issues"),y.forEach(a),D=o(C,". Lembre-se de "),$=i(C,"STRONG",{});var N=l($);q=o(N,"nunca salvar suas credenciais"),N.forEach(a),A=o(C," no Colab ou em qualquer outro reposit\xF3rio, pois essas informa\xE7\xF5es podem ser exploradas por agentes mal-intencionados."),C.forEach(a)},m(H,C){p(H,d,C),e(d,P),e(d,h),e(h,E),e(d,k),e(d,f),e(f,w),e(d,D),e(d,$),e($,q),e(d,A)},d(H){H&&a(d)}}}function Lc(S){let d,P,h,E,k,f,w,D;return{c(){d=n("p"),P=t("\u{1F4A1} Voc\xEA tamb\xE9m pode enviar um conjunto de dados para o Hugging Face Hub diretamente do terminal usando "),h=n("code"),E=t("huggingface-cli"),k=t(" e um pouco de magia Git. Consulte o "),f=n("a"),w=t("guia do \u{1F917} Datasets"),D=t(" para obter detalhes sobre como fazer isso."),this.h()},l($){d=i($,"P",{});var q=l(d);P=o(q,"\u{1F4A1} Voc\xEA tamb\xE9m pode enviar um conjunto de dados para o Hugging Face Hub diretamente do terminal usando "),h=i(q,"CODE",{});var A=l(h);E=o(A,"huggingface-cli"),A.forEach(a),k=o(q," e um pouco de magia Git. Consulte o "),f=i(q,"A",{href:!0,rel:!0});var H=l(f);w=o(H,"guia do \u{1F917} Datasets"),H.forEach(a),D=o(q," para obter detalhes sobre como fazer isso."),q.forEach(a),this.h()},h(){m(f,"href","https://huggingface.co/docs/datasets/share.html#add-a-community-dataset"),m(f,"rel","nofollow")},m($,q){p($,d,q),e(d,P),e(d,h),e(h,E),e(d,k),e(d,f),e(f,w),e(d,D)},d($){$&&a(d)}}}function Mc(S){let d,P,h,E,k,f,w,D,$,q,A,H,C,T;return{c(){d=n("p"),P=t("\u270F\uFE0F "),h=n("strong"),E=t("Experimente!"),k=t(" Use o aplicativo "),f=n("code"),w=t("dataset-tagging"),D=t(" e "),$=n("a"),q=t("guia do \u{1F917} datasets"),A=t(" para concluir o "),H=n("em"),C=t("Arquivo README.md"),T=t(" para o conjunto de dados de issues do GitHub."),this.h()},l(y){d=i(y,"P",{});var N=l(d);P=o(N,"\u270F\uFE0F "),h=i(N,"STRONG",{});var V=l(h);E=o(V,"Experimente!"),V.forEach(a),k=o(N," Use o aplicativo "),f=i(N,"CODE",{});var R=l(f);w=o(R,"dataset-tagging"),R.forEach(a),D=o(N," e "),$=i(N,"A",{href:!0,rel:!0});var G=l($);q=o(G,"guia do \u{1F917} datasets"),G.forEach(a),A=o(N," para concluir o "),H=i(N,"EM",{});var B=l(H);C=o(B,"Arquivo README.md"),B.forEach(a),T=o(N," para o conjunto de dados de issues do GitHub."),N.forEach(a),this.h()},h(){m($,"href","https://github.com/huggingface/datasets/blob/master/templates/README_guide.md"),m($,"rel","nofollow")},m(y,N){p(y,d,N),e(d,P),e(d,h),e(h,E),e(d,k),e(d,f),e(f,w),e(d,D),e(d,$),e($,q),e(d,A),e(d,H),e(H,C),e(d,T)},d(y){y&&a(d)}}}function Fc(S){let d,P,h,E,k,f,w,D;return{c(){d=n("p"),P=t("\u270F\uFE0F "),h=n("strong"),E=t("Experimente!"),k=t(" Siga as etapas que seguimos nesta se\xE7\xE3o para criar um conjunto de dados de issues do GitHub para sua biblioteca de c\xF3digo aberto favorita (escolha algo diferente do \u{1F917} datasets, \xE9 claro!). Para pontos de b\xF4nus, ajuste um classificador multilabel para prever as tags presentes no campo "),f=n("code"),w=t("labels"),D=t(".")},l($){d=i($,"P",{});var q=l(d);P=o(q,"\u270F\uFE0F "),h=i(q,"STRONG",{});var A=l(h);E=o(A,"Experimente!"),A.forEach(a),k=o(q," Siga as etapas que seguimos nesta se\xE7\xE3o para criar um conjunto de dados de issues do GitHub para sua biblioteca de c\xF3digo aberto favorita (escolha algo diferente do \u{1F917} datasets, \xE9 claro!). Para pontos de b\xF4nus, ajuste um classificador multilabel para prever as tags presentes no campo "),f=i(q,"CODE",{});var H=l(f);w=o(H,"labels"),H.forEach(a),D=o(q,"."),q.forEach(a)},m($,q){p($,d,q),e(d,P),e(d,h),e(h,E),e(d,k),e(d,f),e(f,w),e(d,D)},d($){$&&a(d)}}}function Vc(S){let d,P,h,E,k,f,w,D,$,q,A,H,C,T,y,N,V,R,G,B,ps,z,X,ia,bs,la,pa,ua,za,rn,Xt,ca,nn,Wt,us,vs,Ia,Ks,ln,Ra,pn,Yt,xs,un,Xs,cn,dn,so,Ws,Ys,Hp,eo,da,mn,ao,se,ee,Cp,to,Q,hn,ae,fn,gn,Sa,_n,bn,te,vn,xn,oo,js,jn,Ua,$n,qn,ro,oe,no,W,En,La,wn,kn,Ma,yn,Pn,io,re,lo,$s,Dn,Fa,Hn,Cn,po,ne,uo,ie,co,J,On,Va,An,Nn,le,Tn,Gn,Ba,zn,In,mo,pe,ho,ue,fo,Z,Rn,Qa,Sn,Un,Ja,Ln,Mn,Za,Fn,Vn,go,qs,_o,U,Bn,ce,Qn,Jn,Ka,Zn,Kn,de,Xn,Wn,Xa,Yn,si,bo,me,vo,Es,xo,ma,ei,jo,he,$o,Y,ai,Wa,ti,oi,Ya,ri,ni,qo,fe,Eo,ws,ii,ha,li,pi,wo,ge,ko,_e,yo,ss,ui,be,ci,di,ve,mi,hi,Po,fa,cs,fi,st,gi,_i,et,bi,vi,Do,ga,xi,Ho,ds,ks,at,xe,ji,tt,$i,Co,I,qi,ot,Ei,wi,_a,ki,yi,rt,Pi,Di,nt,Hi,Ci,it,Oi,Ai,lt,Ni,Ti,Oo,je,Ao,$e,No,L,Gi,pt,zi,Ii,ut,Ri,Si,ct,Ui,Li,dt,Mi,Fi,To,qe,Go,ys,zo,ba,Vi,Io,va,Bi,Ro,ms,Ps,mt,Ee,Qi,ht,Ji,So,xa,Zi,Uo,we,ke,Op,Lo,Ds,Ki,Hs,Xi,ft,Wi,Yi,Mo,ye,Fo,Pe,Vo,K,sl,gt,el,al,_t,tl,ol,bt,rl,nl,Bo,De,Qo,He,Jo,es,il,vt,ll,pl,xt,ul,cl,Zo,Ce,Ko,ja,dl,Xo,Oe,Wo,hs,Cs,jt,Ae,ml,$t,hl,Yo,Ne,sr,as,fl,Te,gl,_l,qt,bl,vl,er,Ge,ar,ze,tr,Os,xl,Et,jl,$l,or,As,ql,wt,El,wl,rr,Ie,nr,Ns,kl,kt,yl,Pl,ir,Re,lr,Ts,Dl,yt,Hl,Cl,pr,Se,ur,Ue,cr,ts,Ol,Pt,Al,Nl,Dt,Tl,Gl,dr,Gs,mr,zs,zl,Ht,Il,Rl,hr,Le,fr,M,Sl,Ct,Ul,Ll,Ot,Ml,Fl,At,Vl,Bl,Nt,Ql,Jl,gr,Me,_r,Is,Zl,Tt,Kl,Xl,br,Fe,vr,Rs,Wl,Gt,Yl,sp,xr,Ve,Be,Ap,jr,os,ep,zt,ap,tp,It,op,rp,$r,Qe,qr,Je,Er,Ss,np,Rt,ip,lp,wr,Us,kr,fs,Ls,St,Ze,pp,Ut,up,yr,$a,cp,Pr,Ms,dp,Lt,mp,hp,Dr,qa,gs,fp,Ke,Mt,gp,_p,Ft,bp,vp,Hr,Xe,We,Np,Cr,Ye,sa,xp,ea,jp,$p,Or,rs,qp,Vt,Ep,wp,Bt,kp,yp,Ar,aa,ta,Tp,Nr,Fs,Tr,Ea,Pp,Gr,Vs,zr;return f=new Ga({}),A=new zc({props:{chapter:5,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/pt/chapter5/section5.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/pt/chapter5/section5.ipynb"}]}}),Ks=new Ga({}),oe=new O({props:{code:"!pip install requests",highlighted:"!pip install requests"}}),re=new O({props:{code:`import requests

url = "https://api.github.com/repos/huggingface/datasets/issues?page=1&per_page=1"
response = requests.get(url)`,highlighted:`<span class="hljs-keyword">import</span> requests

url = <span class="hljs-string">&quot;https://api.github.com/repos/huggingface/datasets/issues?page=1&amp;per_page=1&quot;</span>
response = requests.get(url)`}}),ne=new O({props:{code:"response.status_code",highlighted:"response.status_code"}}),ie=new O({props:{code:"200",highlighted:'<span class="hljs-number">200</span>'}}),pe=new O({props:{code:"response.json()",highlighted:"response.json()"}}),ue=new O({props:{code:`[{'url': 'https://api.github.com/repos/huggingface/datasets/issues/2792',
  'repository_url': 'https://api.github.com/repos/huggingface/datasets',
  'labels_url': 'https://api.github.com/repos/huggingface/datasets/issues/2792/labels{/name}',
  'comments_url': 'https://api.github.com/repos/huggingface/datasets/issues/2792/comments',
  'events_url': 'https://api.github.com/repos/huggingface/datasets/issues/2792/events',
  'html_url': 'https://github.com/huggingface/datasets/pull/2792',
  'id': 968650274,
  'node_id': 'MDExOlB1bGxSZXF1ZXN0NzEwNzUyMjc0',
  'number': 2792,
  'title': 'Update GooAQ',
  'user': {'login': 'bhavitvyamalik',
   'id': 19718818,
   'node_id': 'MDQ6VXNlcjE5NzE4ODE4',
   'avatar_url': 'https://avatars.githubusercontent.com/u/19718818?v=4',
   'gravatar_id': '',
   'url': 'https://api.github.com/users/bhavitvyamalik',
   'html_url': 'https://github.com/bhavitvyamalik',
   'followers_url': 'https://api.github.com/users/bhavitvyamalik/followers',
   'following_url': 'https://api.github.com/users/bhavitvyamalik/following{/other_user}',
   'gists_url': 'https://api.github.com/users/bhavitvyamalik/gists{/gist_id}',
   'starred_url': 'https://api.github.com/users/bhavitvyamalik/starred{/owner}{/repo}',
   'subscriptions_url': 'https://api.github.com/users/bhavitvyamalik/subscriptions',
   'organizations_url': 'https://api.github.com/users/bhavitvyamalik/orgs',
   'repos_url': 'https://api.github.com/users/bhavitvyamalik/repos',
   'events_url': 'https://api.github.com/users/bhavitvyamalik/events{/privacy}',
   'received_events_url': 'https://api.github.com/users/bhavitvyamalik/received_events',
   'type': 'User',
   'site_admin': False},
  'labels': [],
  'state': 'open',
  'locked': False,
  'assignee': None,
  'assignees': [],
  'milestone': None,
  'comments': 1,
  'created_at': '2021-08-12T11:40:18Z',
  'updated_at': '2021-08-12T12:31:17Z',
  'closed_at': None,
  'author_association': 'CONTRIBUTOR',
  'active_lock_reason': None,
  'pull_request': {'url': 'https://api.github.com/repos/huggingface/datasets/pulls/2792',
   'html_url': 'https://github.com/huggingface/datasets/pull/2792',
   'diff_url': 'https://github.com/huggingface/datasets/pull/2792.diff',
   'patch_url': 'https://github.com/huggingface/datasets/pull/2792.patch'},
  'body': '[GooAQ](https://github.com/allenai/gooaq) dataset was recently updated after splits were added for the same. This PR contains new updated GooAQ with train/val/test splits and updated README as well.',
  'performed_via_github_app': None}]`,highlighted:`[{<span class="hljs-string">&#x27;url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/repos/huggingface/datasets/issues/2792&#x27;</span>,
  <span class="hljs-string">&#x27;repository_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/repos/huggingface/datasets&#x27;</span>,
  <span class="hljs-string">&#x27;labels_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/repos/huggingface/datasets/issues/2792/labels{/name}&#x27;</span>,
  <span class="hljs-string">&#x27;comments_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/repos/huggingface/datasets/issues/2792/comments&#x27;</span>,
  <span class="hljs-string">&#x27;events_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/repos/huggingface/datasets/issues/2792/events&#x27;</span>,
  <span class="hljs-string">&#x27;html_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/2792&#x27;</span>,
  <span class="hljs-string">&#x27;id&#x27;</span>: <span class="hljs-number">968650274</span>,
  <span class="hljs-string">&#x27;node_id&#x27;</span>: <span class="hljs-string">&#x27;MDExOlB1bGxSZXF1ZXN0NzEwNzUyMjc0&#x27;</span>,
  <span class="hljs-string">&#x27;number&#x27;</span>: <span class="hljs-number">2792</span>,
  <span class="hljs-string">&#x27;title&#x27;</span>: <span class="hljs-string">&#x27;Update GooAQ&#x27;</span>,
  <span class="hljs-string">&#x27;user&#x27;</span>: {<span class="hljs-string">&#x27;login&#x27;</span>: <span class="hljs-string">&#x27;bhavitvyamalik&#x27;</span>,
   <span class="hljs-string">&#x27;id&#x27;</span>: <span class="hljs-number">19718818</span>,
   <span class="hljs-string">&#x27;node_id&#x27;</span>: <span class="hljs-string">&#x27;MDQ6VXNlcjE5NzE4ODE4&#x27;</span>,
   <span class="hljs-string">&#x27;avatar_url&#x27;</span>: <span class="hljs-string">&#x27;https://avatars.githubusercontent.com/u/19718818?v=4&#x27;</span>,
   <span class="hljs-string">&#x27;gravatar_id&#x27;</span>: <span class="hljs-string">&#x27;&#x27;</span>,
   <span class="hljs-string">&#x27;url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik&#x27;</span>,
   <span class="hljs-string">&#x27;html_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/bhavitvyamalik&#x27;</span>,
   <span class="hljs-string">&#x27;followers_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/followers&#x27;</span>,
   <span class="hljs-string">&#x27;following_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/following{/other_user}&#x27;</span>,
   <span class="hljs-string">&#x27;gists_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/gists{/gist_id}&#x27;</span>,
   <span class="hljs-string">&#x27;starred_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/starred{/owner}{/repo}&#x27;</span>,
   <span class="hljs-string">&#x27;subscriptions_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/subscriptions&#x27;</span>,
   <span class="hljs-string">&#x27;organizations_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/orgs&#x27;</span>,
   <span class="hljs-string">&#x27;repos_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/repos&#x27;</span>,
   <span class="hljs-string">&#x27;events_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/events{/privacy}&#x27;</span>,
   <span class="hljs-string">&#x27;received_events_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/received_events&#x27;</span>,
   <span class="hljs-string">&#x27;type&#x27;</span>: <span class="hljs-string">&#x27;User&#x27;</span>,
   <span class="hljs-string">&#x27;site_admin&#x27;</span>: <span class="hljs-literal">False</span>},
  <span class="hljs-string">&#x27;labels&#x27;</span>: [],
  <span class="hljs-string">&#x27;state&#x27;</span>: <span class="hljs-string">&#x27;open&#x27;</span>,
  <span class="hljs-string">&#x27;locked&#x27;</span>: <span class="hljs-literal">False</span>,
  <span class="hljs-string">&#x27;assignee&#x27;</span>: <span class="hljs-literal">None</span>,
  <span class="hljs-string">&#x27;assignees&#x27;</span>: [],
  <span class="hljs-string">&#x27;milestone&#x27;</span>: <span class="hljs-literal">None</span>,
  <span class="hljs-string">&#x27;comments&#x27;</span>: <span class="hljs-number">1</span>,
  <span class="hljs-string">&#x27;created_at&#x27;</span>: <span class="hljs-string">&#x27;2021-08-12T11:40:18Z&#x27;</span>,
  <span class="hljs-string">&#x27;updated_at&#x27;</span>: <span class="hljs-string">&#x27;2021-08-12T12:31:17Z&#x27;</span>,
  <span class="hljs-string">&#x27;closed_at&#x27;</span>: <span class="hljs-literal">None</span>,
  <span class="hljs-string">&#x27;author_association&#x27;</span>: <span class="hljs-string">&#x27;CONTRIBUTOR&#x27;</span>,
  <span class="hljs-string">&#x27;active_lock_reason&#x27;</span>: <span class="hljs-literal">None</span>,
  <span class="hljs-string">&#x27;pull_request&#x27;</span>: {<span class="hljs-string">&#x27;url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/repos/huggingface/datasets/pulls/2792&#x27;</span>,
   <span class="hljs-string">&#x27;html_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/2792&#x27;</span>,
   <span class="hljs-string">&#x27;diff_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/2792.diff&#x27;</span>,
   <span class="hljs-string">&#x27;patch_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/2792.patch&#x27;</span>},
  <span class="hljs-string">&#x27;body&#x27;</span>: <span class="hljs-string">&#x27;[GooAQ](https://github.com/allenai/gooaq) dataset was recently updated after splits were added for the same. This PR contains new updated GooAQ with train/val/test splits and updated README as well.&#x27;</span>,
  <span class="hljs-string">&#x27;performed_via_github_app&#x27;</span>: <span class="hljs-literal">None</span>}]`}}),qs=new na({props:{$$slots:{default:[Ic]},$$scope:{ctx:S}}}),me=new O({props:{code:`GITHUB_TOKEN = xxx  # Copy your GitHub token here
headers = {"Authorization": f"token {GITHUB_TOKEN}"}`,highlighted:`GITHUB_TOKEN = xxx  <span class="hljs-comment"># Copy your GitHub token here</span>
headers = {<span class="hljs-string">&quot;Authorization&quot;</span>: <span class="hljs-string">f&quot;token <span class="hljs-subst">{GITHUB_TOKEN}</span>&quot;</span>}`}}),Es=new na({props:{warning:!0,$$slots:{default:[Rc]},$$scope:{ctx:S}}}),he=new O({props:{code:`import time
import math
from pathlib import Path
import pandas as pd
from tqdm.notebook import tqdm


def fetch_issues(
    owner="huggingface",
    repo="datasets",
    num_issues=10_000,
    rate_limit=5_000,
    issues_path=Path("."),
):
    if not issues_path.is_dir():
        issues_path.mkdir(exist_ok=True)

    batch = []
    all_issues = []
    per_page = 100  # Number of issues to return per page
    num_pages = math.ceil(num_issues / per_page)
    base_url = "https://api.github.com/repos"

    for page in tqdm(range(num_pages)):
        # Query with state=all to get both open and closed issues
        query = f"issues?page={page}&per_page={per_page}&state=all"
        issues = requests.get(f"{base_url}/{owner}/{repo}/{query}", headers=headers)
        batch.extend(issues.json())

        if len(batch) > rate_limit and len(all_issues) < num_issues:
            all_issues.extend(batch)
            batch = []  # Flush batch for next time period
            print(f"Reached GitHub rate limit. Sleeping for one hour ...")
            time.sleep(60 * 60 + 1)

    all_issues.extend(batch)
    df = pd.DataFrame.from_records(all_issues)
    df.to_json(f"{issues_path}/{repo}-issues.jsonl", orient="records", lines=True)
    print(
        f"Downloaded all the issues for {repo}! Dataset stored at {issues_path}/{repo}-issues.jsonl"
    )`,highlighted:`<span class="hljs-keyword">import</span> time
<span class="hljs-keyword">import</span> math
<span class="hljs-keyword">from</span> pathlib <span class="hljs-keyword">import</span> Path
<span class="hljs-keyword">import</span> pandas <span class="hljs-keyword">as</span> pd
<span class="hljs-keyword">from</span> tqdm.notebook <span class="hljs-keyword">import</span> tqdm


<span class="hljs-keyword">def</span> <span class="hljs-title function_">fetch_issues</span>(<span class="hljs-params">
    owner=<span class="hljs-string">&quot;huggingface&quot;</span>,
    repo=<span class="hljs-string">&quot;datasets&quot;</span>,
    num_issues=<span class="hljs-number">10_000</span>,
    rate_limit=<span class="hljs-number">5_000</span>,
    issues_path=Path(<span class="hljs-params"><span class="hljs-string">&quot;.&quot;</span></span>),
</span>):
    <span class="hljs-keyword">if</span> <span class="hljs-keyword">not</span> issues_path.is_dir():
        issues_path.mkdir(exist_ok=<span class="hljs-literal">True</span>)

    batch = []
    all_issues = []
    per_page = <span class="hljs-number">100</span>  <span class="hljs-comment"># Number of issues to return per page</span>
    num_pages = math.ceil(num_issues / per_page)
    base_url = <span class="hljs-string">&quot;https://api.github.com/repos&quot;</span>

    <span class="hljs-keyword">for</span> page <span class="hljs-keyword">in</span> tqdm(<span class="hljs-built_in">range</span>(num_pages)):
        <span class="hljs-comment"># Query with state=all to get both open and closed issues</span>
        query = <span class="hljs-string">f&quot;issues?page=<span class="hljs-subst">{page}</span>&amp;per_page=<span class="hljs-subst">{per_page}</span>&amp;state=all&quot;</span>
        issues = requests.get(<span class="hljs-string">f&quot;<span class="hljs-subst">{base_url}</span>/<span class="hljs-subst">{owner}</span>/<span class="hljs-subst">{repo}</span>/<span class="hljs-subst">{query}</span>&quot;</span>, headers=headers)
        batch.extend(issues.json())

        <span class="hljs-keyword">if</span> <span class="hljs-built_in">len</span>(batch) &gt; rate_limit <span class="hljs-keyword">and</span> <span class="hljs-built_in">len</span>(all_issues) &lt; num_issues:
            all_issues.extend(batch)
            batch = []  <span class="hljs-comment"># Flush batch for next time period</span>
            <span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Reached GitHub rate limit. Sleeping for one hour ...&quot;</span>)
            time.sleep(<span class="hljs-number">60</span> * <span class="hljs-number">60</span> + <span class="hljs-number">1</span>)

    all_issues.extend(batch)
    df = pd.DataFrame.from_records(all_issues)
    df.to_json(<span class="hljs-string">f&quot;<span class="hljs-subst">{issues_path}</span>/<span class="hljs-subst">{repo}</span>-issues.jsonl&quot;</span>, orient=<span class="hljs-string">&quot;records&quot;</span>, lines=<span class="hljs-literal">True</span>)
    <span class="hljs-built_in">print</span>(
        <span class="hljs-string">f&quot;Downloaded all the issues for <span class="hljs-subst">{repo}</span>! Dataset stored at <span class="hljs-subst">{issues_path}</span>/<span class="hljs-subst">{repo}</span>-issues.jsonl&quot;</span>
    )`}}),fe=new O({props:{code:`# Depending on your internet connection, this can take several minutes to run...
fetch_issues()`,highlighted:`<span class="hljs-comment"># Depending on your internet connection, this can take several minutes to run...</span>
fetch_issues()`}}),ge=new O({props:{code:`issues_dataset = load_dataset("json", data_files="datasets-issues.jsonl", split="train")
issues_dataset`,highlighted:`issues_dataset = load_dataset(<span class="hljs-string">&quot;json&quot;</span>, data_files=<span class="hljs-string">&quot;datasets-issues.jsonl&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>)
issues_dataset`}}),_e=new O({props:{code:`Dataset({
    features: ['url', 'repository_url', 'labels_url', 'comments_url', 'events_url', 'html_url', 'id', 'node_id', 'number', 'title', 'user', 'labels', 'state', 'locked', 'assignee', 'assignees', 'milestone', 'comments', 'created_at', 'updated_at', 'closed_at', 'author_association', 'active_lock_reason', 'pull_request', 'body', 'timeline_url', 'performed_via_github_app'],
    num_rows: 3019
})`,highlighted:`Dataset({
    features: [<span class="hljs-string">&#x27;url&#x27;</span>, <span class="hljs-string">&#x27;repository_url&#x27;</span>, <span class="hljs-string">&#x27;labels_url&#x27;</span>, <span class="hljs-string">&#x27;comments_url&#x27;</span>, <span class="hljs-string">&#x27;events_url&#x27;</span>, <span class="hljs-string">&#x27;html_url&#x27;</span>, <span class="hljs-string">&#x27;id&#x27;</span>, <span class="hljs-string">&#x27;node_id&#x27;</span>, <span class="hljs-string">&#x27;number&#x27;</span>, <span class="hljs-string">&#x27;title&#x27;</span>, <span class="hljs-string">&#x27;user&#x27;</span>, <span class="hljs-string">&#x27;labels&#x27;</span>, <span class="hljs-string">&#x27;state&#x27;</span>, <span class="hljs-string">&#x27;locked&#x27;</span>, <span class="hljs-string">&#x27;assignee&#x27;</span>, <span class="hljs-string">&#x27;assignees&#x27;</span>, <span class="hljs-string">&#x27;milestone&#x27;</span>, <span class="hljs-string">&#x27;comments&#x27;</span>, <span class="hljs-string">&#x27;created_at&#x27;</span>, <span class="hljs-string">&#x27;updated_at&#x27;</span>, <span class="hljs-string">&#x27;closed_at&#x27;</span>, <span class="hljs-string">&#x27;author_association&#x27;</span>, <span class="hljs-string">&#x27;active_lock_reason&#x27;</span>, <span class="hljs-string">&#x27;pull_request&#x27;</span>, <span class="hljs-string">&#x27;body&#x27;</span>, <span class="hljs-string">&#x27;timeline_url&#x27;</span>, <span class="hljs-string">&#x27;performed_via_github_app&#x27;</span>],
    num_rows: <span class="hljs-number">3019</span>
})`}}),xe=new Ga({}),je=new O({props:{code:`sample = issues_dataset.shuffle(seed=666).select(range(3))

# Print out the URL and pull request entries
for url, pr in zip(sample["html_url"], sample["pull_request"]):
    print(f">> URL: {url}")
    print(f">> Pull request: {pr}\\n")`,highlighted:`sample = issues_dataset.shuffle(seed=<span class="hljs-number">666</span>).select(<span class="hljs-built_in">range</span>(<span class="hljs-number">3</span>))

<span class="hljs-comment"># Print out the URL and pull request entries</span>
<span class="hljs-keyword">for</span> url, pr <span class="hljs-keyword">in</span> <span class="hljs-built_in">zip</span>(sample[<span class="hljs-string">&quot;html_url&quot;</span>], sample[<span class="hljs-string">&quot;pull_request&quot;</span>]):
    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;&gt;&gt; URL: <span class="hljs-subst">{url}</span>&quot;</span>)
    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;&gt;&gt; Pull request: <span class="hljs-subst">{pr}</span>\\n&quot;</span>)`}}),$e=new O({props:{code:`>> URL: https://github.com/huggingface/datasets/pull/850
>> Pull request: {'url': 'https://api.github.com/repos/huggingface/datasets/pulls/850', 'html_url': 'https://github.com/huggingface/datasets/pull/850', 'diff_url': 'https://github.com/huggingface/datasets/pull/850.diff', 'patch_url': 'https://github.com/huggingface/datasets/pull/850.patch'}

>> URL: https://github.com/huggingface/datasets/issues/2773
>> Pull request: None

>> URL: https://github.com/huggingface/datasets/pull/783
>> Pull request: {'url': 'https://api.github.com/repos/huggingface/datasets/pulls/783', 'html_url': 'https://github.com/huggingface/datasets/pull/783', 'diff_url': 'https://github.com/huggingface/datasets/pull/783.diff', 'patch_url': 'https://github.com/huggingface/datasets/pull/783.patch'}`,highlighted:`&gt;&gt; URL: https://github.com/huggingface/datasets/pull/<span class="hljs-number">850</span>
&gt;&gt; Pull request: {<span class="hljs-string">&#x27;url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/repos/huggingface/datasets/pulls/850&#x27;</span>, <span class="hljs-string">&#x27;html_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/850&#x27;</span>, <span class="hljs-string">&#x27;diff_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/850.diff&#x27;</span>, <span class="hljs-string">&#x27;patch_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/850.patch&#x27;</span>}

&gt;&gt; URL: https://github.com/huggingface/datasets/issues/<span class="hljs-number">2773</span>
&gt;&gt; Pull request: <span class="hljs-literal">None</span>

&gt;&gt; URL: https://github.com/huggingface/datasets/pull/<span class="hljs-number">783</span>
&gt;&gt; Pull request: {<span class="hljs-string">&#x27;url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/repos/huggingface/datasets/pulls/783&#x27;</span>, <span class="hljs-string">&#x27;html_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/783&#x27;</span>, <span class="hljs-string">&#x27;diff_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/783.diff&#x27;</span>, <span class="hljs-string">&#x27;patch_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/783.patch&#x27;</span>}`}}),qe=new O({props:{code:`issues_dataset = issues_dataset.map(
    lambda x: {"is_pull_request": False if x["pull_request"] is None else True}
)`,highlighted:`issues_dataset = issues_dataset.<span class="hljs-built_in">map</span>(
    <span class="hljs-keyword">lambda</span> x: {<span class="hljs-string">&quot;is_pull_request&quot;</span>: <span class="hljs-literal">False</span> <span class="hljs-keyword">if</span> x[<span class="hljs-string">&quot;pull_request&quot;</span>] <span class="hljs-keyword">is</span> <span class="hljs-literal">None</span> <span class="hljs-keyword">else</span> <span class="hljs-literal">True</span>}
)`}}),ys=new na({props:{$$slots:{default:[Sc]},$$scope:{ctx:S}}}),Ee=new Ga({}),ye=new O({props:{code:`issue_number = 2792
url = f"https://api.github.com/repos/huggingface/datasets/issues/{issue_number}/comments"
response = requests.get(url, headers=headers)
response.json()`,highlighted:`issue_number = <span class="hljs-number">2792</span>
url = <span class="hljs-string">f&quot;https://api.github.com/repos/huggingface/datasets/issues/<span class="hljs-subst">{issue_number}</span>/comments&quot;</span>
response = requests.get(url, headers=headers)
response.json()`}}),Pe=new O({props:{code:`[{'url': 'https://api.github.com/repos/huggingface/datasets/issues/comments/897594128',
  'html_url': 'https://github.com/huggingface/datasets/pull/2792#issuecomment-897594128',
  'issue_url': 'https://api.github.com/repos/huggingface/datasets/issues/2792',
  'id': 897594128,
  'node_id': 'IC_kwDODunzps41gDMQ',
  'user': {'login': 'bhavitvyamalik',
   'id': 19718818,
   'node_id': 'MDQ6VXNlcjE5NzE4ODE4',
   'avatar_url': 'https://avatars.githubusercontent.com/u/19718818?v=4',
   'gravatar_id': '',
   'url': 'https://api.github.com/users/bhavitvyamalik',
   'html_url': 'https://github.com/bhavitvyamalik',
   'followers_url': 'https://api.github.com/users/bhavitvyamalik/followers',
   'following_url': 'https://api.github.com/users/bhavitvyamalik/following{/other_user}',
   'gists_url': 'https://api.github.com/users/bhavitvyamalik/gists{/gist_id}',
   'starred_url': 'https://api.github.com/users/bhavitvyamalik/starred{/owner}{/repo}',
   'subscriptions_url': 'https://api.github.com/users/bhavitvyamalik/subscriptions',
   'organizations_url': 'https://api.github.com/users/bhavitvyamalik/orgs',
   'repos_url': 'https://api.github.com/users/bhavitvyamalik/repos',
   'events_url': 'https://api.github.com/users/bhavitvyamalik/events{/privacy}',
   'received_events_url': 'https://api.github.com/users/bhavitvyamalik/received_events',
   'type': 'User',
   'site_admin': False},
  'created_at': '2021-08-12T12:21:52Z',
  'updated_at': '2021-08-12T12:31:17Z',
  'author_association': 'CONTRIBUTOR',
  'body': "@albertvillanova my tests are failing here:\\r\\n\`\`\`\\r\\ndataset_name = 'gooaq'\\r\\n\\r\\n    def test_load_dataset(self, dataset_name):\\r\\n        configs = self.dataset_tester.load_all_configs(dataset_name, is_local=True)[:1]\\r\\n>       self.dataset_tester.check_load_dataset(dataset_name, configs, is_local=True, use_local_dummy_data=True)\\r\\n\\r\\ntests/test_dataset_common.py:234: \\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \\r\\ntests/test_dataset_common.py:187: in check_load_dataset\\r\\n    self.parent.assertTrue(len(dataset[split]) > 0)\\r\\nE   AssertionError: False is not true\\r\\n\`\`\`\\r\\nWhen I try loading dataset on local machine it works fine. Any suggestions on how can I avoid this error?",
  'performed_via_github_app': None}]`,highlighted:`[{<span class="hljs-string">&#x27;url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/repos/huggingface/datasets/issues/comments/897594128&#x27;</span>,
  <span class="hljs-string">&#x27;html_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/huggingface/datasets/pull/2792#issuecomment-897594128&#x27;</span>,
  <span class="hljs-string">&#x27;issue_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/repos/huggingface/datasets/issues/2792&#x27;</span>,
  <span class="hljs-string">&#x27;id&#x27;</span>: <span class="hljs-number">897594128</span>,
  <span class="hljs-string">&#x27;node_id&#x27;</span>: <span class="hljs-string">&#x27;IC_kwDODunzps41gDMQ&#x27;</span>,
  <span class="hljs-string">&#x27;user&#x27;</span>: {<span class="hljs-string">&#x27;login&#x27;</span>: <span class="hljs-string">&#x27;bhavitvyamalik&#x27;</span>,
   <span class="hljs-string">&#x27;id&#x27;</span>: <span class="hljs-number">19718818</span>,
   <span class="hljs-string">&#x27;node_id&#x27;</span>: <span class="hljs-string">&#x27;MDQ6VXNlcjE5NzE4ODE4&#x27;</span>,
   <span class="hljs-string">&#x27;avatar_url&#x27;</span>: <span class="hljs-string">&#x27;https://avatars.githubusercontent.com/u/19718818?v=4&#x27;</span>,
   <span class="hljs-string">&#x27;gravatar_id&#x27;</span>: <span class="hljs-string">&#x27;&#x27;</span>,
   <span class="hljs-string">&#x27;url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik&#x27;</span>,
   <span class="hljs-string">&#x27;html_url&#x27;</span>: <span class="hljs-string">&#x27;https://github.com/bhavitvyamalik&#x27;</span>,
   <span class="hljs-string">&#x27;followers_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/followers&#x27;</span>,
   <span class="hljs-string">&#x27;following_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/following{/other_user}&#x27;</span>,
   <span class="hljs-string">&#x27;gists_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/gists{/gist_id}&#x27;</span>,
   <span class="hljs-string">&#x27;starred_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/starred{/owner}{/repo}&#x27;</span>,
   <span class="hljs-string">&#x27;subscriptions_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/subscriptions&#x27;</span>,
   <span class="hljs-string">&#x27;organizations_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/orgs&#x27;</span>,
   <span class="hljs-string">&#x27;repos_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/repos&#x27;</span>,
   <span class="hljs-string">&#x27;events_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/events{/privacy}&#x27;</span>,
   <span class="hljs-string">&#x27;received_events_url&#x27;</span>: <span class="hljs-string">&#x27;https://api.github.com/users/bhavitvyamalik/received_events&#x27;</span>,
   <span class="hljs-string">&#x27;type&#x27;</span>: <span class="hljs-string">&#x27;User&#x27;</span>,
   <span class="hljs-string">&#x27;site_admin&#x27;</span>: <span class="hljs-literal">False</span>},
  <span class="hljs-string">&#x27;created_at&#x27;</span>: <span class="hljs-string">&#x27;2021-08-12T12:21:52Z&#x27;</span>,
  <span class="hljs-string">&#x27;updated_at&#x27;</span>: <span class="hljs-string">&#x27;2021-08-12T12:31:17Z&#x27;</span>,
  <span class="hljs-string">&#x27;author_association&#x27;</span>: <span class="hljs-string">&#x27;CONTRIBUTOR&#x27;</span>,
  <span class="hljs-string">&#x27;body&#x27;</span>: <span class="hljs-string">&quot;@albertvillanova my tests are failing here:\\r\\n\`\`\`\\r\\ndataset_name = &#x27;gooaq&#x27;\\r\\n\\r\\n    def test_load_dataset(self, dataset_name):\\r\\n        configs = self.dataset_tester.load_all_configs(dataset_name, is_local=True)[:1]\\r\\n&gt;       self.dataset_tester.check_load_dataset(dataset_name, configs, is_local=True, use_local_dummy_data=True)\\r\\n\\r\\ntests/test_dataset_common.py:234: \\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \\r\\ntests/test_dataset_common.py:187: in check_load_dataset\\r\\n    self.parent.assertTrue(len(dataset[split]) &gt; 0)\\r\\nE   AssertionError: False is not true\\r\\n\`\`\`\\r\\nWhen I try loading dataset on local machine it works fine. Any suggestions on how can I avoid this error?&quot;</span>,
  <span class="hljs-string">&#x27;performed_via_github_app&#x27;</span>: <span class="hljs-literal">None</span>}]`}}),De=new O({props:{code:`def get_comments(issue_number):
    url = f"https://api.github.com/repos/huggingface/datasets/issues/{issue_number}/comments"
    response = requests.get(url, headers=headers)
    return [r["body"] for r in response.json()]


# Test our function works as expected
get_comments(2792)`,highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">get_comments</span>(<span class="hljs-params">issue_number</span>):
    url = <span class="hljs-string">f&quot;https://api.github.com/repos/huggingface/datasets/issues/<span class="hljs-subst">{issue_number}</span>/comments&quot;</span>
    response = requests.get(url, headers=headers)
    <span class="hljs-keyword">return</span> [r[<span class="hljs-string">&quot;body&quot;</span>] <span class="hljs-keyword">for</span> r <span class="hljs-keyword">in</span> response.json()]


<span class="hljs-comment"># Test our function works as expected</span>
get_comments(<span class="hljs-number">2792</span>)`}}),He=new O({props:{code:"[\"@albertvillanova my tests are failing here:\\r\\n```\\r\\ndataset_name = 'gooaq'\\r\\n\\r\\n    def test_load_dataset(self, dataset_name):\\r\\n        configs = self.dataset_tester.load_all_configs(dataset_name, is_local=True)[:1]\\r\\n>       self.dataset_tester.check_load_dataset(dataset_name, configs, is_local=True, use_local_dummy_data=True)\\r\\n\\r\\ntests/test_dataset_common.py:234: \\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \\r\\ntests/test_dataset_common.py:187: in check_load_dataset\\r\\n    self.parent.assertTrue(len(dataset[split]) > 0)\\r\\nE   AssertionError: False is not true\\r\\n```\\r\\nWhen I try loading dataset on local machine it works fine. Any suggestions on how can I avoid this error?\"]",highlighted:'[<span class="hljs-string">&quot;@albertvillanova my tests are failing here:\\r\\n```\\r\\ndataset_name = &#x27;gooaq&#x27;\\r\\n\\r\\n    def test_load_dataset(self, dataset_name):\\r\\n        configs = self.dataset_tester.load_all_configs(dataset_name, is_local=True)[:1]\\r\\n&gt;       self.dataset_tester.check_load_dataset(dataset_name, configs, is_local=True, use_local_dummy_data=True)\\r\\n\\r\\ntests/test_dataset_common.py:234: \\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \\r\\ntests/test_dataset_common.py:187: in check_load_dataset\\r\\n    self.parent.assertTrue(len(dataset[split]) &gt; 0)\\r\\nE   AssertionError: False is not true\\r\\n```\\r\\nWhen I try loading dataset on local machine it works fine. Any suggestions on how can I avoid this error?&quot;</span>]'}}),Ce=new O({props:{code:`# Depending on your internet connection, this can take a few minutes...
issues_with_comments_dataset = issues_dataset.map(
    lambda x: {"comments": get_comments(x["number"])}
)`,highlighted:`<span class="hljs-comment"># Depending on your internet connection, this can take a few minutes...</span>
issues_with_comments_dataset = issues_dataset.<span class="hljs-built_in">map</span>(
    <span class="hljs-keyword">lambda</span> x: {<span class="hljs-string">&quot;comments&quot;</span>: get_comments(x[<span class="hljs-string">&quot;number&quot;</span>])}
)`}}),Oe=new O({props:{code:'issues_with_comments_dataset.to_json("issues-datasets-with-hf-doc-builder.jsonl")',highlighted:'issues_with_comments_dataset.to_json(<span class="hljs-string">&quot;issues-datasets-with-hf-doc-builder.jsonl&quot;</span>)'}}),Ae=new Ga({}),Ne=new Gc({props:{id:"HaN6qCr_Afc"}}),Ge=new O({props:{code:`from huggingface_hub import list_datasets

all_datasets = list_datasets()
print(f"Number of datasets on Hub: {len(all_datasets)}")
print(all_datasets[0])`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> list_datasets

all_datasets = list_datasets()
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Number of datasets on Hub: <span class="hljs-subst">{<span class="hljs-built_in">len</span>(all_datasets)}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(all_datasets[<span class="hljs-number">0</span>])`}}),ze=new O({props:{code:`Number of datasets on Hub: 1487
Dataset Name: acronym_identification, Tags: ['annotations_creators:expert-generated', 'language_creators:found', 'languages:en', 'licenses:mit', 'multilinguality:monolingual', 'size_categories:10K<n<100K', 'source_datasets:original', 'task_categories:structure-prediction', 'task_ids:structure-prediction-other-acronym-identification']`,highlighted:`Number of datasets on Hub: <span class="hljs-number">1487</span>
Dataset Name: acronym_identification, Tags: [<span class="hljs-string">&#x27;annotations_creators:expert-generated&#x27;</span>, <span class="hljs-string">&#x27;language_creators:found&#x27;</span>, <span class="hljs-string">&#x27;languages:en&#x27;</span>, <span class="hljs-string">&#x27;licenses:mit&#x27;</span>, <span class="hljs-string">&#x27;multilinguality:monolingual&#x27;</span>, <span class="hljs-string">&#x27;size_categories:10K&lt;n&lt;100K&#x27;</span>, <span class="hljs-string">&#x27;source_datasets:original&#x27;</span>, <span class="hljs-string">&#x27;task_categories:structure-prediction&#x27;</span>, <span class="hljs-string">&#x27;task_ids:structure-prediction-other-acronym-identification&#x27;</span>]`}}),Ie=new O({props:{code:`from huggingface_hub import notebook_login

notebook_login()`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login

notebook_login()`}}),Re=new O({props:{code:"huggingface-cli login",highlighted:"huggingface-cli login"}}),Se=new O({props:{code:`from huggingface_hub import create_repo

repo_url = create_repo(name="github-issues", repo_type="dataset")
repo_url`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> create_repo

repo_url = create_repo(name=<span class="hljs-string">&quot;github-issues&quot;</span>, repo_type=<span class="hljs-string">&quot;dataset&quot;</span>)
repo_url`}}),Ue=new O({props:{code:"'https://huggingface.co/datasets/lewtun/github-issues'",highlighted:'<span class="hljs-string">&#x27;https://huggingface.co/datasets/lewtun/github-issues&#x27;</span>'}}),Gs=new na({props:{$$slots:{default:[Uc]},$$scope:{ctx:S}}}),Le=new O({props:{code:`from huggingface_hub import Repository

repo = Repository(local_dir="github-issues", clone_from=repo_url)
!cp datasets-issues-with-hf-doc-builder.jsonl github-issues/`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> Repository

repo = Repository(local_dir=<span class="hljs-string">&quot;github-issues&quot;</span>, clone_from=repo_url)
!cp datasets-issues-<span class="hljs-keyword">with</span>-hf-doc-builder.jsonl github-issues/`}}),Me=new O({props:{code:'repo.lfs_track("*.jsonl")',highlighted:'repo.lfs_track(<span class="hljs-string">&quot;*.jsonl&quot;</span>)'}}),Fe=new O({props:{code:"repo.push_to_hub()",highlighted:"repo.push_to_hub()"}}),Qe=new O({props:{code:`remote_dataset = load_dataset("lewtun/github-issues", split="train")
remote_dataset`,highlighted:`remote_dataset = load_dataset(<span class="hljs-string">&quot;lewtun/github-issues&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>)
remote_dataset`}}),Je=new O({props:{code:`Dataset({
    features: ['url', 'repository_url', 'labels_url', 'comments_url', 'events_url', 'html_url', 'id', 'node_id', 'number', 'title', 'user', 'labels', 'state', 'locked', 'assignee', 'assignees', 'milestone', 'comments', 'created_at', 'updated_at', 'closed_at', 'author_association', 'active_lock_reason', 'pull_request', 'body', 'performed_via_github_app', 'is_pull_request'],
    num_rows: 2855
})`,highlighted:`Dataset({
    features: [<span class="hljs-string">&#x27;url&#x27;</span>, <span class="hljs-string">&#x27;repository_url&#x27;</span>, <span class="hljs-string">&#x27;labels_url&#x27;</span>, <span class="hljs-string">&#x27;comments_url&#x27;</span>, <span class="hljs-string">&#x27;events_url&#x27;</span>, <span class="hljs-string">&#x27;html_url&#x27;</span>, <span class="hljs-string">&#x27;id&#x27;</span>, <span class="hljs-string">&#x27;node_id&#x27;</span>, <span class="hljs-string">&#x27;number&#x27;</span>, <span class="hljs-string">&#x27;title&#x27;</span>, <span class="hljs-string">&#x27;user&#x27;</span>, <span class="hljs-string">&#x27;labels&#x27;</span>, <span class="hljs-string">&#x27;state&#x27;</span>, <span class="hljs-string">&#x27;locked&#x27;</span>, <span class="hljs-string">&#x27;assignee&#x27;</span>, <span class="hljs-string">&#x27;assignees&#x27;</span>, <span class="hljs-string">&#x27;milestone&#x27;</span>, <span class="hljs-string">&#x27;comments&#x27;</span>, <span class="hljs-string">&#x27;created_at&#x27;</span>, <span class="hljs-string">&#x27;updated_at&#x27;</span>, <span class="hljs-string">&#x27;closed_at&#x27;</span>, <span class="hljs-string">&#x27;author_association&#x27;</span>, <span class="hljs-string">&#x27;active_lock_reason&#x27;</span>, <span class="hljs-string">&#x27;pull_request&#x27;</span>, <span class="hljs-string">&#x27;body&#x27;</span>, <span class="hljs-string">&#x27;performed_via_github_app&#x27;</span>, <span class="hljs-string">&#x27;is_pull_request&#x27;</span>],
    num_rows: <span class="hljs-number">2855</span>
})`}}),Us=new na({props:{$$slots:{default:[Lc]},$$scope:{ctx:S}}}),Ze=new Ga({}),Fs=new na({props:{$$slots:{default:[Mc]},$$scope:{ctx:S}}}),Vs=new na({props:{$$slots:{default:[Fc]},$$scope:{ctx:S}}}),{c(){d=n("meta"),P=u(),h=n("h1"),E=n("a"),k=n("span"),g(f.$$.fragment),w=u(),D=n("span"),$=t("Criando seu pr\xF3prio dataset"),q=u(),g(A.$$.fragment),H=u(),C=n("p"),T=t("\xC0s vezes, o conjunto de dados de que voc\xEA precisa para criar um aplicativo de PLN n\xE3o existe, portanto, voc\xEA mesmo precisar\xE1 cri\xE1-lo. Nesta se\xE7\xE3o, mostraremos como criar um corpus de "),y=n("a"),N=t("issues do GitHub"),V=t(", que s\xE3o comumente usados \u200B\u200Bpara rastrear bugs ou recursos nos reposit\xF3rios do GitHub. Este corpus pode ser usado para v\xE1rios fins, incluindo:"),R=u(),G=n("ul"),B=n("li"),ps=t("Explorar quanto tempo leva para fechar as issues abertos ou pull requests"),z=u(),X=n("li"),ia=t("Treinar um "),bs=n("em"),la=t("classificador multilabel"),pa=t(" que pode marcar issues com metadados com base na descri\xE7\xE3o da issue (por exemplo, \u201Cbug\u201D, \u201Cmelhoria\u201D ou \u201Cpergunta\u201D)"),ua=u(),za=n("li"),rn=t("Criando um mecanismo de pesquisa sem\xE2ntica para descobrir quais issues correspondem \xE0 consulta de um usu\xE1rio"),Xt=u(),ca=n("p"),nn=t("Aqui nos concentraremos na cria\xE7\xE3o do corpus e, na pr\xF3xima se\xE7\xE3o, abordaremos o aplicativo de pesquisa sem\xE2ntica. Para manter a meta, usaremos as issues do GitHub associados a um projeto de c\xF3digo aberto popular: \u{1F917} Datasets! Vamos dar uma olhada em como obter os dados e explorar as informa\xE7\xF5es contidas nessas edi\xE7\xF5es."),Wt=u(),us=n("h2"),vs=n("a"),Ia=n("span"),g(Ks.$$.fragment),ln=u(),Ra=n("span"),pn=t("Obtendo os dados"),Yt=u(),xs=n("p"),un=t("Voc\xEA pode encontrar todos as issues em \u{1F917} Datasets navegando at\xE9 a "),Xs=n("a"),cn=t("guia de issues"),dn=t(" do reposit\xF3rio. Conforme mostrado na captura de tela a seguir, no momento da reda\xE7\xE3o, havia 331 issues abertos e 668 fechados."),so=u(),Ws=n("div"),Ys=n("img"),eo=u(),da=n("p"),mn=t("Se voc\xEA clicar em uma dessas issues, ver\xE1 que ele cont\xE9m um t\xEDtulo, uma descri\xE7\xE3o e um conjunto de r\xF3tulos que caracterizam a issue. Um exemplo \xE9 mostrado na captura de tela abaixo."),ao=u(),se=n("div"),ee=n("img"),to=u(),Q=n("p"),hn=t("Para baixar todos as issues do reposit\xF3rio, usaremos a "),ae=n("a"),fn=t("GitHub REST API"),gn=t(" para pesquisar o ["),Sa=n("code"),_n=t("Issues"),bn=t(" endpoint]("),te=n("a"),vn=t("https://docs.github."),xn=t(" com/en/rest/reference/issues#list-repository-issues). Esse endpoint retorna uma lista de objetos JSON, com cada objeto contendo um grande n\xFAmero de campos que incluem o t\xEDtulo e a descri\xE7\xE3o, bem como metadados sobre o status da issue e assim por diante."),oo=u(),js=n("p"),jn=t("Uma maneira conveniente de baixar as issues \xE9 por meio da biblioteca "),Ua=n("code"),$n=t("requests"),qn=t(", que \xE9 a maneira padr\xE3o de fazer solicita\xE7\xF5es HTTP em Python. Voc\xEA pode instalar a biblioteca executando:"),ro=u(),g(oe.$$.fragment),no=u(),W=n("p"),En=t("Uma vez que a biblioteca esteja instalada, voc\xEA pode fazer solicita\xE7\xF5es GET para o endpoint "),La=n("code"),wn=t("Issues"),kn=t(" invocando a fun\xE7\xE3o "),Ma=n("code"),yn=t("requests.get()"),Pn=t(". Por exemplo, voc\xEA pode executar o seguinte comando para recuperar a primeira issue na primeira p\xE1gina:"),io=u(),g(re.$$.fragment),lo=u(),$s=n("p"),Dn=t("O objeto "),Fa=n("code"),Hn=t("response"),Cn=t(" cont\xE9m muitas informa\xE7\xF5es \xFAteis sobre a solicita\xE7\xE3o, incluindo o c\xF3digo de status HTTP:"),po=u(),g(ne.$$.fragment),uo=u(),g(ie.$$.fragment),co=u(),J=n("p"),On=t("onde um status "),Va=n("code"),An=t("200"),Nn=t(" significa que a solicita\xE7\xE3o foi bem-sucedida (voc\xEA pode encontrar uma lista de poss\xEDveis c\xF3digos de status HTTP "),le=n("a"),Tn=t("aqui"),Gn=t("). O que realmente nos interessa, por\xE9m, \xE9 o "),Ba=n("em"),zn=t("payload"),In=t(", que pode ser acessado em v\xE1rios formatos como bytes, strings ou JSON. Como sabemos que nossas issues est\xE3o no formato JSON, vamos inspecionar o payload da seguinte forma:"),mo=u(),g(pe.$$.fragment),ho=u(),g(ue.$$.fragment),fo=u(),Z=n("p"),Rn=t("Uau, \xE9 muita informa\xE7\xE3o! Podemos ver campos \xFAteis como "),Qa=n("code"),Sn=t("title"),Un=t(", "),Ja=n("code"),Ln=t("body"),Mn=t(" e "),Za=n("code"),Fn=t("number"),Vn=t(" que descrevem a issue, bem como informa\xE7\xF5es sobre o usu\xE1rio do GitHub que abriu a issue."),go=u(),g(qs.$$.fragment),_o=u(),U=n("p"),Bn=t("Conforme descrito na [documenta\xE7\xE3o] do GitHub ("),ce=n("a"),Qn=t("https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting"),Jn=t("), as solicita\xE7\xF5es n\xE3o autenticadas s\xE3o limitadas a 60 solicita\xE7\xF5es por hora. Embora voc\xEA possa aumentar o par\xE2metro de consulta "),Ka=n("code"),Zn=t("per_page"),Kn=t(" para reduzir o n\xFAmero de solicita\xE7\xF5es feitas, voc\xEA ainda atingir\xE1 o limite de taxa em qualquer reposit\xF3rio que tenha mais do que alguns milhares de issues. Ent\xE3o, em vez disso, voc\xEA deve seguir as [instru\xE7\xF5es] do GitHub ("),de=n("a"),Xn=t("https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token"),Wn=t(") sobre como criar um "),Xa=n("em"),Yn=t("token de acesso pessoal"),si=t(" para que voc\xEA pode aumentar o limite de taxa para 5.000 solicita\xE7\xF5es por hora. Depois de ter seu token, voc\xEA pode inclu\xED-lo como parte do cabe\xE7alho da solicita\xE7\xE3o:"),bo=u(),g(me.$$.fragment),vo=u(),g(Es.$$.fragment),xo=u(),ma=n("p"),ei=t("Agora que temos nosso token de acesso, vamos criar uma fun\xE7\xE3o que possa baixar todas as issues de um reposit\xF3rio do GitHub:"),jo=u(),g(he.$$.fragment),$o=u(),Y=n("p"),ai=t("Agora, quando chamamos "),Wa=n("code"),ti=t("fetch_issues()"),oi=t(", ele far\xE1 o download de todas as issues em lotes para evitar exceder o limite do GitHub no n\xFAmero de solicita\xE7\xF5es por hora; o resultado ser\xE1 armazenado em um arquivo "),Ya=n("em"),ri=t("repository_name-issues.jsonl"),ni=t(", onde cada linha \xE9 um objeto JSON que representa uma issue. Vamos usar esta fun\xE7\xE3o para pegar todas as issues de \u{1F917} Datasets:"),qo=u(),g(fe.$$.fragment),Eo=u(),ws=n("p"),ii=t("Depois que as issues forem baixadas, podemos carreg\xE1-las localmente usando nossas novas habilidades da "),ha=n("a"),li=t("se\xE7\xE3o 2"),pi=t(":"),wo=u(),g(ge.$$.fragment),ko=u(),g(_e.$$.fragment),yo=u(),ss=n("p"),ui=t("\xD3timo, criamos nosso primeiro conjunto de dados do zero! Mas por que existem v\xE1rios milhares de issues quando a "),be=n("a"),ci=t("guia Issue"),di=t(" do reposit\xF3rio \u{1F917} Datasets mostra apenas cerca de 1.000 issues no total \u{1F914}? Conforme descrito na [documenta\xE7\xE3o] do GitHub ("),ve=n("a"),mi=t("https://docs.github.com/en/rest/reference/issues#list-issues-assigned-to-the-authenticated-user"),hi=t("), isso ocorre porque baixamos todos os pull request tamb\xE9m:"),Po=u(),fa=n("blockquote"),cs=n("p"),fi=t("A API REST v3 do GitHub considera cada pull request como uma issue, mas nem toda issue \xE9 um pull request. Por esse motivo, os endpoints de \u201Cissues\u201D podem retornar issues e solicita\xE7\xF5es de pull na resposta. Voc\xEA pode identificar solicita\xE7\xF5es de pull pela chave "),st=n("code"),gi=t("pull_request"),_i=t(". Esteja ciente de que o "),et=n("code"),bi=t("id"),vi=t(" de uma solicita\xE7\xE3o pull retornada de endpoints \u201Cissues\u201D ser\xE1 um ID de issue."),Do=u(),ga=n("p"),xi=t("Como o conte\xFAdo das issues e dos pull request s\xE3o bem diferentes, vamos fazer um pequeno pr\xE9-processamento para nos permitir distinguir entre eles."),Ho=u(),ds=n("h2"),ks=n("a"),at=n("span"),g(xe.$$.fragment),ji=u(),tt=n("span"),$i=t("Limpando os dados"),Co=u(),I=n("p"),qi=t("O trecho acima da documenta\xE7\xE3o do GitHub nos diz que a coluna "),ot=n("code"),Ei=t("pull_request"),wi=t(" pode ser usada para diferenciar entre issues e solicita\xE7\xF5es de pull request. Vamos olhar para uma amostra aleat\xF3ria para ver qual \xE9 a diferen\xE7a. Como fizemos na "),_a=n("a"),ki=t("se\xE7\xE3o 3"),yi=t(", vamos encadear "),rt=n("code"),Pi=t("Dataset.shuffle()"),Di=t(" e "),nt=n("code"),Hi=t("Dataset.select()"),Ci=t(" para criar uma amostra aleat\xF3ria e ent\xE3o compactar o "),it=n("code"),Oi=t("html_url"),Ai=t(" e "),lt=n("code"),Ni=t("pull_request"),Ti=t(" para que possamos comparar os v\xE1rios URLs:"),Oo=u(),g(je.$$.fragment),Ao=u(),g($e.$$.fragment),No=u(),L=n("p"),Gi=t("Aqui podemos ver que cada pull request est\xE1 associado a v\xE1rios URLs, enquanto as issues comuns t\xEAm uma entrada "),pt=n("code"),zi=t("None"),Ii=t(". Podemos usar essa distin\xE7\xE3o para criar uma nova coluna "),ut=n("code"),Ri=t("is_pull_request"),Si=t(" que verifica se o campo "),ct=n("code"),Ui=t("pull_request"),Li=t(" \xE9 "),dt=n("code"),Mi=t("None"),Fi=t(" ou n\xE3o:"),To=u(),g(qe.$$.fragment),Go=u(),g(ys.$$.fragment),zo=u(),ba=n("p"),Vi=t("Embora possamos continuar a limpar o conjunto de dados descartando ou renomeando algumas colunas, geralmente \xE9 uma boa pr\xE1tica manter o conjunto de dados o mais \u201Cbruto\u201D poss\xEDvel neste est\xE1gio para que possa ser facilmente usado em v\xE1rios aplicativos."),Io=u(),va=n("p"),Bi=t("Antes de enviarmos nosso conjunto de dados para o Hugging Face Hub, vamos lidar com uma coisa que est\xE1 faltando: os coment\xE1rios associados a cada issue e pull request. Vamos adicion\xE1-los a seguir - voc\xEA adivinhou - a API REST do GitHub!"),Ro=u(),ms=n("h2"),Ps=n("a"),mt=n("span"),g(Ee.$$.fragment),Qi=u(),ht=n("span"),Ji=t("Aumentando o conjunto de dados"),So=u(),xa=n("p"),Zi=t("Conforme mostrado na captura de tela a seguir, os coment\xE1rios associados a uma issue ou a pull request fornecem uma rica fonte de informa\xE7\xF5es, especialmente se estivermos interessados \u200B\u200Bem criar um mecanismo de pesquisa para responder \xE0s consultas dos usu\xE1rios sobre a biblioteca."),Uo=u(),we=n("div"),ke=n("img"),Lo=u(),Ds=n("p"),Ki=t("A API REST do GitHub fornece um "),Hs=n("a"),Xi=t("endpoint "),ft=n("code"),Wi=t("Comments"),Yi=t(" que retorna todos os coment\xE1rios associados a uma issue. Vamos testar o endpoint para ver o que ele retorna:"),Mo=u(),g(ye.$$.fragment),Fo=u(),g(Pe.$$.fragment),Vo=u(),K=n("p"),sl=t("Podemos ver que o coment\xE1rio est\xE1 armazenado no campo "),gt=n("code"),el=t("body"),al=t(", ent\xE3o vamos escrever uma fun\xE7\xE3o simples que retorna todos os coment\xE1rios associados a uma issue selecionando o conte\xFAdo do "),_t=n("code"),tl=t("body"),ol=t(" para cada elemento em "),bt=n("code"),rl=t("response.json()"),nl=t(":"),Bo=u(),g(De.$$.fragment),Qo=u(),g(He.$$.fragment),Jo=u(),es=n("p"),il=t("Isso parece certo, ent\xE3o vamos usar "),vt=n("code"),ll=t("Dataset.map()"),pl=t(" para adicionar uma nova coluna "),xt=n("code"),ul=t("comments"),cl=t(" para cada issue em nosso conjunto de dados:"),Zo=u(),g(Ce.$$.fragment),Ko=u(),ja=n("p"),dl=t("A etapa final \xE9 salvar o conjunto de dados aumentado junto com nossos dados brutos para que possamos envi\xE1-los para o Hub:"),Xo=u(),g(Oe.$$.fragment),Wo=u(),hs=n("h2"),Cs=n("a"),jt=n("span"),g(Ae.$$.fragment),ml=u(),$t=n("span"),hl=t("Carregando o conjunto de dados para o Hugging Face Hub"),Yo=u(),g(Ne.$$.fragment),sr=u(),as=n("p"),fl=t("Agora que temos nosso conjunto de dados aumentado, \xE9 hora de envi\xE1-lo para o Hub para que possamos compartilh\xE1-lo com a comunidade! Para fazer o upload do conjunto de dados, usaremos a "),Te=n("a"),gl=t("\u{1F917} Hub library"),_l=t(", que nos permite interagir com o Hugging Face Hub por meio de uma API Python. \u{1F917} Hub vem pr\xE9-instalado com \u{1F917} Transformers, para que possamos us\xE1-lo diretamente. Por exemplo, podemos usar a fun\xE7\xE3o "),qt=n("code"),bl=t("list_datasets()"),vl=t(" para obter informa\xE7\xF5es sobre todos os conjuntos de dados p\xFAblicos atualmente hospedados no Hub:"),er=u(),g(Ge.$$.fragment),ar=u(),g(ze.$$.fragment),tr=u(),Os=n("p"),xl=t("Podemos ver que atualmente existem cerca de 1.500 conjuntos de dados no Hub, e a fun\xE7\xE3o "),Et=n("code"),jl=t("list_datasets()"),$l=t(" tamb\xE9m fornece alguns metadados b\xE1sicos sobre cada reposit\xF3rio de conjuntos de dados."),or=u(),As=n("p"),ql=t("Para nossos prop\xF3sitos, a primeira coisa que precisamos fazer \xE9 criar um novo reposit\xF3rio de conjunto de dados no Hub. Para fazer isso, precisamos de um token de autentica\xE7\xE3o, que pode ser obtido primeiro entrando no Hugging Face Hub com a fun\xE7\xE3o "),wt=n("code"),El=t("notebook_login()"),wl=t(":"),rr=u(),g(Ie.$$.fragment),nr=u(),Ns=n("p"),kl=t("Isso criar\xE1 um widget onde voc\xEA poder\xE1 inserir seu nome de usu\xE1rio e senha, e um token de API ser\xE1 salvo em "),kt=n("em"),yl=t("~/.huggingface/token"),Pl=t(". Se voc\xEA estiver executando o c\xF3digo em um terminal, poder\xE1 fazer login via CLI:"),ir=u(),g(Re.$$.fragment),lr=u(),Ts=n("p"),Dl=t("Feito isso, podemos criar um novo reposit\xF3rio de conjunto de dados com a fun\xE7\xE3o "),yt=n("code"),Hl=t("create_repo()"),Cl=t(":"),pr=u(),g(Se.$$.fragment),ur=u(),g(Ue.$$.fragment),cr=u(),ts=n("p"),Ol=t("Neste exemplo, criamos um reposit\xF3rio de conjunto de dados vazio chamado "),Pt=n("code"),Al=t("github-issues"),Nl=t(" sob o nome de usu\xE1rio "),Dt=n("code"),Tl=t("lewtun"),Gl=t(" (o nome de usu\xE1rio deve ser seu nome de usu\xE1rio do Hub quando voc\xEA estiver executando este c\xF3digo!)."),dr=u(),g(Gs.$$.fragment),mr=u(),zs=n("p"),zl=t("Em seguida, vamos clonar o reposit\xF3rio do Hub para nossa m\xE1quina local e copiar nosso arquivo de conjunto de dados para ele. O \u{1F917} Hub fornece uma classe "),Ht=n("code"),Il=t("Repository"),Rl=t(" \xFAtil que envolve muitos dos comandos comuns do Git, portanto, para clonar o reposit\xF3rio remoto, basta fornecer o URL e o caminho local para o qual desejamos clonar:"),hr=u(),g(Le.$$.fragment),fr=u(),M=n("p"),Sl=t("Por padr\xE3o, v\xE1rias extens\xF5es de arquivo (como "),Ct=n("em"),Ul=t(".bin"),Ll=t(", "),Ot=n("em"),Ml=t(".gz"),Fl=t(" e "),At=n("em"),Vl=t(".zip"),Bl=t(") s\xE3o rastreadas com o Git LFS para que arquivos grandes possam ser versionados no mesmo fluxo de trabalho do Git. Voc\xEA pode encontrar uma lista de extens\xF5es de arquivos rastreados dentro do arquivo "),Nt=n("em"),Ql=t(".gitattributes"),Jl=t(" do reposit\xF3rio. Para incluir o formato JSON Lines na lista, podemos executar o seguinte comando:"),gr=u(),g(Me.$$.fragment),_r=u(),Is=n("p"),Zl=t("Ent\xE3o podemos usar "),Tt=n("code"),Kl=t("Repository.push_to_hub()"),Xl=t(" para enviar o conjunto de dados para o Hub:"),br=u(),g(Fe.$$.fragment),vr=u(),Rs=n("p"),Wl=t("Se navegarmos para a URL contida em "),Gt=n("code"),Yl=t("repo_url"),sp=t(", veremos agora que nosso arquivo de conjunto de dados foi carregado."),xr=u(),Ve=n("div"),Be=n("img"),jr=u(),os=n("p"),ep=t("A partir daqui, qualquer um pode baixar o conjunto de dados simplesmente fornecendo "),zt=n("code"),ap=t("load_dataset()"),tp=t(" com o ID do reposit\xF3rio como o argumento "),It=n("code"),op=t("path"),rp=t(":"),$r=u(),g(Qe.$$.fragment),qr=u(),g(Je.$$.fragment),Er=u(),Ss=n("p"),np=t("Legal, n\xF3s enviamos nosso conjunto de dados para o Hub e est\xE1 dispon\xEDvel para outros usarem! H\xE1 apenas uma coisa importante a fazer: adicionar um "),Rt=n("em"),ip=t("cart\xE3o de conjunto de dados"),lp=t(" que explica como o corpus foi criado e fornece outras informa\xE7\xF5es \xFAteis para a comunidade."),wr=u(),g(Us.$$.fragment),kr=u(),fs=n("h2"),Ls=n("a"),St=n("span"),g(Ze.$$.fragment),pp=u(),Ut=n("span"),up=t("Criando um cart\xE3o do datasets"),yr=u(),$a=n("p"),cp=t("Conjuntos de dados bem documentados s\xE3o mais propensos a serem \xFAteis para outras pessoas (incluindo voc\xEA mesmo no futuro!), pois fornecem o contexto para permitir que os usu\xE1rios decidam se o conjunto de dados \xE9 relevante para sua tarefa e avaliem poss\xEDveis vieses ou riscos associados ao uso o conjunto de dados."),Pr=u(),Ms=n("p"),dp=t("No Hugging Face Hub, essas informa\xE7\xF5es s\xE3o armazenadas no arquivo "),Lt=n("em"),mp=t("README.md"),hp=t(" de cada reposit\xF3rio de conjunto de dados. H\xE1 duas etapas principais que voc\xEA deve seguir antes de criar este arquivo:"),Dr=u(),qa=n("ol"),gs=n("li"),fp=t("Use a aplica\xE7\xE3o "),Ke=n("a"),Mt=n("code"),gp=t("datasets-tagging"),_p=t(" para criar tags de metadados no formato YAML. Essas tags s\xE3o usadas para uma variedade de recursos de pesquisa no Hugging Face Hub e garantem que seu conjunto de dados possa ser facilmente encontrado pelos membros da comunidade. Como criamos um conjunto de dados personalizado aqui, voc\xEA precisar\xE1 clonar o reposit\xF3rio "),Ft=n("code"),bp=t("datasets-tagging"),vp=t(" e executar o aplicativo localmente. Veja como \xE9 a interface:"),Hr=u(),Xe=n("div"),We=n("img"),Cr=u(),Ye=n("ol"),sa=n("li"),xp=t("Leia o "),ea=n("a"),jp=t("guia do \u{1F917} datasets"),$p=t(" sobre como criar cart\xF5es informativos de conjuntos de dados e use-os como modelo."),Or=u(),rs=n("p"),qp=t("Voc\xEA pode criar o arquivo "),Vt=n("em"),Ep=t("README.md"),wp=t(" diretamente no Hub e encontrar um cart\xE3o de conjunto de dados de modelo no reposit\xF3rio de conjunto de dados "),Bt=n("code"),kp=t("lewtun/github-issues"),yp=t(". Uma captura de tela do cart\xE3o de conjunto de dados preenchido \xE9 mostrada abaixo."),Ar=u(),aa=n("div"),ta=n("img"),Nr=u(),g(Fs.$$.fragment),Tr=u(),Ea=n("p"),Pp=t("\xC9 isso! Vimos nesta se\xE7\xE3o que criar um bom conjunto de dados pode ser bastante complicado, mas felizmente carreg\xE1-lo e compartilh\xE1-lo com a comunidade n\xE3o \xE9. Na pr\xF3xima se\xE7\xE3o, usaremos nosso novo conjunto de dados para criar um mecanismo de pesquisa sem\xE2ntica com o \u{1F917} datasets que podem corresponder perguntas as issues e coment\xE1rios mais relevantes."),Gr=u(),g(Vs.$$.fragment),this.h()},l(s){const r=Nc('[data-svelte="svelte-1phssyn"]',document.head);d=i(r,"META",{name:!0,content:!0}),r.forEach(a),P=c(s),h=i(s,"H1",{class:!0});var oa=l(h);E=i(oa,"A",{id:!0,class:!0,href:!0});var Qt=l(E);k=i(Qt,"SPAN",{});var Jt=l(k);_(f.$$.fragment,Jt),Jt.forEach(a),Qt.forEach(a),w=c(oa),D=i(oa,"SPAN",{});var Zt=l(D);$=o(Zt,"Criando seu pr\xF3prio dataset"),Zt.forEach(a),oa.forEach(a),q=c(s),_(A.$$.fragment,s),H=c(s),C=i(s,"P",{});var ra=l(C);T=o(ra,"\xC0s vezes, o conjunto de dados de que voc\xEA precisa para criar um aplicativo de PLN n\xE3o existe, portanto, voc\xEA mesmo precisar\xE1 cri\xE1-lo. Nesta se\xE7\xE3o, mostraremos como criar um corpus de "),y=i(ra,"A",{href:!0,rel:!0});var Kt=l(y);N=o(Kt,"issues do GitHub"),Kt.forEach(a),V=o(ra,", que s\xE3o comumente usados \u200B\u200Bpara rastrear bugs ou recursos nos reposit\xF3rios do GitHub. Este corpus pode ser usado para v\xE1rios fins, incluindo:"),ra.forEach(a),R=c(s),G=i(s,"UL",{});var _s=l(G);B=i(_s,"LI",{});var Gp=l(B);ps=o(Gp,"Explorar quanto tempo leva para fechar as issues abertos ou pull requests"),Gp.forEach(a),z=c(_s),X=i(_s,"LI",{});var Ir=l(X);ia=o(Ir,"Treinar um "),bs=i(Ir,"EM",{});var zp=l(bs);la=o(zp,"classificador multilabel"),zp.forEach(a),pa=o(Ir," que pode marcar issues com metadados com base na descri\xE7\xE3o da issue (por exemplo, \u201Cbug\u201D, \u201Cmelhoria\u201D ou \u201Cpergunta\u201D)"),Ir.forEach(a),ua=c(_s),za=i(_s,"LI",{});var Ip=l(za);rn=o(Ip,"Criando um mecanismo de pesquisa sem\xE2ntica para descobrir quais issues correspondem \xE0 consulta de um usu\xE1rio"),Ip.forEach(a),_s.forEach(a),Xt=c(s),ca=i(s,"P",{});var Rp=l(ca);nn=o(Rp,"Aqui nos concentraremos na cria\xE7\xE3o do corpus e, na pr\xF3xima se\xE7\xE3o, abordaremos o aplicativo de pesquisa sem\xE2ntica. Para manter a meta, usaremos as issues do GitHub associados a um projeto de c\xF3digo aberto popular: \u{1F917} Datasets! Vamos dar uma olhada em como obter os dados e explorar as informa\xE7\xF5es contidas nessas edi\xE7\xF5es."),Rp.forEach(a),Wt=c(s),us=i(s,"H2",{class:!0});var Rr=l(us);vs=i(Rr,"A",{id:!0,class:!0,href:!0});var Sp=l(vs);Ia=i(Sp,"SPAN",{});var Up=l(Ia);_(Ks.$$.fragment,Up),Up.forEach(a),Sp.forEach(a),ln=c(Rr),Ra=i(Rr,"SPAN",{});var Lp=l(Ra);pn=o(Lp,"Obtendo os dados"),Lp.forEach(a),Rr.forEach(a),Yt=c(s),xs=i(s,"P",{});var Sr=l(xs);un=o(Sr,"Voc\xEA pode encontrar todos as issues em \u{1F917} Datasets navegando at\xE9 a "),Xs=i(Sr,"A",{href:!0,rel:!0});var Mp=l(Xs);cn=o(Mp,"guia de issues"),Mp.forEach(a),dn=o(Sr," do reposit\xF3rio. Conforme mostrado na captura de tela a seguir, no momento da reda\xE7\xE3o, havia 331 issues abertos e 668 fechados."),Sr.forEach(a),so=c(s),Ws=i(s,"DIV",{class:!0});var Fp=l(Ws);Ys=i(Fp,"IMG",{src:!0,alt:!0,width:!0}),Fp.forEach(a),eo=c(s),da=i(s,"P",{});var Vp=l(da);mn=o(Vp,"Se voc\xEA clicar em uma dessas issues, ver\xE1 que ele cont\xE9m um t\xEDtulo, uma descri\xE7\xE3o e um conjunto de r\xF3tulos que caracterizam a issue. Um exemplo \xE9 mostrado na captura de tela abaixo."),Vp.forEach(a),ao=c(s),se=i(s,"DIV",{class:!0});var Bp=l(se);ee=i(Bp,"IMG",{src:!0,alt:!0,width:!0}),Bp.forEach(a),to=c(s),Q=i(s,"P",{});var Bs=l(Q);hn=o(Bs,"Para baixar todos as issues do reposit\xF3rio, usaremos a "),ae=i(Bs,"A",{href:!0,rel:!0});var Qp=l(ae);fn=o(Qp,"GitHub REST API"),Qp.forEach(a),gn=o(Bs," para pesquisar o ["),Sa=i(Bs,"CODE",{});var Jp=l(Sa);_n=o(Jp,"Issues"),Jp.forEach(a),bn=o(Bs," endpoint]("),te=i(Bs,"A",{href:!0,rel:!0});var Zp=l(te);vn=o(Zp,"https://docs.github."),Zp.forEach(a),xn=o(Bs," com/en/rest/reference/issues#list-repository-issues). Esse endpoint retorna uma lista de objetos JSON, com cada objeto contendo um grande n\xFAmero de campos que incluem o t\xEDtulo e a descri\xE7\xE3o, bem como metadados sobre o status da issue e assim por diante."),Bs.forEach(a),oo=c(s),js=i(s,"P",{});var Ur=l(js);jn=o(Ur,"Uma maneira conveniente de baixar as issues \xE9 por meio da biblioteca "),Ua=i(Ur,"CODE",{});var Kp=l(Ua);$n=o(Kp,"requests"),Kp.forEach(a),qn=o(Ur,", que \xE9 a maneira padr\xE3o de fazer solicita\xE7\xF5es HTTP em Python. Voc\xEA pode instalar a biblioteca executando:"),Ur.forEach(a),ro=c(s),_(oe.$$.fragment,s),no=c(s),W=i(s,"P",{});var wa=l(W);En=o(wa,"Uma vez que a biblioteca esteja instalada, voc\xEA pode fazer solicita\xE7\xF5es GET para o endpoint "),La=i(wa,"CODE",{});var Xp=l(La);wn=o(Xp,"Issues"),Xp.forEach(a),kn=o(wa," invocando a fun\xE7\xE3o "),Ma=i(wa,"CODE",{});var Wp=l(Ma);yn=o(Wp,"requests.get()"),Wp.forEach(a),Pn=o(wa,". Por exemplo, voc\xEA pode executar o seguinte comando para recuperar a primeira issue na primeira p\xE1gina:"),wa.forEach(a),io=c(s),_(re.$$.fragment,s),lo=c(s),$s=i(s,"P",{});var Lr=l($s);Dn=o(Lr,"O objeto "),Fa=i(Lr,"CODE",{});var Yp=l(Fa);Hn=o(Yp,"response"),Yp.forEach(a),Cn=o(Lr," cont\xE9m muitas informa\xE7\xF5es \xFAteis sobre a solicita\xE7\xE3o, incluindo o c\xF3digo de status HTTP:"),Lr.forEach(a),po=c(s),_(ne.$$.fragment,s),uo=c(s),_(ie.$$.fragment,s),co=c(s),J=i(s,"P",{});var Qs=l(J);On=o(Qs,"onde um status "),Va=i(Qs,"CODE",{});var su=l(Va);An=o(su,"200"),su.forEach(a),Nn=o(Qs," significa que a solicita\xE7\xE3o foi bem-sucedida (voc\xEA pode encontrar uma lista de poss\xEDveis c\xF3digos de status HTTP "),le=i(Qs,"A",{href:!0,rel:!0});var eu=l(le);Tn=o(eu,"aqui"),eu.forEach(a),Gn=o(Qs,"). O que realmente nos interessa, por\xE9m, \xE9 o "),Ba=i(Qs,"EM",{});var au=l(Ba);zn=o(au,"payload"),au.forEach(a),In=o(Qs,", que pode ser acessado em v\xE1rios formatos como bytes, strings ou JSON. Como sabemos que nossas issues est\xE3o no formato JSON, vamos inspecionar o payload da seguinte forma:"),Qs.forEach(a),mo=c(s),_(pe.$$.fragment,s),ho=c(s),_(ue.$$.fragment,s),fo=c(s),Z=i(s,"P",{});var Js=l(Z);Rn=o(Js,"Uau, \xE9 muita informa\xE7\xE3o! Podemos ver campos \xFAteis como "),Qa=i(Js,"CODE",{});var tu=l(Qa);Sn=o(tu,"title"),tu.forEach(a),Un=o(Js,", "),Ja=i(Js,"CODE",{});var ou=l(Ja);Ln=o(ou,"body"),ou.forEach(a),Mn=o(Js," e "),Za=i(Js,"CODE",{});var ru=l(Za);Fn=o(ru,"number"),ru.forEach(a),Vn=o(Js," que descrevem a issue, bem como informa\xE7\xF5es sobre o usu\xE1rio do GitHub que abriu a issue."),Js.forEach(a),go=c(s),_(qs.$$.fragment,s),_o=c(s),U=i(s,"P",{});var ns=l(U);Bn=o(ns,"Conforme descrito na [documenta\xE7\xE3o] do GitHub ("),ce=i(ns,"A",{href:!0,rel:!0});var nu=l(ce);Qn=o(nu,"https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting"),nu.forEach(a),Jn=o(ns,"), as solicita\xE7\xF5es n\xE3o autenticadas s\xE3o limitadas a 60 solicita\xE7\xF5es por hora. Embora voc\xEA possa aumentar o par\xE2metro de consulta "),Ka=i(ns,"CODE",{});var iu=l(Ka);Zn=o(iu,"per_page"),iu.forEach(a),Kn=o(ns," para reduzir o n\xFAmero de solicita\xE7\xF5es feitas, voc\xEA ainda atingir\xE1 o limite de taxa em qualquer reposit\xF3rio que tenha mais do que alguns milhares de issues. Ent\xE3o, em vez disso, voc\xEA deve seguir as [instru\xE7\xF5es] do GitHub ("),de=i(ns,"A",{href:!0,rel:!0});var lu=l(de);Xn=o(lu,"https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token"),lu.forEach(a),Wn=o(ns,") sobre como criar um "),Xa=i(ns,"EM",{});var pu=l(Xa);Yn=o(pu,"token de acesso pessoal"),pu.forEach(a),si=o(ns," para que voc\xEA pode aumentar o limite de taxa para 5.000 solicita\xE7\xF5es por hora. Depois de ter seu token, voc\xEA pode inclu\xED-lo como parte do cabe\xE7alho da solicita\xE7\xE3o:"),ns.forEach(a),bo=c(s),_(me.$$.fragment,s),vo=c(s),_(Es.$$.fragment,s),xo=c(s),ma=i(s,"P",{});var uu=l(ma);ei=o(uu,"Agora que temos nosso token de acesso, vamos criar uma fun\xE7\xE3o que possa baixar todas as issues de um reposit\xF3rio do GitHub:"),uu.forEach(a),jo=c(s),_(he.$$.fragment,s),$o=c(s),Y=i(s,"P",{});var ka=l(Y);ai=o(ka,"Agora, quando chamamos "),Wa=i(ka,"CODE",{});var cu=l(Wa);ti=o(cu,"fetch_issues()"),cu.forEach(a),oi=o(ka,", ele far\xE1 o download de todas as issues em lotes para evitar exceder o limite do GitHub no n\xFAmero de solicita\xE7\xF5es por hora; o resultado ser\xE1 armazenado em um arquivo "),Ya=i(ka,"EM",{});var du=l(Ya);ri=o(du,"repository_name-issues.jsonl"),du.forEach(a),ni=o(ka,", onde cada linha \xE9 um objeto JSON que representa uma issue. Vamos usar esta fun\xE7\xE3o para pegar todas as issues de \u{1F917} Datasets:"),ka.forEach(a),qo=c(s),_(fe.$$.fragment,s),Eo=c(s),ws=i(s,"P",{});var Mr=l(ws);ii=o(Mr,"Depois que as issues forem baixadas, podemos carreg\xE1-las localmente usando nossas novas habilidades da "),ha=i(Mr,"A",{href:!0});var mu=l(ha);li=o(mu,"se\xE7\xE3o 2"),mu.forEach(a),pi=o(Mr,":"),Mr.forEach(a),wo=c(s),_(ge.$$.fragment,s),ko=c(s),_(_e.$$.fragment,s),yo=c(s),ss=i(s,"P",{});var ya=l(ss);ui=o(ya,"\xD3timo, criamos nosso primeiro conjunto de dados do zero! Mas por que existem v\xE1rios milhares de issues quando a "),be=i(ya,"A",{href:!0,rel:!0});var hu=l(be);ci=o(hu,"guia Issue"),hu.forEach(a),di=o(ya," do reposit\xF3rio \u{1F917} Datasets mostra apenas cerca de 1.000 issues no total \u{1F914}? Conforme descrito na [documenta\xE7\xE3o] do GitHub ("),ve=i(ya,"A",{href:!0,rel:!0});var fu=l(ve);mi=o(fu,"https://docs.github.com/en/rest/reference/issues#list-issues-assigned-to-the-authenticated-user"),fu.forEach(a),hi=o(ya,"), isso ocorre porque baixamos todos os pull request tamb\xE9m:"),ya.forEach(a),Po=c(s),fa=i(s,"BLOCKQUOTE",{});var gu=l(fa);cs=i(gu,"P",{});var Pa=l(cs);fi=o(Pa,"A API REST v3 do GitHub considera cada pull request como uma issue, mas nem toda issue \xE9 um pull request. Por esse motivo, os endpoints de \u201Cissues\u201D podem retornar issues e solicita\xE7\xF5es de pull na resposta. Voc\xEA pode identificar solicita\xE7\xF5es de pull pela chave "),st=i(Pa,"CODE",{});var _u=l(st);gi=o(_u,"pull_request"),_u.forEach(a),_i=o(Pa,". Esteja ciente de que o "),et=i(Pa,"CODE",{});var bu=l(et);bi=o(bu,"id"),bu.forEach(a),vi=o(Pa," de uma solicita\xE7\xE3o pull retornada de endpoints \u201Cissues\u201D ser\xE1 um ID de issue."),Pa.forEach(a),gu.forEach(a),Do=c(s),ga=i(s,"P",{});var vu=l(ga);xi=o(vu,"Como o conte\xFAdo das issues e dos pull request s\xE3o bem diferentes, vamos fazer um pequeno pr\xE9-processamento para nos permitir distinguir entre eles."),vu.forEach(a),Ho=c(s),ds=i(s,"H2",{class:!0});var Fr=l(ds);ks=i(Fr,"A",{id:!0,class:!0,href:!0});var xu=l(ks);at=i(xu,"SPAN",{});var ju=l(at);_(xe.$$.fragment,ju),ju.forEach(a),xu.forEach(a),ji=c(Fr),tt=i(Fr,"SPAN",{});var $u=l(tt);$i=o($u,"Limpando os dados"),$u.forEach(a),Fr.forEach(a),Co=c(s),I=i(s,"P",{});var F=l(I);qi=o(F,"O trecho acima da documenta\xE7\xE3o do GitHub nos diz que a coluna "),ot=i(F,"CODE",{});var qu=l(ot);Ei=o(qu,"pull_request"),qu.forEach(a),wi=o(F," pode ser usada para diferenciar entre issues e solicita\xE7\xF5es de pull request. Vamos olhar para uma amostra aleat\xF3ria para ver qual \xE9 a diferen\xE7a. Como fizemos na "),_a=i(F,"A",{href:!0});var Eu=l(_a);ki=o(Eu,"se\xE7\xE3o 3"),Eu.forEach(a),yi=o(F,", vamos encadear "),rt=i(F,"CODE",{});var wu=l(rt);Pi=o(wu,"Dataset.shuffle()"),wu.forEach(a),Di=o(F," e "),nt=i(F,"CODE",{});var ku=l(nt);Hi=o(ku,"Dataset.select()"),ku.forEach(a),Ci=o(F," para criar uma amostra aleat\xF3ria e ent\xE3o compactar o "),it=i(F,"CODE",{});var yu=l(it);Oi=o(yu,"html_url"),yu.forEach(a),Ai=o(F," e "),lt=i(F,"CODE",{});var Pu=l(lt);Ni=o(Pu,"pull_request"),Pu.forEach(a),Ti=o(F," para que possamos comparar os v\xE1rios URLs:"),F.forEach(a),Oo=c(s),_(je.$$.fragment,s),Ao=c(s),_($e.$$.fragment,s),No=c(s),L=i(s,"P",{});var is=l(L);Gi=o(is,"Aqui podemos ver que cada pull request est\xE1 associado a v\xE1rios URLs, enquanto as issues comuns t\xEAm uma entrada "),pt=i(is,"CODE",{});var Du=l(pt);zi=o(Du,"None"),Du.forEach(a),Ii=o(is,". Podemos usar essa distin\xE7\xE3o para criar uma nova coluna "),ut=i(is,"CODE",{});var Hu=l(ut);Ri=o(Hu,"is_pull_request"),Hu.forEach(a),Si=o(is," que verifica se o campo "),ct=i(is,"CODE",{});var Cu=l(ct);Ui=o(Cu,"pull_request"),Cu.forEach(a),Li=o(is," \xE9 "),dt=i(is,"CODE",{});var Ou=l(dt);Mi=o(Ou,"None"),Ou.forEach(a),Fi=o(is," ou n\xE3o:"),is.forEach(a),To=c(s),_(qe.$$.fragment,s),Go=c(s),_(ys.$$.fragment,s),zo=c(s),ba=i(s,"P",{});var Au=l(ba);Vi=o(Au,"Embora possamos continuar a limpar o conjunto de dados descartando ou renomeando algumas colunas, geralmente \xE9 uma boa pr\xE1tica manter o conjunto de dados o mais \u201Cbruto\u201D poss\xEDvel neste est\xE1gio para que possa ser facilmente usado em v\xE1rios aplicativos."),Au.forEach(a),Io=c(s),va=i(s,"P",{});var Nu=l(va);Bi=o(Nu,"Antes de enviarmos nosso conjunto de dados para o Hugging Face Hub, vamos lidar com uma coisa que est\xE1 faltando: os coment\xE1rios associados a cada issue e pull request. Vamos adicion\xE1-los a seguir - voc\xEA adivinhou - a API REST do GitHub!"),Nu.forEach(a),Ro=c(s),ms=i(s,"H2",{class:!0});var Vr=l(ms);Ps=i(Vr,"A",{id:!0,class:!0,href:!0});var Tu=l(Ps);mt=i(Tu,"SPAN",{});var Gu=l(mt);_(Ee.$$.fragment,Gu),Gu.forEach(a),Tu.forEach(a),Qi=c(Vr),ht=i(Vr,"SPAN",{});var zu=l(ht);Ji=o(zu,"Aumentando o conjunto de dados"),zu.forEach(a),Vr.forEach(a),So=c(s),xa=i(s,"P",{});var Iu=l(xa);Zi=o(Iu,"Conforme mostrado na captura de tela a seguir, os coment\xE1rios associados a uma issue ou a pull request fornecem uma rica fonte de informa\xE7\xF5es, especialmente se estivermos interessados \u200B\u200Bem criar um mecanismo de pesquisa para responder \xE0s consultas dos usu\xE1rios sobre a biblioteca."),Iu.forEach(a),Uo=c(s),we=i(s,"DIV",{class:!0});var Ru=l(we);ke=i(Ru,"IMG",{src:!0,alt:!0,width:!0}),Ru.forEach(a),Lo=c(s),Ds=i(s,"P",{});var Br=l(Ds);Ki=o(Br,"A API REST do GitHub fornece um "),Hs=i(Br,"A",{href:!0,rel:!0});var Dp=l(Hs);Xi=o(Dp,"endpoint "),ft=i(Dp,"CODE",{});var Su=l(ft);Wi=o(Su,"Comments"),Su.forEach(a),Dp.forEach(a),Yi=o(Br," que retorna todos os coment\xE1rios associados a uma issue. Vamos testar o endpoint para ver o que ele retorna:"),Br.forEach(a),Mo=c(s),_(ye.$$.fragment,s),Fo=c(s),_(Pe.$$.fragment,s),Vo=c(s),K=i(s,"P",{});var Zs=l(K);sl=o(Zs,"Podemos ver que o coment\xE1rio est\xE1 armazenado no campo "),gt=i(Zs,"CODE",{});var Uu=l(gt);el=o(Uu,"body"),Uu.forEach(a),al=o(Zs,", ent\xE3o vamos escrever uma fun\xE7\xE3o simples que retorna todos os coment\xE1rios associados a uma issue selecionando o conte\xFAdo do "),_t=i(Zs,"CODE",{});var Lu=l(_t);tl=o(Lu,"body"),Lu.forEach(a),ol=o(Zs," para cada elemento em "),bt=i(Zs,"CODE",{});var Mu=l(bt);rl=o(Mu,"response.json()"),Mu.forEach(a),nl=o(Zs,":"),Zs.forEach(a),Bo=c(s),_(De.$$.fragment,s),Qo=c(s),_(He.$$.fragment,s),Jo=c(s),es=i(s,"P",{});var Da=l(es);il=o(Da,"Isso parece certo, ent\xE3o vamos usar "),vt=i(Da,"CODE",{});var Fu=l(vt);ll=o(Fu,"Dataset.map()"),Fu.forEach(a),pl=o(Da," para adicionar uma nova coluna "),xt=i(Da,"CODE",{});var Vu=l(xt);ul=o(Vu,"comments"),Vu.forEach(a),cl=o(Da," para cada issue em nosso conjunto de dados:"),Da.forEach(a),Zo=c(s),_(Ce.$$.fragment,s),Ko=c(s),ja=i(s,"P",{});var Bu=l(ja);dl=o(Bu,"A etapa final \xE9 salvar o conjunto de dados aumentado junto com nossos dados brutos para que possamos envi\xE1-los para o Hub:"),Bu.forEach(a),Xo=c(s),_(Oe.$$.fragment,s),Wo=c(s),hs=i(s,"H2",{class:!0});var Qr=l(hs);Cs=i(Qr,"A",{id:!0,class:!0,href:!0});var Qu=l(Cs);jt=i(Qu,"SPAN",{});var Ju=l(jt);_(Ae.$$.fragment,Ju),Ju.forEach(a),Qu.forEach(a),ml=c(Qr),$t=i(Qr,"SPAN",{});var Zu=l($t);hl=o(Zu,"Carregando o conjunto de dados para o Hugging Face Hub"),Zu.forEach(a),Qr.forEach(a),Yo=c(s),_(Ne.$$.fragment,s),sr=c(s),as=i(s,"P",{});var Ha=l(as);fl=o(Ha,"Agora que temos nosso conjunto de dados aumentado, \xE9 hora de envi\xE1-lo para o Hub para que possamos compartilh\xE1-lo com a comunidade! Para fazer o upload do conjunto de dados, usaremos a "),Te=i(Ha,"A",{href:!0,rel:!0});var Ku=l(Te);gl=o(Ku,"\u{1F917} Hub library"),Ku.forEach(a),_l=o(Ha,", que nos permite interagir com o Hugging Face Hub por meio de uma API Python. \u{1F917} Hub vem pr\xE9-instalado com \u{1F917} Transformers, para que possamos us\xE1-lo diretamente. Por exemplo, podemos usar a fun\xE7\xE3o "),qt=i(Ha,"CODE",{});var Xu=l(qt);bl=o(Xu,"list_datasets()"),Xu.forEach(a),vl=o(Ha," para obter informa\xE7\xF5es sobre todos os conjuntos de dados p\xFAblicos atualmente hospedados no Hub:"),Ha.forEach(a),er=c(s),_(Ge.$$.fragment,s),ar=c(s),_(ze.$$.fragment,s),tr=c(s),Os=i(s,"P",{});var Jr=l(Os);xl=o(Jr,"Podemos ver que atualmente existem cerca de 1.500 conjuntos de dados no Hub, e a fun\xE7\xE3o "),Et=i(Jr,"CODE",{});var Wu=l(Et);jl=o(Wu,"list_datasets()"),Wu.forEach(a),$l=o(Jr," tamb\xE9m fornece alguns metadados b\xE1sicos sobre cada reposit\xF3rio de conjuntos de dados."),Jr.forEach(a),or=c(s),As=i(s,"P",{});var Zr=l(As);ql=o(Zr,"Para nossos prop\xF3sitos, a primeira coisa que precisamos fazer \xE9 criar um novo reposit\xF3rio de conjunto de dados no Hub. Para fazer isso, precisamos de um token de autentica\xE7\xE3o, que pode ser obtido primeiro entrando no Hugging Face Hub com a fun\xE7\xE3o "),wt=i(Zr,"CODE",{});var Yu=l(wt);El=o(Yu,"notebook_login()"),Yu.forEach(a),wl=o(Zr,":"),Zr.forEach(a),rr=c(s),_(Ie.$$.fragment,s),nr=c(s),Ns=i(s,"P",{});var Kr=l(Ns);kl=o(Kr,"Isso criar\xE1 um widget onde voc\xEA poder\xE1 inserir seu nome de usu\xE1rio e senha, e um token de API ser\xE1 salvo em "),kt=i(Kr,"EM",{});var sc=l(kt);yl=o(sc,"~/.huggingface/token"),sc.forEach(a),Pl=o(Kr,". Se voc\xEA estiver executando o c\xF3digo em um terminal, poder\xE1 fazer login via CLI:"),Kr.forEach(a),ir=c(s),_(Re.$$.fragment,s),lr=c(s),Ts=i(s,"P",{});var Xr=l(Ts);Dl=o(Xr,"Feito isso, podemos criar um novo reposit\xF3rio de conjunto de dados com a fun\xE7\xE3o "),yt=i(Xr,"CODE",{});var ec=l(yt);Hl=o(ec,"create_repo()"),ec.forEach(a),Cl=o(Xr,":"),Xr.forEach(a),pr=c(s),_(Se.$$.fragment,s),ur=c(s),_(Ue.$$.fragment,s),cr=c(s),ts=i(s,"P",{});var Ca=l(ts);Ol=o(Ca,"Neste exemplo, criamos um reposit\xF3rio de conjunto de dados vazio chamado "),Pt=i(Ca,"CODE",{});var ac=l(Pt);Al=o(ac,"github-issues"),ac.forEach(a),Nl=o(Ca," sob o nome de usu\xE1rio "),Dt=i(Ca,"CODE",{});var tc=l(Dt);Tl=o(tc,"lewtun"),tc.forEach(a),Gl=o(Ca," (o nome de usu\xE1rio deve ser seu nome de usu\xE1rio do Hub quando voc\xEA estiver executando este c\xF3digo!)."),Ca.forEach(a),dr=c(s),_(Gs.$$.fragment,s),mr=c(s),zs=i(s,"P",{});var Wr=l(zs);zl=o(Wr,"Em seguida, vamos clonar o reposit\xF3rio do Hub para nossa m\xE1quina local e copiar nosso arquivo de conjunto de dados para ele. O \u{1F917} Hub fornece uma classe "),Ht=i(Wr,"CODE",{});var oc=l(Ht);Il=o(oc,"Repository"),oc.forEach(a),Rl=o(Wr," \xFAtil que envolve muitos dos comandos comuns do Git, portanto, para clonar o reposit\xF3rio remoto, basta fornecer o URL e o caminho local para o qual desejamos clonar:"),Wr.forEach(a),hr=c(s),_(Le.$$.fragment,s),fr=c(s),M=i(s,"P",{});var ls=l(M);Sl=o(ls,"Por padr\xE3o, v\xE1rias extens\xF5es de arquivo (como "),Ct=i(ls,"EM",{});var rc=l(Ct);Ul=o(rc,".bin"),rc.forEach(a),Ll=o(ls,", "),Ot=i(ls,"EM",{});var nc=l(Ot);Ml=o(nc,".gz"),nc.forEach(a),Fl=o(ls," e "),At=i(ls,"EM",{});var ic=l(At);Vl=o(ic,".zip"),ic.forEach(a),Bl=o(ls,") s\xE3o rastreadas com o Git LFS para que arquivos grandes possam ser versionados no mesmo fluxo de trabalho do Git. Voc\xEA pode encontrar uma lista de extens\xF5es de arquivos rastreados dentro do arquivo "),Nt=i(ls,"EM",{});var lc=l(Nt);Ql=o(lc,".gitattributes"),lc.forEach(a),Jl=o(ls," do reposit\xF3rio. Para incluir o formato JSON Lines na lista, podemos executar o seguinte comando:"),ls.forEach(a),gr=c(s),_(Me.$$.fragment,s),_r=c(s),Is=i(s,"P",{});var Yr=l(Is);Zl=o(Yr,"Ent\xE3o podemos usar "),Tt=i(Yr,"CODE",{});var pc=l(Tt);Kl=o(pc,"Repository.push_to_hub()"),pc.forEach(a),Xl=o(Yr," para enviar o conjunto de dados para o Hub:"),Yr.forEach(a),br=c(s),_(Fe.$$.fragment,s),vr=c(s),Rs=i(s,"P",{});var sn=l(Rs);Wl=o(sn,"Se navegarmos para a URL contida em "),Gt=i(sn,"CODE",{});var uc=l(Gt);Yl=o(uc,"repo_url"),uc.forEach(a),sp=o(sn,", veremos agora que nosso arquivo de conjunto de dados foi carregado."),sn.forEach(a),xr=c(s),Ve=i(s,"DIV",{class:!0});var cc=l(Ve);Be=i(cc,"IMG",{src:!0,alt:!0,width:!0}),cc.forEach(a),jr=c(s),os=i(s,"P",{});var Oa=l(os);ep=o(Oa,"A partir daqui, qualquer um pode baixar o conjunto de dados simplesmente fornecendo "),zt=i(Oa,"CODE",{});var dc=l(zt);ap=o(dc,"load_dataset()"),dc.forEach(a),tp=o(Oa," com o ID do reposit\xF3rio como o argumento "),It=i(Oa,"CODE",{});var mc=l(It);op=o(mc,"path"),mc.forEach(a),rp=o(Oa,":"),Oa.forEach(a),$r=c(s),_(Qe.$$.fragment,s),qr=c(s),_(Je.$$.fragment,s),Er=c(s),Ss=i(s,"P",{});var en=l(Ss);np=o(en,"Legal, n\xF3s enviamos nosso conjunto de dados para o Hub e est\xE1 dispon\xEDvel para outros usarem! H\xE1 apenas uma coisa importante a fazer: adicionar um "),Rt=i(en,"EM",{});var hc=l(Rt);ip=o(hc,"cart\xE3o de conjunto de dados"),hc.forEach(a),lp=o(en," que explica como o corpus foi criado e fornece outras informa\xE7\xF5es \xFAteis para a comunidade."),en.forEach(a),wr=c(s),_(Us.$$.fragment,s),kr=c(s),fs=i(s,"H2",{class:!0});var an=l(fs);Ls=i(an,"A",{id:!0,class:!0,href:!0});var fc=l(Ls);St=i(fc,"SPAN",{});var gc=l(St);_(Ze.$$.fragment,gc),gc.forEach(a),fc.forEach(a),pp=c(an),Ut=i(an,"SPAN",{});var _c=l(Ut);up=o(_c,"Criando um cart\xE3o do datasets"),_c.forEach(a),an.forEach(a),yr=c(s),$a=i(s,"P",{});var bc=l($a);cp=o(bc,"Conjuntos de dados bem documentados s\xE3o mais propensos a serem \xFAteis para outras pessoas (incluindo voc\xEA mesmo no futuro!), pois fornecem o contexto para permitir que os usu\xE1rios decidam se o conjunto de dados \xE9 relevante para sua tarefa e avaliem poss\xEDveis vieses ou riscos associados ao uso o conjunto de dados."),bc.forEach(a),Pr=c(s),Ms=i(s,"P",{});var tn=l(Ms);dp=o(tn,"No Hugging Face Hub, essas informa\xE7\xF5es s\xE3o armazenadas no arquivo "),Lt=i(tn,"EM",{});var vc=l(Lt);mp=o(vc,"README.md"),vc.forEach(a),hp=o(tn," de cada reposit\xF3rio de conjunto de dados. H\xE1 duas etapas principais que voc\xEA deve seguir antes de criar este arquivo:"),tn.forEach(a),Dr=c(s),qa=i(s,"OL",{});var xc=l(qa);gs=i(xc,"LI",{});var Aa=l(gs);fp=o(Aa,"Use a aplica\xE7\xE3o "),Ke=i(Aa,"A",{href:!0,rel:!0});var jc=l(Ke);Mt=i(jc,"CODE",{});var $c=l(Mt);gp=o($c,"datasets-tagging"),$c.forEach(a),jc.forEach(a),_p=o(Aa," para criar tags de metadados no formato YAML. Essas tags s\xE3o usadas para uma variedade de recursos de pesquisa no Hugging Face Hub e garantem que seu conjunto de dados possa ser facilmente encontrado pelos membros da comunidade. Como criamos um conjunto de dados personalizado aqui, voc\xEA precisar\xE1 clonar o reposit\xF3rio "),Ft=i(Aa,"CODE",{});var qc=l(Ft);bp=o(qc,"datasets-tagging"),qc.forEach(a),vp=o(Aa," e executar o aplicativo localmente. Veja como \xE9 a interface:"),Aa.forEach(a),xc.forEach(a),Hr=c(s),Xe=i(s,"DIV",{class:!0});var Ec=l(Xe);We=i(Ec,"IMG",{src:!0,alt:!0,width:!0}),Ec.forEach(a),Cr=c(s),Ye=i(s,"OL",{start:!0});var wc=l(Ye);sa=i(wc,"LI",{});var on=l(sa);xp=o(on,"Leia o "),ea=i(on,"A",{href:!0,rel:!0});var kc=l(ea);jp=o(kc,"guia do \u{1F917} datasets"),kc.forEach(a),$p=o(on," sobre como criar cart\xF5es informativos de conjuntos de dados e use-os como modelo."),on.forEach(a),wc.forEach(a),Or=c(s),rs=i(s,"P",{});var Na=l(rs);qp=o(Na,"Voc\xEA pode criar o arquivo "),Vt=i(Na,"EM",{});var yc=l(Vt);Ep=o(yc,"README.md"),yc.forEach(a),wp=o(Na," diretamente no Hub e encontrar um cart\xE3o de conjunto de dados de modelo no reposit\xF3rio de conjunto de dados "),Bt=i(Na,"CODE",{});var Pc=l(Bt);kp=o(Pc,"lewtun/github-issues"),Pc.forEach(a),yp=o(Na,". Uma captura de tela do cart\xE3o de conjunto de dados preenchido \xE9 mostrada abaixo."),Na.forEach(a),Ar=c(s),aa=i(s,"DIV",{class:!0});var Dc=l(aa);ta=i(Dc,"IMG",{src:!0,alt:!0,width:!0}),Dc.forEach(a),Nr=c(s),_(Fs.$$.fragment,s),Tr=c(s),Ea=i(s,"P",{});var Hc=l(Ea);Pp=o(Hc,"\xC9 isso! Vimos nesta se\xE7\xE3o que criar um bom conjunto de dados pode ser bastante complicado, mas felizmente carreg\xE1-lo e compartilh\xE1-lo com a comunidade n\xE3o \xE9. Na pr\xF3xima se\xE7\xE3o, usaremos nosso novo conjunto de dados para criar um mecanismo de pesquisa sem\xE2ntica com o \u{1F917} datasets que podem corresponder perguntas as issues e coment\xE1rios mais relevantes."),Hc.forEach(a),Gr=c(s),_(Vs.$$.fragment,s),this.h()},h(){m(d,"name","hf:doc:metadata"),m(d,"content",JSON.stringify(Bc)),m(E,"id","criando-seu-prprio-dataset"),m(E,"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"),m(E,"href","#criando-seu-prprio-dataset"),m(h,"class","relative group"),m(y,"href","https://github.com/features/issues/"),m(y,"rel","nofollow"),m(vs,"id","obtendo-os-dados"),m(vs,"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"),m(vs,"href","#obtendo-os-dados"),m(us,"class","relative group"),m(Xs,"href","https://github.com/huggingface/datasets/issues"),m(Xs,"rel","nofollow"),Ta(Ys.src,Hp="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/datasets-issues.png")||m(Ys,"src",Hp),m(Ys,"alt","The GitHub issues associated with \u{1F917} Datasets."),m(Ys,"width","80%"),m(Ws,"class","flex justify-center"),Ta(ee.src,Cp="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/datasets-issues-single.png")||m(ee,"src",Cp),m(ee,"alt","A typical GitHub issue in the \u{1F917} Datasets repository."),m(ee,"width","80%"),m(se,"class","flex justify-center"),m(ae,"href","https://docs.github.com/en/rest"),m(ae,"rel","nofollow"),m(te,"href","https://docs.github."),m(te,"rel","nofollow"),m(le,"href","https://en.wikipedia.org/wiki/List_of_HTTP_status_codes"),m(le,"rel","nofollow"),m(ce,"href","https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting"),m(ce,"rel","nofollow"),m(de,"href","https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token"),m(de,"rel","nofollow"),m(ha,"href","/course/chaper5/2"),m(be,"href","https://github.com/huggingface/datasets/issues"),m(be,"rel","nofollow"),m(ve,"href","https://docs.github.com/en/rest/reference/issues#list-issues-assigned-to-the-authenticated-user"),m(ve,"rel","nofollow"),m(ks,"id","limpando-os-dados"),m(ks,"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"),m(ks,"href","#limpando-os-dados"),m(ds,"class","relative group"),m(_a,"href","/course/chapter5/3"),m(Ps,"id","aumentando-o-conjunto-de-dados"),m(Ps,"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"),m(Ps,"href","#aumentando-o-conjunto-de-dados"),m(ms,"class","relative group"),Ta(ke.src,Op="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/datasets-issues-comment.png")||m(ke,"src",Op),m(ke,"alt","Comments associated with an issue about \u{1F917} Datasets."),m(ke,"width","80%"),m(we,"class","flex justify-center"),m(Hs,"href","https://docs.github.com/en/rest/reference/issues#list-issue-comments"),m(Hs,"rel","nofollow"),m(Cs,"id","carregando-o-conjunto-de-dados-para-o-hugging-face-hub"),m(Cs,"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"),m(Cs,"href","#carregando-o-conjunto-de-dados-para-o-hugging-face-hub"),m(hs,"class","relative group"),m(Te,"href","https://github.com/huggingface/huggingface_hub"),m(Te,"rel","nofollow"),Ta(Be.src,Ap="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/hub-repo.png")||m(Be,"src",Ap),m(Be,"alt","Our dataset repository on the Hugging Face Hub."),m(Be,"width","80%"),m(Ve,"class","flex justify-center"),m(Ls,"id","criando-um-carto-do-datasets"),m(Ls,"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"),m(Ls,"href","#criando-um-carto-do-datasets"),m(fs,"class","relative group"),m(Ke,"href","https://huggingface.co/datasets/tagging/"),m(Ke,"rel","nofollow"),Ta(We.src,Np="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/datasets-tagger.png")||m(We,"src",Np),m(We,"alt","The `datasets-tagging` interface."),m(We,"width","80%"),m(Xe,"class","flex justify-center"),m(ea,"href","https://github.com/huggingface/datasets/blob/master/templates/README_guide.md"),m(ea,"rel","nofollow"),m(Ye,"start","2"),Ta(ta.src,Tp="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/dataset-card.png")||m(ta,"src",Tp),m(ta,"alt","A dataset card."),m(ta,"width","80%"),m(aa,"class","flex justify-center")},m(s,r){e(document.head,d),p(s,P,r),p(s,h,r),e(h,E),e(E,k),b(f,k,null),e(h,w),e(h,D),e(D,$),p(s,q,r),b(A,s,r),p(s,H,r),p(s,C,r),e(C,T),e(C,y),e(y,N),e(C,V),p(s,R,r),p(s,G,r),e(G,B),e(B,ps),e(G,z),e(G,X),e(X,ia),e(X,bs),e(bs,la),e(X,pa),e(G,ua),e(G,za),e(za,rn),p(s,Xt,r),p(s,ca,r),e(ca,nn),p(s,Wt,r),p(s,us,r),e(us,vs),e(vs,Ia),b(Ks,Ia,null),e(us,ln),e(us,Ra),e(Ra,pn),p(s,Yt,r),p(s,xs,r),e(xs,un),e(xs,Xs),e(Xs,cn),e(xs,dn),p(s,so,r),p(s,Ws,r),e(Ws,Ys),p(s,eo,r),p(s,da,r),e(da,mn),p(s,ao,r),p(s,se,r),e(se,ee),p(s,to,r),p(s,Q,r),e(Q,hn),e(Q,ae),e(ae,fn),e(Q,gn),e(Q,Sa),e(Sa,_n),e(Q,bn),e(Q,te),e(te,vn),e(Q,xn),p(s,oo,r),p(s,js,r),e(js,jn),e(js,Ua),e(Ua,$n),e(js,qn),p(s,ro,r),b(oe,s,r),p(s,no,r),p(s,W,r),e(W,En),e(W,La),e(La,wn),e(W,kn),e(W,Ma),e(Ma,yn),e(W,Pn),p(s,io,r),b(re,s,r),p(s,lo,r),p(s,$s,r),e($s,Dn),e($s,Fa),e(Fa,Hn),e($s,Cn),p(s,po,r),b(ne,s,r),p(s,uo,r),b(ie,s,r),p(s,co,r),p(s,J,r),e(J,On),e(J,Va),e(Va,An),e(J,Nn),e(J,le),e(le,Tn),e(J,Gn),e(J,Ba),e(Ba,zn),e(J,In),p(s,mo,r),b(pe,s,r),p(s,ho,r),b(ue,s,r),p(s,fo,r),p(s,Z,r),e(Z,Rn),e(Z,Qa),e(Qa,Sn),e(Z,Un),e(Z,Ja),e(Ja,Ln),e(Z,Mn),e(Z,Za),e(Za,Fn),e(Z,Vn),p(s,go,r),b(qs,s,r),p(s,_o,r),p(s,U,r),e(U,Bn),e(U,ce),e(ce,Qn),e(U,Jn),e(U,Ka),e(Ka,Zn),e(U,Kn),e(U,de),e(de,Xn),e(U,Wn),e(U,Xa),e(Xa,Yn),e(U,si),p(s,bo,r),b(me,s,r),p(s,vo,r),b(Es,s,r),p(s,xo,r),p(s,ma,r),e(ma,ei),p(s,jo,r),b(he,s,r),p(s,$o,r),p(s,Y,r),e(Y,ai),e(Y,Wa),e(Wa,ti),e(Y,oi),e(Y,Ya),e(Ya,ri),e(Y,ni),p(s,qo,r),b(fe,s,r),p(s,Eo,r),p(s,ws,r),e(ws,ii),e(ws,ha),e(ha,li),e(ws,pi),p(s,wo,r),b(ge,s,r),p(s,ko,r),b(_e,s,r),p(s,yo,r),p(s,ss,r),e(ss,ui),e(ss,be),e(be,ci),e(ss,di),e(ss,ve),e(ve,mi),e(ss,hi),p(s,Po,r),p(s,fa,r),e(fa,cs),e(cs,fi),e(cs,st),e(st,gi),e(cs,_i),e(cs,et),e(et,bi),e(cs,vi),p(s,Do,r),p(s,ga,r),e(ga,xi),p(s,Ho,r),p(s,ds,r),e(ds,ks),e(ks,at),b(xe,at,null),e(ds,ji),e(ds,tt),e(tt,$i),p(s,Co,r),p(s,I,r),e(I,qi),e(I,ot),e(ot,Ei),e(I,wi),e(I,_a),e(_a,ki),e(I,yi),e(I,rt),e(rt,Pi),e(I,Di),e(I,nt),e(nt,Hi),e(I,Ci),e(I,it),e(it,Oi),e(I,Ai),e(I,lt),e(lt,Ni),e(I,Ti),p(s,Oo,r),b(je,s,r),p(s,Ao,r),b($e,s,r),p(s,No,r),p(s,L,r),e(L,Gi),e(L,pt),e(pt,zi),e(L,Ii),e(L,ut),e(ut,Ri),e(L,Si),e(L,ct),e(ct,Ui),e(L,Li),e(L,dt),e(dt,Mi),e(L,Fi),p(s,To,r),b(qe,s,r),p(s,Go,r),b(ys,s,r),p(s,zo,r),p(s,ba,r),e(ba,Vi),p(s,Io,r),p(s,va,r),e(va,Bi),p(s,Ro,r),p(s,ms,r),e(ms,Ps),e(Ps,mt),b(Ee,mt,null),e(ms,Qi),e(ms,ht),e(ht,Ji),p(s,So,r),p(s,xa,r),e(xa,Zi),p(s,Uo,r),p(s,we,r),e(we,ke),p(s,Lo,r),p(s,Ds,r),e(Ds,Ki),e(Ds,Hs),e(Hs,Xi),e(Hs,ft),e(ft,Wi),e(Ds,Yi),p(s,Mo,r),b(ye,s,r),p(s,Fo,r),b(Pe,s,r),p(s,Vo,r),p(s,K,r),e(K,sl),e(K,gt),e(gt,el),e(K,al),e(K,_t),e(_t,tl),e(K,ol),e(K,bt),e(bt,rl),e(K,nl),p(s,Bo,r),b(De,s,r),p(s,Qo,r),b(He,s,r),p(s,Jo,r),p(s,es,r),e(es,il),e(es,vt),e(vt,ll),e(es,pl),e(es,xt),e(xt,ul),e(es,cl),p(s,Zo,r),b(Ce,s,r),p(s,Ko,r),p(s,ja,r),e(ja,dl),p(s,Xo,r),b(Oe,s,r),p(s,Wo,r),p(s,hs,r),e(hs,Cs),e(Cs,jt),b(Ae,jt,null),e(hs,ml),e(hs,$t),e($t,hl),p(s,Yo,r),b(Ne,s,r),p(s,sr,r),p(s,as,r),e(as,fl),e(as,Te),e(Te,gl),e(as,_l),e(as,qt),e(qt,bl),e(as,vl),p(s,er,r),b(Ge,s,r),p(s,ar,r),b(ze,s,r),p(s,tr,r),p(s,Os,r),e(Os,xl),e(Os,Et),e(Et,jl),e(Os,$l),p(s,or,r),p(s,As,r),e(As,ql),e(As,wt),e(wt,El),e(As,wl),p(s,rr,r),b(Ie,s,r),p(s,nr,r),p(s,Ns,r),e(Ns,kl),e(Ns,kt),e(kt,yl),e(Ns,Pl),p(s,ir,r),b(Re,s,r),p(s,lr,r),p(s,Ts,r),e(Ts,Dl),e(Ts,yt),e(yt,Hl),e(Ts,Cl),p(s,pr,r),b(Se,s,r),p(s,ur,r),b(Ue,s,r),p(s,cr,r),p(s,ts,r),e(ts,Ol),e(ts,Pt),e(Pt,Al),e(ts,Nl),e(ts,Dt),e(Dt,Tl),e(ts,Gl),p(s,dr,r),b(Gs,s,r),p(s,mr,r),p(s,zs,r),e(zs,zl),e(zs,Ht),e(Ht,Il),e(zs,Rl),p(s,hr,r),b(Le,s,r),p(s,fr,r),p(s,M,r),e(M,Sl),e(M,Ct),e(Ct,Ul),e(M,Ll),e(M,Ot),e(Ot,Ml),e(M,Fl),e(M,At),e(At,Vl),e(M,Bl),e(M,Nt),e(Nt,Ql),e(M,Jl),p(s,gr,r),b(Me,s,r),p(s,_r,r),p(s,Is,r),e(Is,Zl),e(Is,Tt),e(Tt,Kl),e(Is,Xl),p(s,br,r),b(Fe,s,r),p(s,vr,r),p(s,Rs,r),e(Rs,Wl),e(Rs,Gt),e(Gt,Yl),e(Rs,sp),p(s,xr,r),p(s,Ve,r),e(Ve,Be),p(s,jr,r),p(s,os,r),e(os,ep),e(os,zt),e(zt,ap),e(os,tp),e(os,It),e(It,op),e(os,rp),p(s,$r,r),b(Qe,s,r),p(s,qr,r),b(Je,s,r),p(s,Er,r),p(s,Ss,r),e(Ss,np),e(Ss,Rt),e(Rt,ip),e(Ss,lp),p(s,wr,r),b(Us,s,r),p(s,kr,r),p(s,fs,r),e(fs,Ls),e(Ls,St),b(Ze,St,null),e(fs,pp),e(fs,Ut),e(Ut,up),p(s,yr,r),p(s,$a,r),e($a,cp),p(s,Pr,r),p(s,Ms,r),e(Ms,dp),e(Ms,Lt),e(Lt,mp),e(Ms,hp),p(s,Dr,r),p(s,qa,r),e(qa,gs),e(gs,fp),e(gs,Ke),e(Ke,Mt),e(Mt,gp),e(gs,_p),e(gs,Ft),e(Ft,bp),e(gs,vp),p(s,Hr,r),p(s,Xe,r),e(Xe,We),p(s,Cr,r),p(s,Ye,r),e(Ye,sa),e(sa,xp),e(sa,ea),e(ea,jp),e(sa,$p),p(s,Or,r),p(s,rs,r),e(rs,qp),e(rs,Vt),e(Vt,Ep),e(rs,wp),e(rs,Bt),e(Bt,kp),e(rs,yp),p(s,Ar,r),p(s,aa,r),e(aa,ta),p(s,Nr,r),b(Fs,s,r),p(s,Tr,r),p(s,Ea,r),e(Ea,Pp),p(s,Gr,r),b(Vs,s,r),zr=!0},p(s,[r]){const oa={};r&2&&(oa.$$scope={dirty:r,ctx:s}),qs.$set(oa);const Qt={};r&2&&(Qt.$$scope={dirty:r,ctx:s}),Es.$set(Qt);const Jt={};r&2&&(Jt.$$scope={dirty:r,ctx:s}),ys.$set(Jt);const Zt={};r&2&&(Zt.$$scope={dirty:r,ctx:s}),Gs.$set(Zt);const ra={};r&2&&(ra.$$scope={dirty:r,ctx:s}),Us.$set(ra);const Kt={};r&2&&(Kt.$$scope={dirty:r,ctx:s}),Fs.$set(Kt);const _s={};r&2&&(_s.$$scope={dirty:r,ctx:s}),Vs.$set(_s)},i(s){zr||(v(f.$$.fragment,s),v(A.$$.fragment,s),v(Ks.$$.fragment,s),v(oe.$$.fragment,s),v(re.$$.fragment,s),v(ne.$$.fragment,s),v(ie.$$.fragment,s),v(pe.$$.fragment,s),v(ue.$$.fragment,s),v(qs.$$.fragment,s),v(me.$$.fragment,s),v(Es.$$.fragment,s),v(he.$$.fragment,s),v(fe.$$.fragment,s),v(ge.$$.fragment,s),v(_e.$$.fragment,s),v(xe.$$.fragment,s),v(je.$$.fragment,s),v($e.$$.fragment,s),v(qe.$$.fragment,s),v(ys.$$.fragment,s),v(Ee.$$.fragment,s),v(ye.$$.fragment,s),v(Pe.$$.fragment,s),v(De.$$.fragment,s),v(He.$$.fragment,s),v(Ce.$$.fragment,s),v(Oe.$$.fragment,s),v(Ae.$$.fragment,s),v(Ne.$$.fragment,s),v(Ge.$$.fragment,s),v(ze.$$.fragment,s),v(Ie.$$.fragment,s),v(Re.$$.fragment,s),v(Se.$$.fragment,s),v(Ue.$$.fragment,s),v(Gs.$$.fragment,s),v(Le.$$.fragment,s),v(Me.$$.fragment,s),v(Fe.$$.fragment,s),v(Qe.$$.fragment,s),v(Je.$$.fragment,s),v(Us.$$.fragment,s),v(Ze.$$.fragment,s),v(Fs.$$.fragment,s),v(Vs.$$.fragment,s),zr=!0)},o(s){x(f.$$.fragment,s),x(A.$$.fragment,s),x(Ks.$$.fragment,s),x(oe.$$.fragment,s),x(re.$$.fragment,s),x(ne.$$.fragment,s),x(ie.$$.fragment,s),x(pe.$$.fragment,s),x(ue.$$.fragment,s),x(qs.$$.fragment,s),x(me.$$.fragment,s),x(Es.$$.fragment,s),x(he.$$.fragment,s),x(fe.$$.fragment,s),x(ge.$$.fragment,s),x(_e.$$.fragment,s),x(xe.$$.fragment,s),x(je.$$.fragment,s),x($e.$$.fragment,s),x(qe.$$.fragment,s),x(ys.$$.fragment,s),x(Ee.$$.fragment,s),x(ye.$$.fragment,s),x(Pe.$$.fragment,s),x(De.$$.fragment,s),x(He.$$.fragment,s),x(Ce.$$.fragment,s),x(Oe.$$.fragment,s),x(Ae.$$.fragment,s),x(Ne.$$.fragment,s),x(Ge.$$.fragment,s),x(ze.$$.fragment,s),x(Ie.$$.fragment,s),x(Re.$$.fragment,s),x(Se.$$.fragment,s),x(Ue.$$.fragment,s),x(Gs.$$.fragment,s),x(Le.$$.fragment,s),x(Me.$$.fragment,s),x(Fe.$$.fragment,s),x(Qe.$$.fragment,s),x(Je.$$.fragment,s),x(Us.$$.fragment,s),x(Ze.$$.fragment,s),x(Fs.$$.fragment,s),x(Vs.$$.fragment,s),zr=!1},d(s){a(d),s&&a(P),s&&a(h),j(f),s&&a(q),j(A,s),s&&a(H),s&&a(C),s&&a(R),s&&a(G),s&&a(Xt),s&&a(ca),s&&a(Wt),s&&a(us),j(Ks),s&&a(Yt),s&&a(xs),s&&a(so),s&&a(Ws),s&&a(eo),s&&a(da),s&&a(ao),s&&a(se),s&&a(to),s&&a(Q),s&&a(oo),s&&a(js),s&&a(ro),j(oe,s),s&&a(no),s&&a(W),s&&a(io),j(re,s),s&&a(lo),s&&a($s),s&&a(po),j(ne,s),s&&a(uo),j(ie,s),s&&a(co),s&&a(J),s&&a(mo),j(pe,s),s&&a(ho),j(ue,s),s&&a(fo),s&&a(Z),s&&a(go),j(qs,s),s&&a(_o),s&&a(U),s&&a(bo),j(me,s),s&&a(vo),j(Es,s),s&&a(xo),s&&a(ma),s&&a(jo),j(he,s),s&&a($o),s&&a(Y),s&&a(qo),j(fe,s),s&&a(Eo),s&&a(ws),s&&a(wo),j(ge,s),s&&a(ko),j(_e,s),s&&a(yo),s&&a(ss),s&&a(Po),s&&a(fa),s&&a(Do),s&&a(ga),s&&a(Ho),s&&a(ds),j(xe),s&&a(Co),s&&a(I),s&&a(Oo),j(je,s),s&&a(Ao),j($e,s),s&&a(No),s&&a(L),s&&a(To),j(qe,s),s&&a(Go),j(ys,s),s&&a(zo),s&&a(ba),s&&a(Io),s&&a(va),s&&a(Ro),s&&a(ms),j(Ee),s&&a(So),s&&a(xa),s&&a(Uo),s&&a(we),s&&a(Lo),s&&a(Ds),s&&a(Mo),j(ye,s),s&&a(Fo),j(Pe,s),s&&a(Vo),s&&a(K),s&&a(Bo),j(De,s),s&&a(Qo),j(He,s),s&&a(Jo),s&&a(es),s&&a(Zo),j(Ce,s),s&&a(Ko),s&&a(ja),s&&a(Xo),j(Oe,s),s&&a(Wo),s&&a(hs),j(Ae),s&&a(Yo),j(Ne,s),s&&a(sr),s&&a(as),s&&a(er),j(Ge,s),s&&a(ar),j(ze,s),s&&a(tr),s&&a(Os),s&&a(or),s&&a(As),s&&a(rr),j(Ie,s),s&&a(nr),s&&a(Ns),s&&a(ir),j(Re,s),s&&a(lr),s&&a(Ts),s&&a(pr),j(Se,s),s&&a(ur),j(Ue,s),s&&a(cr),s&&a(ts),s&&a(dr),j(Gs,s),s&&a(mr),s&&a(zs),s&&a(hr),j(Le,s),s&&a(fr),s&&a(M),s&&a(gr),j(Me,s),s&&a(_r),s&&a(Is),s&&a(br),j(Fe,s),s&&a(vr),s&&a(Rs),s&&a(xr),s&&a(Ve),s&&a(jr),s&&a(os),s&&a($r),j(Qe,s),s&&a(qr),j(Je,s),s&&a(Er),s&&a(Ss),s&&a(wr),j(Us,s),s&&a(kr),s&&a(fs),j(Ze),s&&a(yr),s&&a($a),s&&a(Pr),s&&a(Ms),s&&a(Dr),s&&a(qa),s&&a(Hr),s&&a(Xe),s&&a(Cr),s&&a(Ye),s&&a(Or),s&&a(rs),s&&a(Ar),s&&a(aa),s&&a(Nr),j(Fs,s),s&&a(Tr),s&&a(Ea),s&&a(Gr),j(Vs,s)}}}const Bc={local:"criando-seu-prprio-dataset",sections:[{local:"obtendo-os-dados",title:"Obtendo os dados"},{local:"limpando-os-dados",title:"Limpando os dados"},{local:"aumentando-o-conjunto-de-dados",title:"Aumentando o conjunto de dados"},{local:"carregando-o-conjunto-de-dados-para-o-hugging-face-hub",title:"Carregando o conjunto de dados para o Hugging Face Hub"},{local:"criando-um-carto-do-datasets",title:"Criando um cart\xE3o do datasets"}],title:"Criando seu pr\xF3prio dataset"};function Qc(S){return Tc(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class sd extends Cc{constructor(d){super();Oc(this,d,Qc,Vc,Ac,{})}}export{sd as default,Bc as metadata};
