Calculateur du rapport type-token et diversité lexicale
Le calculateur de rapport type-token mesure la variété du vocabulaire d’un passage en divisant le nombre de types de mots distincts par le nombre total de tokens.
Lancer gratuitement
Collez un texte, une transcription, une dissertation ou tout autre contenu pour obtenir les décomptes détaillés et un rapport reproductible compris entre zéro et un. Le calcul est déterministe, prend en charge les mots et nombres Unicode, conserve les apostrophes internes et peut regrouper ou distinguer les mots qui ne diffèrent que par leur casse.
Comprendre ce que mesure le rapport
Le rapport type-token, souvent abrégé en TTR, compare la variété du vocabulaire à la longueur du texte. Un token correspond à chaque occurrence d’un mot dans le passage, tandis qu’un type désigne une forme de mot distincte. Dans la phrase « les oiseaux chantent et les oiseaux volent », on compte six tokens, mais cinq types, car « oiseaux » apparaît deux fois. La division des types par les tokens donne un score supérieur à zéro et inférieur ou égal à un. Un score de un signifie que chaque token est unique ; une valeur plus faible révèle davantage de répétitions. Cette lecture simple facilite une première analyse de textes, de transcriptions, de productions d’apprenants et de collections éditoriales. Le rapport reste toutefois descriptif et ne juge pas la qualité. La répétition peut être volontaire, nécessaire ou souhaitable, notamment dans des consignes techniques et des explications ciblées. Examinez les nombres de tokens et de types avec le rapport afin d’en comprendre précisément l’origine, sans réduire le style ou les compétences à une seule valeur décimale.
Comparer les textes sur une base équitable
La longueur du texte influence fortement le rapport type-token élémentaire. Les passages courts offrent moins d’occasions de répéter les mots et obtiennent donc souvent des scores supérieurs aux passages longs, même lorsque l’auteur ou le sujet est identique. Pour effectuer une comparaison pertinente, choisissez des échantillons proches par la longueur, le genre, la langue et la préparation. Comparez, par exemple, deux dissertations de cinq cents mots plutôt qu’un bref message avec un rapport complet. Ce calculateur reconnaît comme tokens les suites de lettres ou de chiffres Unicode et conserve les apostrophes droites ou typographiques internes, afin que les contractions restent un seul token. La ponctuation extérieure ne crée pas un autre type. Par défaut, la casse est neutralisée : « Livre » et « livre » comptent comme un même type. Activez la sensibilité à la casse uniquement si cette distinction est pertinente. Conservez les mêmes réglages, notez le total de tokens et interprétez prudemment les petits écarts, surtout pour des passages courts ou portant sur des sujets différents.
Intégrer le résultat dans un processus reproductible
Un processus fiable commence par un échantillon clairement délimité. Décidez avant l’envoi si les titres, citations, noms de locuteurs, nombres et textes répétitifs doivent faire partie de l’analyse. Supprimer ces éléments d’un échantillon tout en les conservant dans un autre modifie à la fois le numérateur et le dénominateur. Analysez chaque passage préparé avec le même réglage de casse, puis conservez les quatre champs renvoyés : total des tokens, types distincts, rapport type-token et règle de casse appliquée. Le résultat devient ainsi vérifiable et reproductible. La version dans le navigateur convient aux contrôles ponctuels ; l’API s’intègre aux traitements par lots, tableaux de bord éditoriaux, outils pédagogiques et préparations de recherche. Le calcul est déterministe et n’envoie aucun texte à un modèle d’IA : une entrée et des options identiques produisent la même sortie. Si vous ne pouvez pas harmoniser les longueurs, signalez cette limite ou ajoutez une mesure corrigée. Interprétez surtout le score dans son contexte : un rapport faible peut provenir d’une terminologie nécessaire, d’un sujet cohérent, de citations ou de dialogues répétés, et non d’un vocabulaire pauvre.
Cas d’usage
Comparer des échantillons écrits
Mesurez des versions de longueur équivalente avec des réglages constants pour suivre l’évolution des répétitions lexicales.
Analyser des transcriptions
Ajoutez une mesure transparente de variété lexicale aux entretiens, cours, réunions ou travaux de recherche transcrits.
Auditer des collections de contenus
Traitez en série des articles ou fiches produit et signalez les éléments particulièrement répétitifs pour une vérification humaine.
Questions fréquentes
Comment calcule-t-on le rapport type-token ?
Le nombre de types de mots distincts est divisé par le nombre total de tokens, puis le résultat est arrondi à six décimales.
Que signifie un rapport type-token élevé ?
Une plus grande part des tokens est unique dans cet échantillon. Cela ne prouve pas, à lui seul, que le texte est meilleur ou le vocabulaire plus avancé.
Pourquoi comparer des textes de longueur similaire ?
Un texte long multiplie naturellement les possibilités de répétition, ce qui réduit généralement la TTR élémentaire. Des longueurs proches rendent la comparaison plus instructive.
La casse modifie-t-elle le résultat ?
Pas par défaut. Définissez case_sensitive sur true si des formes comme « Livre » et « livre » doivent constituer deux types distincts.
Comment les mots sont-ils reconnus ?
Les suites Unicode de lettres et de chiffres sont des tokens. Une apostrophe droite ou typographique interne reste dans le token ; la ponctuation extérieure sert de séparateur.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/str/type-token-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The quick brown fox jumps over the lazy dog. The fox rests."}'const res = await fetch("https://api.kit.forhosting.com/str/type-token-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The quick brown fox jumps over the lazy dog. The fox rests."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/type-token-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The quick brown fox jumps over the lazy dog. The fox rests."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/type-token-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The quick brown fox jumps over the lazy dog. The fox rests."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The quick brown fox jumps over the lazy dog. The fox rests."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/type-token-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "The quick brown fox jumps over the lazy dog. The fox rests."
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.type_token_ratio",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_chars | 1000000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |