Buckets:
| import{s as Pl,o as Ol,n as Kn}from"../chunks/scheduler.37c15a92.js";import{S as Kl,i as sa,g as j,s as p,r as M,A as ea,h as y,f as n,c as i,j as Yl,u,x as T,k as Pn,y as na,a as l,v as m,t as c,b as Vn,d as o,w as d,p as Xn}from"../chunks/index.2bf4358c.js";import{T as On}from"../chunks/Tip.363c041f.js";import{Y as Gn}from"../chunks/Youtube.1e50a667.js";import{C as b}from"../chunks/CodeBlock.4e987730.js";import{C as Fl}from"../chunks/CourseFloatingBanner.6add7356.js";import{F as la}from"../chunks/FrameworkSwitchCourse.8d4d4ab6.js";import{H as Je,E as aa}from"../chunks/getInferenceSnippets.ebf8be91.js";function ta(U){let a,J;return a=new Fl({props:{chapter:6,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"English",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter6/section3_tf.ipynb"},{label:"Français",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/fr/chapter6/section3_tf.ipynb"},{label:"English",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter6/section3_tf.ipynb"},{label:"Français",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fr/chapter6/section3_tf.ipynb"}]}}),{c(){M(a.$$.fragment)},l(t){u(a.$$.fragment,t)},m(t,h){m(a,t,h),J=!0},i(t){J||(o(a.$$.fragment,t),J=!0)},o(t){c(a.$$.fragment,t),J=!1},d(t){d(a,t)}}}function pa(U){let a,J;return a=new Fl({props:{chapter:6,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"English",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter6/section3_pt.ipynb"},{label:"Français",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/fr/chapter6/section3_pt.ipynb"},{label:"English",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter6/section3_pt.ipynb"},{label:"Français",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fr/chapter6/section3_pt.ipynb"}]}}),{c(){M(a.$$.fragment)},l(t){u(a.$$.fragment,t)},m(t,h){m(a,t,h),J=!0},i(t){J||(o(a.$$.fragment,t),J=!0)},o(t){c(a.$$.fragment,t),J=!1},d(t){d(a,t)}}}function ia(U){let a,J="⚠️ Lors de la tokenisation d’une seule phrase, vous ne verrez pas toujours une différence de vitesse entre les versions lente et rapide d’un même <em>tokenizer</em>. En fait, la version rapide peut même être plus lente ! Ce n’est que lorsque vous tokenisez beaucoup de textes en parallèle et en même temps que vous pourrez clairement voir la différence.";return{c(){a=j("p"),a.innerHTML=J},l(t){a=y(t,"P",{"data-svelte-h":!0}),T(a)!=="svelte-1tmecf6"&&(a.innerHTML=J)},m(t,h){l(t,a,h)},p:Kn,d(t){t&&n(a)}}}function ra(U){let a,J="✏️ <strong>Essayez !</strong> Créez un <em>tokenizer</em> à partir des <i>checkpoints</i> <code>bert-base-cased</code> et <code>roberta-base</code> et tokenisez « 81s » avec. Qu’observez-vous ? Quels sont les identifiants des mots ?";return{c(){a=j("p"),a.innerHTML=J},l(t){a=y(t,"P",{"data-svelte-h":!0}),T(a)!=="svelte-1yojo5w"&&(a.innerHTML=J)},m(t,h){l(t,a,h)},p:Kn,d(t){t&&n(a)}}}function ca(U){let a,J="✏️ <strong>Essayez !</strong> Rédigez votre propre texte et voyez si vous pouvez comprendre quels <em>tokens</em> sont associés à l’identifiant du mot et comment extraire les étendues de caractères pour un seul mot. Pour obtenir des points bonus, essayez d’utiliser deux phrases en entrée et voyez si les identifiants ont un sens pour vous.";return{c(){a=j("p"),a.innerHTML=J},l(t){a=y(t,"P",{"data-svelte-h":!0}),T(a)!=="svelte-1017mf4"&&(a.innerHTML=J)},m(t,h){l(t,a,h)},p:Kn,d(t){t&&n(a)}}}function oa(U){let a,J;return a=new Gn({props:{id:"PrX4CjrVnNc"}}),{c(){M(a.$$.fragment)},l(t){u(a.$$.fragment,t)},m(t,h){m(a,t,h),J=!0},i(t){J||(o(a.$$.fragment,t),J=!0)},o(t){c(a.$$.fragment,t),J=!1},d(t){d(a,t)}}}function Ma(U){let a,J;return a=new Gn({props:{id:"0E7ltQB7fM8"}}),{c(){M(a.$$.fragment)},l(t){u(a.$$.fragment,t)},m(t,h){m(a,t,h),J=!0},i(t){J||(o(a.$$.fragment,t),J=!0)},o(t){c(a.$$.fragment,t),J=!1},d(t){d(a,t)}}}function ua(U){let a,J='D’abord, nous devons tokeniser notre entrée et la faire passer dans le modèle. Cela se fait exactement comme dans le <a href="/course/fr/chapter2">chapitre 2</a>. Nous instancions le <em>tokenizer</em> et le modèle en utilisant les classes <code>TFAutoXxx</code> et les utilisons ensuite dans notre exemple :',t,h,C,k,A="Puisque nous utilisons <code>TFAutoModelForTokenClassification</code>, nous obtenons un ensemble de logits pour chaque <em>token</em> dans la séquence d’entrée :",$,x,g,f,I;return h=new b({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBURkF1dG9Nb2RlbEZvclRva2VuQ2xhc3NpZmljYXRpb24lMEElMEFtb2RlbF9jaGVja3BvaW50JTIwJTNEJTIwJTIyZGJtZHolMkZiZXJ0LWxhcmdlLWNhc2VkLWZpbmV0dW5lZC1jb25sbDAzLWVuZ2xpc2glMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChtb2RlbF9jaGVja3BvaW50KSUwQW1vZGVsJTIwJTNEJTIwVEZBdXRvTW9kZWxGb3JUb2tlbkNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChtb2RlbF9jaGVja3BvaW50KSUwQSUwQWV4YW1wbGUlMjAlM0QlMjAlMjJNeSUyMG5hbWUlMjBpcyUyMFN5bHZhaW4lMjBhbmQlMjBJJTIwd29yayUyMGF0JTIwSHVnZ2luZyUyMEZhY2UlMjBpbiUyMEJyb29rbHluLiUyMiUwQWlucHV0cyUyMCUzRCUyMHRva2VuaXplcihleGFtcGxlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJ0ZiUyMiklMEFvdXRwdXRzJTIwJTNEJTIwbW9kZWwoKippbnB1dHMp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, TFAutoModelForTokenClassification | |
| model_checkpoint = <span class="hljs-string">"dbmdz/bert-large-cased-finetuned-conll03-english"</span> | |
| tokenizer = AutoTokenizer.from_pretrained(model_checkpoint) | |
| model = TFAutoModelForTokenClassification.from_pretrained(model_checkpoint) | |
| example = <span class="hljs-string">"My name is Sylvain and I work at Hugging Face in Brooklyn."</span> | |
| inputs = tokenizer(example, return_tensors=<span class="hljs-string">"tf"</span>) | |
| outputs = model(**inputs)`,wrap:!1}}),x=new b({props:{code:"cHJpbnQoaW5wdXRzJTVCJTIyaW5wdXRfaWRzJTIyJTVELnNoYXBlKSUwQXByaW50KG91dHB1dHMubG9naXRzLnNoYXBlKQ==",highlighted:`<span class="hljs-built_in">print</span>(inputs[<span class="hljs-string">"input_ids"</span>].shape) | |
| <span class="hljs-built_in">print</span>(outputs.logits.shape)`,wrap:!1}}),f=new b({props:{code:"KDElMkMlMjAxOSklMEEoMSUyQyUyMDE5JTJDJTIwOSk=",highlighted:`(<span class="hljs-number">1</span>, <span class="hljs-number">19</span>) | |
| (<span class="hljs-number">1</span>, <span class="hljs-number">19</span>, <span class="hljs-number">9</span>)`,wrap:!1}}),{c(){a=j("p"),a.innerHTML=J,t=p(),M(h.$$.fragment),C=p(),k=j("p"),k.innerHTML=A,$=p(),M(x.$$.fragment),g=p(),M(f.$$.fragment)},l(r){a=y(r,"P",{"data-svelte-h":!0}),T(a)!=="svelte-1mfobja"&&(a.innerHTML=J),t=i(r),u(h.$$.fragment,r),C=i(r),k=y(r,"P",{"data-svelte-h":!0}),T(k)!=="svelte-1ys85wj"&&(k.innerHTML=A),$=i(r),u(x.$$.fragment,r),g=i(r),u(f.$$.fragment,r)},m(r,w){l(r,a,w),l(r,t,w),m(h,r,w),l(r,C,w),l(r,k,w),l(r,$,w),m(x,r,w),l(r,g,w),m(f,r,w),I=!0},i(r){I||(o(h.$$.fragment,r),o(x.$$.fragment,r),o(f.$$.fragment,r),I=!0)},o(r){c(h.$$.fragment,r),c(x.$$.fragment,r),c(f.$$.fragment,r),I=!1},d(r){r&&(n(a),n(t),n(C),n(k),n($),n(g)),d(h,r),d(x,r),d(f,r)}}}function ma(U){let a,J='D’abord, nous devons tokeniser notre entrée et la faire passer dans le modèle. Cela se fait exactement comme dans le <a href="/course/fr/chapter2">chapitre 2</a>. Nous instancions le <em>tokenizer</em> et le modèle en utilisant les classes <code>TFAutoXxx</code> et les utilisons ensuite dans notre exemple :',t,h,C,k,A="Puisque nous utilisons <code>AutoModelForTokenClassification</code>, nous obtenons un ensemble de logits pour chaque <em>token</em> dans la séquence d’entrée :",$,x,g,f,I;return h=new b({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBBdXRvTW9kZWxGb3JUb2tlbkNsYXNzaWZpY2F0aW9uJTBBJTBBbW9kZWxfY2hlY2twb2ludCUyMCUzRCUyMCUyMmRibWR6JTJGYmVydC1sYXJnZS1jYXNlZC1maW5ldHVuZWQtY29ubGwwMy1lbmdsaXNoJTIyJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQobW9kZWxfY2hlY2twb2ludCklMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvclRva2VuQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKG1vZGVsX2NoZWNrcG9pbnQpJTBBJTBBZXhhbXBsZSUyMCUzRCUyMCUyMk15JTIwbmFtZSUyMGlzJTIwU3lsdmFpbiUyMGFuZCUyMEklMjB3b3JrJTIwYXQlMjBIdWdnaW5nJTIwRmFjZSUyMGluJTIwQnJvb2tseW4uJTIyJTBBaW5wdXRzJTIwJTNEJTIwdG9rZW5pemVyKGV4YW1wbGUlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnB0JTIyKSUwQW91dHB1dHMlMjAlM0QlMjBtb2RlbCgqKmlucHV0cyk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForTokenClassification | |
| model_checkpoint = <span class="hljs-string">"dbmdz/bert-large-cased-finetuned-conll03-english"</span> | |
| tokenizer = AutoTokenizer.from_pretrained(model_checkpoint) | |
| model = AutoModelForTokenClassification.from_pretrained(model_checkpoint) | |
| example = <span class="hljs-string">"My name is Sylvain and I work at Hugging Face in Brooklyn."</span> | |
| inputs = tokenizer(example, return_tensors=<span class="hljs-string">"pt"</span>) | |
| outputs = model(**inputs)`,wrap:!1}}),x=new b({props:{code:"cHJpbnQoaW5wdXRzJTVCJTIyaW5wdXRfaWRzJTIyJTVELnNoYXBlKSUwQXByaW50KG91dHB1dHMubG9naXRzLnNoYXBlKQ==",highlighted:`<span class="hljs-built_in">print</span>(inputs[<span class="hljs-string">"input_ids"</span>].shape) | |
| <span class="hljs-built_in">print</span>(outputs.logits.shape)`,wrap:!1}}),f=new b({props:{code:"dG9yY2guU2l6ZSglNUIxJTJDJTIwMTklNUQpJTBBdG9yY2guU2l6ZSglNUIxJTJDJTIwMTklMkMlMjA5JTVEKQ==",highlighted:`torch.Size([<span class="hljs-number">1</span>, <span class="hljs-number">19</span>]) | |
| torch.Size([<span class="hljs-number">1</span>, <span class="hljs-number">19</span>, <span class="hljs-number">9</span>])`,wrap:!1}}),{c(){a=j("p"),a.innerHTML=J,t=p(),M(h.$$.fragment),C=p(),k=j("p"),k.innerHTML=A,$=p(),M(x.$$.fragment),g=p(),M(f.$$.fragment)},l(r){a=y(r,"P",{"data-svelte-h":!0}),T(a)!=="svelte-1mfobja"&&(a.innerHTML=J),t=i(r),u(h.$$.fragment,r),C=i(r),k=y(r,"P",{"data-svelte-h":!0}),T(k)!=="svelte-2nz59t"&&(k.innerHTML=A),$=i(r),u(x.$$.fragment,r),g=i(r),u(f.$$.fragment,r)},m(r,w){l(r,a,w),l(r,t,w),m(h,r,w),l(r,C,w),l(r,k,w),l(r,$,w),m(x,r,w),l(r,g,w),m(f,r,w),I=!0},i(r){I||(o(h.$$.fragment,r),o(x.$$.fragment,r),o(f.$$.fragment,r),I=!0)},o(r){c(h.$$.fragment,r),c(x.$$.fragment,r),c(f.$$.fragment,r),I=!1},d(r){r&&(n(a),n(t),n(C),n(k),n($),n(g)),d(h,r),d(x,r),d(f,r)}}}function da(U){let a,J;return a=new b({props:{code:"aW1wb3J0JTIwdGVuc29yZmxvdyUyMGFzJTIwdGYlMEElMEFwcm9iYWJpbGl0aWVzJTIwJTNEJTIwdGYubWF0aC5zb2Z0bWF4KG91dHB1dHMubG9naXRzJTJDJTIwYXhpcyUzRC0xKSU1QjAlNUQlMEFwcm9iYWJpbGl0aWVzJTIwJTNEJTIwcHJvYmFiaWxpdGllcy5udW1weSgpLnRvbGlzdCgpJTBBcHJlZGljdGlvbnMlMjAlM0QlMjB0Zi5tYXRoLmFyZ21heChvdXRwdXRzLmxvZ2l0cyUyQyUyMGF4aXMlM0QtMSklNUIwJTVEJTBBcHJlZGljdGlvbnMlMjAlM0QlMjBwcmVkaWN0aW9ucy5udW1weSgpLnRvbGlzdCgpJTBBcHJpbnQocHJlZGljdGlvbnMp",highlighted:`<span class="hljs-keyword">import</span> tensorflow <span class="hljs-keyword">as</span> tf | |
| probabilities = tf.math.softmax(outputs.logits, axis=-<span class="hljs-number">1</span>)[<span class="hljs-number">0</span>] | |
| probabilities = probabilities.numpy().tolist() | |
| predictions = tf.math.argmax(outputs.logits, axis=-<span class="hljs-number">1</span>)[<span class="hljs-number">0</span>] | |
| predictions = predictions.numpy().tolist() | |
| <span class="hljs-built_in">print</span>(predictions)`,wrap:!1}}),{c(){M(a.$$.fragment)},l(t){u(a.$$.fragment,t)},m(t,h){m(a,t,h),J=!0},i(t){J||(o(a.$$.fragment,t),J=!0)},o(t){c(a.$$.fragment,t),J=!1},d(t){d(a,t)}}}function Ja(U){let a,J;return a=new b({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEFwcm9iYWJpbGl0aWVzJTIwJTNEJTIwdG9yY2gubm4uZnVuY3Rpb25hbC5zb2Z0bWF4KG91dHB1dHMubG9naXRzJTJDJTIwZGltJTNELTEpJTVCMCU1RC50b2xpc3QoKSUwQXByZWRpY3Rpb25zJTIwJTNEJTIwb3V0cHV0cy5sb2dpdHMuYXJnbWF4KGRpbSUzRC0xKSU1QjAlNUQudG9saXN0KCklMEFwcmludChwcmVkaWN0aW9ucyk=",highlighted:`<span class="hljs-keyword">import</span> torch | |
| probabilities = torch.nn.functional.softmax(outputs.logits, dim=-<span class="hljs-number">1</span>)[<span class="hljs-number">0</span>].tolist() | |
| predictions = outputs.logits.argmax(dim=-<span class="hljs-number">1</span>)[<span class="hljs-number">0</span>].tolist() | |
| <span class="hljs-built_in">print</span>(predictions)`,wrap:!1}}),{c(){M(a.$$.fragment)},l(t){u(a.$$.fragment,t)},m(t,h){m(a,t,h),J=!0},i(t){J||(o(a.$$.fragment,t),J=!0)},o(t){c(a.$$.fragment,t),J=!1},d(t){d(a,t)}}}function ja(U){let a,J,t,h,C,k,A,$,x,g,f,I,r=`Dans cette section, nous allons examiner de plus près les capacités des <em>tokenizers</em> dans 🤗 <em>Transformers</em>. | |
| Jusqu’à présent, nous ne les avons utilisés que pour tokeniser les entrées ou décoder les identifiants pour revenir à du texte. Mais les <em>tokenizers</em>, et surtout ceux soutenus par la bibliothèque 🤗 <em>Tokenizers</em>, peuvent faire beaucoup plus. Pour illustrer ces fonctionnalités supplémentaires, nous allons explorer comment reproduire les résultats des pipelines <code>token-classification</code> (que nous avons appelé <code>ner</code>) et <code>question-answering</code> que nous avons rencontrés pour la première fois dans le <a href="/course/fr/chapter1">chapitre 1</a>.`,w,W,ye,q,sl='Dans la discussion qui suit, nous ferons souvent la distinction entre les <em>tokenizers</em> « lents » et les « rapides ». Les <em>tokenizers</em> lents sont ceux écrits en Python à l’intérieur de la bibliothèque 🤗 <em>Transformers</em>, tandis que les rapides sont ceux fournis par 🤗 <em>Tokenizers</em> et sont codés en Rust. Si vous vous souvenez du tableau du <a href="/course/fr/chapter5/3">chapitre 5</a> qui indiquait combien de temps il fallait à un <em>tokenizer</em> rapide et à un <em>tokenizer</em> lent pour tokeniser le jeu de données <em>Drug Review</em>, vous devriez avoir une idée de la raison pour laquelle nous les appelons rapides et lents :',Te,H,el='<thead><tr><th align="center"><em>Tokenizer</em> rapide</th> <th align="center"><em>Tokenizer</em> lent</th> <th align="center"></th></tr></thead> <tbody><tr><td align="center"><code>batched=True</code></td> <td align="center">10.8s</td> <td align="center">4min41s</td></tr> <tr><td align="center"><code>batched=False</code></td> <td align="center">59.2s</td> <td align="center">5min3s</td></tr></tbody>',he,N,be,V,xe,X,Ue,G,nl="La sortie d’un <em>tokenizer</em> n’est pas un simple dictionnaire Python. Ce que nous obtenons est en fait un objet spécial <code>BatchEncoding</code>. C’est une sous-classe d’un dictionnaire (c’est pourquoi nous avons pu indexer ce résultat sans problème auparavant), mais avec des méthodes supplémentaires qui sont principalement utilisées par les <em>tokenizers</em> rapides.",we,D,ll="En plus de leurs capacités de parallélisation, la fonctionnalité clé des <em>tokenizers</em> rapides est qu’ils gardent toujours la trace de l’étendue originale des textes d’où proviennent les <em>tokens</em> finaux, une fonctionnalité que nous appelons <em>mapping offset</em>. Cela permet de débloquer des fonctionnalités telles que le mappage de chaque mot aux <em>tokens</em> qu’il a générés ou le mappage de chaque caractère du texte original au <em>token</em> qu’il contient, et vice versa.",fe,L,al="Prenons un exemple :",ge,Y,ke,F,tl="Comme mentionné précédemment, nous obtenons un objet <code>BatchEncoding</code> dans la sortie du <em>tokenizer</em> :",Ce,P,Ie,O,pl="Puisque la classe <code>AutoTokenizer</code> choisit un <em>tokenizer</em> rapide par défaut, nous pouvons utiliser les méthodes supplémentaires que cet objet <code>BatchEncoding</code> fournit. Nous avons deux façons de vérifier si notre <em>tokenizer</em> est rapide ou lent. Nous pouvons soit vérifier l’attribut <code>is_fast</code> du <em>tokenizer</em> comme suit :",$e,K,Ae,ss,Qe,es,il="soit vérifier le même attribut mais avec notre <code>encoding</code> :",ve,ns,Ze,ls,Be,as,rl="Voyons ce qu’un <em>tokenizer</em> rapide nous permet de faire. Tout d’abord, nous pouvons accéder aux <em>tokens</em> sans avoir à reconvertir les identifiants en <em>tokens</em> :",ze,ts,Ee,ps,Ne,is,cl="Dans ce cas, le <em>token</em> à l’index 5 est <code>##yl</code> et fait partie du mot « Sylvain » dans la phrase originale. Nous pouvons également utiliser la méthode <code>word_ids()</code> pour obtenir l’index du mot dont provient chaque <em>token</em> :",Se,rs,_e,cs,Re,os,ol="On peut voir que les <em>tokens</em> spéciaux du <em>tokenizer</em>, <code>[CLS]</code> et <code>[SEP]</code>, sont mis en correspondance avec <code>None</code> et que chaque <em>token</em> est mis en correspondance avec le mot dont il provient. Ceci est particulièrement utile pour déterminer si un <em>token</em> est au début d’un mot ou si deux <em>tokens</em> sont dans le même mot. Nous pourrions nous appuyer sur le préfixe <code>##</code> pour cela, mais il ne fonctionne que pour les <em>tokenizers</em> de type BERT. Cette méthode fonctionne pour n’importe quel type de <em>tokenizer</em>, du moment qu’il est rapide. Dans le chapitre suivant, nous verrons comment utiliser cette capacité pour appliquer correctement les étiquettes que nous avons pour chaque mot aux <em>tokens</em> dans des tâches comme la reconnaissance d’entités nommées et le POS (<em>Part-of-speech</em>). Nous pouvons également l’utiliser pour masquer tous les <em>tokens</em> provenant du même mot dans la modélisation du langage masqué (une technique appelée <em>whole word masking</em>).",We,Ms,Ml="La notion de ce qu’est un mot est compliquée. Par exemple, est-ce que « I’ll » (contraction de « I will ») compte pour un ou deux mots ? Cela dépend en fait du <em>tokenizer</em> et de l’opération de prétokénisation qu’il applique. Certains <em>tokenizer</em> se contentent de séparer les espaces et considèrent donc qu’il s’agit d’un seul mot. D’autres utilisent la ponctuation en plus des espaces et considèrent donc qu’il s’agit de deux mots.",qe,S,He,us,ul="De même, il existe une méthode <code>sentence_ids()</code> que nous pouvons utiliser pour associer un <em>token</em> à la phrase dont il provient (bien que dans ce cas, le <code>token_type_ids</code> retourné par le <em>tokenizer</em> peut nous donner la même information).",Ve,ms,ml="Enfin, nous pouvons faire correspondre n’importe quel mot ou <em>token</em> aux caractères du texte d’origine (et vice versa) grâce aux méthodes <code>word_to_chars()</code> ou <code>token_to_chars()</code> et <code>char_to_word()</code> ou <code>char_to_token()</code>. Par exemple, la méthode <code>word_ids()</code> nous a dit que <code>##yl</code> fait partie du mot à l’indice 3, mais de quel mot s’agit-il dans la phrase ? Nous pouvons le découvrir comme ceci :",Xe,ds,Ge,Js,De,js,dl="Comme nous l’avons mentionné précédemment, tout ceci est rendu possible par le fait que le <em>tokenizer</em> rapide garde la trace de la partie du texte d’où provient chaque <em>token</em> dans une liste d’<em>offsets</em>. Pour illustrer leur utilisation, nous allons maintenant vous montrer comment reproduire manuellement les résultats du pipeline <code>token-classification</code>.",Le,_,Ye,ys,Fe,Ts,Jl='Dans le <a href="/course/fr/chapter1">chapitre 1</a>, nous avons eu un premier aperçu de la NER (où la tâche est d’identifier les parties du texte qui correspondent à des entités telles que des personnes, des lieux ou des organisations) avec la fonction <code>pipeline()</code> de 🤗 <em>Transformers</em>. Puis, dans le <a href="/course/fr/chapter2">chapitre 2</a>, nous avons vu comment un pipeline regroupe les trois étapes nécessaires pour obtenir les prédictions à partir d’un texte brut : la tokenisation, le passage des entrées dans le modèle et le post-traitement. Les deux premières étapes du pipeline de <code>token-classification</code> sont les mêmes que dans tout autre pipeline mais le post-traitement est un peu plus complexe. Voyons comment !',Pe,Q,v,ue,hs,Oe,bs,jl='Tout d’abord, prenons un pipeline de classification de <em>tokens</em> afin d’obtenir des résultats à comparer manuellement. Le modèle utilisé par défaut est <a href="https://huggingface.co/dbmdz/bert-large-cased-finetuned-conll03-english" rel="nofollow"><code>dbmdz/bert-large-cased-finetuned-conll03-english</code></a>. Il effectue une NER sur les phrases :',Ke,xs,sn,Us,en,ws,yl="Le modèle a correctement identifié chaque <em>token</em> généré par « Sylvain » comme une personne, chaque <em>token</em> généré par « Hugging Face » comme une organisation, et le <em>token</em> « Brooklyn » comme un lieu. Nous pouvons également demander au pipeline de regrouper les <em>tokens</em> qui correspondent à la même entité :",nn,fs,ln,gs,an,ks,Tl="La propriété <code>aggregation_strategy</code> choisie va changer les scores calculés pour chaque entité groupée. Avec <code>"simple"</code> le score est juste la moyenne des scores de chaque <em>token</em> dans l’entité donnée. Par exemple, le score de « Sylvain » est la moyenne des scores que nous avons vu dans l’exemple précédent pour les tokens <code>S</code>, <code>##yl</code>, <code>##va</code>, et <code>##in</code>. D’autres stratégies sont disponibles :",tn,Cs,hl="<li><code>"first"</code>, où le score de chaque entité est le score du premier <em>token</em> de cette entité (donc pour « Sylvain » ce serait 0.993828, le score du token <code>S</code>)</li> <li><code>"max"</code>, où le score de chaque entité est le score maximal des <em>tokens</em> de cette entité (ainsi, pour « Hugging Face », le score de « Face » serait de 0,98879766).</li> <li><code>"average"</code>, où le score de chaque entité est la moyenne des scores des mots qui composent cette entité (ainsi, pour « Sylvain », il n’y aurait pas de différence avec la stratégie <code>"simple"</code>, mais “Hugging Face” aurait un score de 0,9819, la moyenne des scores de « Hugging », 0,975, et « Face », 0,98879).</li>",pn,Is,bl="Voyons maintenant comment obtenir ces résultats sans utiliser la fonction <code>pipeline()</code> !",rn,$s,cn,Z,B,me,As,xl="Nous avons un batch avec 1 séquence de 19 <em>tokens</em> et le modèle a 9 étiquettes différentes. Ainsi, la sortie du modèle a une forme de 1 x 19 x 9. Comme pour le pipeline de classification de texte, nous utilisons une fonction softmax pour convertir ces logits en probabilités et nous prenons l’argmax pour obtenir des prédictions (notez que nous pouvons prendre l’argmax sur les logits car la fonction softmax ne change pas l’ordre) :",on,z,E,de,Qs,Mn,vs,Ul="L’attribut <code>model.config.id2label</code> contient la correspondance entre les index et les étiquettes que nous pouvons utiliser pour donner un sens aux prédictions :",un,Zs,mn,Bs,dn,zs,wl="Comme nous l’avons vu précédemment, il y a 9 étiquettes : <code>O</code> est le label pour les <em>tokens</em> qui ne sont dans aucune entité nommée (il signifie <em>outside</em> (en dehors)) et nous avons ensuite deux labels pour chaque type d’entité (divers, personne, organisation et lieu). L’étiquette <code>B-XXX</code> indique que le <em>token</em> est au début d’une entité <code>XXX</code> et l’étiquette <code>I-XXX</code> indique que le <em>token</em> est à l’intérieur de l’entité <code>XXX</code>. Par exemple, dans l’exemple actuel, nous nous attendons à ce que notre modèle classe le <em>token</em> <code>S</code> comme <code>B-PER</code> (début d’une entité personne) et les <em>tokens</em> <code>##yl</code>, <code>##va</code> et <code>##in</code> comme <code>I-PER</code> (à l’intérieur d’une entité personne).",Jn,Es,fl="Vous pourriez penser que le modèle s’est trompé ici car il a attribué l’étiquette <code>I-PER</code> à ces quatre <em>tokens</em> mais ce n’est pas tout à fait vrai. Il existe en fait deux formats pour ces étiquettes <code>B-</code> et <code>I-</code> : <em>IOB1</em> et <em>IOB2</em>. Le format IOB2 (en rose ci-dessous) est celui que nous avons introduit alors que dans le format IOB1 (en bleu), les étiquettes commençant par <code>B-</code> ne sont jamais utilisées que pour séparer deux entités adjacentes du même type. Le modèle que nous utilisons a été <em>finetuné</em> sur un jeu de données utilisant ce format, c’est pourquoi il attribue le label <code>I-PER</code> au <em>token</em> <code>S</code>.",jn,R,gl='<img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter6/IOB_versions.svg" alt="IOB1 vs IOB2 format"/> <img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter6/IOB_versions-dark.svg" alt="IOB1 vs IOB2 format"/>',yn,Ns,kl="Nous sommes à présent prêts à reproduire (presque entièrement) les résultats du premier pipeline. Nous pouvons simplement récupérer le score et le label de chaque <em>token</em> qui n’a pas été classé comme <code>O</code> :",Tn,Ss,hn,_s,bn,Rs,Cl="C’est très similaire à ce que nous avions avant, à une exception près : le pipeline nous a aussi donné des informations sur le <code>début</code> et la <code>fin</code> de chaque entité dans la phrase originale. C’est là que notre <em>offset mapping</em> va entrer en jeu. Pour obtenir les <em>offsets</em>, il suffit de définir <code>return_offsets_mapping=True</code> lorsque nous appliquons le <em>tokenizer</em> à nos entrées :",xn,Ws,Un,qs,wn,Hs,Il="Chaque <em>tuple</em> est l’étendue de texte correspondant à chaque <em>token</em> où <code>(0, 0)</code> est réservé aux <em>tokens</em> spéciaux. Nous avons vu précédemment que le <em>token</em> à l’index 5 est <code>##yl</code>, qui a <code>(12, 14)</code> comme <em>offsets</em> ici. Si on prend la tranche correspondante dans notre exemple :",fn,Vs,gn,Xs,$l="nous obtenons le bon espace de texte sans le <code>##</code> :",kn,Gs,Cn,Ds,Al="En utilisant cela, nous pouvons maintenant compléter les résultats précédents :",In,Ls,$n,Ys,An,Fs,Ql="C’est la même chose que ce que nous avons obtenu avec le premier pipeline !",Qn,Ps,vn,Os,vl="L’utilisation des <em>offsets</em> pour déterminer les clés de début et de fin pour chaque entité est pratique mais cette information n’est pas strictement nécessaire. Cependant, lorsque nous voulons regrouper les entités, les <em>offsets</em> nous épargnent un batch de code compliqué. Par exemple, si nous voulions regrouper les <em>tokens</em> <code>Hu</code>, <code>##gging</code>, et <code>Face</code>, nous pourrions établir des règles spéciales disant que les deux premiers devraient être attachés tout en enlevant le <code>##</code>, et le <code>Face</code> devrait être ajouté avec un espace puisqu’il ne commence pas par <code>##</code> mais cela ne fonctionnerait que pour ce type particulier de <em>tokenizer</em>. Il faudrait écrire un autre ensemble de règles pour un <em>tokenizer</em> de type SentencePiece ou <em>Byte-Pair-Encoding</em> (voir plus loin dans ce chapitre).",Zn,Ks,Zl="Avec les <em>offsets</em>, tout ce code personnalisé disparaît : il suffit de prendre l’intervalle du texte original qui commence par le premier <em>token</em> et se termine par le dernier <em>token</em>. Ainsi, dans le cas des <em>tokens</em> <code>Hu</code>, <code>##gging</code>, et <code>Face</code>, nous devrions commencer au caractère 33 (le début de <code>Hu</code>) et finir avant le caractère 45 (la fin de <code>Face</code>) :",Bn,se,zn,ee,En,ne,Bl="Pour écrire le code qui post-traite les prédictions tout en regroupant les entités, nous regrouperons les entités qui sont consécutives et étiquetées avec <code>I-XXX</code>, à l’exception de la première, qui peut être étiquetée comme <code>B-XXX</code> ou <code>I-XXX</code> (ainsi, nous arrêtons de regrouper une entité lorsque nous obtenons un <code>O</code>, un nouveau type d’entité, ou un <code>B-XXX</code> qui nous indique qu’une entité du même type commence) :",Nn,le,Sn,ae,zl="Et nous obtenons les mêmes résultats qu’avec notre deuxième pipeline !",_n,te,Rn,pe,El="Un autre exemple de tâche où ces <em>offsets</em> sont extrêmement utiles est la réponse aux questions. Plonger dans ce pipeline, ce que nous ferons dans la section suivante, nous permettra de jeter un coup d’œil à une dernière caractéristique des <em>tokenizers</em> de la bibliothèque 🤗 <em>Transformers</em> : la gestion des <em>tokens</em> qui débordent lorsque nous tronquons une entrée à une longueur donnée.",Wn,ie,qn,je,Hn;C=new la({props:{fw:U[0]}}),A=new Je({props:{title:"Pouvoirs spéciaux des <i> tokenizers </i> rapides",local:"pouvoirs-spéciaux-des-i-tokenizers-i-rapides",headingTag:"h1"}});const Nl=[pa,ta],re=[];function Sl(s,e){return s[0]==="pt"?0:1}x=Sl(U),g=re[x]=Nl[x](U),W=new Gn({props:{id:"g8quOxoqhHQ"}}),N=new On({props:{warning:!0,$$slots:{default:[ia]},$$scope:{ctx:U}}}),V=new Je({props:{title:"L’objet <i> BatchEncoding </i>",local:"lobjet-i-batchencoding-i",headingTag:"h2"}}),X=new Gn({props:{id:"3umI3tm27Vw"}}),Y=new b({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZCglMjJiZXJ0LWJhc2UtY2FzZWQlMjIpJTBBZXhhbXBsZSUyMCUzRCUyMCUyMk15JTIwbmFtZSUyMGlzJTIwU3lsdmFpbiUyMGFuZCUyMEklMjB3b3JrJTIwYXQlMjBIdWdnaW5nJTIwRmFjZSUyMGluJTIwQnJvb2tseW4uJTIyJTBBJTIzJTIwSmUlMjBtJ2FwcGVsbGUlMjBTeWx2YWluJTIwZXQlMjBqZSUyMHRyYXZhaWxsZSUyMGNoZXolMjBIdWdnaW5nJTIwRmFjZSUyMCVDMyVBMCUyMEJyb29rbHluLiUwQWVuY29kaW5nJTIwJTNEJTIwdG9rZW5pemVyKGV4YW1wbGUpJTBBcHJpbnQodHlwZShlbmNvZGluZykp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer | |
| tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">"bert-base-cased"</span>) | |
| example = <span class="hljs-string">"My name is Sylvain and I work at Hugging Face in Brooklyn."</span> | |
| <span class="hljs-comment"># Je m'appelle Sylvain et je travaille chez Hugging Face à Brooklyn.</span> | |
| encoding = tokenizer(example) | |
| <span class="hljs-built_in">print</span>(<span class="hljs-built_in">type</span>(encoding))`,wrap:!1}}),P=new b({props:{code:"JTNDY2xhc3MlMjAndHJhbnNmb3JtZXJzLnRva2VuaXphdGlvbl91dGlsc19iYXNlLkJhdGNoRW5jb2RpbmcnJTNF",highlighted:'<<span class="hljs-keyword">class</span> <span class="hljs-string">'transformers.tokenization_utils_base.BatchEncoding'</span>>',wrap:!1}}),K=new b({props:{code:"dG9rZW5pemVyLmlzX2Zhc3Q=",highlighted:"tokenizer.is_fast",wrap:!1}}),ss=new b({props:{code:"VHJ1ZQ==",highlighted:'<span class="hljs-literal">True</span>',wrap:!1}}),ns=new b({props:{code:"ZW5jb2RpbmcuaXNfZmFzdA==",highlighted:"encoding.is_fast",wrap:!1}}),ls=new b({props:{code:"VHJ1ZQ==",highlighted:'<span class="hljs-literal">True</span>',wrap:!1}}),ts=new b({props:{code:"ZW5jb2RpbmcudG9rZW5zKCk=",highlighted:"encoding.tokens()",wrap:!1}}),ps=new b({props:{code:"JTVCJyU1QkNMUyU1RCclMkMlMjAnTXknJTJDJTIwJ25hbWUnJTJDJTIwJ2lzJyUyQyUyMCdTJyUyQyUyMCclMjMlMjN5bCclMkMlMjAnJTIzJTIzdmEnJTJDJTIwJyUyMyUyM2luJyUyQyUyMCdhbmQnJTJDJTIwJ0knJTJDJTIwJ3dvcmsnJTJDJTIwJ2F0JyUyQyUyMCdIdSclMkMlMjAnJTIzJTIzZ2dpbmcnJTJDJTIwJ0ZhY2UnJTJDJTIwJ2luJyUyQyUwQSUyMCdCcm9va2x5biclMkMlMjAnLiclMkMlMjAnJTVCU0VQJTVEJyU1RA==",highlighted:`[<span class="hljs-string">'[CLS]'</span>, <span class="hljs-string">'My'</span>, <span class="hljs-string">'name'</span>, <span class="hljs-string">'is'</span>, <span class="hljs-string">'S'</span>, <span class="hljs-string">'##yl'</span>, <span class="hljs-string">'##va'</span>, <span class="hljs-string">'##in'</span>, <span class="hljs-string">'and'</span>, <span class="hljs-string">'I'</span>, <span class="hljs-string">'work'</span>, <span class="hljs-string">'at'</span>, <span class="hljs-string">'Hu'</span>, <span class="hljs-string">'##gging'</span>, <span class="hljs-string">'Face'</span>, <span class="hljs-string">'in'</span>, | |
| <span class="hljs-string">'Brooklyn'</span>, <span class="hljs-string">'.'</span>, <span class="hljs-string">'[SEP]'</span>]`,wrap:!1}}),rs=new b({props:{code:"ZW5jb2Rpbmcud29yZF9pZHMoKQ==",highlighted:"encoding.word_ids()",wrap:!1}}),cs=new b({props:{code:"JTVCTm9uZSUyQyUyMDAlMkMlMjAxJTJDJTIwMiUyQyUyMDMlMkMlMjAzJTJDJTIwMyUyQyUyMDMlMkMlMjA0JTJDJTIwNSUyQyUyMDYlMkMlMjA3JTJDJTIwOCUyQyUyMDglMkMlMjA5JTJDJTIwMTAlMkMlMjAxMSUyQyUyMDEyJTJDJTIwTm9uZSU1RA==",highlighted:'[<span class="hljs-literal">None</span>, <span class="hljs-number">0</span>, <span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">3</span>, <span class="hljs-number">3</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">7</span>, <span class="hljs-number">8</span>, <span class="hljs-number">8</span>, <span class="hljs-number">9</span>, <span class="hljs-number">10</span>, <span class="hljs-number">11</span>, <span class="hljs-number">12</span>, <span class="hljs-literal">None</span>]',wrap:!1}}),S=new On({props:{$$slots:{default:[ra]},$$scope:{ctx:U}}}),ds=new b({props:{code:"c3RhcnQlMkMlMjBlbmQlMjAlM0QlMjBlbmNvZGluZy53b3JkX3RvX2NoYXJzKDMpJTBBZXhhbXBsZSU1QnN0YXJ0JTNBZW5kJTVE",highlighted:`start, end = encoding.word_to_chars(<span class="hljs-number">3</span>) | |
| example[start:end]`,wrap:!1}}),Js=new b({props:{code:"U3lsdmFpbg==",highlighted:"Sylvain",wrap:!1}}),_=new On({props:{$$slots:{default:[ca]},$$scope:{ctx:U}}}),ys=new Je({props:{title:"A l’intérieur du pipeline token-classification",local:"a-lintérieur-du-pipeline-token-classification",headingTag:"h2"}});const _l=[Ma,oa],ce=[];function Rl(s,e){return s[0]==="pt"?0:1}Q=Rl(U),v=ce[Q]=_l[Q](U),hs=new Je({props:{title:"Obtenir les résultats de base avec le pipeline",local:"obtenir-les-résultats-de-base-avec-le-pipeline",headingTag:"h3"}}),xs=new b({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBdG9rZW5fY2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUyMnRva2VuLWNsYXNzaWZpY2F0aW9uJTIyKSUwQXRva2VuX2NsYXNzaWZpZXIoJTIyTXklMjBuYW1lJTIwaXMlMjBTeWx2YWluJTIwYW5kJTIwSSUyMHdvcmslMjBhdCUyMEh1Z2dpbmclMjBGYWNlJTIwaW4lMjBCcm9va2x5bi4lMjIp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline | |
| token_classifier = pipeline(<span class="hljs-string">"token-classification"</span>) | |
| token_classifier(<span class="hljs-string">"My name is Sylvain and I work at Hugging Face in Brooklyn."</span>)`,wrap:!1}}),Us=new b({props:{code:"JTVCJTdCJ2VudGl0eSclM0ElMjAnSS1QRVInJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTk5MzgyOCUyQyUyMCdpbmRleCclM0ElMjA0JTJDJTIwJ3dvcmQnJTNBJTIwJ1MnJTJDJTIwJ3N0YXJ0JyUzQSUyMDExJTJDJTIwJ2VuZCclM0ElMjAxMiU3RCUyQyUwQSUyMCU3QidlbnRpdHknJTNBJTIwJ0ktUEVSJyUyQyUyMCdzY29yZSclM0ElMjAwLjk5ODE1NDc2JTJDJTIwJ2luZGV4JyUzQSUyMDUlMkMlMjAnd29yZCclM0ElMjAnJTIzJTIzeWwnJTJDJTIwJ3N0YXJ0JyUzQSUyMDEyJTJDJTIwJ2VuZCclM0ElMjAxNCU3RCUyQyUwQSUyMCU3QidlbnRpdHknJTNBJTIwJ0ktUEVSJyUyQyUyMCdzY29yZSclM0ElMjAwLjk5NTkwNzI1JTJDJTIwJ2luZGV4JyUzQSUyMDYlMkMlMjAnd29yZCclM0ElMjAnJTIzJTIzdmEnJTJDJTIwJ3N0YXJ0JyUzQSUyMDE0JTJDJTIwJ2VuZCclM0ElMjAxNiU3RCUyQyUwQSUyMCU3QidlbnRpdHknJTNBJTIwJ0ktUEVSJyUyQyUyMCdzY29yZSclM0ElMjAwLjk5OTIzMjclMkMlMjAnaW5kZXgnJTNBJTIwNyUyQyUyMCd3b3JkJyUzQSUyMCclMjMlMjNpbiclMkMlMjAnc3RhcnQnJTNBJTIwMTYlMkMlMjAnZW5kJyUzQSUyMDE4JTdEJTJDJTBBJTIwJTdCJ2VudGl0eSclM0ElMjAnSS1PUkcnJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTczODkzMzQlMkMlMjAnaW5kZXgnJTNBJTIwMTIlMkMlMjAnd29yZCclM0ElMjAnSHUnJTJDJTIwJ3N0YXJ0JyUzQSUyMDMzJTJDJTIwJ2VuZCclM0ElMjAzNSU3RCUyQyUwQSUyMCU3QidlbnRpdHknJTNBJTIwJ0ktT1JHJyUyQyUyMCdzY29yZSclM0ElMjAwLjk3NjExNSUyQyUyMCdpbmRleCclM0ElMjAxMyUyQyUyMCd3b3JkJyUzQSUyMCclMjMlMjNnZ2luZyclMkMlMjAnc3RhcnQnJTNBJTIwMzUlMkMlMjAnZW5kJyUzQSUyMDQwJTdEJTJDJTBBJTIwJTdCJ2VudGl0eSclM0ElMjAnSS1PUkcnJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTg4Nzk3NjYlMkMlMjAnaW5kZXgnJTNBJTIwMTQlMkMlMjAnd29yZCclM0ElMjAnRmFjZSclMkMlMjAnc3RhcnQnJTNBJTIwNDElMkMlMjAnZW5kJyUzQSUyMDQ1JTdEJTJDJTBBJTIwJTdCJ2VudGl0eSclM0ElMjAnSS1MT0MnJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTkzMjEwNTUlMkMlMjAnaW5kZXgnJTNBJTIwMTYlMkMlMjAnd29yZCclM0ElMjAnQnJvb2tseW4nJTJDJTIwJ3N0YXJ0JyUzQSUyMDQ5JTJDJTIwJ2VuZCclM0ElMjA1NyU3RCU1RA==",highlighted:`[{<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.9993828</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">4</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'S'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">11</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">12</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99815476</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">5</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##yl'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">12</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">14</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99590725</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">6</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##va'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">14</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">16</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.9992327</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">7</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##in'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">16</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">18</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.97389334</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">12</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Hu'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">33</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">35</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.976115</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">13</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##gging'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">35</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">40</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.98879766</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">14</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Face'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">41</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">45</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-LOC'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99321055</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">16</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Brooklyn'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">49</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">57</span>}]`,wrap:!1}}),fs=new b({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBdG9rZW5fY2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUyMnRva2VuLWNsYXNzaWZpY2F0aW9uJTIyJTJDJTIwYWdncmVnYXRpb25fc3RyYXRlZ3klM0QlMjJzaW1wbGUlMjIpJTBBdG9rZW5fY2xhc3NpZmllciglMjJNeSUyMG5hbWUlMjBpcyUyMFN5bHZhaW4lMjBhbmQlMjBJJTIwd29yayUyMGF0JTIwSHVnZ2luZyUyMEZhY2UlMjBpbiUyMEJyb29rbHluLiUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline | |
| token_classifier = pipeline(<span class="hljs-string">"token-classification"</span>, aggregation_strategy=<span class="hljs-string">"simple"</span>) | |
| token_classifier(<span class="hljs-string">"My name is Sylvain and I work at Hugging Face in Brooklyn."</span>)`,wrap:!1}}),gs=new b({props:{code:"JTVCJTdCJ2VudGl0eV9ncm91cCclM0ElMjAnUEVSJyUyQyUyMCdzY29yZSclM0ElMjAwLjk5ODE2OTQlMkMlMjAnd29yZCclM0ElMjAnU3lsdmFpbiclMkMlMjAnc3RhcnQnJTNBJTIwMTElMkMlMjAnZW5kJyUzQSUyMDE4JTdEJTJDJTBBJTIwJTdCJ2VudGl0eV9ncm91cCclM0ElMjAnT1JHJyUyQyUyMCdzY29yZSclM0ElMjAwLjk3OTYwMjA0JTJDJTIwJ3dvcmQnJTNBJTIwJ0h1Z2dpbmclMjBGYWNlJyUyQyUyMCdzdGFydCclM0ElMjAzMyUyQyUyMCdlbmQnJTNBJTIwNDUlN0QlMkMlMEElMjAlN0InZW50aXR5X2dyb3VwJyUzQSUyMCdMT0MnJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTkzMjEwNTUlMkMlMjAnd29yZCclM0ElMjAnQnJvb2tseW4nJTJDJTIwJ3N0YXJ0JyUzQSUyMDQ5JTJDJTIwJ2VuZCclM0ElMjA1NyU3RCU1RA==",highlighted:`[{<span class="hljs-string">'entity_group'</span>: <span class="hljs-string">'PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.9981694</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Sylvain'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">11</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">18</span>}, | |
| {<span class="hljs-string">'entity_group'</span>: <span class="hljs-string">'ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.97960204</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Hugging Face'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">33</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">45</span>}, | |
| {<span class="hljs-string">'entity_group'</span>: <span class="hljs-string">'LOC'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99321055</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Brooklyn'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">49</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">57</span>}]`,wrap:!1}}),$s=new Je({props:{title:"Des entrées aux prédictions",local:"des-entrées-aux-prédictions",headingTag:"h3"}});const Wl=[ma,ua],oe=[];function ql(s,e){return s[0]==="pt"?0:1}Z=ql(U),B=oe[Z]=Wl[Z](U);const Hl=[Ja,da],Me=[];function Vl(s,e){return s[0]==="pt"?0:1}return z=Vl(U),E=Me[z]=Hl[z](U),Qs=new b({props:{code:"JTVCMCUyQyUyMDAlMkMlMjAwJTJDJTIwMCUyQyUyMDQlMkMlMjA0JTJDJTIwNCUyQyUyMDQlMkMlMjAwJTJDJTIwMCUyQyUyMDAlMkMlMjAwJTJDJTIwNiUyQyUyMDYlMkMlMjA2JTJDJTIwMCUyQyUyMDglMkMlMjAwJTJDJTIwMCU1RA==",highlighted:'[<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">4</span>, <span class="hljs-number">4</span>, <span class="hljs-number">4</span>, <span class="hljs-number">4</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">6</span>, <span class="hljs-number">6</span>, <span class="hljs-number">6</span>, <span class="hljs-number">0</span>, <span class="hljs-number">8</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>]',wrap:!1}}),Zs=new b({props:{code:"bW9kZWwuY29uZmlnLmlkMmxhYmVs",highlighted:"model.config.id2label",wrap:!1}}),Bs=new b({props:{code:"JTdCMCUzQSUyMCdPJyUyQyUwQSUyMDElM0ElMjAnQi1NSVNDJyUyQyUwQSUyMDIlM0ElMjAnSS1NSVNDJyUyQyUwQSUyMDMlM0ElMjAnQi1QRVInJTJDJTBBJTIwNCUzQSUyMCdJLVBFUiclMkMlMEElMjA1JTNBJTIwJ0ItT1JHJyUyQyUwQSUyMDYlM0ElMjAnSS1PUkcnJTJDJTBBJTIwNyUzQSUyMCdCLUxPQyclMkMlMEElMjA4JTNBJTIwJ0ktTE9DJyU3RA==",highlighted:`{<span class="hljs-number">0</span>: <span class="hljs-string">'O'</span>, | |
| <span class="hljs-number">1</span>: <span class="hljs-string">'B-MISC'</span>, | |
| <span class="hljs-number">2</span>: <span class="hljs-string">'I-MISC'</span>, | |
| <span class="hljs-number">3</span>: <span class="hljs-string">'B-PER'</span>, | |
| <span class="hljs-number">4</span>: <span class="hljs-string">'I-PER'</span>, | |
| <span class="hljs-number">5</span>: <span class="hljs-string">'B-ORG'</span>, | |
| <span class="hljs-number">6</span>: <span class="hljs-string">'I-ORG'</span>, | |
| <span class="hljs-number">7</span>: <span class="hljs-string">'B-LOC'</span>, | |
| <span class="hljs-number">8</span>: <span class="hljs-string">'I-LOC'</span>}`,wrap:!1}}),Ss=new b({props:{code:"cmVzdWx0cyUyMCUzRCUyMCU1QiU1RCUwQXRva2VucyUyMCUzRCUyMGlucHV0cy50b2tlbnMoKSUwQSUwQWZvciUyMGlkeCUyQyUyMHByZWQlMjBpbiUyMGVudW1lcmF0ZShwcmVkaWN0aW9ucyklM0ElMEElMjAlMjAlMjAlMjBsYWJlbCUyMCUzRCUyMG1vZGVsLmNvbmZpZy5pZDJsYWJlbCU1QnByZWQlNUQlMEElMjAlMjAlMjAlMjBpZiUyMGxhYmVsJTIwISUzRCUyMCUyMk8lMjIlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXN1bHRzLmFwcGVuZCglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMjJlbnRpdHklMjIlM0ElMjBsYWJlbCUyQyUyMCUyMnNjb3JlJTIyJTNBJTIwcHJvYmFiaWxpdGllcyU1QmlkeCU1RCU1QnByZWQlNUQlMkMlMjAlMjJ3b3JkJTIyJTNBJTIwdG9rZW5zJTVCaWR4JTVEJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUwQSUwQXByaW50KHJlc3VsdHMp",highlighted:`results = [] | |
| tokens = inputs.tokens() | |
| <span class="hljs-keyword">for</span> idx, pred <span class="hljs-keyword">in</span> <span class="hljs-built_in">enumerate</span>(predictions): | |
| label = model.config.id2label[pred] | |
| <span class="hljs-keyword">if</span> label != <span class="hljs-string">"O"</span>: | |
| results.append( | |
| {<span class="hljs-string">"entity"</span>: label, <span class="hljs-string">"score"</span>: probabilities[idx][pred], <span class="hljs-string">"word"</span>: tokens[idx]} | |
| ) | |
| <span class="hljs-built_in">print</span>(results)`,wrap:!1}}),_s=new b({props:{code:"JTVCJTdCJ2VudGl0eSclM0ElMjAnSS1QRVInJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTk5MzgyOCUyQyUyMCdpbmRleCclM0ElMjA0JTJDJTIwJ3dvcmQnJTNBJTIwJ1MnJTdEJTJDJTBBJTIwJTdCJ2VudGl0eSclM0ElMjAnSS1QRVInJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTk4MTU0NzYlMkMlMjAnaW5kZXgnJTNBJTIwNSUyQyUyMCd3b3JkJyUzQSUyMCclMjMlMjN5bCclN0QlMkMlMEElMjAlN0InZW50aXR5JyUzQSUyMCdJLVBFUiclMkMlMjAnc2NvcmUnJTNBJTIwMC45OTU5MDcyNSUyQyUyMCdpbmRleCclM0ElMjA2JTJDJTIwJ3dvcmQnJTNBJTIwJyUyMyUyM3ZhJyU3RCUyQyUwQSUyMCU3QidlbnRpdHknJTNBJTIwJ0ktUEVSJyUyQyUyMCdzY29yZSclM0ElMjAwLjk5OTIzMjclMkMlMjAnaW5kZXgnJTNBJTIwNyUyQyUyMCd3b3JkJyUzQSUyMCclMjMlMjNpbiclN0QlMkMlMEElMjAlN0InZW50aXR5JyUzQSUyMCdJLU9SRyclMkMlMjAnc2NvcmUnJTNBJTIwMC45NzM4OTMzNCUyQyUyMCdpbmRleCclM0ElMjAxMiUyQyUyMCd3b3JkJyUzQSUyMCdIdSclN0QlMkMlMEElMjAlN0InZW50aXR5JyUzQSUyMCdJLU9SRyclMkMlMjAnc2NvcmUnJTNBJTIwMC45NzYxMTUlMkMlMjAnaW5kZXgnJTNBJTIwMTMlMkMlMjAnd29yZCclM0ElMjAnJTIzJTIzZ2dpbmcnJTdEJTJDJTBBJTIwJTdCJ2VudGl0eSclM0ElMjAnSS1PUkcnJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTg4Nzk3NjYlMkMlMjAnaW5kZXgnJTNBJTIwMTQlMkMlMjAnd29yZCclM0ElMjAnRmFjZSclN0QlMkMlMEElMjAlN0InZW50aXR5JyUzQSUyMCdJLUxPQyclMkMlMjAnc2NvcmUnJTNBJTIwMC45OTMyMTA1NSUyQyUyMCdpbmRleCclM0ElMjAxNiUyQyUyMCd3b3JkJyUzQSUyMCdCcm9va2x5biclN0QlNUQ=",highlighted:`[{<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.9993828</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">4</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'S'</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99815476</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">5</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##yl'</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99590725</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">6</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##va'</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.9992327</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">7</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##in'</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.97389334</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">12</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Hu'</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.976115</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">13</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##gging'</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.98879766</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">14</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Face'</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-LOC'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99321055</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">16</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Brooklyn'</span>}]`,wrap:!1}}),Ws=new b({props:{code:"aW5wdXRzX3dpdGhfb2Zmc2V0cyUyMCUzRCUyMHRva2VuaXplcihleGFtcGxlJTJDJTIwcmV0dXJuX29mZnNldHNfbWFwcGluZyUzRFRydWUpJTBBaW5wdXRzX3dpdGhfb2Zmc2V0cyU1QiUyMm9mZnNldF9tYXBwaW5nJTIyJTVE",highlighted:`inputs_with_offsets = tokenizer(example, return_offsets_mapping=<span class="hljs-literal">True</span>) | |
| inputs_with_offsets[<span class="hljs-string">"offset_mapping"</span>]`,wrap:!1}}),qs=new b({props:{code:"JTVCKDAlMkMlMjAwKSUyQyUyMCgwJTJDJTIwMiklMkMlMjAoMyUyQyUyMDcpJTJDJTIwKDglMkMlMjAxMCklMkMlMjAoMTElMkMlMjAxMiklMkMlMjAoMTIlMkMlMjAxNCklMkMlMjAoMTQlMkMlMjAxNiklMkMlMjAoMTYlMkMlMjAxOCklMkMlMjAoMTklMkMlMjAyMiklMkMlMjAoMjMlMkMlMjAyNCklMkMlMjAoMjUlMkMlMjAyOSklMkMlMjAoMzAlMkMlMjAzMiklMkMlMEElMjAoMzMlMkMlMjAzNSklMkMlMjAoMzUlMkMlMjA0MCklMkMlMjAoNDElMkMlMjA0NSklMkMlMjAoNDYlMkMlMjA0OCklMkMlMjAoNDklMkMlMjA1NyklMkMlMjAoNTclMkMlMjA1OCklMkMlMjAoMCUyQyUyMDApJTVE",highlighted:`[(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>), (<span class="hljs-number">0</span>, <span class="hljs-number">2</span>), (<span class="hljs-number">3</span>, <span class="hljs-number">7</span>), (<span class="hljs-number">8</span>, <span class="hljs-number">10</span>), (<span class="hljs-number">11</span>, <span class="hljs-number">12</span>), (<span class="hljs-number">12</span>, <span class="hljs-number">14</span>), (<span class="hljs-number">14</span>, <span class="hljs-number">16</span>), (<span class="hljs-number">16</span>, <span class="hljs-number">18</span>), (<span class="hljs-number">19</span>, <span class="hljs-number">22</span>), (<span class="hljs-number">23</span>, <span class="hljs-number">24</span>), (<span class="hljs-number">25</span>, <span class="hljs-number">29</span>), (<span class="hljs-number">30</span>, <span class="hljs-number">32</span>), | |
| (<span class="hljs-number">33</span>, <span class="hljs-number">35</span>), (<span class="hljs-number">35</span>, <span class="hljs-number">40</span>), (<span class="hljs-number">41</span>, <span class="hljs-number">45</span>), (<span class="hljs-number">46</span>, <span class="hljs-number">48</span>), (<span class="hljs-number">49</span>, <span class="hljs-number">57</span>), (<span class="hljs-number">57</span>, <span class="hljs-number">58</span>), (<span class="hljs-number">0</span>, <span class="hljs-number">0</span>)]`,wrap:!1}}),Vs=new b({props:{code:"ZXhhbXBsZSU1QjEyJTNBMTQlNUQ=",highlighted:'example[<span class="hljs-number">12</span>:<span class="hljs-number">14</span>]',wrap:!1}}),Gs=new b({props:{code:"eWw=",highlighted:"yl",wrap:!1}}),Ls=new b({props:{code:"cmVzdWx0cyUyMCUzRCUyMCU1QiU1RCUwQWlucHV0c193aXRoX29mZnNldHMlMjAlM0QlMjB0b2tlbml6ZXIoZXhhbXBsZSUyQyUyMHJldHVybl9vZmZzZXRzX21hcHBpbmclM0RUcnVlKSUwQXRva2VucyUyMCUzRCUyMGlucHV0c193aXRoX29mZnNldHMudG9rZW5zKCklMEFvZmZzZXRzJTIwJTNEJTIwaW5wdXRzX3dpdGhfb2Zmc2V0cyU1QiUyMm9mZnNldF9tYXBwaW5nJTIyJTVEJTBBJTBBZm9yJTIwaWR4JTJDJTIwcHJlZCUyMGluJTIwZW51bWVyYXRlKHByZWRpY3Rpb25zKSUzQSUwQSUyMCUyMCUyMCUyMGxhYmVsJTIwJTNEJTIwbW9kZWwuY29uZmlnLmlkMmxhYmVsJTVCcHJlZCU1RCUwQSUyMCUyMCUyMCUyMGlmJTIwbGFiZWwlMjAhJTNEJTIwJTIyTyUyMiUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0YXJ0JTJDJTIwZW5kJTIwJTNEJTIwb2Zmc2V0cyU1QmlkeCU1RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJlc3VsdHMuYXBwZW5kKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmVudGl0eSUyMiUzQSUyMGxhYmVsJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyc2NvcmUlMjIlM0ElMjBwcm9iYWJpbGl0aWVzJTVCaWR4JTVEJTVCcHJlZCU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMndvcmQlMjIlM0ElMjB0b2tlbnMlNUJpZHglNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJzdGFydCUyMiUzQSUyMHN0YXJ0JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyZW5kJTIyJTNBJTIwZW5kJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUwQSUwQXByaW50KHJlc3VsdHMp",highlighted:`results = [] | |
| inputs_with_offsets = tokenizer(example, return_offsets_mapping=<span class="hljs-literal">True</span>) | |
| tokens = inputs_with_offsets.tokens() | |
| offsets = inputs_with_offsets[<span class="hljs-string">"offset_mapping"</span>] | |
| <span class="hljs-keyword">for</span> idx, pred <span class="hljs-keyword">in</span> <span class="hljs-built_in">enumerate</span>(predictions): | |
| label = model.config.id2label[pred] | |
| <span class="hljs-keyword">if</span> label != <span class="hljs-string">"O"</span>: | |
| start, end = offsets[idx] | |
| results.append( | |
| { | |
| <span class="hljs-string">"entity"</span>: label, | |
| <span class="hljs-string">"score"</span>: probabilities[idx][pred], | |
| <span class="hljs-string">"word"</span>: tokens[idx], | |
| <span class="hljs-string">"start"</span>: start, | |
| <span class="hljs-string">"end"</span>: end, | |
| } | |
| ) | |
| <span class="hljs-built_in">print</span>(results)`,wrap:!1}}),Ys=new b({props:{code:"JTVCJTdCJ2VudGl0eSclM0ElMjAnSS1QRVInJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTk5MzgyOCUyQyUyMCdpbmRleCclM0ElMjA0JTJDJTIwJ3dvcmQnJTNBJTIwJ1MnJTJDJTIwJ3N0YXJ0JyUzQSUyMDExJTJDJTIwJ2VuZCclM0ElMjAxMiU3RCUyQyUwQSUyMCU3QidlbnRpdHknJTNBJTIwJ0ktUEVSJyUyQyUyMCdzY29yZSclM0ElMjAwLjk5ODE1NDc2JTJDJTIwJ2luZGV4JyUzQSUyMDUlMkMlMjAnd29yZCclM0ElMjAnJTIzJTIzeWwnJTJDJTIwJ3N0YXJ0JyUzQSUyMDEyJTJDJTIwJ2VuZCclM0ElMjAxNCU3RCUyQyUwQSUyMCU3QidlbnRpdHknJTNBJTIwJ0ktUEVSJyUyQyUyMCdzY29yZSclM0ElMjAwLjk5NTkwNzI1JTJDJTIwJ2luZGV4JyUzQSUyMDYlMkMlMjAnd29yZCclM0ElMjAnJTIzJTIzdmEnJTJDJTIwJ3N0YXJ0JyUzQSUyMDE0JTJDJTIwJ2VuZCclM0ElMjAxNiU3RCUyQyUwQSUyMCU3QidlbnRpdHknJTNBJTIwJ0ktUEVSJyUyQyUyMCdzY29yZSclM0ElMjAwLjk5OTIzMjclMkMlMjAnaW5kZXgnJTNBJTIwNyUyQyUyMCd3b3JkJyUzQSUyMCclMjMlMjNpbiclMkMlMjAnc3RhcnQnJTNBJTIwMTYlMkMlMjAnZW5kJyUzQSUyMDE4JTdEJTJDJTBBJTIwJTdCJ2VudGl0eSclM0ElMjAnSS1PUkcnJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTczODkzMzQlMkMlMjAnaW5kZXgnJTNBJTIwMTIlMkMlMjAnd29yZCclM0ElMjAnSHUnJTJDJTIwJ3N0YXJ0JyUzQSUyMDMzJTJDJTIwJ2VuZCclM0ElMjAzNSU3RCUyQyUwQSUyMCU3QidlbnRpdHknJTNBJTIwJ0ktT1JHJyUyQyUyMCdzY29yZSclM0ElMjAwLjk3NjExNSUyQyUyMCdpbmRleCclM0ElMjAxMyUyQyUyMCd3b3JkJyUzQSUyMCclMjMlMjNnZ2luZyclMkMlMjAnc3RhcnQnJTNBJTIwMzUlMkMlMjAnZW5kJyUzQSUyMDQwJTdEJTJDJTBBJTIwJTdCJ2VudGl0eSclM0ElMjAnSS1PUkcnJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTg4Nzk3NjYlMkMlMjAnaW5kZXgnJTNBJTIwMTQlMkMlMjAnd29yZCclM0ElMjAnRmFjZSclMkMlMjAnc3RhcnQnJTNBJTIwNDElMkMlMjAnZW5kJyUzQSUyMDQ1JTdEJTJDJTBBJTIwJTdCJ2VudGl0eSclM0ElMjAnSS1MT0MnJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTkzMjEwNTUlMkMlMjAnaW5kZXgnJTNBJTIwMTYlMkMlMjAnd29yZCclM0ElMjAnQnJvb2tseW4nJTJDJTIwJ3N0YXJ0JyUzQSUyMDQ5JTJDJTIwJ2VuZCclM0ElMjA1NyU3RCU1RA==",highlighted:`[{<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.9993828</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">4</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'S'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">11</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">12</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99815476</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">5</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##yl'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">12</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">14</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99590725</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">6</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##va'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">14</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">16</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.9992327</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">7</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##in'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">16</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">18</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.97389334</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">12</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Hu'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">33</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">35</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.976115</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">13</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'##gging'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">35</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">40</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.98879766</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">14</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Face'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">41</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">45</span>}, | |
| {<span class="hljs-string">'entity'</span>: <span class="hljs-string">'I-LOC'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99321055</span>, <span class="hljs-string">'index'</span>: <span class="hljs-number">16</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Brooklyn'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">49</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">57</span>}]`,wrap:!1}}),Ps=new Je({props:{title:"Regroupement des entités",local:"regroupement-des-entités",headingTag:"h3"}}),se=new b({props:{code:"ZXhhbXBsZSU1QjMzJTNBNDUlNUQ=",highlighted:'example[<span class="hljs-number">33</span>:<span class="hljs-number">45</span>]',wrap:!1}}),ee=new b({props:{code:"SHVnZ2luZyUyMEZhY2U=",highlighted:"Hugging Face",wrap:!1}}),le=new b({props:{code:"aW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBJTBBcmVzdWx0cyUyMCUzRCUyMCU1QiU1RCUwQWlucHV0c193aXRoX29mZnNldHMlMjAlM0QlMjB0b2tlbml6ZXIoZXhhbXBsZSUyQyUyMHJldHVybl9vZmZzZXRzX21hcHBpbmclM0RUcnVlKSUwQXRva2VucyUyMCUzRCUyMGlucHV0c193aXRoX29mZnNldHMudG9rZW5zKCklMEFvZmZzZXRzJTIwJTNEJTIwaW5wdXRzX3dpdGhfb2Zmc2V0cyU1QiUyMm9mZnNldF9tYXBwaW5nJTIyJTVEJTBBJTBBaWR4JTIwJTNEJTIwMCUwQXdoaWxlJTIwaWR4JTIwJTNDJTIwbGVuKHByZWRpY3Rpb25zKSUzQSUwQSUyMCUyMCUyMCUyMHByZWQlMjAlM0QlMjBwcmVkaWN0aW9ucyU1QmlkeCU1RCUwQSUyMCUyMCUyMCUyMGxhYmVsJTIwJTNEJTIwbW9kZWwuY29uZmlnLmlkMmxhYmVsJTVCcHJlZCU1RCUwQSUyMCUyMCUyMCUyMGlmJTIwbGFiZWwlMjAhJTNEJTIwJTIyTyUyMiUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMEVubGV2ZXIlMjBsZSUyMEItJTIwb3UlMjBsZSUyMEktJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbGFiZWwlMjAlM0QlMjBsYWJlbCU1QjIlM0ElNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdGFydCUyQyUyMF8lMjAlM0QlMjBvZmZzZXRzJTVCaWR4JTVEJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwUiVDMyVBOWN1cCVDMyVBOXJlciUyMHRvdXMlMjBsZXMlMjB0b2tlbnMlMjAlQzMlQTl0aXF1ZXQlQzMlQTlzJTIwYXZlYyUyMEktbGFiZWwlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBhbGxfc2NvcmVzJTIwJTNEJTIwJTVCJTVEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwd2hpbGUlMjAoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWR4JTIwJTNDJTIwbGVuKHByZWRpY3Rpb25zKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFuZCUyMG1vZGVsLmNvbmZpZy5pZDJsYWJlbCU1QnByZWRpY3Rpb25zJTVCaWR4JTVEJTVEJTIwJTNEJTNEJTIwZiUyMkktJTdCbGFiZWwlN0QlMjIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjApJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYWxsX3Njb3Jlcy5hcHBlbmQocHJvYmFiaWxpdGllcyU1QmlkeCU1RCU1QnByZWQlNUQpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwXyUyQyUyMGVuZCUyMCUzRCUyMG9mZnNldHMlNUJpZHglNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpZHglMjAlMkIlM0QlMjAxJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwTGUlMjBzY29yZSUyMGVzdCUyMGxhJTIwbW95ZW5uZSUyMGRlJTIwdG91cyUyMGxlcyUyMHNjb3JlcyUyMGRlcyUyMHRva2VucyUyMGRhbnMlMjBjZXR0ZSUyMGVudGl0JUMzJUE5JTIwZ3JvdXAlQzMlQTllJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2NvcmUlMjAlM0QlMjBucC5tZWFuKGFsbF9zY29yZXMpLml0ZW0oKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHdvcmQlMjAlM0QlMjBleGFtcGxlJTVCc3RhcnQlM0FlbmQlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXN1bHRzLmFwcGVuZCglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJlbnRpdHlfZ3JvdXAlMjIlM0ElMjBsYWJlbCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnNjb3JlJTIyJTNBJTIwc2NvcmUlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJ3b3JkJTIyJTNBJTIwd29yZCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnN0YXJ0JTIyJTNBJTIwc3RhcnQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJlbmQlMjIlM0ElMjBlbmQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjApJTBBJTIwJTIwJTIwJTIwaWR4JTIwJTJCJTNEJTIwMSUwQSUwQXByaW50KHJlc3VsdHMp",highlighted:`<span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np | |
| results = [] | |
| inputs_with_offsets = tokenizer(example, return_offsets_mapping=<span class="hljs-literal">True</span>) | |
| tokens = inputs_with_offsets.tokens() | |
| offsets = inputs_with_offsets[<span class="hljs-string">"offset_mapping"</span>] | |
| idx = <span class="hljs-number">0</span> | |
| <span class="hljs-keyword">while</span> idx < <span class="hljs-built_in">len</span>(predictions): | |
| pred = predictions[idx] | |
| label = model.config.id2label[pred] | |
| <span class="hljs-keyword">if</span> label != <span class="hljs-string">"O"</span>: | |
| <span class="hljs-comment"># Enlever le B- ou le I-</span> | |
| label = label[<span class="hljs-number">2</span>:] | |
| start, _ = offsets[idx] | |
| <span class="hljs-comment"># Récupérer tous les tokens étiquetés avec I-label</span> | |
| all_scores = [] | |
| <span class="hljs-keyword">while</span> ( | |
| idx < <span class="hljs-built_in">len</span>(predictions) | |
| <span class="hljs-keyword">and</span> model.config.id2label[predictions[idx]] == <span class="hljs-string">f"I-<span class="hljs-subst">{label}</span>"</span> | |
| ): | |
| all_scores.append(probabilities[idx][pred]) | |
| _, end = offsets[idx] | |
| idx += <span class="hljs-number">1</span> | |
| <span class="hljs-comment"># Le score est la moyenne de tous les scores des tokens dans cette entité groupée</span> | |
| score = np.mean(all_scores).item() | |
| word = example[start:end] | |
| results.append( | |
| { | |
| <span class="hljs-string">"entity_group"</span>: label, | |
| <span class="hljs-string">"score"</span>: score, | |
| <span class="hljs-string">"word"</span>: word, | |
| <span class="hljs-string">"start"</span>: start, | |
| <span class="hljs-string">"end"</span>: end, | |
| } | |
| ) | |
| idx += <span class="hljs-number">1</span> | |
| <span class="hljs-built_in">print</span>(results)`,wrap:!1}}),te=new b({props:{code:"JTVCJTdCJ2VudGl0eV9ncm91cCclM0ElMjAnUEVSJyUyQyUyMCdzY29yZSclM0ElMjAwLjk5ODE2OTQlMkMlMjAnd29yZCclM0ElMjAnU3lsdmFpbiclMkMlMjAnc3RhcnQnJTNBJTIwMTElMkMlMjAnZW5kJyUzQSUyMDE4JTdEJTJDJTBBJTIwJTdCJ2VudGl0eV9ncm91cCclM0ElMjAnT1JHJyUyQyUyMCdzY29yZSclM0ElMjAwLjk3OTYwMjA0JTJDJTIwJ3dvcmQnJTNBJTIwJ0h1Z2dpbmclMjBGYWNlJyUyQyUyMCdzdGFydCclM0ElMjAzMyUyQyUyMCdlbmQnJTNBJTIwNDUlN0QlMkMlMEElMjAlN0InZW50aXR5X2dyb3VwJyUzQSUyMCdMT0MnJTJDJTIwJ3Njb3JlJyUzQSUyMDAuOTkzMjEwNTUlMkMlMjAnd29yZCclM0ElMjAnQnJvb2tseW4nJTJDJTIwJ3N0YXJ0JyUzQSUyMDQ5JTJDJTIwJ2VuZCclM0ElMjA1NyU3RCU1RA==",highlighted:`[{<span class="hljs-string">'entity_group'</span>: <span class="hljs-string">'PER'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.9981694</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Sylvain'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">11</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">18</span>}, | |
| {<span class="hljs-string">'entity_group'</span>: <span class="hljs-string">'ORG'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.97960204</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Hugging Face'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">33</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">45</span>}, | |
| {<span class="hljs-string">'entity_group'</span>: <span class="hljs-string">'LOC'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.99321055</span>, <span class="hljs-string">'word'</span>: <span class="hljs-string">'Brooklyn'</span>, <span class="hljs-string">'start'</span>: <span class="hljs-number">49</span>, <span class="hljs-string">'end'</span>: <span class="hljs-number">57</span>}]`,wrap:!1}}),ie=new aa({props:{source:"https://github.com/huggingface/course/blob/main/chapters/fr/chapter6/3.mdx"}}),{c(){a=j("meta"),J=p(),t=j("p"),h=p(),M(C.$$.fragment),k=p(),M(A.$$.fragment),$=p(),g.c(),f=p(),I=j("p"),I.innerHTML=r,w=p(),M(W.$$.fragment),ye=p(),q=j("p"),q.innerHTML=sl,Te=p(),H=j("table"),H.innerHTML=el,he=p(),M(N.$$.fragment),be=p(),M(V.$$.fragment),xe=p(),M(X.$$.fragment),Ue=p(),G=j("p"),G.innerHTML=nl,we=p(),D=j("p"),D.innerHTML=ll,fe=p(),L=j("p"),L.textContent=al,ge=p(),M(Y.$$.fragment),ke=p(),F=j("p"),F.innerHTML=tl,Ce=p(),M(P.$$.fragment),Ie=p(),O=j("p"),O.innerHTML=pl,$e=p(),M(K.$$.fragment),Ae=p(),M(ss.$$.fragment),Qe=p(),es=j("p"),es.innerHTML=il,ve=p(),M(ns.$$.fragment),Ze=p(),M(ls.$$.fragment),Be=p(),as=j("p"),as.innerHTML=rl,ze=p(),M(ts.$$.fragment),Ee=p(),M(ps.$$.fragment),Ne=p(),is=j("p"),is.innerHTML=cl,Se=p(),M(rs.$$.fragment),_e=p(),M(cs.$$.fragment),Re=p(),os=j("p"),os.innerHTML=ol,We=p(),Ms=j("p"),Ms.innerHTML=Ml,qe=p(),M(S.$$.fragment),He=p(),us=j("p"),us.innerHTML=ul,Ve=p(),ms=j("p"),ms.innerHTML=ml,Xe=p(),M(ds.$$.fragment),Ge=p(),M(Js.$$.fragment),De=p(),js=j("p"),js.innerHTML=dl,Le=p(),M(_.$$.fragment),Ye=p(),M(ys.$$.fragment),Fe=p(),Ts=j("p"),Ts.innerHTML=Jl,Pe=p(),v.c(),ue=p(),M(hs.$$.fragment),Oe=p(),bs=j("p"),bs.innerHTML=jl,Ke=p(),M(xs.$$.fragment),sn=p(),M(Us.$$.fragment),en=p(),ws=j("p"),ws.innerHTML=yl,nn=p(),M(fs.$$.fragment),ln=p(),M(gs.$$.fragment),an=p(),ks=j("p"),ks.innerHTML=Tl,tn=p(),Cs=j("ul"),Cs.innerHTML=hl,pn=p(),Is=j("p"),Is.innerHTML=bl,rn=p(),M($s.$$.fragment),cn=p(),B.c(),me=p(),As=j("p"),As.innerHTML=xl,on=p(),E.c(),de=p(),M(Qs.$$.fragment),Mn=p(),vs=j("p"),vs.innerHTML=Ul,un=p(),M(Zs.$$.fragment),mn=p(),M(Bs.$$.fragment),dn=p(),zs=j("p"),zs.innerHTML=wl,Jn=p(),Es=j("p"),Es.innerHTML=fl,jn=p(),R=j("div"),R.innerHTML=gl,yn=p(),Ns=j("p"),Ns.innerHTML=kl,Tn=p(),M(Ss.$$.fragment),hn=p(),M(_s.$$.fragment),bn=p(),Rs=j("p"),Rs.innerHTML=Cl,xn=p(),M(Ws.$$.fragment),Un=p(),M(qs.$$.fragment),wn=p(),Hs=j("p"),Hs.innerHTML=Il,fn=p(),M(Vs.$$.fragment),gn=p(),Xs=j("p"),Xs.innerHTML=$l,kn=p(),M(Gs.$$.fragment),Cn=p(),Ds=j("p"),Ds.textContent=Al,In=p(),M(Ls.$$.fragment),$n=p(),M(Ys.$$.fragment),An=p(),Fs=j("p"),Fs.textContent=Ql,Qn=p(),M(Ps.$$.fragment),vn=p(),Os=j("p"),Os.innerHTML=vl,Zn=p(),Ks=j("p"),Ks.innerHTML=Zl,Bn=p(),M(se.$$.fragment),zn=p(),M(ee.$$.fragment),En=p(),ne=j("p"),ne.innerHTML=Bl,Nn=p(),M(le.$$.fragment),Sn=p(),ae=j("p"),ae.textContent=zl,_n=p(),M(te.$$.fragment),Rn=p(),pe=j("p"),pe.innerHTML=El,Wn=p(),M(ie.$$.fragment),qn=p(),je=j("p"),this.h()},l(s){const e=ea("svelte-u9bgzb",document.head);a=y(e,"META",{name:!0,content:!0}),e.forEach(n),J=i(s),t=y(s,"P",{}),Yl(t).forEach(n),h=i(s),u(C.$$.fragment,s),k=i(s),u(A.$$.fragment,s),$=i(s),g.l(s),f=i(s),I=y(s,"P",{"data-svelte-h":!0}),T(I)!=="svelte-jdj7ex"&&(I.innerHTML=r),w=i(s),u(W.$$.fragment,s),ye=i(s),q=y(s,"P",{"data-svelte-h":!0}),T(q)!=="svelte-6ey859"&&(q.innerHTML=sl),Te=i(s),H=y(s,"TABLE",{"data-svelte-h":!0}),T(H)!=="svelte-18weugc"&&(H.innerHTML=el),he=i(s),u(N.$$.fragment,s),be=i(s),u(V.$$.fragment,s),xe=i(s),u(X.$$.fragment,s),Ue=i(s),G=y(s,"P",{"data-svelte-h":!0}),T(G)!=="svelte-1nma7ee"&&(G.innerHTML=nl),we=i(s),D=y(s,"P",{"data-svelte-h":!0}),T(D)!=="svelte-1taeug1"&&(D.innerHTML=ll),fe=i(s),L=y(s,"P",{"data-svelte-h":!0}),T(L)!=="svelte-140ai1o"&&(L.textContent=al),ge=i(s),u(Y.$$.fragment,s),ke=i(s),F=y(s,"P",{"data-svelte-h":!0}),T(F)!=="svelte-1glbevx"&&(F.innerHTML=tl),Ce=i(s),u(P.$$.fragment,s),Ie=i(s),O=y(s,"P",{"data-svelte-h":!0}),T(O)!=="svelte-iwxywi"&&(O.innerHTML=pl),$e=i(s),u(K.$$.fragment,s),Ae=i(s),u(ss.$$.fragment,s),Qe=i(s),es=y(s,"P",{"data-svelte-h":!0}),T(es)!=="svelte-ry6gor"&&(es.innerHTML=il),ve=i(s),u(ns.$$.fragment,s),Ze=i(s),u(ls.$$.fragment,s),Be=i(s),as=y(s,"P",{"data-svelte-h":!0}),T(as)!=="svelte-9kawn0"&&(as.innerHTML=rl),ze=i(s),u(ts.$$.fragment,s),Ee=i(s),u(ps.$$.fragment,s),Ne=i(s),is=y(s,"P",{"data-svelte-h":!0}),T(is)!=="svelte-1e2v735"&&(is.innerHTML=cl),Se=i(s),u(rs.$$.fragment,s),_e=i(s),u(cs.$$.fragment,s),Re=i(s),os=y(s,"P",{"data-svelte-h":!0}),T(os)!=="svelte-1nbwme4"&&(os.innerHTML=ol),We=i(s),Ms=y(s,"P",{"data-svelte-h":!0}),T(Ms)!=="svelte-1b2vl2j"&&(Ms.innerHTML=Ml),qe=i(s),u(S.$$.fragment,s),He=i(s),us=y(s,"P",{"data-svelte-h":!0}),T(us)!=="svelte-59g3j8"&&(us.innerHTML=ul),Ve=i(s),ms=y(s,"P",{"data-svelte-h":!0}),T(ms)!=="svelte-jtpxih"&&(ms.innerHTML=ml),Xe=i(s),u(ds.$$.fragment,s),Ge=i(s),u(Js.$$.fragment,s),De=i(s),js=y(s,"P",{"data-svelte-h":!0}),T(js)!=="svelte-fjt0yz"&&(js.innerHTML=dl),Le=i(s),u(_.$$.fragment,s),Ye=i(s),u(ys.$$.fragment,s),Fe=i(s),Ts=y(s,"P",{"data-svelte-h":!0}),T(Ts)!=="svelte-1prnaq4"&&(Ts.innerHTML=Jl),Pe=i(s),v.l(s),ue=i(s),u(hs.$$.fragment,s),Oe=i(s),bs=y(s,"P",{"data-svelte-h":!0}),T(bs)!=="svelte-15tmk01"&&(bs.innerHTML=jl),Ke=i(s),u(xs.$$.fragment,s),sn=i(s),u(Us.$$.fragment,s),en=i(s),ws=y(s,"P",{"data-svelte-h":!0}),T(ws)!=="svelte-1j2psou"&&(ws.innerHTML=yl),nn=i(s),u(fs.$$.fragment,s),ln=i(s),u(gs.$$.fragment,s),an=i(s),ks=y(s,"P",{"data-svelte-h":!0}),T(ks)!=="svelte-kv9ndn"&&(ks.innerHTML=Tl),tn=i(s),Cs=y(s,"UL",{"data-svelte-h":!0}),T(Cs)!=="svelte-u5rx5b"&&(Cs.innerHTML=hl),pn=i(s),Is=y(s,"P",{"data-svelte-h":!0}),T(Is)!=="svelte-185ymn3"&&(Is.innerHTML=bl),rn=i(s),u($s.$$.fragment,s),cn=i(s),B.l(s),me=i(s),As=y(s,"P",{"data-svelte-h":!0}),T(As)!=="svelte-15vkd2i"&&(As.innerHTML=xl),on=i(s),E.l(s),de=i(s),u(Qs.$$.fragment,s),Mn=i(s),vs=y(s,"P",{"data-svelte-h":!0}),T(vs)!=="svelte-c469zt"&&(vs.innerHTML=Ul),un=i(s),u(Zs.$$.fragment,s),mn=i(s),u(Bs.$$.fragment,s),dn=i(s),zs=y(s,"P",{"data-svelte-h":!0}),T(zs)!=="svelte-167f9wi"&&(zs.innerHTML=wl),Jn=i(s),Es=y(s,"P",{"data-svelte-h":!0}),T(Es)!=="svelte-13eef10"&&(Es.innerHTML=fl),jn=i(s),R=y(s,"DIV",{class:!0,"data-svelte-h":!0}),T(R)!=="svelte-qf2tof"&&(R.innerHTML=gl),yn=i(s),Ns=y(s,"P",{"data-svelte-h":!0}),T(Ns)!=="svelte-1ax17kp"&&(Ns.innerHTML=kl),Tn=i(s),u(Ss.$$.fragment,s),hn=i(s),u(_s.$$.fragment,s),bn=i(s),Rs=y(s,"P",{"data-svelte-h":!0}),T(Rs)!=="svelte-xswjms"&&(Rs.innerHTML=Cl),xn=i(s),u(Ws.$$.fragment,s),Un=i(s),u(qs.$$.fragment,s),wn=i(s),Hs=y(s,"P",{"data-svelte-h":!0}),T(Hs)!=="svelte-fu0o3u"&&(Hs.innerHTML=Il),fn=i(s),u(Vs.$$.fragment,s),gn=i(s),Xs=y(s,"P",{"data-svelte-h":!0}),T(Xs)!=="svelte-1k66u8i"&&(Xs.innerHTML=$l),kn=i(s),u(Gs.$$.fragment,s),Cn=i(s),Ds=y(s,"P",{"data-svelte-h":!0}),T(Ds)!=="svelte-1d2qwwo"&&(Ds.textContent=Al),In=i(s),u(Ls.$$.fragment,s),$n=i(s),u(Ys.$$.fragment,s),An=i(s),Fs=y(s,"P",{"data-svelte-h":!0}),T(Fs)!=="svelte-rmetk"&&(Fs.textContent=Ql),Qn=i(s),u(Ps.$$.fragment,s),vn=i(s),Os=y(s,"P",{"data-svelte-h":!0}),T(Os)!=="svelte-13sczcn"&&(Os.innerHTML=vl),Zn=i(s),Ks=y(s,"P",{"data-svelte-h":!0}),T(Ks)!=="svelte-1b5g9pl"&&(Ks.innerHTML=Zl),Bn=i(s),u(se.$$.fragment,s),zn=i(s),u(ee.$$.fragment,s),En=i(s),ne=y(s,"P",{"data-svelte-h":!0}),T(ne)!=="svelte-c8715b"&&(ne.innerHTML=Bl),Nn=i(s),u(le.$$.fragment,s),Sn=i(s),ae=y(s,"P",{"data-svelte-h":!0}),T(ae)!=="svelte-1pc8lov"&&(ae.textContent=zl),_n=i(s),u(te.$$.fragment,s),Rn=i(s),pe=y(s,"P",{"data-svelte-h":!0}),T(pe)!=="svelte-m415vw"&&(pe.innerHTML=El),Wn=i(s),u(ie.$$.fragment,s),qn=i(s),je=y(s,"P",{}),Yl(je).forEach(n),this.h()},h(){Pn(a,"name","hf:doc:metadata"),Pn(a,"content",ya),Pn(R,"class","flex justify-center")},m(s,e){na(document.head,a),l(s,J,e),l(s,t,e),l(s,h,e),m(C,s,e),l(s,k,e),m(A,s,e),l(s,$,e),re[x].m(s,e),l(s,f,e),l(s,I,e),l(s,w,e),m(W,s,e),l(s,ye,e),l(s,q,e),l(s,Te,e),l(s,H,e),l(s,he,e),m(N,s,e),l(s,be,e),m(V,s,e),l(s,xe,e),m(X,s,e),l(s,Ue,e),l(s,G,e),l(s,we,e),l(s,D,e),l(s,fe,e),l(s,L,e),l(s,ge,e),m(Y,s,e),l(s,ke,e),l(s,F,e),l(s,Ce,e),m(P,s,e),l(s,Ie,e),l(s,O,e),l(s,$e,e),m(K,s,e),l(s,Ae,e),m(ss,s,e),l(s,Qe,e),l(s,es,e),l(s,ve,e),m(ns,s,e),l(s,Ze,e),m(ls,s,e),l(s,Be,e),l(s,as,e),l(s,ze,e),m(ts,s,e),l(s,Ee,e),m(ps,s,e),l(s,Ne,e),l(s,is,e),l(s,Se,e),m(rs,s,e),l(s,_e,e),m(cs,s,e),l(s,Re,e),l(s,os,e),l(s,We,e),l(s,Ms,e),l(s,qe,e),m(S,s,e),l(s,He,e),l(s,us,e),l(s,Ve,e),l(s,ms,e),l(s,Xe,e),m(ds,s,e),l(s,Ge,e),m(Js,s,e),l(s,De,e),l(s,js,e),l(s,Le,e),m(_,s,e),l(s,Ye,e),m(ys,s,e),l(s,Fe,e),l(s,Ts,e),l(s,Pe,e),ce[Q].m(s,e),l(s,ue,e),m(hs,s,e),l(s,Oe,e),l(s,bs,e),l(s,Ke,e),m(xs,s,e),l(s,sn,e),m(Us,s,e),l(s,en,e),l(s,ws,e),l(s,nn,e),m(fs,s,e),l(s,ln,e),m(gs,s,e),l(s,an,e),l(s,ks,e),l(s,tn,e),l(s,Cs,e),l(s,pn,e),l(s,Is,e),l(s,rn,e),m($s,s,e),l(s,cn,e),oe[Z].m(s,e),l(s,me,e),l(s,As,e),l(s,on,e),Me[z].m(s,e),l(s,de,e),m(Qs,s,e),l(s,Mn,e),l(s,vs,e),l(s,un,e),m(Zs,s,e),l(s,mn,e),m(Bs,s,e),l(s,dn,e),l(s,zs,e),l(s,Jn,e),l(s,Es,e),l(s,jn,e),l(s,R,e),l(s,yn,e),l(s,Ns,e),l(s,Tn,e),m(Ss,s,e),l(s,hn,e),m(_s,s,e),l(s,bn,e),l(s,Rs,e),l(s,xn,e),m(Ws,s,e),l(s,Un,e),m(qs,s,e),l(s,wn,e),l(s,Hs,e),l(s,fn,e),m(Vs,s,e),l(s,gn,e),l(s,Xs,e),l(s,kn,e),m(Gs,s,e),l(s,Cn,e),l(s,Ds,e),l(s,In,e),m(Ls,s,e),l(s,$n,e),m(Ys,s,e),l(s,An,e),l(s,Fs,e),l(s,Qn,e),m(Ps,s,e),l(s,vn,e),l(s,Os,e),l(s,Zn,e),l(s,Ks,e),l(s,Bn,e),m(se,s,e),l(s,zn,e),m(ee,s,e),l(s,En,e),l(s,ne,e),l(s,Nn,e),m(le,s,e),l(s,Sn,e),l(s,ae,e),l(s,_n,e),m(te,s,e),l(s,Rn,e),l(s,pe,e),l(s,Wn,e),m(ie,s,e),l(s,qn,e),l(s,je,e),Hn=!0},p(s,[e]){const Xl={};e&1&&(Xl.fw=s[0]),C.$set(Xl);let Dn=x;x=Sl(s),x!==Dn&&(Xn(),c(re[Dn],1,1,()=>{re[Dn]=null}),Vn(),g=re[x],g||(g=re[x]=Nl[x](s),g.c()),o(g,1),g.m(f.parentNode,f));const Gl={};e&2&&(Gl.$$scope={dirty:e,ctx:s}),N.$set(Gl);const Dl={};e&2&&(Dl.$$scope={dirty:e,ctx:s}),S.$set(Dl);const Ll={};e&2&&(Ll.$$scope={dirty:e,ctx:s}),_.$set(Ll);let Ln=Q;Q=Rl(s),Q!==Ln&&(Xn(),c(ce[Ln],1,1,()=>{ce[Ln]=null}),Vn(),v=ce[Q],v||(v=ce[Q]=_l[Q](s),v.c()),o(v,1),v.m(ue.parentNode,ue));let Yn=Z;Z=ql(s),Z!==Yn&&(Xn(),c(oe[Yn],1,1,()=>{oe[Yn]=null}),Vn(),B=oe[Z],B||(B=oe[Z]=Wl[Z](s),B.c()),o(B,1),B.m(me.parentNode,me));let Fn=z;z=Vl(s),z!==Fn&&(Xn(),c(Me[Fn],1,1,()=>{Me[Fn]=null}),Vn(),E=Me[z],E||(E=Me[z]=Hl[z](s),E.c()),o(E,1),E.m(de.parentNode,de))},i(s){Hn||(o(C.$$.fragment,s),o(A.$$.fragment,s),o(g),o(W.$$.fragment,s),o(N.$$.fragment,s),o(V.$$.fragment,s),o(X.$$.fragment,s),o(Y.$$.fragment,s),o(P.$$.fragment,s),o(K.$$.fragment,s),o(ss.$$.fragment,s),o(ns.$$.fragment,s),o(ls.$$.fragment,s),o(ts.$$.fragment,s),o(ps.$$.fragment,s),o(rs.$$.fragment,s),o(cs.$$.fragment,s),o(S.$$.fragment,s),o(ds.$$.fragment,s),o(Js.$$.fragment,s),o(_.$$.fragment,s),o(ys.$$.fragment,s),o(v),o(hs.$$.fragment,s),o(xs.$$.fragment,s),o(Us.$$.fragment,s),o(fs.$$.fragment,s),o(gs.$$.fragment,s),o($s.$$.fragment,s),o(B),o(E),o(Qs.$$.fragment,s),o(Zs.$$.fragment,s),o(Bs.$$.fragment,s),o(Ss.$$.fragment,s),o(_s.$$.fragment,s),o(Ws.$$.fragment,s),o(qs.$$.fragment,s),o(Vs.$$.fragment,s),o(Gs.$$.fragment,s),o(Ls.$$.fragment,s),o(Ys.$$.fragment,s),o(Ps.$$.fragment,s),o(se.$$.fragment,s),o(ee.$$.fragment,s),o(le.$$.fragment,s),o(te.$$.fragment,s),o(ie.$$.fragment,s),Hn=!0)},o(s){c(C.$$.fragment,s),c(A.$$.fragment,s),c(g),c(W.$$.fragment,s),c(N.$$.fragment,s),c(V.$$.fragment,s),c(X.$$.fragment,s),c(Y.$$.fragment,s),c(P.$$.fragment,s),c(K.$$.fragment,s),c(ss.$$.fragment,s),c(ns.$$.fragment,s),c(ls.$$.fragment,s),c(ts.$$.fragment,s),c(ps.$$.fragment,s),c(rs.$$.fragment,s),c(cs.$$.fragment,s),c(S.$$.fragment,s),c(ds.$$.fragment,s),c(Js.$$.fragment,s),c(_.$$.fragment,s),c(ys.$$.fragment,s),c(v),c(hs.$$.fragment,s),c(xs.$$.fragment,s),c(Us.$$.fragment,s),c(fs.$$.fragment,s),c(gs.$$.fragment,s),c($s.$$.fragment,s),c(B),c(E),c(Qs.$$.fragment,s),c(Zs.$$.fragment,s),c(Bs.$$.fragment,s),c(Ss.$$.fragment,s),c(_s.$$.fragment,s),c(Ws.$$.fragment,s),c(qs.$$.fragment,s),c(Vs.$$.fragment,s),c(Gs.$$.fragment,s),c(Ls.$$.fragment,s),c(Ys.$$.fragment,s),c(Ps.$$.fragment,s),c(se.$$.fragment,s),c(ee.$$.fragment,s),c(le.$$.fragment,s),c(te.$$.fragment,s),c(ie.$$.fragment,s),Hn=!1},d(s){s&&(n(J),n(t),n(h),n(k),n($),n(f),n(I),n(w),n(ye),n(q),n(Te),n(H),n(he),n(be),n(xe),n(Ue),n(G),n(we),n(D),n(fe),n(L),n(ge),n(ke),n(F),n(Ce),n(Ie),n(O),n($e),n(Ae),n(Qe),n(es),n(ve),n(Ze),n(Be),n(as),n(ze),n(Ee),n(Ne),n(is),n(Se),n(_e),n(Re),n(os),n(We),n(Ms),n(qe),n(He),n(us),n(Ve),n(ms),n(Xe),n(Ge),n(De),n(js),n(Le),n(Ye),n(Fe),n(Ts),n(Pe),n(ue),n(Oe),n(bs),n(Ke),n(sn),n(en),n(ws),n(nn),n(ln),n(an),n(ks),n(tn),n(Cs),n(pn),n(Is),n(rn),n(cn),n(me),n(As),n(on),n(de),n(Mn),n(vs),n(un),n(mn),n(dn),n(zs),n(Jn),n(Es),n(jn),n(R),n(yn),n(Ns),n(Tn),n(hn),n(bn),n(Rs),n(xn),n(Un),n(wn),n(Hs),n(fn),n(gn),n(Xs),n(kn),n(Cn),n(Ds),n(In),n($n),n(An),n(Fs),n(Qn),n(vn),n(Os),n(Zn),n(Ks),n(Bn),n(zn),n(En),n(ne),n(Nn),n(Sn),n(ae),n(_n),n(Rn),n(pe),n(Wn),n(qn),n(je)),n(a),d(C,s),d(A,s),re[x].d(s),d(W,s),d(N,s),d(V,s),d(X,s),d(Y,s),d(P,s),d(K,s),d(ss,s),d(ns,s),d(ls,s),d(ts,s),d(ps,s),d(rs,s),d(cs,s),d(S,s),d(ds,s),d(Js,s),d(_,s),d(ys,s),ce[Q].d(s),d(hs,s),d(xs,s),d(Us,s),d(fs,s),d(gs,s),d($s,s),oe[Z].d(s),Me[z].d(s),d(Qs,s),d(Zs,s),d(Bs,s),d(Ss,s),d(_s,s),d(Ws,s),d(qs,s),d(Vs,s),d(Gs,s),d(Ls,s),d(Ys,s),d(Ps,s),d(se,s),d(ee,s),d(le,s),d(te,s),d(ie,s)}}}const ya='{"title":"Pouvoirs spéciaux des <i> tokenizers </i> rapides","local":"pouvoirs-spéciaux-des-i-tokenizers-i-rapides","sections":[{"title":"L’objet <i> BatchEncoding </i>","local":"lobjet-i-batchencoding-i","sections":[],"depth":2},{"title":"A l’intérieur du pipeline token-classification","local":"a-lintérieur-du-pipeline-token-classification","sections":[{"title":"Obtenir les résultats de base avec le pipeline","local":"obtenir-les-résultats-de-base-avec-le-pipeline","sections":[],"depth":3},{"title":"Des entrées aux prédictions","local":"des-entrées-aux-prédictions","sections":[],"depth":3},{"title":"Regroupement des entités","local":"regroupement-des-entités","sections":[],"depth":3}],"depth":2}],"depth":1}';function Ta(U,a,J){let t="pt";return Ol(()=>{const h=new URLSearchParams(window.location.search);J(0,t=h.get("fw")||"pt")}),[t]}class Ca extends Kl{constructor(a){super(),sa(this,a,Ta,ja,Pl,{})}}export{Ca as component}; | |
Xet Storage Details
- Size:
- 84.9 kB
- Xet hash:
- 0e5e4a2795294ee37f8a8eda01a0328ad1250320f109cd7eabd3348e4a094644
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.