SDS Manager
Documentation
Documentation/Analyser des données

🧠Analyser des données

Créer une analyse NLP approfondie sur une importation : chunking, vectorisation, lemmatisation, sentiment, topic mining, coordination et annotation.

Créer une analyse

Objectif

Créer l'objet analyse qui sert de conteneur à tous les traitements avancés appliqués à une importation.

Prérequis

  • Avoir créé et collecté des données sur une importation.

Étapes

  1. 1

    Dans la barre latérale, ouvrez Analyser des données et cliquez sur Créer une analyse.

  2. 2

    Sélectionnez le client et le projet concernés.

  3. 3

    Renseignez les champs du formulaire :

    ChampDescriptionExemple
    NomIdentifiant lisible de l'analyse. Choisissez un nom décrivant le traitement ou la période.Analyse sentiment Q1 2025
    Type d'analyseType d'analyse à réaliser sur l'importation : clustering, classification_llm, coordination, narrative_filtering.Clustering
  4. 4

    Cliquez sur Créer. Un `analyse_id` est généré et l'analyse apparaît dans l'onglet Analyses du dashboard.

✓ Résultat attendu

L'analyse est créée. Vous pouvez maintenant passer à l'étape de chunking ou lancer un pipeline.

Chunking

Objectif

Préparer les documents à analyser. Cette étape consiste à créer un "dataset d'analyse" (sous-ensemble des données disponibles dans l'importation). Un formatage des données peut être paramétré, tel que le découpage des documents longs en chunks (segments) de taille contrôlée, nécessaire avant la vectorisation.

Prérequis

  • Avoir créé une analyse liée à une importation collectée.

Étapes

  1. 1

    Dans Analyser des données, cliquez sur Chunking.

  2. 2

    Sélectionnez le Client, le Projet, l'Importation et l'Analyse.

  3. 3

    Sélectionnez les données à inclure dans le dataset d'analyse en appliquant des filtres sur le type de post, la période de publication ou la langue des posts.

  4. 4

    (recommandé) : pour les textes longs (Linkedin, Facebook, Telegram, articles de presse, transcripts vidéo...), activez le Sentence splitting. Pour les textes courts (X, TikTok, Youtube...), une copie simple suffit.

  5. 5

    Sélectionnez le texte à préparer : le texte original ou traduit.

  6. 6

    Configurez les paramètres de découpe :

    ChampDescriptionExemple
    Phrase par chunkTaille des segments, généralement entre 3 et 5 phrases. Une valeur trop petite fragmente trop le sens ; trop grande, elle dépasse la fenêtre du modèle de vectorisation.3
    Nombre de chunks max par postNombre maximum de chunks à créer par post. Permet de limiter la taille du dataset d'analyse.50
    Taille minimale d'un chunkTaille minimale d'un chunk en nombre de caractères. Permet de s'assurer que chaque chunk contient suffisamment de contenu pour être analysé.10
  7. 7

    (facultatif) Planifiez une exécution régulière du chunking pour préparer les nouveaux documents collectés.

  8. 8

    Cliquez sur Lancer.

✓ Résultat attendu

Chaque document est découpé en chunks stockés dans GCS. Le nombre de chunks créés est visible dans le détail de l'analyse.

Vectorisation

Objectif

Transformer les chunks textuels en vecteurs numériques (embeddings) pour permettre la recherche sémantique et le clustering.

Prérequis

  • Avoir créé une analyse avec des données collectées.
  • Pour les textes : avoir effectué le chunking sur l'analyse.
  • Pour les images : pas besoin d'effectuer le chunking.

Étapes

  1. 1

    Dans Analyser des données, cliquez sur Vectorisation.

  2. 2

    Sélectionnez le Client, le Projet et l'Analyse.

  3. 3

    Sélectionnez le type de données à vectoriser : texte ou image.

  4. 4

    Choisissez le Modèle de vectorisation :

    ChampDescriptionExemple
    paraphrase-multilingual-MiniLM-L12-v2Modèle CPU multilingue. Recommandé pour la réalisation des topic modeling sur des corpus francophone ou multilingue.Topic Modeling de corpus francophone ou multilingue
    all-MiniLM-L6-v2Modèle CPU. Recommandé pour la réalisation des topic modeling sur des corpus anglophones.Topic Modeling anglais
    all-mpnet-base-v2Modèle CPU très léger. Recommandé pour la réalisation des topic modeling sur des corpus anglophones.Topic Modeling anglais
    opsci/Jinav3_SUPCONModèle GPU. Recommandé pour la réalisation de Narrative Filtering.Narrative Filtering - multilingue
    jina-embeddings-v3Modèle GPU - multilingue. Recommandé pour la réalisation d'un topic modeling multilingue ou analyse de coordination.Topic modeling - Coordination
    CLIP-ViT-H-14-laion2B-s32B-b79KModèle GPU. Modèle multimodal sémantique.Vectorisation des images / clustering sémantique
    dinov2-largeModèle GPU. Modèle de vectorisation des images.Vectorisation des images / clustering visuel
  5. 5

    (facultatif) Planifiez une exécution régulière de la vectorisation pour traiter les nouveaux chunks créés.

  6. 6

    Cliquez sur Lancer.

✓ Résultat attendu

Chaque chunk est représenté par un vecteur dense stocké dans la base vectorielle de l'analyse. Les recherches sémantiques et le clustering sont désormais possibles.

Lemmatisation

Objectif

Réduire chaque mot à sa forme canonique (lemme) pour normaliser le vocabulaire avant les analyses statistiques.

Prérequis

  • Avoir créé une analyse avec des données collectées.
  • Avoir réalisé de chunking

Étapes

  1. 1

    Dans Analyser des données, cliquez sur Lemmatisation.

  2. 2

    Sélectionnez le Client, le Projet et l'Analyse cibles.

  3. 3

    Sélectionnez le modèle approprié à utiliser pour la lemmatisation (en fonction de la langue).

  4. 4

    Définissez les types de mots à conserver et les mots à exclures (stop words) pour affiner les résultats.

  5. 5

    Cliquez sur Lancer.

✓ Résultat attendu

Un champ 'lemmatized_text' est ajouté aux chunks. Ce champ est utilisé par le topic mining et les analyses de fréquence.

Sentiment

Objectif

Calculer le score de sentiment (positif / négatif / neutre) de chaque document de l'analyse.

Prérequis

  • Avoir créé une analyse avec des données collectées.
  • Avoir réalisé de chunking

Étapes

  1. 1

    Dans Analyser des données, cliquez sur Sentiment.

  2. 2

    Sélectionnez le Client, le Projet et l'Analyse.

  3. 3

    Sélectionnez un modèle d'analyse de sentiment.

  4. 4

    (facultatif) Planifier une exécution régulière de l'analyse de sentiment pour traiter les nouveaux chunks.

  5. 5

    Cliquez sur Lancer.

✓ Résultat attendu

Chaque document se voit attribuer un score de sentiment (entre -1 et +1) et un label (`positive`, `negative`, `neutral`). Ces champs sont exportables dans les rapports CSV.

Narrative Filtering

Objectif

Filtrer les documents selon leur proximité sémantique avec un ensemble de narratifs définis, pour ne conserver que les contenus pertinents.

Prérequis

  • Avoir créé une analyse avec des données collectées.
  • Avoir effectué le chunking.
  • Avoir effectué la vectorisation sur l'analys en utilisant le modèle JINAv3_SUPCON.
  • Avoir défini au moins un narratif dans la base de narratifs.

Étapes

  1. 1

    Dans Analyser des données, cliquez sur Narrative Filtering.

  2. 2

    Sélectionnez le Client, le Projet et l'Analyse.

  3. 3

    Sélectionnez les sujets / narratifs / claims que vous souhaitez utiliser comme référence.

  4. 4

    (facultatif) Filtrer les chunks par date d'indexation.

  5. 5

    Configurez le Seuil de similarité :

    ChampDescriptionExemple
    Seuil (0–1)Score cosinus minimal pour qu'un document soit conservé. Plus le seuil est élevé, plus les documents retenus sont proches des narratifs. Valeur recommandée : 0.70.7
    top_kNombre de documents les plus similaires à conserver pour chaque narratif. Valeur recommandée entre 3 et 53
  6. 6

    (recommandé) Activer le reranker pour affiner les résultats.

  7. 7

    Cliquez sur Lancer.

✓ Résultat attendu

Seuls les documents dépassant le seuil de similarité sont conservés dans l'analyse filtrée. Le reranker fait office de juge pour déterminer les narratifs les plus pertinents.

Coordination

Objectif

Détecter les comportements coordonnés entre comptes (publication simultanée de contenus similaires) qui peuvent indiquer de l'astroturfing ou des campagnes orchestrées.

Prérequis

  • Avoir effectué la vectorisation sur l'analyse.

Étapes

  1. 1

    Dans Analyser des données, cliquez sur Coordination.

  2. 2

    Sélectionnez le Client, le Projet et l'Analyse.

  3. 3

    Configurez les paramètres :

    ChampDescriptionExemple
    Fenêtre temporelleUtilisé pour la prédiction de nouveaux points - Intervalle de temps (en jours) dans lequel deux publications similaires sont considérées comme coordonnées.7
    Seuil de similaritéScore cosinus minimal entre deux documents pour qu'ils soient considérés comme similaires.0.85
    Seuil de pondération temporelleIntervalle de temps dans lequel deux publications similaires sont considérées comme coordonnées.0.85
    Décroissance temporellePénalité de décroissance appliqué aux scores de similarité en fonction du temps écoulé entre deux publications.0.1
  4. 4

    (facultatif) - pour prédire de nouveaux points (ex : mise à jour d'une analyse de coordination déjà existante), activez le mode incrémental. Le seuil de pondération temporelle correspond à un intervalle de temps dans lequel deux publications similaires sont considérées comme coordonnées.

  5. 5

    Cliquez sur Lancer.

✓ Résultat attendu

Les données de coordination sont insérées en base. Un graphe de coordination peut être produit.

Réseaux de coordination

Objectif

Produire un network graph représentant les coordinations entre comptes et reprises de contenus similaires.

Prérequis

  • Avoir réalisé le calcul de coordination.

Étapes

  1. 1

    Dans Analyser des données, cliquez sur Coordination.

  2. 2

    Sélectionnez le Client, le Projet et l'Analyse.

  3. 3

    Sélectionnez les posts à inclure dans le graphe : période, type de posts.

  4. 4

    Ajuster le score de coordination minimum - plus la valeur est élevée, plus seules les coordinations fortes sont conservées. Augmentez la valeur pour filtrer le bruit ou être plus restrictif par rapport à la similarité des messages.
    coordination_score = similarity × coverage

    similarity (cosine moyen) : entre 0 et 1 — mesure à quel point le contenu des deux documents est sémantiquement proche

    coverage : entre 0 et 1 — proportion de chunks qui ont trouvé un match : (chunks_matchés_A + chunks_matchés_B) / (total_chunks_A + total_chunks_B)

  5. 5

    Configurez le(s) réseau(x) à produire via les trois sections ci-dessous.

  6. Référence des champs — Configuration réseau

    ChampDescriptionExemple
    periodGranularité temporelle des graphes produits. `static` = un seul graphe global ; les autres valeurs produisent un graphe par tranche de temps.static, day, week
    network_typeTypes de relations à modéliser : coordination entre posts ou entre comptes. Chaque type produit un fichier de graphe séparé.similarity_posts, similarity_accounts
    threshold_attributeAttribut de nœud utilisé pour le filtrage par seuil.degree
    thresholdValeur minimale de `threshold_attribute` pour qu'un nœud soit conservé dans le graphe.1
    max_nodesNombre maximal de nœuds conservés dans le graphe final (les nœuds les plus importants sont gardés).5000
    n_composantesNombre de composantes connexes à conserver. Entier = N composantes, décimal 0–1 = percentile de taille, vide = toutes.1.0
    min_nodes_composantesTaille minimale d'une composante connexe pour être incluse.3
    modularity_resolutionRésolution de l'algorithme de détection de communautés (Louvain). Plus élevée = communautés plus petites et nombreuses.1.0
    mutual_relationshipsSi activé, conserve uniquement les paires avec interactions mutuelles → réseau non directionnel.false
    compute_dynamic_metricsCalcule les métriques de centralité à chaque période temporelle. Désactiver accélère le traitement.true
    dynamic_nodesTrue = nœuds et liens varient par période. False = nœuds fixes, seuls les liens changent.true
    dynamic_filteringTrue = filtre les N nœuds les plus importants à chaque période. False = filtre calculé sur l'ensemble des données.true
  7. Référence des champs — Métriques

    ChampDescriptionExemple
    degreeNombre total de liens d'un nœud (entrant + sortant).
    in_degreeNombre de liens entrants (mentions reçues, réponses reçues…).
    out_degreeNombre de liens sortants (mentions émises, réponses émises…).
    degree_centralityCentralité de degré normalisée : part du degree total du nœud dans le réseau.
    in_degree_centralityCentralité de degré entrant normalisée.
    out_degree_centralityCentralité de degré sortant normalisée.
    betweenness_centralityFréquence à laquelle un nœud se trouve sur le chemin le plus court entre deux autres nœuds. Mesure le rôle de pont d'un compte.
    eigenvector_centralityCentralité de vecteur propre : un nœud est influent s'il est connecté à d'autres nœuds influents.
  8. Référence des champs — Visualisation (Sigma)

    ChampDescriptionExemple
    node_colorAttribut de nœud utilisé pour la couleur (ex : modularity = couleur par communauté).modularity
    node_size / node_size_rangeAttribut pilotant la taille des nœuds, et plage [min, max] en pixels.in_degree · [2, 15]
    node_label / node_label_sizeAttribut affiché comme label, et taille fixe ou variable (None = taille fixe définie par `default_node_label_size`).label · 12
    node_border_color_fromSource de la couleur de bordure du nœud (`node` = même couleur que le nœud, `None` = pas de bordure colorée).node
    node_halo_sizeAttribut pour la taille du halo autour du nœud. `None` = pas de halo.none
    edge_color / default_edge_colorAttribut pilotant la couleur des arêtes, ou couleur hexadécimale fixe si `edge_color` = None.none · #e1e1e1
    default_edge_typeForme des arêtes dans la visualisation Sigma.arrow / rectangle / line / curve / triangle
    edge_size / edge_size_rangeAttribut pilotant l'épaisseur des arêtes, et plage [min, max] en pixels.weight · [1, 15]
    background_colorCouleur de fond de la visualisation.white
    start_layoutDurée en secondes du calcul de layout ForceAtlas2 avant arrêt automatique.10.0
    label_densityNombre de labels affichés par cellule de grille. Réduire pour alléger l'affichage.1
    barnesHutTheta / barnesHutOptimizeParamètres de l'optimisation Barnes-Hut pour la répulsion (O(n·log n)). Theta ≈ 1.0 = rapide.1.5 · true
    gravity / scalingRatioAttraction vers le centre et échelle globale du layout. scalingRatio élevé = nœuds plus espacés.1.5 · 500
    linLogModeActive le modèle LinLog de Noack, qui favorise la séparation visuelle des communautés.true
    strongGravityModeActive une gravité linéaire qui attire les composantes isolées vers le centre.true
  9. 6

    Cliquez sur Lancer.

✓ Résultat attendu

Un fichier de network graph est disponible sur GCS.

Clustering

Objectif

Regrouper automatiquement les documents de l'analyse en clusters thématiques cohérents.

Prérequis

  • Avoir effectué le chunking.
  • Avoir effectué la vectorisation.
  • Avoir effectué la lemmatisation.
  • Avoir effectué l'analyse de sentiment.

Étapes

  1. 1

    Dans Analyser des données, cliquez sur Clustering.

  2. 2

    Sélectionnez le Client, le Projet et l'Analyse.

  3. 3

    Définissez le type de données à analyser : le texte des posts, les images, les transcripts de vidéo

  4. 4

    Définissez si tous les posts doivent être classés, ou si du bruit est accepté (posts considérés comme "inclassables")

  5. 5

    (facultatif) Ajustez les paramètres avancés du clustering :

    ChampDescriptionExemple
    Longueur min. du texteNombre de caractères minimum pour considérer les textes à classer.90
    Pourcentage de hashtags maxProportion de hashtags4
    Pourcentage de mentions maxProportion de mentions4
    n_neighborsUMAP - nombre de voisins15
    n_epochsUMAP - nombre d'epochs2500
    learning_rateUMAP - learning_rate0.5
    spreadUMAP - spread1.0
    min_distUMAP - min_dist0.0
    metric_umapUMAP - metriccosine
    random_stateEtat aléatoire42
    min_cluster_sizeHDBSCAN - min_cluster_sizeNone
    min_samplesHDBSCAN - min_samples6
    cluster_method_selectionHDBSCAN - cluster_method_selectioneom
    metric_hdbscanHDBSCAN - metrique de distanceeuclidean
  6. 6

    Cliquez sur Lancer.

✓ Résultat attendu

Les documents sont regroupés en clusters. Chaque document se voit assigner un `cluster_id`. Les clusters sont annotables depuis la section Annoter des clusters.

Annoter des clusters

Objectif

Attribuer automatiquement, à l'aide d'un LLM, un label thématique à chaque cluster produit par le clustering pour faciliter l'interprétation.

Prérequis

  • Avoir effectué le chunking.
  • Avoir effectué la vectorisation.
  • Avoir effectué la lemmatisation.
  • Avoir effectué l'analyse de sentiment.
  • Avoir lancé un clustering sur l'analyse.

Étapes

  1. 1

    Dans Analyser des données, cliquez sur Annotation des clusters.

  2. 2

    Sélectionnez le Client, le Projet et l'Analyse.

  3. 3

    Sélectionnez le type de données que l'on souhaite annoter : texte ou image

  4. 4

    Sélectionnez un template de prompt ou personnalisez le prompt pour l'annotation

  5. 5

    Cliquez sur Enregistrer après avoir annoté tous les clusters.

✓ Résultat attendu

Chaque cluster dispose d'un label lisible. Ces labels sont inclus dans les exports CSV et les rapports.