Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Tokenize : 2 méthodes différentes
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36
Browser:
Chrome 135
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
tokenize
54414.3 Ops/sec
tokenize 2
44489.9 Ops/sec
Script Preparation code:
testString = ` Pour analyser le sujet, il faut penser à analyser : - les 2 notions importantes du sujet - mais aussi les autres termes du sujet (attention chaque terme est important) Il y a plusieurs stratégies possibles d'analyse : - On peut d'abord simplement noter ce à quoi ça nous fait penser : on note des synonymes, des expressions, des situations et des idées associées à cette notion. On part de ses représentations spontanées (ce qui nous vient immédiatement à l'esprit). - On pense aussi au contraire de la notion, aux opposés, à des distinctions, des différences - On essaie de trouver des exemples d'application de la notion (à quoi ça renvoie concrètement ?) - On essaie de trouver des connaissances utiles sur cette notion (qu'est-ce qu'on a vu dans le cours à ce propos ? Y a-t-il des philosophes, des courants philosophiques, du vocabulaire technique qu'on pourrait mobiliser ?) - On essaie de définir la notion en dégageant ses caractéristiques fondamentales et spécifiques (qui la distinguent d'autres notions) Dans tous les cas, il faut travailler au brouillon à l'écrit, avec son stylo, et pas seulement dans sa tête, en notant bien toutes ses idées (même si on a l'impression que c'est nul : cela va au contraire nous permettre de débloquer notre pensée !). `
Tests:
tokenize
tokenize(testString) function tokenize(text) { // Fonction pour diviser une chaîne de caractères en tokens const words = text.toLowerCase().split(/\s|'|,|\.|\:|\?|\!|\(|\)|\[|\]/).filter(word => word.length >= 5) || []; // On garde d'abord seulement les mots d'au moins 5 caractères const tokens = []; // On va créer des tokens avec à chaque fois un poids associés for (const word of words) { // Premier type de token : le mot en entier ; poids le plus important tokens.push({word, weight: 5}); // Ensuite on intègre des tokens de 5, 6 et 7 caractères consécutifs pour détecter des racines communes // Plus le token est long, plus le poids du token est important // Si le token correspond au début du mot, le poids est plus important if (word.length >= 5) { for (let i = 0; i <= word.length - 5; i++) { const weight = i === 0 ? 0.6 : 0.4; const token = word.substring(i, i + 5) tokens.push({token,weight: weight}); } } if (word.length >= 6) { for (let i = 0; i <= word.length - 6; i++) { const weight = i === 0 ? 0.8 : 0.6; const token = word.substring(i, i + 6) tokens.push({token,weight: weight}); } } if (word.length >= 7) { for (let i = 0; i <= word.length - 7; i++) { const weight = i === 0 ? 1 : 0.8; const token = word.substring(i, i + 7) tokens.push({token,weight: weight}); } } } return tokens; }
tokenize 2
tokenize2(testString) function tokenize2(text) { // Fonction pour diviser une chaîne de caractères en tokens // On garde d'abord seulement les mots d'au moins 5 caractères const words = text.toLowerCase().split(/\s|'|,|\.|\:|\?|\!|\(|\)|\[|\]/).filter(word => word.length >= 5) || []; // On définit des poids variables selon la taille du token const weights = [0.4, 0.6, 0.8]; // On va créer des tokens avec à chaque fois un poids associé const tokens = words.reduce((acc, word) => { // Premier type de token : le mot en entier ; poids le plus important acc.push({ word, weight: 5 }); // Ensuite on intègre des tokens de 5, 6 et 7 caractères consécutifs pour détecter des racines communes // Plus le token est long, plus le poids du token est important // Si le token correspond au début du mot, le poids est plus important const windowSizeMin = 5 for (let windowSize = windowSizeMin; windowSize <= windowSizeMin+weights.length-1; windowSize++) { for (let i = 0; i <= word.length - windowSize; i++) { const weightStart = i === 0 ? 0.2 : 0; const weight = Math.round((weights[windowSize-windowSizeMin] + weightStart)*10)/10; const token = word.substring(i, i + windowSize); acc.push({ token, weight }); } } return acc; }, []); return tokens; }