Créer un index de mots-clés automatique dans Google Docs avec Google Apps Script

Dans cet article, nous allons explorer comment automatiser la création d’un index de mots-clés dans un document Google Docs grâce à Google Apps Script. Ce script détectera les mots-clés fréquents dans votre document, les comptera et les affichera sous forme de tableau en bas de la page. Cette approche est idéale pour générer rapidement des récapitulatifs de mots-clés pour des documents de référence, des rapports ou tout autre document nécessitant un index.

Pourquoi utiliser Google Apps Script pour créer un index de mots-clés ?

Google Apps Script est un outil puissant qui permet d’automatiser des tâches dans Google Workspace, comme la gestion de Google Docs, Sheets, et Gmail. Plutôt que de parcourir un document manuellement pour relever les mots importants, Apps Script peut détecter automatiquement les mots-clés et afficher leurs occurrences dans un tableau clair.

Fonctionnement du script

Le script compte les occurrences des mots dans le document, exclut les mots courants (articles, prépositions, etc.) pour se concentrer sur les mots-clés importants, puis génère un tableau des mots les plus fréquents. Seules les occurrences dépassant un seuil (plus de 4 dans cet exemple) sont incluses dans l’index.

Étapes de configuration

1. Ouvrez le document Google Docs où vous souhaitez ajouter l’index.

2. Allez dans Extensions > Apps Script pour ouvrir l’éditeur de script.

3. Supprimez tout code existant et collez le script ci-dessous.

Script Google Apps Script

/**
 * Script Google Apps Script pour créer un index de mots-clés dans Google Docs
 * 
 * Ce script scanne le document Google Docs pour détecter les mots les plus fréquents
 * (en excluant les mots courants) et génère un tableau récapitulatif des mots-clés à
 * la fin du document. Ce tableau contient chaque mot-clé et le nombre de fois où il
 * apparaît, offrant ainsi un index utile pour des documents longs ou techniques.
 * 
 * Fonctionnalités :
 * - Exclut les mots communs comme les articles et prépositions.
 * - Compte uniquement les mots de plus de 4 caractères.
 * - Affiche les mots apparaissant plus de 4 fois dans un tableau en bas du document.
 * - Le tableau inclut une ligne d'en-tête avec les titres "Mot-Clé" et "Occurrences".
 * 
 * Utilisation :
 * 1. Ouvrez le document Google Docs où vous souhaitez ajouter l'index.
 * 2. Allez dans Extensions > Apps Script et collez ce script.
 * 3. Rechargez le document pour activer le menu personnalisé "Index".
 * 4. Cliquez sur "Index" > "Créer un index des mots-clés" pour exécuter le script.
 * 
 * Auteur : Fabrice Faucheux
 * Date : 31/10/2024
 */


function onOpen() {
  const ui = DocumentApp.getUi();
  ui.createMenu('Index')
    .addItem('Créer un index des mots-clés', 'creerIndex')
    .addToUi();
}

function creerIndex() {
  const doc = DocumentApp.getActiveDocument();
  const body = doc.getBody();
  const texte = body.getText();
  
  // Liste de mots courants à exclure (articles, prépositions, etc.)
  const motsExclus = [
    "le", "la", "les", "un", "une", "de", "des", "et", "à", "en", "dans", 
    "pour", "avec", "par", "sur", "au", "aux", "du", "ce", "ces", "ça", "sont", 
    "ou", "vos", "vous", "nous", "qui", "que", "quel", "quelle", "quels", "quelles", 
    "donc", "comme", "aussi", "bien", "ainsi", "ont", "plus", "ses", "leur", 
    "leurs", "ils", "elles", "lui", "y", "où", "cette", "cet", "se", "son", 
    "sa", "sont", "est", "être", "fait", "peut", "faites", "etc", "tous", "toutes"
  ];

  // Création d'un dictionnaire pour compter les occurrences des mots
  const dictionnaire = {};
  const mots = texte.match(/\b[\w\u00C0-\u017F]+\b/g); // Capture les mots avec accents

  // Compte les occurrences de chaque mot, en excluant les mots courts et courants
  mots.forEach(mot => {
    const motMinuscule = mot.toLowerCase();
    if (!motsExclus.includes(motMinuscule) && motMinuscule.length > 4) {
      if (!dictionnaire[motMinuscule]) {
        dictionnaire[motMinuscule] = 0;
      }
      dictionnaire[motMinuscule]++;
    }
  });

  // Filtrer les mots qui apparaissent plus de 4 fois pour l'index
  const motsFrequents = Object.keys(dictionnaire)
    .filter(mot => dictionnaire[mot] > 4)
    .sort();

  // Ajouter un titre pour l'index des mots-clés
  body.appendParagraph("\nIndex des Mots-Clés :").setHeading(DocumentApp.ParagraphHeading.HEADING2);

  // Créer un tableau pour afficher les mots-clés et leurs occurrences
  const tableau = body.appendTable();
  
  // Créer l'en-tête et le mettre en gras
  const headerRow = tableau.appendTableRow();
  headerRow.appendTableCell("Mot-Clé").setBold(true);
  headerRow.appendTableCell("Occurrences").setBold(true);

  // Remplir le tableau avec les mots fréquents et leur nombre d'occurrences
  motsFrequents.forEach(mot => {
    const row = tableau.appendTableRow();
    row.appendTableCell(mot).setBold(false); // S'assurer que le texte n'est pas en gras
    row.appendTableCell(dictionnaire[mot].toString()).setBold(false); // Idem
  });

  DocumentApp.getUi().alert("Index des mots-clés ajouté sous forme de tableau à la fin du document.");
}

Explications du Script

  1. Menu personnalisé : La fonction onOpen ajoute un menu nommé “Index” dans Google Docs avec une option “Créer un index des mots-clés”. Cela permet de lancer facilement le script.
  2. Liste des mots exclus : Les mots courants (articles, prépositions, etc.) sont stockés dans motsExclus. Le script ignore ces mots pour se concentrer sur les mots-clés.
  3. Comptage des mots : Le script parcourt chaque mot du document et compte les occurrences pour les mots non exclus et ayant plus de 4 lettres.
  4. Filtrage des mots fréquents : Seuls les mots apparaissant plus de 4 fois sont ajoutés au tableau.
  5. Création d’un tableau : Le tableau est ajouté à la fin du document avec une première ligne en gras contenant les en-têtes “Mot-Clé” et “Occurrences”. Chaque ligne suivante contient un mot-clé et le nombre de fois qu’il apparaît dans le document.

Résultat attendu

Une fois le script exécuté, un tableau contenant les mots-clés les plus fréquents (plus de 4 occurrences) apparaîtra à la fin du document, sous le titre “Index des Mots-Clés”. Le tableau sera structuré avec une colonne pour les mots-clés et une autre pour le nombre d’occurrences.

Ce script est un excellent moyen de créer un index de mots-clés automatiquement dans un document Google Docs. Cela peut être très utile pour les documents longs ou techniques où un index facilite la navigation. De plus, cette approche est entièrement personnalisable, vous pouvez adapter la liste des mots exclus ou le seuil d’occurrences selon vos besoins.

N’hésitez pas à essayer ce script et à expérimenter avec Google Apps Script pour automatiser d’autres tâches dans Google Workspace !