import{S as fh,i as _h,s as gh,e as l,k as c,w as _,t as a,M as vh,c as r,d as t,m,a as o,x as g,h as n,b as d,N as Wt,G as s,g as u,y as v,q as b,o as x,B as j,v as bh}from"../../chunks/vendor-hf-doc-builder.js";import{T as yt}from"../../chunks/Tip-hf-doc-builder.js";import{Y as xh}from"../../chunks/Youtube-hf-doc-builder.js";import{I as Yt}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{C as O}from"../../chunks/CodeBlock-hf-doc-builder.js";import{C as jh}from"../../chunks/CourseFloatingBanner-hf-doc-builder.js";function Eh(F){let p,H,h,k,C;return{c(){p=l("p"),H=a("\u270F\uFE0F "),h=l("strong"),k=a("Essayez !"),C=a(" Cliquez sur quelques-unes des URL pour avoir une id\xE9e du type d\u2019informations auxquelles chaque probl\xE8me GitHub est li\xE9.")},l(f){p=r(f,"P",{});var z=o(p);H=n(z,"\u270F\uFE0F "),h=r(z,"STRONG",{});var N=o(h);k=n(N,"Essayez !"),N.forEach(t),C=n(z," Cliquez sur quelques-unes des URL pour avoir une id\xE9e du type d\u2019informations auxquelles chaque probl\xE8me GitHub est li\xE9."),z.forEach(t)},m(f,z){u(f,p,z),s(p,H),s(p,h),s(h,k),s(p,C)},d(f){f&&t(p)}}}function $h(F){let p,H,h,k,C,f,z,N,E,T,D,y,w,M,q,P;return{c(){p=l("p"),H=a("\u26A0\uFE0F Ne partagez pas un "),h=l("em"),k=a("notebook"),C=a(" avec votre "),f=l("code"),z=a("GITHUB_TOKEN"),N=a(" coll\xE9 dedans. Nous vous recommandons de supprimer la derni\xE8re cellule une fois que vous l\u2019avez ex\xE9cut\xE9e pour \xE9viter de divulguer accidentellement ces informations. Mieux encore, stockez le jeton dans un fichier "),E=l("em"),T=a(".env"),D=a(" et utilisez la "),y=l("a"),w=a("biblioth\xE8que "),M=l("code"),q=a("python-dotenv"),P=a(" pour le charger automatiquement pour vous en tant que variable d\u2019environnement."),this.h()},l(G){p=r(G,"P",{});var $=o(p);H=n($,"\u26A0\uFE0F Ne partagez pas un "),h=r($,"EM",{});var A=o(h);k=n(A,"notebook"),A.forEach(t),C=n($," avec votre "),f=r($,"CODE",{});var S=o(f);z=n(S,"GITHUB_TOKEN"),S.forEach(t),N=n($," coll\xE9 dedans. Nous vous recommandons de supprimer la derni\xE8re cellule une fois que vous l\u2019avez ex\xE9cut\xE9e pour \xE9viter de divulguer accidentellement ces informations. Mieux encore, stockez le jeton dans un fichier "),E=r($,"EM",{});var B=o(E);T=n(B,".env"),B.forEach(t),D=n($," et utilisez la "),y=r($,"A",{href:!0,rel:!0});var Q=o(y);w=n(Q,"biblioth\xE8que "),M=r(Q,"CODE",{});var ee=o(M);q=n(ee,"python-dotenv"),ee.forEach(t),Q.forEach(t),P=n($," pour le charger automatiquement pour vous en tant que variable d\u2019environnement."),$.forEach(t),this.h()},h(){d(y,"href","https://github.com/theskumar/python-dotenv"),d(y,"rel","nofollow")},m(G,$){u(G,p,$),s(p,H),s(p,h),s(h,k),s(p,C),s(p,f),s(f,z),s(p,N),s(p,E),s(E,T),s(p,D),s(p,y),s(y,w),s(y,M),s(M,q),s(p,P)},d(G){G&&t(p)}}}function qh(F){let p,H,h,k,C,f,z,N,E,T,D,y,w,M,q,P,G,$,A,S,B,Q,ee,De,ue,fs;return{c(){p=l("p"),H=a("\u270F\uFE0F "),h=l("strong"),k=a("Essayez !"),C=a(" Calculez le temps moyen n\xE9cessaire pour r\xE9soudre les probl\xE8mes dans \u{1F917} "),f=l("em"),z=a("Datasets"),N=a(". Vous pouvez trouver la fonction "),E=l("code"),T=a("Dataset.filter()"),D=a(" utile pour filtrer les demandes d\u2019extraction et les probl\xE8mes ouverts. Vous pouvez utiliser la fonction "),y=l("code"),w=a("Dataset.set_format()"),M=a(" pour convertir le jeu de donn\xE9es en un "),q=l("code"),P=a("DataFrame"),G=a(" afin que vous puissiez facilement manipuler les horodatages "),$=l("code"),A=a("created_at"),S=a(" et "),B=l("code"),Q=a("closed_at"),ee=a(". Pour les points bonus, calculez le temps moyen n\xE9cessaire pour fermer les "),De=l("em"),ue=a("pull_requests"),fs=a(".")},l(pe){p=r(pe,"P",{});var I=o(p);H=n(I,"\u270F\uFE0F "),h=r(I,"STRONG",{});var wt=o(h);k=n(wt,"Essayez !"),wt.forEach(t),C=n(I," Calculez le temps moyen n\xE9cessaire pour r\xE9soudre les probl\xE8mes dans \u{1F917} "),f=r(I,"EM",{});var kt=o(f);z=n(kt,"Datasets"),kt.forEach(t),N=n(I,". Vous pouvez trouver la fonction "),E=r(I,"CODE",{});var Oe=o(E);T=n(Oe,"Dataset.filter()"),Oe.forEach(t),D=n(I," utile pour filtrer les demandes d\u2019extraction et les probl\xE8mes ouverts. Vous pouvez utiliser la fonction "),y=r(I,"CODE",{});var Dt=o(y);w=n(Dt,"Dataset.set_format()"),Dt.forEach(t),M=n(I," pour convertir le jeu de donn\xE9es en un "),q=r(I,"CODE",{});var _s=o(q);P=n(_s,"DataFrame"),_s.forEach(t),G=n(I," afin que vous puissiez facilement manipuler les horodatages "),$=r(I,"CODE",{});var ce=o($);A=n(ce,"created_at"),ce.forEach(t),S=n(I," et "),B=r(I,"CODE",{});var zt=o(B);Q=n(zt,"closed_at"),zt.forEach(t),ee=n(I,". Pour les points bonus, calculez le temps moyen n\xE9cessaire pour fermer les "),De=r(I,"EM",{});var Te=o(De);ue=n(Te,"pull_requests"),Te.forEach(t),fs=n(I,"."),I.forEach(t)},m(pe,I){u(pe,p,I),s(p,H),s(p,h),s(h,k),s(p,C),s(p,f),s(f,z),s(p,N),s(p,E),s(E,T),s(p,D),s(p,y),s(y,w),s(p,M),s(p,q),s(q,P),s(p,G),s(p,$),s($,A),s(p,S),s(p,B),s(B,Q),s(p,ee),s(p,De),s(De,ue),s(p,fs)},d(pe){pe&&t(p)}}}function yh(F){let p,H,h,k,C,f,z,N,E,T,D;return{c(){p=l("p"),H=a("\u270F\uFE0F "),h=l("strong"),k=a("Essayez !"),C=a(" Utilisez votre nom d\u2019utilisateur et votre mot de passe Hugging Face pour obtenir un jeton et cr\xE9er un d\xE9p\xF4t vide appel\xE9 "),f=l("code"),z=a("github-issues"),N=a(". N\u2019oubliez pas de "),E=l("strong"),T=a("n\u2019enregistrez jamais vos informations d\u2019identification"),D=a(" dans Colab ou tout autre r\xE9f\xE9rentiel car ces informations peuvent \xEAtre exploit\xE9es par de mauvais individus.")},l(y){p=r(y,"P",{});var w=o(p);H=n(w,"\u270F\uFE0F "),h=r(w,"STRONG",{});var M=o(h);k=n(M,"Essayez !"),M.forEach(t),C=n(w," Utilisez votre nom d\u2019utilisateur et votre mot de passe Hugging Face pour obtenir un jeton et cr\xE9er un d\xE9p\xF4t vide appel\xE9 "),f=r(w,"CODE",{});var q=o(f);z=n(q,"github-issues"),q.forEach(t),N=n(w,". N\u2019oubliez pas de "),E=r(w,"STRONG",{});var P=o(E);T=n(P,"n\u2019enregistrez jamais vos informations d\u2019identification"),P.forEach(t),D=n(w," dans Colab ou tout autre r\xE9f\xE9rentiel car ces informations peuvent \xEAtre exploit\xE9es par de mauvais individus."),w.forEach(t)},m(y,w){u(y,p,w),s(p,H),s(p,h),s(h,k),s(p,C),s(p,f),s(f,z),s(p,N),s(p,E),s(E,T),s(p,D)},d(y){y&&t(p)}}}function wh(F){let p,H,h,k,C,f,z,N,E,T,D,y,w;return{c(){p=l("p"),H=a("\u{1F4A1} Vous pouvez \xE9galement t\xE9l\xE9charger un jeu de donn\xE9es sur le "),h=l("em"),k=a("Hub"),C=a(" directement depuis le terminal en utilisant "),f=l("code"),z=a("huggingface-cli"),N=a(" et un peu de magie Git. Consultez le "),E=l("a"),T=a("guide de \u{1F917} "),D=l("em"),y=a("Datasets"),w=a(" pour savoir comment proc\xE9der."),this.h()},l(M){p=r(M,"P",{});var q=o(p);H=n(q,"\u{1F4A1} Vous pouvez \xE9galement t\xE9l\xE9charger un jeu de donn\xE9es sur le "),h=r(q,"EM",{});var P=o(h);k=n(P,"Hub"),P.forEach(t),C=n(q," directement depuis le terminal en utilisant "),f=r(q,"CODE",{});var G=o(f);z=n(G,"huggingface-cli"),G.forEach(t),N=n(q," et un peu de magie Git. Consultez le "),E=r(q,"A",{href:!0,rel:!0});var $=o(E);T=n($,"guide de \u{1F917} "),D=r($,"EM",{});var A=o(D);y=n(A,"Datasets"),A.forEach(t),$.forEach(t),w=n(q," pour savoir comment proc\xE9der."),q.forEach(t),this.h()},h(){d(E,"href","https://huggingface.co/docs/datasets/share.html#add-a-community-dataset"),d(E,"rel","nofollow")},m(M,q){u(M,p,q),s(p,H),s(p,h),s(h,k),s(p,C),s(p,f),s(f,z),s(p,N),s(p,E),s(E,T),s(E,D),s(D,y),s(p,w)},d(M){M&&t(p)}}}function kh(F){let p,H,h,k,C,f,z,N,E,T,D,y,w,M,q,P;return{c(){p=l("p"),H=a("\u270F\uFE0F "),h=l("strong"),k=a("Essayez !"),C=a(" Utilisez l\u2019application "),f=l("code"),z=a("dataset-tagging"),N=a(" et "),E=l("a"),T=a("le guide de \u{1F917} "),D=l("em"),y=a("Datasets"),w=a(" pour compl\xE9ter le fichier "),M=l("em"),q=a("README.md"),P=a(" de votre jeu de donn\xE9es de probl\xE8mes GitHub."),this.h()},l(G){p=r(G,"P",{});var $=o(p);H=n($,"\u270F\uFE0F "),h=r($,"STRONG",{});var A=o(h);k=n(A,"Essayez !"),A.forEach(t),C=n($," Utilisez l\u2019application "),f=r($,"CODE",{});var S=o(f);z=n(S,"dataset-tagging"),S.forEach(t),N=n($," et "),E=r($,"A",{href:!0,rel:!0});var B=o(E);T=n(B,"le guide de \u{1F917} "),D=r(B,"EM",{});var Q=o(D);y=n(Q,"Datasets"),Q.forEach(t),B.forEach(t),w=n($," pour compl\xE9ter le fichier "),M=r($,"EM",{});var ee=o(M);q=n(ee,"README.md"),ee.forEach(t),P=n($," de votre jeu de donn\xE9es de probl\xE8mes GitHub."),$.forEach(t),this.h()},h(){d(E,"href","https://github.com/huggingface/datasets/blob/master/templates/README_guide.md"),d(E,"rel","nofollow")},m(G,$){u(G,p,$),s(p,H),s(p,h),s(h,k),s(p,C),s(p,f),s(f,z),s(p,N),s(p,E),s(E,T),s(E,D),s(D,y),s(p,w),s(p,M),s(M,q),s(p,P)},d(G){G&&t(p)}}}function Dh(F){let p,H,h,k,C,f,z,N,E,T,D,y,w,M;return{c(){p=l("p"),H=a("\u270F\uFE0F "),h=l("strong"),k=a("Essayez !"),C=a(" Suivez les \xE9tapes que nous avons suivies dans cette section pour cr\xE9er un jeu de donn\xE9es de probl\xE8mes GitHub pour votre biblioth\xE8que open source pr\xE9f\xE9r\xE9e (choisissez autre chose que \u{1F917} "),f=l("em"),z=a("Datasets"),N=a(", bien s\xFBr !). Pour obtenir des points bonus, "),E=l("em"),T=a("finetunez"),D=a(" un classifieur multilabel pour pr\xE9dire les balises pr\xE9sentes dans le champ "),y=l("code"),w=a("labels"),M=a(".")},l(q){p=r(q,"P",{});var P=o(p);H=n(P,"\u270F\uFE0F "),h=r(P,"STRONG",{});var G=o(h);k=n(G,"Essayez !"),G.forEach(t),C=n(P," Suivez les \xE9tapes que nous avons suivies dans cette section pour cr\xE9er un jeu de donn\xE9es de probl\xE8mes GitHub pour votre biblioth\xE8que open source pr\xE9f\xE9r\xE9e (choisissez autre chose que \u{1F917} "),f=r(P,"EM",{});var $=o(f);z=n($,"Datasets"),$.forEach(t),N=n(P,", bien s\xFBr !). Pour obtenir des points bonus, "),E=r(P,"EM",{});var A=o(E);T=n(A,"finetunez"),A.forEach(t),D=n(P," un classifieur multilabel pour pr\xE9dire les balises pr\xE9sentes dans le champ "),y=r(P,"CODE",{});var S=o(y);w=n(S,"labels"),S.forEach(t),M=n(P,"."),P.forEach(t)},m(q,P){u(q,p,P),s(p,H),s(p,h),s(h,k),s(p,C),s(p,f),s(f,z),s(p,N),s(p,E),s(E,T),s(p,D),s(p,y),s(y,w),s(p,M)},d(q){q&&t(p)}}}function zh(F){let p,H,h,k,C,f,z,N,E,T,D,y,w,M,q,P,G,$,A,S,B,Q,ee,De,ue,fs,pe,I,wt,kt,Oe,Dt,_s,ce,zt,Te,Wr,Yr,Jn,ze,Ae,ea,gs,eo,sa,so,Kn,de,to,ta,ao,no,vs,lo,ro,Xn,bs,xs,Rc,Wn,Pt,oo,Yn,js,Es,Uc,el,he,io,$s,uo,po,qs,aa,co,mo,sl,Ge,ho,na,fo,_o,tl,ys,al,fe,go,la,vo,bo,ra,xo,jo,nl,ws,ll,Ie,Eo,oa,$o,qo,rl,ks,ol,Ds,il,se,yo,ia,wo,ko,zs,Do,zo,ua,Po,Co,ul,Ps,pl,Cs,cl,te,Ho,pa,No,Mo,ca,Oo,To,ma,Ao,Go,ml,Re,dl,Z,Io,Hs,Ro,Uo,da,So,Lo,Ns,Vo,Fo,ha,Bo,Qo,fa,Zo,Jo,hl,Ms,fl,Ue,_l,Ct,Ko,gl,Os,vl,ae,Xo,_a,Wo,Yo,ga,ei,si,va,ti,ai,bl,Ts,xl,Se,ni,Ht,li,ri,jl,As,El,Gs,$l,X,oi,Is,ii,ui,ba,pi,ci,Rs,mi,di,xa,hi,fi,ql,Nt,V,_i,ja,gi,vi,Ea,bi,xi,$a,ji,Ei,qa,$i,qi,ya,yi,wi,wa,ki,Di,yl,Le,zi,ka,Pi,Ci,wl,Pe,Ve,Da,Us,Hi,za,Ni,kl,R,Mi,Pa,Oi,Ti,Ca,Ai,Gi,Ha,Ii,Ri,Mt,Ui,Si,Na,Li,Vi,Ma,Fi,Bi,Oa,Qi,Zi,Ta,Ji,Ki,Dl,Ss,zl,Ls,Pl,J,Xi,Aa,Wi,Yi,Ga,eu,su,Ia,tu,au,Ra,nu,lu,Ua,ru,ou,Cl,Vs,Hl,Fe,Nl,Ot,iu,Ml,_e,uu,Sa,pu,cu,La,mu,du,Ol,Ce,Be,Va,Fs,hu,Fa,fu,Tl,Qe,_u,Ba,gu,vu,Al,Bs,Qs,Sc,Gl,Ze,bu,Zs,Qa,xu,ju,Il,Js,Rl,Ks,Ul,ne,Eu,Za,$u,qu,Ja,yu,wu,Ka,ku,Du,Sl,Xs,Ll,Ws,Vl,ge,zu,Xa,Pu,Cu,Wa,Hu,Nu,Fl,Ys,Bl,Je,Mu,Ya,Ou,Tu,Ql,et,Zl,He,Ke,en,st,Au,Tt,Gu,sn,Iu,Jl,tt,Kl,U,Ru,tn,Uu,Su,Xe,Lu,an,Vu,Fu,nn,Bu,Qu,ln,Zu,Ju,rn,Ku,Xu,on,Wu,Yu,un,ep,sp,Xl,at,Wl,nt,Yl,ve,tp,pn,ap,np,cn,lp,rp,er,le,op,mn,ip,up,dn,pp,cp,hn,mp,dp,sr,lt,tr,be,hp,fn,fp,_p,_n,gp,vp,ar,rt,nr,We,bp,gn,xp,jp,lr,ot,rr,it,or,xe,Ep,vn,$p,qp,bn,yp,wp,ir,Ye,ur,je,kp,xn,Dp,zp,jn,Pp,Cp,pr,ut,cr,W,Hp,En,Np,Mp,$n,Op,Tp,qn,Ap,Gp,yn,Ip,Rp,mr,pt,dr,Ee,Up,wn,Sp,Lp,kn,Vp,Fp,hr,ct,fr,es,Bp,Dn,Qp,Zp,_r,mt,dt,Lc,gr,$e,Jp,zn,Kp,Xp,Pn,Wp,Yp,vr,ht,br,ft,xr,qe,ec,Cn,sc,tc,Hn,ac,nc,jr,ss,Er,Ne,ts,Nn,_t,lc,Mn,rc,$r,At,oc,qr,ye,ic,On,uc,pc,Tn,cc,mc,yr,Gt,me,dc,as,hc,An,fc,_c,Gn,gc,vc,In,bc,xc,wr,gt,vt,Vc,kr,bt,xt,jc,ns,Ec,Rn,$c,qc,Dr,re,yc,Un,wc,kc,Sn,Dc,zc,Ln,Pc,Cc,zr,jt,Et,Fc,Pr,ls,Cr,rs,Hc,Vn,Nc,Mc,Hr,os,Nr;return f=new Yt({}),D=new jh({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/fr/chapter5/section5.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fr/chapter5/section5.ipynb"}]}}),gs=new Yt({}),ys=new O({props:{code:"!pip install requests",highlighted:"!pip install requests"}}),ws=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)`}}),ks=new O({props:{code:"response.status_code",highlighted:"response.status_code"}}),Ds=new O({props:{code:"200",highlighted:'<span class="hljs-number">200</span>'}}),Ps=new O({props:{code:"response.json()",highlighted:"response.json()"}}),Cs=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>}]`}}),Re=new yt({props:{$$slots:{default:[Eh]},$$scope:{ctx:F}}}),Ms=new O({props:{code:`GITHUB_TOKEN = xxx  # Copiez votre jeton GitHub ici
headers = {"Authorization": f"token {GITHUB_TOKEN}"}`,highlighted:`GITHUB_TOKEN = xxx  <span class="hljs-comment"># Copiez votre jeton GitHub ici</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>}`}}),Ue=new yt({props:{warning:!0,$$slots:{default:[$h]},$$scope:{ctx:F}}}),Os=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  # Nombre d'issues \xE0 retourner par page
    num_pages = math.ceil(num_issues / per_page)
    base_url = "https://api.github.com/repos"

    for page in tqdm(range(num_pages)):
        # Requ\xEAte avec state=all pour obtenir les issues ouvertes et ferm\xE9es
        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 = []  # Vider le batch pour la p\xE9riode de temps suivante
            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"># Nombre d&#x27;issues \xE0 retourner par 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"># Requ\xEAte avec state=all pour obtenir les issues ouvertes et ferm\xE9es</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"># Vider le batch pour la p\xE9riode de temps suivante</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>
    )`}}),Ts=new O({props:{code:`# En fonction de votre connexion Internet, l'ex\xE9cution peut prendre plusieurs minutes...
fetch_issues()`,highlighted:`<span class="hljs-comment"># En fonction de votre connexion Internet, l&#x27;ex\xE9cution peut prendre plusieurs minutes...</span>
fetch_issues()`}}),As=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`}}),Gs=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>
})`}}),Us=new Yt({}),Ss=new O({props:{code:`sample = issues_dataset.shuffle(seed=666).select(range(3))

# Afficher l'URL et les entr\xE9es de la PR
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"># Afficher l&#x27;URL et les entr\xE9es de la PR</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>)`}}),Ls=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>}`}}),Vs=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>}
)`}}),Fe=new yt({props:{$$slots:{default:[qh]},$$scope:{ctx:F}}}),Fs=new Yt({}),Js=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()`}}),Ks=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>}]`}}),Xs=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()]


# Tester notre fonction fonctionne comme pr\xE9vu
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"># Tester notre fonction fonctionne comme pr\xE9vu</span>
get_comments(<span class="hljs-number">2792</span>)`}}),Ws=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>]'}}),Ys=new O({props:{code:`# Selon votre connexion internet, cela peut prendre quelques minutes...
issues_with_comments_dataset = issues_dataset.map(
    lambda x: {"comments": get_comments(x["number"])}
)`,highlighted:`<span class="hljs-comment"># Selon votre connexion internet, cela peut prendre quelques 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>])}
)`}}),et=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>)'}}),st=new Yt({}),tt=new xh({props:{id:"HaN6qCr_Afc"}}),at=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>])`}}),nt=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>]`}}),lt=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()`}}),rt=new O({props:{code:"huggingface-cli login",highlighted:"huggingface-cli login"}}),ot=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`}}),it=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>'}}),Ye=new yt({props:{$$slots:{default:[yh]},$$scope:{ctx:F}}}),ut=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/`}}),pt=new O({props:{code:'repo.lfs_track("*.jsonl")',highlighted:'repo.lfs_track(<span class="hljs-string">&quot;*.jsonl&quot;</span>)'}}),ct=new O({props:{code:"repo.push_to_hub()",highlighted:"repo.push_to_hub()"}}),ht=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`}}),ft=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>
})`}}),ss=new yt({props:{$$slots:{default:[wh]},$$scope:{ctx:F}}}),_t=new Yt({}),ls=new yt({props:{$$slots:{default:[kh]},$$scope:{ctx:F}}}),os=new yt({props:{$$slots:{default:[Dh]},$$scope:{ctx:F}}}),{c(){p=l("meta"),H=c(),h=l("h1"),k=l("a"),C=l("span"),_(f.$$.fragment),z=c(),N=l("span"),E=a("Cr\xE9ation de votre propre jeu de donn\xE9es"),T=c(),_(D.$$.fragment),y=c(),w=l("p"),M=a("Parfois, le jeu de donn\xE9es dont vous avez besoin pour cr\xE9er une application de NLP n\u2019existe pas. Vous devrez donc le cr\xE9er vous-m\xEAme. Dans cette section, nous allons vous montrer comment cr\xE9er un corpus de "),q=l("a"),P=a("probl\xE8mes GitHub"),G=a(", qui sont couramment utilis\xE9s pour suivre les bogues ou les fonctionnalit\xE9s dans les d\xE9p\xF4ts GitHub. Ce corpus pourrait \xEAtre utilis\xE9 \xE0 diverses fins, notamment :"),$=c(),A=l("ul"),S=l("li"),B=a("explorer combien de temps il faut pour fermer les probl\xE8mes ouverts ou les "),Q=l("em"),ee=a("pull requests"),De=c(),ue=l("li"),fs=a("entra\xEEner d\u2019un "),pe=l("em"),I=a("classifieur multilabel"),wt=a(" capable d\u2019\xE9tiqueter les probl\xE8mes avec des m\xE9tadonn\xE9es bas\xE9es sur la description du probl\xE8me (par exemple : \xAB bug \xBB, \xAB am\xE9lioration \xBB ou  \xAB question \xBB)"),kt=c(),Oe=l("li"),Dt=a("cr\xE9er un moteur de recherche s\xE9mantique pour trouver les probl\xE8mes correspondant \xE0 la requ\xEAte d\u2019un utilisateur"),_s=c(),ce=l("p"),zt=a("Ici, nous nous concentrerons sur la cr\xE9ation du corpus, et dans la section suivante, nous aborderons l\u2019application de recherche s\xE9mantique. Pour garder les choses m\xE9ta, nous utiliserons les probl\xE8mes GitHub associ\xE9s \xE0 un projet open source populaire : \u{1F917} "),Te=l("em"),Wr=a("Datasets"),Yr=a(" ! Voyons comment obtenir les donn\xE9es et explorons les informations contenues dans ces probl\xE8mes."),Jn=c(),ze=l("h2"),Ae=l("a"),ea=l("span"),_(gs.$$.fragment),eo=c(),sa=l("span"),so=a("Obtenir les donn\xE9es"),Kn=c(),de=l("p"),to=a("Vous pouvez trouver tous les probl\xE8mes dans \u{1F917} "),ta=l("em"),ao=a("Datasets"),no=a(" en acc\xE9dant \xE0 l\u2019"),vs=l("a"),lo=a("onglet \xAB Issues \xBB"),ro=a(" du d\xE9p\xF4t. Comme le montre la capture d\u2019\xE9cran suivante, au moment de la r\xE9daction, il y avait 331 probl\xE8mes ouverts et 668 probl\xE8mes ferm\xE9s."),Xn=c(),bs=l("div"),xs=l("img"),Wn=c(),Pt=l("p"),oo=a("Si vous cliquez sur l\u2019un de ces probl\xE8mes, vous constaterez qu\u2019il contient un titre, une description et un ensemble d\u2019\xE9tiquettes qui caract\xE9risent le probl\xE8me. Un exemple est montr\xE9 dans la capture d\u2019\xE9cran ci-dessous."),Yn=c(),js=l("div"),Es=l("img"),el=c(),he=l("p"),io=a("Pour t\xE9l\xE9charger tous les probl\xE8mes du d\xE9p\xF4t, nous utilisons l\u2019"),$s=l("a"),uo=a("API REST GitHub"),po=a(" pour interroger le point de terminaison "),qs=l("a"),aa=l("code"),co=a("Issues"),mo=a(". Ce point de terminaison renvoie une liste d\u2019objets JSON. Chaque objet contenant un grand nombre de champs qui incluent le titre et la description ainsi que des m\xE9tadonn\xE9es sur l\u2019\xE9tat du probl\xE8me, etc."),sl=c(),Ge=l("p"),ho=a("Un moyen pratique de t\xE9l\xE9charger les probl\xE8mes consiste \xE0 utiliser la biblioth\xE8que "),na=l("code"),fo=a("requests"),_o=a(", qui est la m\xE9thode standard pour effectuer des requ\xEAtes HTTP en Python. Vous pouvez installer la biblioth\xE8que en ex\xE9cutant :"),tl=c(),_(ys.$$.fragment),al=c(),fe=l("p"),go=a("Une fois la biblioth\xE8que install\xE9e, vous pouvez envoyer des requ\xEAtes GET au point de terminaison "),la=l("code"),vo=a("Issues"),bo=a(" en appelant la fonction "),ra=l("code"),xo=a("requests.get()"),jo=a(". Par exemple, vous pouvez ex\xE9cuter la commande suivante pour r\xE9cup\xE9rer le premier num\xE9ro sur la premi\xE8re page :"),nl=c(),_(ws.$$.fragment),ll=c(),Ie=l("p"),Eo=a("L\u2019objet "),oa=l("code"),$o=a("response"),qo=a(" contient de nombreuses informations utiles sur la requ\xEAte, y compris le code d\u2019\xE9tat HTTP :"),rl=c(),_(ks.$$.fragment),ol=c(),_(Ds.$$.fragment),il=c(),se=l("p"),yo=a("o\xF9 un statut "),ia=l("code"),wo=a("200"),ko=a(" signifie que la requ\xEAte a r\xE9ussi (vous pouvez trouver une liste des codes de statut HTTP possibles "),zs=l("a"),Do=a("ici"),zo=a("). Ce qui nous int\xE9resse vraiment, cependant, c\u2019est le "),ua=l("em"),Po=a("payload"),Co=a(", qui peut \xEAtre consult\xE9 dans diff\xE9rents formats comme les octets, les cha\xEEnes ou JSON. Comme nous savons que nos probl\xE8mes sont au format JSON, examinons la charge utile comme suit :"),ul=c(),_(Ps.$$.fragment),pl=c(),_(Cs.$$.fragment),cl=c(),te=l("p"),Ho=a("Waouh, \xE7a fait beaucoup d\u2019informations ! Nous pouvons voir des champs utiles comme "),pa=l("code"),No=a("title"),Mo=a(", "),ca=l("code"),Oo=a("body"),To=a(" et "),ma=l("code"),Ao=a("number"),Go=a(" qui d\xE9crivent le probl\xE8me, ainsi que des informations sur l\u2019utilisateur GitHub qui a ouvert le probl\xE8me."),ml=c(),_(Re.$$.fragment),dl=c(),Z=l("p"),Io=a("Comme d\xE9crit dans la "),Hs=l("a"),Ro=a("documentation GitHub"),Uo=a(", les requ\xEAtes non authentifi\xE9es sont limit\xE9es \xE0 60 requ\xEAtes par heure. Bien que vous puissiez augmenter le param\xE8tre de requ\xEAte "),da=l("code"),So=a("per_page"),Lo=a(" pour r\xE9duire le nombre de requ\xEAtes que vous effectuez, vous atteindrez toujours la limite de d\xE9bit sur tout d\xE9p\xF4t contenant des milliers de probl\xE8mes. Donc, \xE0 la place, vous devez suivre les "),Ns=l("a"),Vo=a("instructions de GitHub"),Fo=a(" sur la cr\xE9ation d\u2019un "),ha=l("em"),Bo=a("jeton d\u2019acc\xE8s personnel"),Qo=a(" afin que vous peut augmenter la limite de d\xE9bit \xE0 5 000 requ\xEAtes par heure. Une fois que vous avez votre "),fa=l("em"),Zo=a("token"),Jo=a(", vous pouvez l\u2019inclure dans l\u2019en-t\xEAte de la requ\xEAte :"),hl=c(),_(Ms.$$.fragment),fl=c(),_(Ue.$$.fragment),_l=c(),Ct=l("p"),Ko=a("Maintenant que nous avons notre jeton d\u2019acc\xE8s, cr\xE9ons une fonction qui peut t\xE9l\xE9charger tous les probl\xE8mes depuis un r\xE9f\xE9rentiel GitHub :"),gl=c(),_(Os.$$.fragment),vl=c(),ae=l("p"),Xo=a("D\xE9sormais, lorsque nous appellerons "),_a=l("code"),Wo=a("fetch_issues()"),Yo=a(", tous les probl\xE8mes seront t\xE9l\xE9charg\xE9s par batchs pour \xE9viter de d\xE9passer la limite de GitHub sur le nombre de requ\xEAtes par heure. Le r\xE9sultat sera stock\xE9 dans un fichier "),ga=l("em"),ei=a("repository_name-issues.jsonl"),si=a(", o\xF9 chaque ligne est un objet JSON qui repr\xE9sente un probl\xE8me. Utilisons cette fonction pour saisir tous les probl\xE8mes de \u{1F917} "),va=l("em"),ti=a("Datasets"),ai=a(" :"),bl=c(),_(Ts.$$.fragment),xl=c(),Se=l("p"),ni=a("Une fois les probl\xE8mes t\xE9l\xE9charg\xE9s, nous pouvons les charger localement en utilisant nos nouvelles comp\xE9tences de "),Ht=l("a"),li=a("section 2"),ri=a(" :"),jl=c(),_(As.$$.fragment),El=c(),_(Gs.$$.fragment),$l=c(),X=l("p"),oi=a("G\xE9nial, nous avons cr\xE9\xE9 notre premier jeu de donn\xE9es \xE0 partir de rien ! Mais pourquoi y a-t-il plusieurs milliers de probl\xE8mes alors que l\u2019"),Is=l("a"),ii=a("onglet \xAB Issues \xBB"),ui=a(" de la librairie \u{1F917} "),ba=l("em"),pi=a("Datasets"),ci=a(" n\u2019affiche qu\u2019environ 1 000 probl\xE8mes au total \u{1F914} ? Comme d\xE9crit dans la "),Rs=l("a"),mi=a("documentation GitHub"),di=a(", c\u2019est parce que nous avons t\xE9l\xE9charg\xE9 toutes les "),xa=l("em"),hi=a("pull requests"),fi=a(" \xE9galement :"),ql=c(),Nt=l("blockquote"),V=l("p"),_i=a("L\u2019API REST v3 de GitHub consid\xE8re chaque "),ja=l("em"),gi=a("pull request"),vi=a(" comme un probl\xE8me, mais chaque probl\xE8me n\u2019est pas une "),Ea=l("em"),bi=a("pull request"),xi=a(". Pour cette raison, les points de terminaison \xAB Issues \xBB peuvent renvoyer \xE0 la fois des probl\xE8mes et des "),$a=l("em"),ji=a("pull requests"),Ei=a(" dans la r\xE9ponse. Vous pouvez identifier les "),qa=l("em"),$i=a("pull requests"),qi=a(" par la cl\xE9 "),ya=l("code"),yi=a("pull_request"),wi=a(". Sachez que l\u2019identifiant d\u2019une "),wa=l("em"),ki=a("pull request"),Di=a(" renvoy\xE9e par les points de terminaison \xAB Issues \xBB sera un identifiant de probl\xE8me."),yl=c(),Le=l("p"),zi=a("\xC9tant donn\xE9 que le contenu des \xAB Issues \xBB et des "),ka=l("em"),Pi=a("pull request"),Ci=a(" est assez diff\xE9rent, proc\xE9dons \xE0 un pr\xE9traitement mineur pour nous permettre de les distinguer."),wl=c(),Pe=l("h2"),Ve=l("a"),Da=l("span"),_(Us.$$.fragment),Hi=c(),za=l("span"),Ni=a("Nettoyer les donn\xE9es"),kl=c(),R=l("p"),Mi=a("L\u2019extrait ci-dessus de la documentation de GitHub nous indique que la colonne "),Pa=l("code"),Oi=a("pull_request"),Ti=a(" peut \xEAtre utilis\xE9e pour diff\xE9rencier les "),Ca=l("em"),Ai=a("issues"),Gi=a(" et les "),Ha=l("em"),Ii=a("pull requests"),Ri=a(". Regardons un \xE9chantillon al\xE9atoire pour voir quelle est la diff\xE9rence. Comme nous l\u2019avons fait dans "),Mt=l("a"),Ui=a("section 3"),Si=a(", nous allons encha\xEEner "),Na=l("code"),Li=a("Dataset.shuffle()"),Vi=a(" et "),Ma=l("code"),Fi=a("Dataset.select()"),Bi=a(" pour cr\xE9er un \xE9chantillon al\xE9atoire, puis compresser "),Oa=l("code"),Qi=a("html_url"),Zi=a(" et "),Ta=l("code"),Ji=a("pull_request"),Ki=a(" afin que nous puissions comparer les diff\xE9rentes URL :"),Dl=c(),_(Ss.$$.fragment),zl=c(),_(Ls.$$.fragment),Pl=c(),J=l("p"),Xi=a("Ici, nous pouvons voir que chaque "),Aa=l("em"),Wi=a("pull request"),Yi=a(" est associ\xE9e \xE0 diverses URL, tandis que les probl\xE8mes ordinaires ont une entr\xE9e "),Ga=l("code"),eu=a("None"),su=a(". Nous pouvons utiliser cette distinction pour cr\xE9er une nouvelle colonne "),Ia=l("code"),tu=a("is_pull_request"),au=a(" qui v\xE9rifie si le champ "),Ra=l("code"),nu=a("pull_request"),lu=a(" est "),Ua=l("code"),ru=a("None"),ou=a(" ou non :"),Cl=c(),_(Vs.$$.fragment),Hl=c(),_(Fe.$$.fragment),Nl=c(),Ot=l("p"),iu=a("Bien que nous puissions continuer \xE0 nettoyer davantage le jeu de donn\xE9es en supprimant ou en renommant certaines colonnes, il est g\xE9n\xE9ralement recommand\xE9 de le conserver aussi brut que possible \xE0 ce stade afin qu\u2019il puisse \xEAtre facilement utilis\xE9 dans plusieurs applications."),Ml=c(),_e=l("p"),uu=a("Avant de pousser notre jeu de donn\xE9es vers le "),Sa=l("em"),pu=a("Hub"),cu=a(" d\u2019Hugging Face, traitons une chose manquante : les commentaires associ\xE9s \xE0 chaque probl\xE8me et "),La=l("em"),mu=a("pull requests"),du=a(". Nous les ajouterons ensuite avec l\u2019API GitHub REST !"),Ol=c(),Ce=l("h2"),Be=l("a"),Va=l("span"),_(Fs.$$.fragment),hu=c(),Fa=l("span"),fu=a("Enrichir le jeu de donn\xE9es"),Tl=c(),Qe=l("p"),_u=a("Comme le montre la capture d\u2019\xE9cran suivante, les commentaires associ\xE9s \xE0 un probl\xE8me ou \xE0 une "),Ba=l("em"),gu=a("pull request"),vu=a(" fournissent une riche source d\u2019informations, en particulier si nous souhaitons cr\xE9er un moteur de recherche pour r\xE9pondre aux requ\xEAtes des utilisateurs sur la biblioth\xE8que."),Al=c(),Bs=l("div"),Qs=l("img"),Gl=c(),Ze=l("p"),bu=a("L\u2019API REST GitHub fournit un point de terminaison "),Zs=l("a"),Qa=l("code"),xu=a("Comments"),ju=a(" qui renvoie tous les commentaires associ\xE9s \xE0 un num\xE9ro de probl\xE8me. Testons le point de terminaison pour voir ce qu\u2019il renvoie :"),Il=c(),_(Js.$$.fragment),Rl=c(),_(Ks.$$.fragment),Ul=c(),ne=l("p"),Eu=a("Nous pouvons voir que le commentaire est stock\xE9 dans le champ "),Za=l("code"),$u=a("body"),qu=a(". Ecrivons donc une fonction simple qui renvoie tous les commentaires associ\xE9s \xE0 un probl\xE8me en s\xE9lectionnant le contenu "),Ja=l("code"),yu=a("body"),wu=a(" pour chaque \xE9l\xE9ment dans "),Ka=l("code"),ku=a("response.json()"),Du=a(" :"),Sl=c(),_(Xs.$$.fragment),Ll=c(),_(Ws.$$.fragment),Vl=c(),ge=l("p"),zu=a("Cela a l\u2019air bien. Utilisons "),Xa=l("code"),Pu=a("Dataset.map()"),Cu=a(" pour ajouter une nouvelle colonne "),Wa=l("code"),Hu=a("comments"),Nu=a(" \xE0 chaque probl\xE8me de notre jeu de donn\xE9es :"),Fl=c(),_(Ys.$$.fragment),Bl=c(),Je=l("p"),Mu=a("La derni\xE8re \xE9tape consiste \xE0 enregistrer le jeu de donn\xE9es augment\xE9es avec nos donn\xE9es brutes afin que nous puissions les pousser tous les deux vers le "),Ya=l("em"),Ou=a("Hub"),Tu=a(" :"),Ql=c(),_(et.$$.fragment),Zl=c(),He=l("h2"),Ke=l("a"),en=l("span"),_(st.$$.fragment),Au=c(),Tt=l("span"),Gu=a("T\xE9l\xE9chargement du jeu de donn\xE9es sur le "),sn=l("i"),Iu=a("Hub"),Jl=c(),_(tt.$$.fragment),Kl=c(),U=l("p"),Ru=a("Maintenant que nous avons notre jeu de donn\xE9es augment\xE9, il est temps de le pousser vers le "),tn=l("em"),Uu=a("Hub"),Su=a(" afin que nous puissions le partager avec la communaut\xE9 ! Pour t\xE9l\xE9charger le jeu de donn\xE9es, nous utilisons la "),Xe=l("a"),Lu=a("biblioth\xE8que \u{1F917} "),an=l("em"),Vu=a("Hub"),Fu=a(", qui nous permet d\u2019interagir avec le "),nn=l("em"),Bu=a("Hub"),Qu=a(" d\u2019Hugging Face via une API Python. \u{1F917} "),ln=l("em"),Zu=a("Hub"),Ju=a(" est pr\xE9install\xE9 avec \u{1F917} "),rn=l("em"),Ku=a("Transformers"),Xu=a(", nous pouvons donc l\u2019utiliser directement. Par exemple, nous pouvons utiliser la fonction "),on=l("code"),Wu=a("list_datasets()"),Yu=a(" pour obtenir des informations sur tous les ensembles de donn\xE9es publics actuellement h\xE9berg\xE9s sur le "),un=l("em"),ep=a("Hub"),sp=a(":"),Xl=c(),_(at.$$.fragment),Wl=c(),_(nt.$$.fragment),Yl=c(),ve=l("p"),tp=a("Nous pouvons voir qu\u2019il y a actuellement pr\xE8s de 1 500 jeux de donn\xE9es sur le "),pn=l("em"),ap=a("Hub"),np=a(" et la fonction "),cn=l("code"),lp=a("list_datasets()"),rp=a(" fournit \xE9galement des m\xE9tadonn\xE9es de base sur chaque d\xE9p\xF4ts de jeux de donn\xE9es."),er=c(),le=l("p"),op=a("Pour nos besoins, la premi\xE8re chose que nous devons faire est de cr\xE9er un nouveau d\xE9p\xF4t de jeux de donn\xE9es sur le "),mn=l("em"),ip=a("Hub"),up=a(". Pour ce faire, nous avons besoin d\u2019un jeton d\u2019authentification, qui peut \xEAtre obtenu en se connectant d\u2019abord au "),dn=l("em"),pp=a("Hub"),cp=a(" d\u2019Hugging Face avec la fonction "),hn=l("code"),mp=a("notebook_login()"),dp=a(" :"),sr=c(),_(lt.$$.fragment),tr=c(),be=l("p"),hp=a("Cela cr\xE9\xE9 un "),fn=l("em"),fp=a("widget"),_p=a(" dans lequel vous pouvez entrer votre nom d\u2019utilisateur et votre mot de passe. Un jeton API sera enregistr\xE9 dans "),_n=l("em"),gp=a("~/.huggingface/token"),vp=a(". Si vous ex\xE9cutez le code dans un terminal, vous pouvez vous connecter via la CLI \xE0 la place :"),ar=c(),_(rt.$$.fragment),nr=c(),We=l("p"),bp=a("Une fois que nous avons fait cela, nous pouvons cr\xE9er un nouveau d\xE9p\xF4t de jeux de donn\xE9es avec la fonction "),gn=l("code"),xp=a("create_repo()"),jp=a(" :"),lr=c(),_(ot.$$.fragment),rr=c(),_(it.$$.fragment),or=c(),xe=l("p"),Ep=a("Dans cet exemple, nous avons cr\xE9\xE9 un d\xE9p\xF4t vide appel\xE9 "),vn=l("code"),$p=a("github-issues"),qp=a(" sous le nom d\u2019utilisateur "),bn=l("code"),yp=a("lewtun"),wp=a(" (le nom d\u2019utilisateur doit \xEAtre votre nom d\u2019utilisateur Hub lorsque vous ex\xE9cutez ce code !)."),ir=c(),_(Ye.$$.fragment),ur=c(),je=l("p"),kp=a("Ensuite, clonons le d\xE9p\xF4t du Hub sur notre machine locale et copions-y notre fichier jeu de donn\xE9es. \u{1F917} "),xn=l("em"),Dp=a("Hub"),zp=a(" fournit une classe "),jn=l("code"),Pp=a("Repository"),Cp=a(" pratique qui encapsule de nombreuses commandes Git courantes. Donc pour cloner le d\xE9p\xF4t distant, nous devons simplement fournir l\u2019URL et le chemin local vers lesquels nous souhaitons cloner :"),pr=c(),_(ut.$$.fragment),cr=c(),W=l("p"),Hp=a("Par d\xE9faut, diverses extensions de fichiers (telles que "),En=l("em"),Np=a(".bin"),Mp=a(", "),$n=l("em"),Op=a(".gz"),Tp=a(" et "),qn=l("em"),Ap=a(".zip"),Gp=a(") sont suivies avec Git LFS afin que les fichiers volumineux puissent \xEAtre versionn\xE9s dans le m\xEAme workflow Git. Vous pouvez trouver une liste des extensions de fichiers suivis dans le fichier "),yn=l("em"),Ip=a(".gitattributes"),Rp=a(" du r\xE9f\xE9rentiel. Pour inclure le format JSON Lines dans la liste, nous pouvons ex\xE9cuter la commande suivante :"),mr=c(),_(pt.$$.fragment),dr=c(),Ee=l("p"),Up=a("Ensuite, nous pouvons utiliser "),wn=l("code"),Sp=a("Repository.push_to_hub()"),Lp=a(" pour pousser le jeu de donn\xE9es vers le "),kn=l("em"),Vp=a("Hub"),Fp=a(" :"),hr=c(),_(ct.$$.fragment),fr=c(),es=l("p"),Bp=a("Si nous naviguons vers l\u2019URL contenue dans "),Dn=l("code"),Qp=a("repo_url"),Zp=a(", nous devrions maintenant voir que notre fichier de jeu de donn\xE9es a \xE9t\xE9 t\xE9l\xE9charg\xE9."),_r=c(),mt=l("div"),dt=l("img"),gr=c(),$e=l("p"),Jp=a("\xC0 partir de l\xE0, n\u2019importe qui peut t\xE9l\xE9charger le jeu de donn\xE9es en fournissant simplement "),zn=l("code"),Kp=a("load_dataset()"),Xp=a(" avec l\u2019ID du r\xE9f\xE9rentiel comme argument "),Pn=l("code"),Wp=a("path"),Yp=a(" :"),vr=c(),_(ht.$$.fragment),br=c(),_(ft.$$.fragment),xr=c(),qe=l("p"),ec=a("Cool, nous avons pouss\xE9 notre jeu de donn\xE9es vers le "),Cn=l("em"),sc=a("Hub"),tc=a(" et il est disponible pour que d\u2019autres puissent l\u2019utiliser ! Il ne reste plus qu\u2019une chose importante \xE0 faire : ajouter une "),Hn=l("em"),ac=a("carte de jeu de donn\xE9es"),nc=a(" qui explique comment le corpus a \xE9t\xE9 cr\xE9\xE9 et fournit d\u2019autres informations utiles \xE0 la communaut\xE9."),jr=c(),_(ss.$$.fragment),Er=c(),Ne=l("h2"),ts=l("a"),Nn=l("span"),_(_t.$$.fragment),lc=c(),Mn=l("span"),rc=a("Cr\xE9ation d'une carte pour un jeu de donn\xE9es"),$r=c(),At=l("p"),oc=a("Des jeux de donn\xE9es bien document\xE9s sont plus susceptibles d\u2019\xEAtre utiles aux autres (y compris \xE0 vous-m\xEAme) car ils fournissent le contexte permettant aux utilisateurs de d\xE9cider si le jeu de donn\xE9es est pertinent pour leur t\xE2che et d\u2019\xE9valuer les biais potentiels ou les risques associ\xE9s \xE0 l\u2019utilisation du jeu de donn\xE9es."),qr=c(),ye=l("p"),ic=a("Sur le "),On=l("em"),uc=a("Hub"),pc=a(", ces informations sont stock\xE9es dans le fichier "),Tn=l("em"),cc=a("README.md"),mc=a(" de chaque d\xE9p\xF4t de jeux de donn\xE9es. Il y a deux \xE9tapes principales que vous devez suivre avant de cr\xE9er ce fichier :"),yr=c(),Gt=l("ol"),me=l("li"),dc=a("Utilisez l\u2019"),as=l("a"),hc=a("application "),An=l("code"),fc=a("datasets-tagging"),_c=a(" pour cr\xE9er des balises de m\xE9tadonn\xE9es au format YAML. Ces balises sont utilis\xE9es pour une vari\xE9t\xE9 de fonctionnalit\xE9s de recherche sur le "),Gn=l("em"),gc=a("Hub"),vc=a(" d\u2019Hugging Face et garantissent que votre jeu de donn\xE9es peut \xEAtre facilement trouv\xE9 par les membres de la communaut\xE9. Puisque nous avons cr\xE9\xE9 un jeu de donn\xE9es personnalis\xE9 ici, vous devrez cloner le r\xE9f\xE9rentiel "),In=l("code"),bc=a("datasets-tagging"),xc=a(" et ex\xE9cuter l\u2019application localement. Voici \xE0 quoi ressemble l\u2019interface :"),wr=c(),gt=l("div"),vt=l("img"),kr=c(),bt=l("ol"),xt=l("li"),jc=a("Lisez le "),ns=l("a"),Ec=a("guide de \u{1F917} "),Rn=l("em"),$c=a("Datasets"),qc=a(" sur la cr\xE9ation des cartes informatives des jeux de donn\xE9es et utilisez-le comme mod\xE8le."),Dr=c(),re=l("p"),yc=a("Vous pouvez cr\xE9er le fichier "),Un=l("em"),wc=a("README.md"),kc=a(" directement sur le "),Sn=l("em"),Dc=a("Hub"),zc=a(" et vous pouvez trouver un mod\xE8le de carte dans le d\xE9pot "),Ln=l("code"),Pc=a("lewtun/github-issues"),Cc=a(". Une capture d\u2019\xE9cran de la carte remplie est illustr\xE9e ci-dessous."),zr=c(),jt=l("div"),Et=l("img"),Pr=c(),_(ls.$$.fragment),Cr=c(),rs=l("p"),Hc=a("C\u2019est tout ! Nous avons vu dans cette section que la cr\xE9ation d\u2019un bon jeu de donn\xE9es peut \xEAtre assez complexe, mais heureusement, le t\xE9l\xE9charger et le partager avec la communaut\xE9 ne l\u2019est pas. Dans la section suivante, nous utiliserons notre nouveau jeu de donn\xE9es pour cr\xE9er un moteur de recherche s\xE9mantique avec \u{1F917} "),Vn=l("em"),Nc=a("Datasets"),Mc=a(" qui peut faire correspondre les questions aux probl\xE8mes et commentaires les plus pertinents."),Hr=c(),_(os.$$.fragment),this.h()},l(e){const i=vh('[data-svelte="svelte-1phssyn"]',document.head);p=r(i,"META",{name:!0,content:!0}),i.forEach(t),H=m(e),h=r(e,"H1",{class:!0});var $t=o(h);k=r($t,"A",{id:!0,class:!0,href:!0});var Fn=o(k);C=r(Fn,"SPAN",{});var Bn=o(C);g(f.$$.fragment,Bn),Bn.forEach(t),Fn.forEach(t),z=m($t),N=r($t,"SPAN",{});var Qn=o(N);E=n(Qn,"Cr\xE9ation de votre propre jeu de donn\xE9es"),Qn.forEach(t),$t.forEach(t),T=m(e),g(D.$$.fragment,e),y=m(e),w=r(e,"P",{});var qt=o(w);M=n(qt,"Parfois, le jeu de donn\xE9es dont vous avez besoin pour cr\xE9er une application de NLP n\u2019existe pas. Vous devrez donc le cr\xE9er vous-m\xEAme. Dans cette section, nous allons vous montrer comment cr\xE9er un corpus de "),q=r(qt,"A",{href:!0,rel:!0});var Zn=o(q);P=n(Zn,"probl\xE8mes GitHub"),Zn.forEach(t),G=n(qt,", qui sont couramment utilis\xE9s pour suivre les bogues ou les fonctionnalit\xE9s dans les d\xE9p\xF4ts GitHub. Ce corpus pourrait \xEAtre utilis\xE9 \xE0 diverses fins, notamment :"),qt.forEach(t),$=m(e),A=r(e,"UL",{});var Me=o(A);S=r(Me,"LI",{});var Oc=o(S);B=n(Oc,"explorer combien de temps il faut pour fermer les probl\xE8mes ouverts ou les "),Q=r(Oc,"EM",{});var Bc=o(Q);ee=n(Bc,"pull requests"),Bc.forEach(t),Oc.forEach(t),De=m(Me),ue=r(Me,"LI",{});var Mr=o(ue);fs=n(Mr,"entra\xEEner d\u2019un "),pe=r(Mr,"EM",{});var Qc=o(pe);I=n(Qc,"classifieur multilabel"),Qc.forEach(t),wt=n(Mr," capable d\u2019\xE9tiqueter les probl\xE8mes avec des m\xE9tadonn\xE9es bas\xE9es sur la description du probl\xE8me (par exemple : \xAB bug \xBB, \xAB am\xE9lioration \xBB ou  \xAB question \xBB)"),Mr.forEach(t),kt=m(Me),Oe=r(Me,"LI",{});var Zc=o(Oe);Dt=n(Zc,"cr\xE9er un moteur de recherche s\xE9mantique pour trouver les probl\xE8mes correspondant \xE0 la requ\xEAte d\u2019un utilisateur"),Zc.forEach(t),Me.forEach(t),_s=m(e),ce=r(e,"P",{});var Or=o(ce);zt=n(Or,"Ici, nous nous concentrerons sur la cr\xE9ation du corpus, et dans la section suivante, nous aborderons l\u2019application de recherche s\xE9mantique. Pour garder les choses m\xE9ta, nous utiliserons les probl\xE8mes GitHub associ\xE9s \xE0 un projet open source populaire : \u{1F917} "),Te=r(Or,"EM",{});var Jc=o(Te);Wr=n(Jc,"Datasets"),Jc.forEach(t),Yr=n(Or," ! Voyons comment obtenir les donn\xE9es et explorons les informations contenues dans ces probl\xE8mes."),Or.forEach(t),Jn=m(e),ze=r(e,"H2",{class:!0});var Tr=o(ze);Ae=r(Tr,"A",{id:!0,class:!0,href:!0});var Kc=o(Ae);ea=r(Kc,"SPAN",{});var Xc=o(ea);g(gs.$$.fragment,Xc),Xc.forEach(t),Kc.forEach(t),eo=m(Tr),sa=r(Tr,"SPAN",{});var Wc=o(sa);so=n(Wc,"Obtenir les donn\xE9es"),Wc.forEach(t),Tr.forEach(t),Kn=m(e),de=r(e,"P",{});var It=o(de);to=n(It,"Vous pouvez trouver tous les probl\xE8mes dans \u{1F917} "),ta=r(It,"EM",{});var Yc=o(ta);ao=n(Yc,"Datasets"),Yc.forEach(t),no=n(It," en acc\xE9dant \xE0 l\u2019"),vs=r(It,"A",{href:!0,rel:!0});var em=o(vs);lo=n(em,"onglet \xAB Issues \xBB"),em.forEach(t),ro=n(It," du d\xE9p\xF4t. Comme le montre la capture d\u2019\xE9cran suivante, au moment de la r\xE9daction, il y avait 331 probl\xE8mes ouverts et 668 probl\xE8mes ferm\xE9s."),It.forEach(t),Xn=m(e),bs=r(e,"DIV",{class:!0});var sm=o(bs);xs=r(sm,"IMG",{src:!0,alt:!0,width:!0}),sm.forEach(t),Wn=m(e),Pt=r(e,"P",{});var tm=o(Pt);oo=n(tm,"Si vous cliquez sur l\u2019un de ces probl\xE8mes, vous constaterez qu\u2019il contient un titre, une description et un ensemble d\u2019\xE9tiquettes qui caract\xE9risent le probl\xE8me. Un exemple est montr\xE9 dans la capture d\u2019\xE9cran ci-dessous."),tm.forEach(t),Yn=m(e),js=r(e,"DIV",{class:!0});var am=o(js);Es=r(am,"IMG",{src:!0,alt:!0,width:!0}),am.forEach(t),el=m(e),he=r(e,"P",{});var Rt=o(he);io=n(Rt,"Pour t\xE9l\xE9charger tous les probl\xE8mes du d\xE9p\xF4t, nous utilisons l\u2019"),$s=r(Rt,"A",{href:!0,rel:!0});var nm=o($s);uo=n(nm,"API REST GitHub"),nm.forEach(t),po=n(Rt," pour interroger le point de terminaison "),qs=r(Rt,"A",{href:!0,rel:!0});var lm=o(qs);aa=r(lm,"CODE",{});var rm=o(aa);co=n(rm,"Issues"),rm.forEach(t),lm.forEach(t),mo=n(Rt,". Ce point de terminaison renvoie une liste d\u2019objets JSON. Chaque objet contenant un grand nombre de champs qui incluent le titre et la description ainsi que des m\xE9tadonn\xE9es sur l\u2019\xE9tat du probl\xE8me, etc."),Rt.forEach(t),sl=m(e),Ge=r(e,"P",{});var Ar=o(Ge);ho=n(Ar,"Un moyen pratique de t\xE9l\xE9charger les probl\xE8mes consiste \xE0 utiliser la biblioth\xE8que "),na=r(Ar,"CODE",{});var om=o(na);fo=n(om,"requests"),om.forEach(t),_o=n(Ar,", qui est la m\xE9thode standard pour effectuer des requ\xEAtes HTTP en Python. Vous pouvez installer la biblioth\xE8que en ex\xE9cutant :"),Ar.forEach(t),tl=m(e),g(ys.$$.fragment,e),al=m(e),fe=r(e,"P",{});var Ut=o(fe);go=n(Ut,"Une fois la biblioth\xE8que install\xE9e, vous pouvez envoyer des requ\xEAtes GET au point de terminaison "),la=r(Ut,"CODE",{});var im=o(la);vo=n(im,"Issues"),im.forEach(t),bo=n(Ut," en appelant la fonction "),ra=r(Ut,"CODE",{});var um=o(ra);xo=n(um,"requests.get()"),um.forEach(t),jo=n(Ut,". Par exemple, vous pouvez ex\xE9cuter la commande suivante pour r\xE9cup\xE9rer le premier num\xE9ro sur la premi\xE8re page :"),Ut.forEach(t),nl=m(e),g(ws.$$.fragment,e),ll=m(e),Ie=r(e,"P",{});var Gr=o(Ie);Eo=n(Gr,"L\u2019objet "),oa=r(Gr,"CODE",{});var pm=o(oa);$o=n(pm,"response"),pm.forEach(t),qo=n(Gr," contient de nombreuses informations utiles sur la requ\xEAte, y compris le code d\u2019\xE9tat HTTP :"),Gr.forEach(t),rl=m(e),g(ks.$$.fragment,e),ol=m(e),g(Ds.$$.fragment,e),il=m(e),se=r(e,"P",{});var is=o(se);yo=n(is,"o\xF9 un statut "),ia=r(is,"CODE",{});var cm=o(ia);wo=n(cm,"200"),cm.forEach(t),ko=n(is," signifie que la requ\xEAte a r\xE9ussi (vous pouvez trouver une liste des codes de statut HTTP possibles "),zs=r(is,"A",{href:!0,rel:!0});var mm=o(zs);Do=n(mm,"ici"),mm.forEach(t),zo=n(is,"). Ce qui nous int\xE9resse vraiment, cependant, c\u2019est le "),ua=r(is,"EM",{});var dm=o(ua);Po=n(dm,"payload"),dm.forEach(t),Co=n(is,", qui peut \xEAtre consult\xE9 dans diff\xE9rents formats comme les octets, les cha\xEEnes ou JSON. Comme nous savons que nos probl\xE8mes sont au format JSON, examinons la charge utile comme suit :"),is.forEach(t),ul=m(e),g(Ps.$$.fragment,e),pl=m(e),g(Cs.$$.fragment,e),cl=m(e),te=r(e,"P",{});var us=o(te);Ho=n(us,"Waouh, \xE7a fait beaucoup d\u2019informations ! Nous pouvons voir des champs utiles comme "),pa=r(us,"CODE",{});var hm=o(pa);No=n(hm,"title"),hm.forEach(t),Mo=n(us,", "),ca=r(us,"CODE",{});var fm=o(ca);Oo=n(fm,"body"),fm.forEach(t),To=n(us," et "),ma=r(us,"CODE",{});var _m=o(ma);Ao=n(_m,"number"),_m.forEach(t),Go=n(us," qui d\xE9crivent le probl\xE8me, ainsi que des informations sur l\u2019utilisateur GitHub qui a ouvert le probl\xE8me."),us.forEach(t),ml=m(e),g(Re.$$.fragment,e),dl=m(e),Z=r(e,"P",{});var oe=o(Z);Io=n(oe,"Comme d\xE9crit dans la "),Hs=r(oe,"A",{href:!0,rel:!0});var gm=o(Hs);Ro=n(gm,"documentation GitHub"),gm.forEach(t),Uo=n(oe,", les requ\xEAtes non authentifi\xE9es sont limit\xE9es \xE0 60 requ\xEAtes par heure. Bien que vous puissiez augmenter le param\xE8tre de requ\xEAte "),da=r(oe,"CODE",{});var vm=o(da);So=n(vm,"per_page"),vm.forEach(t),Lo=n(oe," pour r\xE9duire le nombre de requ\xEAtes que vous effectuez, vous atteindrez toujours la limite de d\xE9bit sur tout d\xE9p\xF4t contenant des milliers de probl\xE8mes. Donc, \xE0 la place, vous devez suivre les "),Ns=r(oe,"A",{href:!0,rel:!0});var bm=o(Ns);Vo=n(bm,"instructions de GitHub"),bm.forEach(t),Fo=n(oe," sur la cr\xE9ation d\u2019un "),ha=r(oe,"EM",{});var xm=o(ha);Bo=n(xm,"jeton d\u2019acc\xE8s personnel"),xm.forEach(t),Qo=n(oe," afin que vous peut augmenter la limite de d\xE9bit \xE0 5 000 requ\xEAtes par heure. Une fois que vous avez votre "),fa=r(oe,"EM",{});var jm=o(fa);Zo=n(jm,"token"),jm.forEach(t),Jo=n(oe,", vous pouvez l\u2019inclure dans l\u2019en-t\xEAte de la requ\xEAte :"),oe.forEach(t),hl=m(e),g(Ms.$$.fragment,e),fl=m(e),g(Ue.$$.fragment,e),_l=m(e),Ct=r(e,"P",{});var Em=o(Ct);Ko=n(Em,"Maintenant que nous avons notre jeton d\u2019acc\xE8s, cr\xE9ons une fonction qui peut t\xE9l\xE9charger tous les probl\xE8mes depuis un r\xE9f\xE9rentiel GitHub :"),Em.forEach(t),gl=m(e),g(Os.$$.fragment,e),vl=m(e),ae=r(e,"P",{});var ps=o(ae);Xo=n(ps,"D\xE9sormais, lorsque nous appellerons "),_a=r(ps,"CODE",{});var $m=o(_a);Wo=n($m,"fetch_issues()"),$m.forEach(t),Yo=n(ps,", tous les probl\xE8mes seront t\xE9l\xE9charg\xE9s par batchs pour \xE9viter de d\xE9passer la limite de GitHub sur le nombre de requ\xEAtes par heure. Le r\xE9sultat sera stock\xE9 dans un fichier "),ga=r(ps,"EM",{});var qm=o(ga);ei=n(qm,"repository_name-issues.jsonl"),qm.forEach(t),si=n(ps,", o\xF9 chaque ligne est un objet JSON qui repr\xE9sente un probl\xE8me. Utilisons cette fonction pour saisir tous les probl\xE8mes de \u{1F917} "),va=r(ps,"EM",{});var ym=o(va);ti=n(ym,"Datasets"),ym.forEach(t),ai=n(ps," :"),ps.forEach(t),bl=m(e),g(Ts.$$.fragment,e),xl=m(e),Se=r(e,"P",{});var Ir=o(Se);ni=n(Ir,"Une fois les probl\xE8mes t\xE9l\xE9charg\xE9s, nous pouvons les charger localement en utilisant nos nouvelles comp\xE9tences de "),Ht=r(Ir,"A",{href:!0});var wm=o(Ht);li=n(wm,"section 2"),wm.forEach(t),ri=n(Ir," :"),Ir.forEach(t),jl=m(e),g(As.$$.fragment,e),El=m(e),g(Gs.$$.fragment,e),$l=m(e),X=r(e,"P",{});var we=o(X);oi=n(we,"G\xE9nial, nous avons cr\xE9\xE9 notre premier jeu de donn\xE9es \xE0 partir de rien ! Mais pourquoi y a-t-il plusieurs milliers de probl\xE8mes alors que l\u2019"),Is=r(we,"A",{href:!0,rel:!0});var km=o(Is);ii=n(km,"onglet \xAB Issues \xBB"),km.forEach(t),ui=n(we," de la librairie \u{1F917} "),ba=r(we,"EM",{});var Dm=o(ba);pi=n(Dm,"Datasets"),Dm.forEach(t),ci=n(we," n\u2019affiche qu\u2019environ 1 000 probl\xE8mes au total \u{1F914} ? Comme d\xE9crit dans la "),Rs=r(we,"A",{href:!0,rel:!0});var zm=o(Rs);mi=n(zm,"documentation GitHub"),zm.forEach(t),di=n(we,", c\u2019est parce que nous avons t\xE9l\xE9charg\xE9 toutes les "),xa=r(we,"EM",{});var Pm=o(xa);hi=n(Pm,"pull requests"),Pm.forEach(t),fi=n(we," \xE9galement :"),we.forEach(t),ql=m(e),Nt=r(e,"BLOCKQUOTE",{});var Cm=o(Nt);V=r(Cm,"P",{});var Y=o(V);_i=n(Y,"L\u2019API REST v3 de GitHub consid\xE8re chaque "),ja=r(Y,"EM",{});var Hm=o(ja);gi=n(Hm,"pull request"),Hm.forEach(t),vi=n(Y," comme un probl\xE8me, mais chaque probl\xE8me n\u2019est pas une "),Ea=r(Y,"EM",{});var Nm=o(Ea);bi=n(Nm,"pull request"),Nm.forEach(t),xi=n(Y,". Pour cette raison, les points de terminaison \xAB Issues \xBB peuvent renvoyer \xE0 la fois des probl\xE8mes et des "),$a=r(Y,"EM",{});var Mm=o($a);ji=n(Mm,"pull requests"),Mm.forEach(t),Ei=n(Y," dans la r\xE9ponse. Vous pouvez identifier les "),qa=r(Y,"EM",{});var Om=o(qa);$i=n(Om,"pull requests"),Om.forEach(t),qi=n(Y," par la cl\xE9 "),ya=r(Y,"CODE",{});var Tm=o(ya);yi=n(Tm,"pull_request"),Tm.forEach(t),wi=n(Y,". Sachez que l\u2019identifiant d\u2019une "),wa=r(Y,"EM",{});var Am=o(wa);ki=n(Am,"pull request"),Am.forEach(t),Di=n(Y," renvoy\xE9e par les points de terminaison \xAB Issues \xBB sera un identifiant de probl\xE8me."),Y.forEach(t),Cm.forEach(t),yl=m(e),Le=r(e,"P",{});var Rr=o(Le);zi=n(Rr,"\xC9tant donn\xE9 que le contenu des \xAB Issues \xBB et des "),ka=r(Rr,"EM",{});var Gm=o(ka);Pi=n(Gm,"pull request"),Gm.forEach(t),Ci=n(Rr," est assez diff\xE9rent, proc\xE9dons \xE0 un pr\xE9traitement mineur pour nous permettre de les distinguer."),Rr.forEach(t),wl=m(e),Pe=r(e,"H2",{class:!0});var Ur=o(Pe);Ve=r(Ur,"A",{id:!0,class:!0,href:!0});var Im=o(Ve);Da=r(Im,"SPAN",{});var Rm=o(Da);g(Us.$$.fragment,Rm),Rm.forEach(t),Im.forEach(t),Hi=m(Ur),za=r(Ur,"SPAN",{});var Um=o(za);Ni=n(Um,"Nettoyer les donn\xE9es"),Um.forEach(t),Ur.forEach(t),kl=m(e),R=r(e,"P",{});var L=o(R);Mi=n(L,"L\u2019extrait ci-dessus de la documentation de GitHub nous indique que la colonne "),Pa=r(L,"CODE",{});var Sm=o(Pa);Oi=n(Sm,"pull_request"),Sm.forEach(t),Ti=n(L," peut \xEAtre utilis\xE9e pour diff\xE9rencier les "),Ca=r(L,"EM",{});var Lm=o(Ca);Ai=n(Lm,"issues"),Lm.forEach(t),Gi=n(L," et les "),Ha=r(L,"EM",{});var Vm=o(Ha);Ii=n(Vm,"pull requests"),Vm.forEach(t),Ri=n(L,". Regardons un \xE9chantillon al\xE9atoire pour voir quelle est la diff\xE9rence. Comme nous l\u2019avons fait dans "),Mt=r(L,"A",{href:!0});var Fm=o(Mt);Ui=n(Fm,"section 3"),Fm.forEach(t),Si=n(L,", nous allons encha\xEEner "),Na=r(L,"CODE",{});var Bm=o(Na);Li=n(Bm,"Dataset.shuffle()"),Bm.forEach(t),Vi=n(L," et "),Ma=r(L,"CODE",{});var Qm=o(Ma);Fi=n(Qm,"Dataset.select()"),Qm.forEach(t),Bi=n(L," pour cr\xE9er un \xE9chantillon al\xE9atoire, puis compresser "),Oa=r(L,"CODE",{});var Zm=o(Oa);Qi=n(Zm,"html_url"),Zm.forEach(t),Zi=n(L," et "),Ta=r(L,"CODE",{});var Jm=o(Ta);Ji=n(Jm,"pull_request"),Jm.forEach(t),Ki=n(L," afin que nous puissions comparer les diff\xE9rentes URL :"),L.forEach(t),Dl=m(e),g(Ss.$$.fragment,e),zl=m(e),g(Ls.$$.fragment,e),Pl=m(e),J=r(e,"P",{});var ie=o(J);Xi=n(ie,"Ici, nous pouvons voir que chaque "),Aa=r(ie,"EM",{});var Km=o(Aa);Wi=n(Km,"pull request"),Km.forEach(t),Yi=n(ie," est associ\xE9e \xE0 diverses URL, tandis que les probl\xE8mes ordinaires ont une entr\xE9e "),Ga=r(ie,"CODE",{});var Xm=o(Ga);eu=n(Xm,"None"),Xm.forEach(t),su=n(ie,". Nous pouvons utiliser cette distinction pour cr\xE9er une nouvelle colonne "),Ia=r(ie,"CODE",{});var Wm=o(Ia);tu=n(Wm,"is_pull_request"),Wm.forEach(t),au=n(ie," qui v\xE9rifie si le champ "),Ra=r(ie,"CODE",{});var Ym=o(Ra);nu=n(Ym,"pull_request"),Ym.forEach(t),lu=n(ie," est "),Ua=r(ie,"CODE",{});var ed=o(Ua);ru=n(ed,"None"),ed.forEach(t),ou=n(ie," ou non :"),ie.forEach(t),Cl=m(e),g(Vs.$$.fragment,e),Hl=m(e),g(Fe.$$.fragment,e),Nl=m(e),Ot=r(e,"P",{});var sd=o(Ot);iu=n(sd,"Bien que nous puissions continuer \xE0 nettoyer davantage le jeu de donn\xE9es en supprimant ou en renommant certaines colonnes, il est g\xE9n\xE9ralement recommand\xE9 de le conserver aussi brut que possible \xE0 ce stade afin qu\u2019il puisse \xEAtre facilement utilis\xE9 dans plusieurs applications."),sd.forEach(t),Ml=m(e),_e=r(e,"P",{});var St=o(_e);uu=n(St,"Avant de pousser notre jeu de donn\xE9es vers le "),Sa=r(St,"EM",{});var td=o(Sa);pu=n(td,"Hub"),td.forEach(t),cu=n(St," d\u2019Hugging Face, traitons une chose manquante : les commentaires associ\xE9s \xE0 chaque probl\xE8me et "),La=r(St,"EM",{});var ad=o(La);mu=n(ad,"pull requests"),ad.forEach(t),du=n(St,". Nous les ajouterons ensuite avec l\u2019API GitHub REST !"),St.forEach(t),Ol=m(e),Ce=r(e,"H2",{class:!0});var Sr=o(Ce);Be=r(Sr,"A",{id:!0,class:!0,href:!0});var nd=o(Be);Va=r(nd,"SPAN",{});var ld=o(Va);g(Fs.$$.fragment,ld),ld.forEach(t),nd.forEach(t),hu=m(Sr),Fa=r(Sr,"SPAN",{});var rd=o(Fa);fu=n(rd,"Enrichir le jeu de donn\xE9es"),rd.forEach(t),Sr.forEach(t),Tl=m(e),Qe=r(e,"P",{});var Lr=o(Qe);_u=n(Lr,"Comme le montre la capture d\u2019\xE9cran suivante, les commentaires associ\xE9s \xE0 un probl\xE8me ou \xE0 une "),Ba=r(Lr,"EM",{});var od=o(Ba);gu=n(od,"pull request"),od.forEach(t),vu=n(Lr," fournissent une riche source d\u2019informations, en particulier si nous souhaitons cr\xE9er un moteur de recherche pour r\xE9pondre aux requ\xEAtes des utilisateurs sur la biblioth\xE8que."),Lr.forEach(t),Al=m(e),Bs=r(e,"DIV",{class:!0});var id=o(Bs);Qs=r(id,"IMG",{src:!0,alt:!0,width:!0}),id.forEach(t),Gl=m(e),Ze=r(e,"P",{});var Vr=o(Ze);bu=n(Vr,"L\u2019API REST GitHub fournit un point de terminaison "),Zs=r(Vr,"A",{href:!0,rel:!0});var ud=o(Zs);Qa=r(ud,"CODE",{});var pd=o(Qa);xu=n(pd,"Comments"),pd.forEach(t),ud.forEach(t),ju=n(Vr," qui renvoie tous les commentaires associ\xE9s \xE0 un num\xE9ro de probl\xE8me. Testons le point de terminaison pour voir ce qu\u2019il renvoie :"),Vr.forEach(t),Il=m(e),g(Js.$$.fragment,e),Rl=m(e),g(Ks.$$.fragment,e),Ul=m(e),ne=r(e,"P",{});var cs=o(ne);Eu=n(cs,"Nous pouvons voir que le commentaire est stock\xE9 dans le champ "),Za=r(cs,"CODE",{});var cd=o(Za);$u=n(cd,"body"),cd.forEach(t),qu=n(cs,". Ecrivons donc une fonction simple qui renvoie tous les commentaires associ\xE9s \xE0 un probl\xE8me en s\xE9lectionnant le contenu "),Ja=r(cs,"CODE",{});var md=o(Ja);yu=n(md,"body"),md.forEach(t),wu=n(cs," pour chaque \xE9l\xE9ment dans "),Ka=r(cs,"CODE",{});var dd=o(Ka);ku=n(dd,"response.json()"),dd.forEach(t),Du=n(cs," :"),cs.forEach(t),Sl=m(e),g(Xs.$$.fragment,e),Ll=m(e),g(Ws.$$.fragment,e),Vl=m(e),ge=r(e,"P",{});var Lt=o(ge);zu=n(Lt,"Cela a l\u2019air bien. Utilisons "),Xa=r(Lt,"CODE",{});var hd=o(Xa);Pu=n(hd,"Dataset.map()"),hd.forEach(t),Cu=n(Lt," pour ajouter une nouvelle colonne "),Wa=r(Lt,"CODE",{});var fd=o(Wa);Hu=n(fd,"comments"),fd.forEach(t),Nu=n(Lt," \xE0 chaque probl\xE8me de notre jeu de donn\xE9es :"),Lt.forEach(t),Fl=m(e),g(Ys.$$.fragment,e),Bl=m(e),Je=r(e,"P",{});var Fr=o(Je);Mu=n(Fr,"La derni\xE8re \xE9tape consiste \xE0 enregistrer le jeu de donn\xE9es augment\xE9es avec nos donn\xE9es brutes afin que nous puissions les pousser tous les deux vers le "),Ya=r(Fr,"EM",{});var _d=o(Ya);Ou=n(_d,"Hub"),_d.forEach(t),Tu=n(Fr," :"),Fr.forEach(t),Ql=m(e),g(et.$$.fragment,e),Zl=m(e),He=r(e,"H2",{class:!0});var Br=o(He);Ke=r(Br,"A",{id:!0,class:!0,href:!0});var gd=o(Ke);en=r(gd,"SPAN",{});var vd=o(en);g(st.$$.fragment,vd),vd.forEach(t),gd.forEach(t),Au=m(Br),Tt=r(Br,"SPAN",{});var Tc=o(Tt);Gu=n(Tc,"T\xE9l\xE9chargement du jeu de donn\xE9es sur le "),sn=r(Tc,"I",{});var bd=o(sn);Iu=n(bd,"Hub"),bd.forEach(t),Tc.forEach(t),Br.forEach(t),Jl=m(e),g(tt.$$.fragment,e),Kl=m(e),U=r(e,"P",{});var K=o(U);Ru=n(K,"Maintenant que nous avons notre jeu de donn\xE9es augment\xE9, il est temps de le pousser vers le "),tn=r(K,"EM",{});var xd=o(tn);Uu=n(xd,"Hub"),xd.forEach(t),Su=n(K," afin que nous puissions le partager avec la communaut\xE9 ! Pour t\xE9l\xE9charger le jeu de donn\xE9es, nous utilisons la "),Xe=r(K,"A",{href:!0,rel:!0});var Ac=o(Xe);Lu=n(Ac,"biblioth\xE8que \u{1F917} "),an=r(Ac,"EM",{});var jd=o(an);Vu=n(jd,"Hub"),jd.forEach(t),Ac.forEach(t),Fu=n(K,", qui nous permet d\u2019interagir avec le "),nn=r(K,"EM",{});var Ed=o(nn);Bu=n(Ed,"Hub"),Ed.forEach(t),Qu=n(K," d\u2019Hugging Face via une API Python. \u{1F917} "),ln=r(K,"EM",{});var $d=o(ln);Zu=n($d,"Hub"),$d.forEach(t),Ju=n(K," est pr\xE9install\xE9 avec \u{1F917} "),rn=r(K,"EM",{});var qd=o(rn);Ku=n(qd,"Transformers"),qd.forEach(t),Xu=n(K,", nous pouvons donc l\u2019utiliser directement. Par exemple, nous pouvons utiliser la fonction "),on=r(K,"CODE",{});var yd=o(on);Wu=n(yd,"list_datasets()"),yd.forEach(t),Yu=n(K," pour obtenir des informations sur tous les ensembles de donn\xE9es publics actuellement h\xE9berg\xE9s sur le "),un=r(K,"EM",{});var wd=o(un);ep=n(wd,"Hub"),wd.forEach(t),sp=n(K,":"),K.forEach(t),Xl=m(e),g(at.$$.fragment,e),Wl=m(e),g(nt.$$.fragment,e),Yl=m(e),ve=r(e,"P",{});var Vt=o(ve);tp=n(Vt,"Nous pouvons voir qu\u2019il y a actuellement pr\xE8s de 1 500 jeux de donn\xE9es sur le "),pn=r(Vt,"EM",{});var kd=o(pn);ap=n(kd,"Hub"),kd.forEach(t),np=n(Vt," et la fonction "),cn=r(Vt,"CODE",{});var Dd=o(cn);lp=n(Dd,"list_datasets()"),Dd.forEach(t),rp=n(Vt," fournit \xE9galement des m\xE9tadonn\xE9es de base sur chaque d\xE9p\xF4ts de jeux de donn\xE9es."),Vt.forEach(t),er=m(e),le=r(e,"P",{});var ms=o(le);op=n(ms,"Pour nos besoins, la premi\xE8re chose que nous devons faire est de cr\xE9er un nouveau d\xE9p\xF4t de jeux de donn\xE9es sur le "),mn=r(ms,"EM",{});var zd=o(mn);ip=n(zd,"Hub"),zd.forEach(t),up=n(ms,". Pour ce faire, nous avons besoin d\u2019un jeton d\u2019authentification, qui peut \xEAtre obtenu en se connectant d\u2019abord au "),dn=r(ms,"EM",{});var Pd=o(dn);pp=n(Pd,"Hub"),Pd.forEach(t),cp=n(ms," d\u2019Hugging Face avec la fonction "),hn=r(ms,"CODE",{});var Cd=o(hn);mp=n(Cd,"notebook_login()"),Cd.forEach(t),dp=n(ms," :"),ms.forEach(t),sr=m(e),g(lt.$$.fragment,e),tr=m(e),be=r(e,"P",{});var Ft=o(be);hp=n(Ft,"Cela cr\xE9\xE9 un "),fn=r(Ft,"EM",{});var Hd=o(fn);fp=n(Hd,"widget"),Hd.forEach(t),_p=n(Ft," dans lequel vous pouvez entrer votre nom d\u2019utilisateur et votre mot de passe. Un jeton API sera enregistr\xE9 dans "),_n=r(Ft,"EM",{});var Nd=o(_n);gp=n(Nd,"~/.huggingface/token"),Nd.forEach(t),vp=n(Ft,". Si vous ex\xE9cutez le code dans un terminal, vous pouvez vous connecter via la CLI \xE0 la place :"),Ft.forEach(t),ar=m(e),g(rt.$$.fragment,e),nr=m(e),We=r(e,"P",{});var Qr=o(We);bp=n(Qr,"Une fois que nous avons fait cela, nous pouvons cr\xE9er un nouveau d\xE9p\xF4t de jeux de donn\xE9es avec la fonction "),gn=r(Qr,"CODE",{});var Md=o(gn);xp=n(Md,"create_repo()"),Md.forEach(t),jp=n(Qr," :"),Qr.forEach(t),lr=m(e),g(ot.$$.fragment,e),rr=m(e),g(it.$$.fragment,e),or=m(e),xe=r(e,"P",{});var Bt=o(xe);Ep=n(Bt,"Dans cet exemple, nous avons cr\xE9\xE9 un d\xE9p\xF4t vide appel\xE9 "),vn=r(Bt,"CODE",{});var Od=o(vn);$p=n(Od,"github-issues"),Od.forEach(t),qp=n(Bt," sous le nom d\u2019utilisateur "),bn=r(Bt,"CODE",{});var Td=o(bn);yp=n(Td,"lewtun"),Td.forEach(t),wp=n(Bt," (le nom d\u2019utilisateur doit \xEAtre votre nom d\u2019utilisateur Hub lorsque vous ex\xE9cutez ce code !)."),Bt.forEach(t),ir=m(e),g(Ye.$$.fragment,e),ur=m(e),je=r(e,"P",{});var Qt=o(je);kp=n(Qt,"Ensuite, clonons le d\xE9p\xF4t du Hub sur notre machine locale et copions-y notre fichier jeu de donn\xE9es. \u{1F917} "),xn=r(Qt,"EM",{});var Ad=o(xn);Dp=n(Ad,"Hub"),Ad.forEach(t),zp=n(Qt," fournit une classe "),jn=r(Qt,"CODE",{});var Gd=o(jn);Pp=n(Gd,"Repository"),Gd.forEach(t),Cp=n(Qt," pratique qui encapsule de nombreuses commandes Git courantes. Donc pour cloner le d\xE9p\xF4t distant, nous devons simplement fournir l\u2019URL et le chemin local vers lesquels nous souhaitons cloner :"),Qt.forEach(t),pr=m(e),g(ut.$$.fragment,e),cr=m(e),W=r(e,"P",{});var ke=o(W);Hp=n(ke,"Par d\xE9faut, diverses extensions de fichiers (telles que "),En=r(ke,"EM",{});var Id=o(En);Np=n(Id,".bin"),Id.forEach(t),Mp=n(ke,", "),$n=r(ke,"EM",{});var Rd=o($n);Op=n(Rd,".gz"),Rd.forEach(t),Tp=n(ke," et "),qn=r(ke,"EM",{});var Ud=o(qn);Ap=n(Ud,".zip"),Ud.forEach(t),Gp=n(ke,") sont suivies avec Git LFS afin que les fichiers volumineux puissent \xEAtre versionn\xE9s dans le m\xEAme workflow Git. Vous pouvez trouver une liste des extensions de fichiers suivis dans le fichier "),yn=r(ke,"EM",{});var Sd=o(yn);Ip=n(Sd,".gitattributes"),Sd.forEach(t),Rp=n(ke," du r\xE9f\xE9rentiel. Pour inclure le format JSON Lines dans la liste, nous pouvons ex\xE9cuter la commande suivante :"),ke.forEach(t),mr=m(e),g(pt.$$.fragment,e),dr=m(e),Ee=r(e,"P",{});var Zt=o(Ee);Up=n(Zt,"Ensuite, nous pouvons utiliser "),wn=r(Zt,"CODE",{});var Ld=o(wn);Sp=n(Ld,"Repository.push_to_hub()"),Ld.forEach(t),Lp=n(Zt," pour pousser le jeu de donn\xE9es vers le "),kn=r(Zt,"EM",{});var Vd=o(kn);Vp=n(Vd,"Hub"),Vd.forEach(t),Fp=n(Zt," :"),Zt.forEach(t),hr=m(e),g(ct.$$.fragment,e),fr=m(e),es=r(e,"P",{});var Zr=o(es);Bp=n(Zr,"Si nous naviguons vers l\u2019URL contenue dans "),Dn=r(Zr,"CODE",{});var Fd=o(Dn);Qp=n(Fd,"repo_url"),Fd.forEach(t),Zp=n(Zr,", nous devrions maintenant voir que notre fichier de jeu de donn\xE9es a \xE9t\xE9 t\xE9l\xE9charg\xE9."),Zr.forEach(t),_r=m(e),mt=r(e,"DIV",{class:!0});var Bd=o(mt);dt=r(Bd,"IMG",{src:!0,alt:!0,width:!0}),Bd.forEach(t),gr=m(e),$e=r(e,"P",{});var Jt=o($e);Jp=n(Jt,"\xC0 partir de l\xE0, n\u2019importe qui peut t\xE9l\xE9charger le jeu de donn\xE9es en fournissant simplement "),zn=r(Jt,"CODE",{});var Qd=o(zn);Kp=n(Qd,"load_dataset()"),Qd.forEach(t),Xp=n(Jt," avec l\u2019ID du r\xE9f\xE9rentiel comme argument "),Pn=r(Jt,"CODE",{});var Zd=o(Pn);Wp=n(Zd,"path"),Zd.forEach(t),Yp=n(Jt," :"),Jt.forEach(t),vr=m(e),g(ht.$$.fragment,e),br=m(e),g(ft.$$.fragment,e),xr=m(e),qe=r(e,"P",{});var Kt=o(qe);ec=n(Kt,"Cool, nous avons pouss\xE9 notre jeu de donn\xE9es vers le "),Cn=r(Kt,"EM",{});var Jd=o(Cn);sc=n(Jd,"Hub"),Jd.forEach(t),tc=n(Kt," et il est disponible pour que d\u2019autres puissent l\u2019utiliser ! Il ne reste plus qu\u2019une chose importante \xE0 faire : ajouter une "),Hn=r(Kt,"EM",{});var Kd=o(Hn);ac=n(Kd,"carte de jeu de donn\xE9es"),Kd.forEach(t),nc=n(Kt," qui explique comment le corpus a \xE9t\xE9 cr\xE9\xE9 et fournit d\u2019autres informations utiles \xE0 la communaut\xE9."),Kt.forEach(t),jr=m(e),g(ss.$$.fragment,e),Er=m(e),Ne=r(e,"H2",{class:!0});var Jr=o(Ne);ts=r(Jr,"A",{id:!0,class:!0,href:!0});var Xd=o(ts);Nn=r(Xd,"SPAN",{});var Wd=o(Nn);g(_t.$$.fragment,Wd),Wd.forEach(t),Xd.forEach(t),lc=m(Jr),Mn=r(Jr,"SPAN",{});var Yd=o(Mn);rc=n(Yd,"Cr\xE9ation d'une carte pour un jeu de donn\xE9es"),Yd.forEach(t),Jr.forEach(t),$r=m(e),At=r(e,"P",{});var eh=o(At);oc=n(eh,"Des jeux de donn\xE9es bien document\xE9s sont plus susceptibles d\u2019\xEAtre utiles aux autres (y compris \xE0 vous-m\xEAme) car ils fournissent le contexte permettant aux utilisateurs de d\xE9cider si le jeu de donn\xE9es est pertinent pour leur t\xE2che et d\u2019\xE9valuer les biais potentiels ou les risques associ\xE9s \xE0 l\u2019utilisation du jeu de donn\xE9es."),eh.forEach(t),qr=m(e),ye=r(e,"P",{});var Xt=o(ye);ic=n(Xt,"Sur le "),On=r(Xt,"EM",{});var sh=o(On);uc=n(sh,"Hub"),sh.forEach(t),pc=n(Xt,", ces informations sont stock\xE9es dans le fichier "),Tn=r(Xt,"EM",{});var th=o(Tn);cc=n(th,"README.md"),th.forEach(t),mc=n(Xt," de chaque d\xE9p\xF4t de jeux de donn\xE9es. Il y a deux \xE9tapes principales que vous devez suivre avant de cr\xE9er ce fichier :"),Xt.forEach(t),yr=m(e),Gt=r(e,"OL",{});var ah=o(Gt);me=r(ah,"LI",{});var ds=o(me);dc=n(ds,"Utilisez l\u2019"),as=r(ds,"A",{href:!0,rel:!0});var Gc=o(as);hc=n(Gc,"application "),An=r(Gc,"CODE",{});var nh=o(An);fc=n(nh,"datasets-tagging"),nh.forEach(t),Gc.forEach(t),_c=n(ds," pour cr\xE9er des balises de m\xE9tadonn\xE9es au format YAML. Ces balises sont utilis\xE9es pour une vari\xE9t\xE9 de fonctionnalit\xE9s de recherche sur le "),Gn=r(ds,"EM",{});var lh=o(Gn);gc=n(lh,"Hub"),lh.forEach(t),vc=n(ds," d\u2019Hugging Face et garantissent que votre jeu de donn\xE9es peut \xEAtre facilement trouv\xE9 par les membres de la communaut\xE9. Puisque nous avons cr\xE9\xE9 un jeu de donn\xE9es personnalis\xE9 ici, vous devrez cloner le r\xE9f\xE9rentiel "),In=r(ds,"CODE",{});var rh=o(In);bc=n(rh,"datasets-tagging"),rh.forEach(t),xc=n(ds," et ex\xE9cuter l\u2019application localement. Voici \xE0 quoi ressemble l\u2019interface :"),ds.forEach(t),ah.forEach(t),wr=m(e),gt=r(e,"DIV",{class:!0});var oh=o(gt);vt=r(oh,"IMG",{src:!0,alt:!0,width:!0}),oh.forEach(t),kr=m(e),bt=r(e,"OL",{start:!0});var ih=o(bt);xt=r(ih,"LI",{});var Kr=o(xt);jc=n(Kr,"Lisez le "),ns=r(Kr,"A",{href:!0,rel:!0});var Ic=o(ns);Ec=n(Ic,"guide de \u{1F917} "),Rn=r(Ic,"EM",{});var uh=o(Rn);$c=n(uh,"Datasets"),uh.forEach(t),Ic.forEach(t),qc=n(Kr," sur la cr\xE9ation des cartes informatives des jeux de donn\xE9es et utilisez-le comme mod\xE8le."),Kr.forEach(t),ih.forEach(t),Dr=m(e),re=r(e,"P",{});var hs=o(re);yc=n(hs,"Vous pouvez cr\xE9er le fichier "),Un=r(hs,"EM",{});var ph=o(Un);wc=n(ph,"README.md"),ph.forEach(t),kc=n(hs," directement sur le "),Sn=r(hs,"EM",{});var ch=o(Sn);Dc=n(ch,"Hub"),ch.forEach(t),zc=n(hs," et vous pouvez trouver un mod\xE8le de carte dans le d\xE9pot "),Ln=r(hs,"CODE",{});var mh=o(Ln);Pc=n(mh,"lewtun/github-issues"),mh.forEach(t),Cc=n(hs,". Une capture d\u2019\xE9cran de la carte remplie est illustr\xE9e ci-dessous."),hs.forEach(t),zr=m(e),jt=r(e,"DIV",{class:!0});var dh=o(jt);Et=r(dh,"IMG",{src:!0,alt:!0,width:!0}),dh.forEach(t),Pr=m(e),g(ls.$$.fragment,e),Cr=m(e),rs=r(e,"P",{});var Xr=o(rs);Hc=n(Xr,"C\u2019est tout ! Nous avons vu dans cette section que la cr\xE9ation d\u2019un bon jeu de donn\xE9es peut \xEAtre assez complexe, mais heureusement, le t\xE9l\xE9charger et le partager avec la communaut\xE9 ne l\u2019est pas. Dans la section suivante, nous utiliserons notre nouveau jeu de donn\xE9es pour cr\xE9er un moteur de recherche s\xE9mantique avec \u{1F917} "),Vn=r(Xr,"EM",{});var hh=o(Vn);Nc=n(hh,"Datasets"),hh.forEach(t),Mc=n(Xr," qui peut faire correspondre les questions aux probl\xE8mes et commentaires les plus pertinents."),Xr.forEach(t),Hr=m(e),g(os.$$.fragment,e),this.h()},h(){d(p,"name","hf:doc:metadata"),d(p,"content",JSON.stringify(Ph)),d(k,"id","cration-de-votre-propre-jeu-de-donnes"),d(k,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),d(k,"href","#cration-de-votre-propre-jeu-de-donnes"),d(h,"class","relative group"),d(q,"href","https://github.com/features/issues/"),d(q,"rel","nofollow"),d(Ae,"id","obtenir-les-donnes"),d(Ae,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),d(Ae,"href","#obtenir-les-donnes"),d(ze,"class","relative group"),d(vs,"href","https://github.com/huggingface/datasets/issues"),d(vs,"rel","nofollow"),Wt(xs.src,Rc="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/datasets-issues.png")||d(xs,"src",Rc),d(xs,"alt","The GitHub issues associated with \u{1F917} Datasets."),d(xs,"width","80%"),d(bs,"class","flex justify-center"),Wt(Es.src,Uc="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/datasets-issues-single.png")||d(Es,"src",Uc),d(Es,"alt","A typical GitHub issue in the \u{1F917} Datasets repository."),d(Es,"width","80%"),d(js,"class","flex justify-center"),d($s,"href","https://docs.github.com/en/rest"),d($s,"rel","nofollow"),d(qs,"href","https://docs.github.com/en/rest/reference/issues#list-repository-issues"),d(qs,"rel","nofollow"),d(zs,"href","https://en.wikipedia.org/wiki/List_of_HTTP_status_codes"),d(zs,"rel","nofollow"),d(Hs,"href","https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting"),d(Hs,"rel","nofollow"),d(Ns,"href","https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token"),d(Ns,"rel","nofollow"),d(Ht,"href","/course/fr/chaper5/2"),d(Is,"href","https://github.com/huggingface/datasets/issues"),d(Is,"rel","nofollow"),d(Rs,"href","https://docs.github.com/en/rest/reference/issues#list-issues-assigned-to-the-authenticated-user"),d(Rs,"rel","nofollow"),d(Ve,"id","nettoyer-les-donnes"),d(Ve,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),d(Ve,"href","#nettoyer-les-donnes"),d(Pe,"class","relative group"),d(Mt,"href","/course/fr/chapter5/3"),d(Be,"id","enrichir-le-jeu-de-donnes"),d(Be,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),d(Be,"href","#enrichir-le-jeu-de-donnes"),d(Ce,"class","relative group"),Wt(Qs.src,Sc="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/datasets-issues-comment.png")||d(Qs,"src",Sc),d(Qs,"alt","Comments associated with an issue about \u{1F917} Datasets."),d(Qs,"width","80%"),d(Bs,"class","flex justify-center"),d(Zs,"href","https://docs.github.com/en/rest/reference/issues#list-issue-comments"),d(Zs,"rel","nofollow"),d(Ke,"id","tlchargement-du-jeu-de-donnes-sur-le-ihubi"),d(Ke,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),d(Ke,"href","#tlchargement-du-jeu-de-donnes-sur-le-ihubi"),d(He,"class","relative group"),d(Xe,"href","https://github.com/huggingface/huggingface_hub"),d(Xe,"rel","nofollow"),Wt(dt.src,Lc="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/hub-repo.png")||d(dt,"src",Lc),d(dt,"alt","Our dataset repository on the Hugging Face Hub."),d(dt,"width","80%"),d(mt,"class","flex justify-center"),d(ts,"id","cration-dune-carte-pour-un-jeu-de-donnes"),d(ts,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),d(ts,"href","#cration-dune-carte-pour-un-jeu-de-donnes"),d(Ne,"class","relative group"),d(as,"href","https://huggingface.co/datasets/tagging/"),d(as,"rel","nofollow"),Wt(vt.src,Vc="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/datasets-tagger.png")||d(vt,"src",Vc),d(vt,"alt","The `datasets-tagging` interface."),d(vt,"width","80%"),d(gt,"class","flex justify-center"),d(ns,"href","https://github.com/huggingface/datasets/blob/master/templates/README_guide.md"),d(ns,"rel","nofollow"),d(bt,"start","2"),Wt(Et.src,Fc="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter5/dataset-card.png")||d(Et,"src",Fc),d(Et,"alt","A dataset card."),d(Et,"width","80%"),d(jt,"class","flex justify-center")},m(e,i){s(document.head,p),u(e,H,i),u(e,h,i),s(h,k),s(k,C),v(f,C,null),s(h,z),s(h,N),s(N,E),u(e,T,i),v(D,e,i),u(e,y,i),u(e,w,i),s(w,M),s(w,q),s(q,P),s(w,G),u(e,$,i),u(e,A,i),s(A,S),s(S,B),s(S,Q),s(Q,ee),s(A,De),s(A,ue),s(ue,fs),s(ue,pe),s(pe,I),s(ue,wt),s(A,kt),s(A,Oe),s(Oe,Dt),u(e,_s,i),u(e,ce,i),s(ce,zt),s(ce,Te),s(Te,Wr),s(ce,Yr),u(e,Jn,i),u(e,ze,i),s(ze,Ae),s(Ae,ea),v(gs,ea,null),s(ze,eo),s(ze,sa),s(sa,so),u(e,Kn,i),u(e,de,i),s(de,to),s(de,ta),s(ta,ao),s(de,no),s(de,vs),s(vs,lo),s(de,ro),u(e,Xn,i),u(e,bs,i),s(bs,xs),u(e,Wn,i),u(e,Pt,i),s(Pt,oo),u(e,Yn,i),u(e,js,i),s(js,Es),u(e,el,i),u(e,he,i),s(he,io),s(he,$s),s($s,uo),s(he,po),s(he,qs),s(qs,aa),s(aa,co),s(he,mo),u(e,sl,i),u(e,Ge,i),s(Ge,ho),s(Ge,na),s(na,fo),s(Ge,_o),u(e,tl,i),v(ys,e,i),u(e,al,i),u(e,fe,i),s(fe,go),s(fe,la),s(la,vo),s(fe,bo),s(fe,ra),s(ra,xo),s(fe,jo),u(e,nl,i),v(ws,e,i),u(e,ll,i),u(e,Ie,i),s(Ie,Eo),s(Ie,oa),s(oa,$o),s(Ie,qo),u(e,rl,i),v(ks,e,i),u(e,ol,i),v(Ds,e,i),u(e,il,i),u(e,se,i),s(se,yo),s(se,ia),s(ia,wo),s(se,ko),s(se,zs),s(zs,Do),s(se,zo),s(se,ua),s(ua,Po),s(se,Co),u(e,ul,i),v(Ps,e,i),u(e,pl,i),v(Cs,e,i),u(e,cl,i),u(e,te,i),s(te,Ho),s(te,pa),s(pa,No),s(te,Mo),s(te,ca),s(ca,Oo),s(te,To),s(te,ma),s(ma,Ao),s(te,Go),u(e,ml,i),v(Re,e,i),u(e,dl,i),u(e,Z,i),s(Z,Io),s(Z,Hs),s(Hs,Ro),s(Z,Uo),s(Z,da),s(da,So),s(Z,Lo),s(Z,Ns),s(Ns,Vo),s(Z,Fo),s(Z,ha),s(ha,Bo),s(Z,Qo),s(Z,fa),s(fa,Zo),s(Z,Jo),u(e,hl,i),v(Ms,e,i),u(e,fl,i),v(Ue,e,i),u(e,_l,i),u(e,Ct,i),s(Ct,Ko),u(e,gl,i),v(Os,e,i),u(e,vl,i),u(e,ae,i),s(ae,Xo),s(ae,_a),s(_a,Wo),s(ae,Yo),s(ae,ga),s(ga,ei),s(ae,si),s(ae,va),s(va,ti),s(ae,ai),u(e,bl,i),v(Ts,e,i),u(e,xl,i),u(e,Se,i),s(Se,ni),s(Se,Ht),s(Ht,li),s(Se,ri),u(e,jl,i),v(As,e,i),u(e,El,i),v(Gs,e,i),u(e,$l,i),u(e,X,i),s(X,oi),s(X,Is),s(Is,ii),s(X,ui),s(X,ba),s(ba,pi),s(X,ci),s(X,Rs),s(Rs,mi),s(X,di),s(X,xa),s(xa,hi),s(X,fi),u(e,ql,i),u(e,Nt,i),s(Nt,V),s(V,_i),s(V,ja),s(ja,gi),s(V,vi),s(V,Ea),s(Ea,bi),s(V,xi),s(V,$a),s($a,ji),s(V,Ei),s(V,qa),s(qa,$i),s(V,qi),s(V,ya),s(ya,yi),s(V,wi),s(V,wa),s(wa,ki),s(V,Di),u(e,yl,i),u(e,Le,i),s(Le,zi),s(Le,ka),s(ka,Pi),s(Le,Ci),u(e,wl,i),u(e,Pe,i),s(Pe,Ve),s(Ve,Da),v(Us,Da,null),s(Pe,Hi),s(Pe,za),s(za,Ni),u(e,kl,i),u(e,R,i),s(R,Mi),s(R,Pa),s(Pa,Oi),s(R,Ti),s(R,Ca),s(Ca,Ai),s(R,Gi),s(R,Ha),s(Ha,Ii),s(R,Ri),s(R,Mt),s(Mt,Ui),s(R,Si),s(R,Na),s(Na,Li),s(R,Vi),s(R,Ma),s(Ma,Fi),s(R,Bi),s(R,Oa),s(Oa,Qi),s(R,Zi),s(R,Ta),s(Ta,Ji),s(R,Ki),u(e,Dl,i),v(Ss,e,i),u(e,zl,i),v(Ls,e,i),u(e,Pl,i),u(e,J,i),s(J,Xi),s(J,Aa),s(Aa,Wi),s(J,Yi),s(J,Ga),s(Ga,eu),s(J,su),s(J,Ia),s(Ia,tu),s(J,au),s(J,Ra),s(Ra,nu),s(J,lu),s(J,Ua),s(Ua,ru),s(J,ou),u(e,Cl,i),v(Vs,e,i),u(e,Hl,i),v(Fe,e,i),u(e,Nl,i),u(e,Ot,i),s(Ot,iu),u(e,Ml,i),u(e,_e,i),s(_e,uu),s(_e,Sa),s(Sa,pu),s(_e,cu),s(_e,La),s(La,mu),s(_e,du),u(e,Ol,i),u(e,Ce,i),s(Ce,Be),s(Be,Va),v(Fs,Va,null),s(Ce,hu),s(Ce,Fa),s(Fa,fu),u(e,Tl,i),u(e,Qe,i),s(Qe,_u),s(Qe,Ba),s(Ba,gu),s(Qe,vu),u(e,Al,i),u(e,Bs,i),s(Bs,Qs),u(e,Gl,i),u(e,Ze,i),s(Ze,bu),s(Ze,Zs),s(Zs,Qa),s(Qa,xu),s(Ze,ju),u(e,Il,i),v(Js,e,i),u(e,Rl,i),v(Ks,e,i),u(e,Ul,i),u(e,ne,i),s(ne,Eu),s(ne,Za),s(Za,$u),s(ne,qu),s(ne,Ja),s(Ja,yu),s(ne,wu),s(ne,Ka),s(Ka,ku),s(ne,Du),u(e,Sl,i),v(Xs,e,i),u(e,Ll,i),v(Ws,e,i),u(e,Vl,i),u(e,ge,i),s(ge,zu),s(ge,Xa),s(Xa,Pu),s(ge,Cu),s(ge,Wa),s(Wa,Hu),s(ge,Nu),u(e,Fl,i),v(Ys,e,i),u(e,Bl,i),u(e,Je,i),s(Je,Mu),s(Je,Ya),s(Ya,Ou),s(Je,Tu),u(e,Ql,i),v(et,e,i),u(e,Zl,i),u(e,He,i),s(He,Ke),s(Ke,en),v(st,en,null),s(He,Au),s(He,Tt),s(Tt,Gu),s(Tt,sn),s(sn,Iu),u(e,Jl,i),v(tt,e,i),u(e,Kl,i),u(e,U,i),s(U,Ru),s(U,tn),s(tn,Uu),s(U,Su),s(U,Xe),s(Xe,Lu),s(Xe,an),s(an,Vu),s(U,Fu),s(U,nn),s(nn,Bu),s(U,Qu),s(U,ln),s(ln,Zu),s(U,Ju),s(U,rn),s(rn,Ku),s(U,Xu),s(U,on),s(on,Wu),s(U,Yu),s(U,un),s(un,ep),s(U,sp),u(e,Xl,i),v(at,e,i),u(e,Wl,i),v(nt,e,i),u(e,Yl,i),u(e,ve,i),s(ve,tp),s(ve,pn),s(pn,ap),s(ve,np),s(ve,cn),s(cn,lp),s(ve,rp),u(e,er,i),u(e,le,i),s(le,op),s(le,mn),s(mn,ip),s(le,up),s(le,dn),s(dn,pp),s(le,cp),s(le,hn),s(hn,mp),s(le,dp),u(e,sr,i),v(lt,e,i),u(e,tr,i),u(e,be,i),s(be,hp),s(be,fn),s(fn,fp),s(be,_p),s(be,_n),s(_n,gp),s(be,vp),u(e,ar,i),v(rt,e,i),u(e,nr,i),u(e,We,i),s(We,bp),s(We,gn),s(gn,xp),s(We,jp),u(e,lr,i),v(ot,e,i),u(e,rr,i),v(it,e,i),u(e,or,i),u(e,xe,i),s(xe,Ep),s(xe,vn),s(vn,$p),s(xe,qp),s(xe,bn),s(bn,yp),s(xe,wp),u(e,ir,i),v(Ye,e,i),u(e,ur,i),u(e,je,i),s(je,kp),s(je,xn),s(xn,Dp),s(je,zp),s(je,jn),s(jn,Pp),s(je,Cp),u(e,pr,i),v(ut,e,i),u(e,cr,i),u(e,W,i),s(W,Hp),s(W,En),s(En,Np),s(W,Mp),s(W,$n),s($n,Op),s(W,Tp),s(W,qn),s(qn,Ap),s(W,Gp),s(W,yn),s(yn,Ip),s(W,Rp),u(e,mr,i),v(pt,e,i),u(e,dr,i),u(e,Ee,i),s(Ee,Up),s(Ee,wn),s(wn,Sp),s(Ee,Lp),s(Ee,kn),s(kn,Vp),s(Ee,Fp),u(e,hr,i),v(ct,e,i),u(e,fr,i),u(e,es,i),s(es,Bp),s(es,Dn),s(Dn,Qp),s(es,Zp),u(e,_r,i),u(e,mt,i),s(mt,dt),u(e,gr,i),u(e,$e,i),s($e,Jp),s($e,zn),s(zn,Kp),s($e,Xp),s($e,Pn),s(Pn,Wp),s($e,Yp),u(e,vr,i),v(ht,e,i),u(e,br,i),v(ft,e,i),u(e,xr,i),u(e,qe,i),s(qe,ec),s(qe,Cn),s(Cn,sc),s(qe,tc),s(qe,Hn),s(Hn,ac),s(qe,nc),u(e,jr,i),v(ss,e,i),u(e,Er,i),u(e,Ne,i),s(Ne,ts),s(ts,Nn),v(_t,Nn,null),s(Ne,lc),s(Ne,Mn),s(Mn,rc),u(e,$r,i),u(e,At,i),s(At,oc),u(e,qr,i),u(e,ye,i),s(ye,ic),s(ye,On),s(On,uc),s(ye,pc),s(ye,Tn),s(Tn,cc),s(ye,mc),u(e,yr,i),u(e,Gt,i),s(Gt,me),s(me,dc),s(me,as),s(as,hc),s(as,An),s(An,fc),s(me,_c),s(me,Gn),s(Gn,gc),s(me,vc),s(me,In),s(In,bc),s(me,xc),u(e,wr,i),u(e,gt,i),s(gt,vt),u(e,kr,i),u(e,bt,i),s(bt,xt),s(xt,jc),s(xt,ns),s(ns,Ec),s(ns,Rn),s(Rn,$c),s(xt,qc),u(e,Dr,i),u(e,re,i),s(re,yc),s(re,Un),s(Un,wc),s(re,kc),s(re,Sn),s(Sn,Dc),s(re,zc),s(re,Ln),s(Ln,Pc),s(re,Cc),u(e,zr,i),u(e,jt,i),s(jt,Et),u(e,Pr,i),v(ls,e,i),u(e,Cr,i),u(e,rs,i),s(rs,Hc),s(rs,Vn),s(Vn,Nc),s(rs,Mc),u(e,Hr,i),v(os,e,i),Nr=!0},p(e,[i]){const $t={};i&2&&($t.$$scope={dirty:i,ctx:e}),Re.$set($t);const Fn={};i&2&&(Fn.$$scope={dirty:i,ctx:e}),Ue.$set(Fn);const Bn={};i&2&&(Bn.$$scope={dirty:i,ctx:e}),Fe.$set(Bn);const Qn={};i&2&&(Qn.$$scope={dirty:i,ctx:e}),Ye.$set(Qn);const qt={};i&2&&(qt.$$scope={dirty:i,ctx:e}),ss.$set(qt);const Zn={};i&2&&(Zn.$$scope={dirty:i,ctx:e}),ls.$set(Zn);const Me={};i&2&&(Me.$$scope={dirty:i,ctx:e}),os.$set(Me)},i(e){Nr||(b(f.$$.fragment,e),b(D.$$.fragment,e),b(gs.$$.fragment,e),b(ys.$$.fragment,e),b(ws.$$.fragment,e),b(ks.$$.fragment,e),b(Ds.$$.fragment,e),b(Ps.$$.fragment,e),b(Cs.$$.fragment,e),b(Re.$$.fragment,e),b(Ms.$$.fragment,e),b(Ue.$$.fragment,e),b(Os.$$.fragment,e),b(Ts.$$.fragment,e),b(As.$$.fragment,e),b(Gs.$$.fragment,e),b(Us.$$.fragment,e),b(Ss.$$.fragment,e),b(Ls.$$.fragment,e),b(Vs.$$.fragment,e),b(Fe.$$.fragment,e),b(Fs.$$.fragment,e),b(Js.$$.fragment,e),b(Ks.$$.fragment,e),b(Xs.$$.fragment,e),b(Ws.$$.fragment,e),b(Ys.$$.fragment,e),b(et.$$.fragment,e),b(st.$$.fragment,e),b(tt.$$.fragment,e),b(at.$$.fragment,e),b(nt.$$.fragment,e),b(lt.$$.fragment,e),b(rt.$$.fragment,e),b(ot.$$.fragment,e),b(it.$$.fragment,e),b(Ye.$$.fragment,e),b(ut.$$.fragment,e),b(pt.$$.fragment,e),b(ct.$$.fragment,e),b(ht.$$.fragment,e),b(ft.$$.fragment,e),b(ss.$$.fragment,e),b(_t.$$.fragment,e),b(ls.$$.fragment,e),b(os.$$.fragment,e),Nr=!0)},o(e){x(f.$$.fragment,e),x(D.$$.fragment,e),x(gs.$$.fragment,e),x(ys.$$.fragment,e),x(ws.$$.fragment,e),x(ks.$$.fragment,e),x(Ds.$$.fragment,e),x(Ps.$$.fragment,e),x(Cs.$$.fragment,e),x(Re.$$.fragment,e),x(Ms.$$.fragment,e),x(Ue.$$.fragment,e),x(Os.$$.fragment,e),x(Ts.$$.fragment,e),x(As.$$.fragment,e),x(Gs.$$.fragment,e),x(Us.$$.fragment,e),x(Ss.$$.fragment,e),x(Ls.$$.fragment,e),x(Vs.$$.fragment,e),x(Fe.$$.fragment,e),x(Fs.$$.fragment,e),x(Js.$$.fragment,e),x(Ks.$$.fragment,e),x(Xs.$$.fragment,e),x(Ws.$$.fragment,e),x(Ys.$$.fragment,e),x(et.$$.fragment,e),x(st.$$.fragment,e),x(tt.$$.fragment,e),x(at.$$.fragment,e),x(nt.$$.fragment,e),x(lt.$$.fragment,e),x(rt.$$.fragment,e),x(ot.$$.fragment,e),x(it.$$.fragment,e),x(Ye.$$.fragment,e),x(ut.$$.fragment,e),x(pt.$$.fragment,e),x(ct.$$.fragment,e),x(ht.$$.fragment,e),x(ft.$$.fragment,e),x(ss.$$.fragment,e),x(_t.$$.fragment,e),x(ls.$$.fragment,e),x(os.$$.fragment,e),Nr=!1},d(e){t(p),e&&t(H),e&&t(h),j(f),e&&t(T),j(D,e),e&&t(y),e&&t(w),e&&t($),e&&t(A),e&&t(_s),e&&t(ce),e&&t(Jn),e&&t(ze),j(gs),e&&t(Kn),e&&t(de),e&&t(Xn),e&&t(bs),e&&t(Wn),e&&t(Pt),e&&t(Yn),e&&t(js),e&&t(el),e&&t(he),e&&t(sl),e&&t(Ge),e&&t(tl),j(ys,e),e&&t(al),e&&t(fe),e&&t(nl),j(ws,e),e&&t(ll),e&&t(Ie),e&&t(rl),j(ks,e),e&&t(ol),j(Ds,e),e&&t(il),e&&t(se),e&&t(ul),j(Ps,e),e&&t(pl),j(Cs,e),e&&t(cl),e&&t(te),e&&t(ml),j(Re,e),e&&t(dl),e&&t(Z),e&&t(hl),j(Ms,e),e&&t(fl),j(Ue,e),e&&t(_l),e&&t(Ct),e&&t(gl),j(Os,e),e&&t(vl),e&&t(ae),e&&t(bl),j(Ts,e),e&&t(xl),e&&t(Se),e&&t(jl),j(As,e),e&&t(El),j(Gs,e),e&&t($l),e&&t(X),e&&t(ql),e&&t(Nt),e&&t(yl),e&&t(Le),e&&t(wl),e&&t(Pe),j(Us),e&&t(kl),e&&t(R),e&&t(Dl),j(Ss,e),e&&t(zl),j(Ls,e),e&&t(Pl),e&&t(J),e&&t(Cl),j(Vs,e),e&&t(Hl),j(Fe,e),e&&t(Nl),e&&t(Ot),e&&t(Ml),e&&t(_e),e&&t(Ol),e&&t(Ce),j(Fs),e&&t(Tl),e&&t(Qe),e&&t(Al),e&&t(Bs),e&&t(Gl),e&&t(Ze),e&&t(Il),j(Js,e),e&&t(Rl),j(Ks,e),e&&t(Ul),e&&t(ne),e&&t(Sl),j(Xs,e),e&&t(Ll),j(Ws,e),e&&t(Vl),e&&t(ge),e&&t(Fl),j(Ys,e),e&&t(Bl),e&&t(Je),e&&t(Ql),j(et,e),e&&t(Zl),e&&t(He),j(st),e&&t(Jl),j(tt,e),e&&t(Kl),e&&t(U),e&&t(Xl),j(at,e),e&&t(Wl),j(nt,e),e&&t(Yl),e&&t(ve),e&&t(er),e&&t(le),e&&t(sr),j(lt,e),e&&t(tr),e&&t(be),e&&t(ar),j(rt,e),e&&t(nr),e&&t(We),e&&t(lr),j(ot,e),e&&t(rr),j(it,e),e&&t(or),e&&t(xe),e&&t(ir),j(Ye,e),e&&t(ur),e&&t(je),e&&t(pr),j(ut,e),e&&t(cr),e&&t(W),e&&t(mr),j(pt,e),e&&t(dr),e&&t(Ee),e&&t(hr),j(ct,e),e&&t(fr),e&&t(es),e&&t(_r),e&&t(mt),e&&t(gr),e&&t($e),e&&t(vr),j(ht,e),e&&t(br),j(ft,e),e&&t(xr),e&&t(qe),e&&t(jr),j(ss,e),e&&t(Er),e&&t(Ne),j(_t),e&&t($r),e&&t(At),e&&t(qr),e&&t(ye),e&&t(yr),e&&t(Gt),e&&t(wr),e&&t(gt),e&&t(kr),e&&t(bt),e&&t(Dr),e&&t(re),e&&t(zr),e&&t(jt),e&&t(Pr),j(ls,e),e&&t(Cr),e&&t(rs),e&&t(Hr),j(os,e)}}}const Ph={local:"cration-de-votre-propre-jeu-de-donnes",sections:[{local:"obtenir-les-donnes",title:"Obtenir les donn\xE9es"},{local:"nettoyer-les-donnes",title:"Nettoyer les donn\xE9es"},{local:"enrichir-le-jeu-de-donnes",title:"Enrichir le jeu de donn\xE9es"},{local:"tlchargement-du-jeu-de-donnes-sur-le-ihubi",title:"T\xE9l\xE9chargement du jeu de donn\xE9es sur le <i>Hub</i>"},{local:"cration-dune-carte-pour-un-jeu-de-donnes",title:"Cr\xE9ation d'une carte pour un jeu de donn\xE9es"}],title:"Cr\xE9ation de votre propre jeu de donn\xE9es"};function Ch(F){return bh(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Gh extends fh{constructor(p){super();_h(this,p,Ch,zh,gh,{})}}export{Gh as default,Ph as metadata};
