

# Comment vérifier l'accord entre deux codeurs de commentaires Reddit

Faites appliquer indépendamment par deux codeurs la même règle écrite aux mêmes unités de commentaire, puis comparez leurs décisions enregistrées avant qu'ils discutent des désaccords. Un Actor est un programme hébergé de collecte de données. Une Task est un préréglage d'entrée enregistré. Le kappa de Cohen est un score qui mesure à quel point deux personnes sont d'accord au-delà du hasard.

## Préparer votre échantillon de commentaires

Commencez par collecter des fils publics avec un outil de collecte connu. La version publique 1.0.7 de Reddit Comments accepte postUrls avec 1 à 50 URL publiques connues de publications Reddit, et maxCommentsPerPost de 1 à 500. Remplacez le fil d'exemple et changez le plafond enregistré de 250 à 3 pour un pilote.

Examinez les champs OUTPUT, notamment `commentsSaved`, `duplicatesSkipped`, `hiddenBranchesRemaining`, `completionReason`, `status`, `isComplete`, `inputResults`, ainsi que, pour chaque entrée, `commentsFound`, `commentsSaved`, `status` et `reason`. Traitez l'achèvement du traitement séparément de la couverture complète du fil.

Extrayez les champs du jeu de données, notamment `postId`, `commentId`, `body`, `authorName`, `status`, `statusReason` et `observedAt`. Les seules valeurs de statut du jeu de données sont `ok`, `deleted` et `removed`. Laissez hors des unités de codage utilisables le texte indisponible, supprimé ou retiré, les identifiants manquants et les échecs de collecte. Conservez-les dans un registre distinct des décisions manquantes. Comptez les identifiants connus distincts dans votre tableau de travail, plutôt que de chercher un champ de sortie de commentaires uniques.

Le contrôle actuel AskMarketing de la version publique 1.0.7 a renvoyé 3 identifiants de commentaires connus distincts et des corps non vides, et non l'échantillon LocalLLaMA enregistré. Le traitement avec isComplete true coexiste avec une entrée partielle ou plafonnée, ce qui prouve un échantillon pilote plutôt qu'une couverture complète du fil. Parent, depth et hiddenBranchesRemaining valaient null et ne sont pas utilisés pour cette méthode de codeur.

## Huit étapes pour le codage indépendant et les contrôles d'accord

1. Énoncez votre question de recherche et une version étroite de règle binaire, par exemple explicit_current_failure, ainsi que des exemples positifs, négatifs et ambigus.
2. Choisissez le même échantillon public fini pour les deux codeurs et inscrivez les identifiants de commentaires connus et les URL sources dans un registre de travail privé.
3. Retirez le texte inutilisable de l'échantillon éligible, avec des raisons explicites, et consignez ces raisons dans un registre des décisions manquantes.
4. Donnez à chaque codeur le même texte et le même contexte, la même version de règle et une feuille de décision séparée, pour qu'il marque de façon indépendante sans voir le travail de l'autre, en autorisant inconnu.
5. Joignez les deux feuilles de décision par l'identifiant d'unité de commentaire contrôlé, et gardez les décisions inconnues, absentes et non valides dans le registre des décisions manquantes.
6. Construisez un tableau deux par deux à partir des seules unités connues appariées, puis calculez l'accord observé, l'accord attendu et le kappa de Cohen.
7. Après la passe indépendante, revoyez les désaccords dans leur contexte source pour clarifier la règle, en gardant l'arbitrage séparé de la statistique initiale.
8. Enregistrez sans changement les feuilles indépendantes d'origine, donnez une version à la règle révisée et testez-la sur un échantillon nouveau ou sur un échantillon recodé déclaré explicitement.

## Rédiger la règle et mener le codage indépendant

Énoncez votre question de recherche et une seule règle binaire étroite. Dans ce guide, le code est explicit_current_failure. Marquez oui pour une défaillance actuelle de produit qui est énoncée, et non pour un texte qui n'en énonce pas. Fournissez à vos codeurs des exemples positifs, négatifs et ambigus. Autorisez inconnu lorsque le texte ou la cible ne permet pas de trancher.

Choisissez le même échantillon public fini pour les deux codeurs. Conservez les identifiants de commentaires connus et les URL sources dans un registre de travail privé. Définissez un commentaire entier comme une unité de codage. Retirez le texte inutilisable de l'échantillon éligible avec des raisons explicites. Donnez à chaque codeur le [même texte et le même contexte](/fr/articles/comment-verifier-la-cible-dune-reponse-reddit/), la même version de la règle et une feuille de décision séparée. Les codeurs ne doivent pas voir les décisions les uns des autres pendant cette passe. Les codeurs peuvent marquer inconnu ; n'imposez pas un choix oui ou non.

## Calculer l'accord et le kappa

Joignez les deux feuilles de décision par l'identifiant de l'unité de commentaire contrôlée. Notez la décision du codeur A, la décision du codeur B, la version de la règle et le fait que les deux décisions sont connues ou non. Une source absente d'une feuille n'est pas un désaccord. Construisez un tableau deux par deux à partir des seules unités connues appariées.

L'accord observé, noté p_o, correspond aux deux effectifs de la diagonale divisés par n. L'accord attendu, noté p_e, est la somme des produits des proportions marginales correspondantes des codeurs. Le kappa de Cohen se calcule comme (p_o moins p_e) divisé par (1 moins p_e), lorsque le dénominateur n'est pas nul. Cette attente provient de ces marges de codeurs, et non d'une étiquette de vérité connue pour la population.

## Exemple d'audit fictif et registres de décisions

Tous les commentaires, toutes les décisions et tous les effectifs ci-dessous sont une fiction originale. Supposons 22 unités de texte éligibles. Vingt unités ont deux décisions indépendantes connues, une a le codeur A en inconnu, et une a le codeur B absent. Seules 20 unités entrent dans le tableau d'accord.

### Registre fictif des décisions manquantes

| ID d'unité | Codeur A | Codeur B | Version de la règle | Paire connue | Motif d'exclusion |
| --- | --- | --- | --- | --- | --- |
| cmt_fictional_01 | inconnu | oui | v1.0 | false | Décision du codeur A : inconnu |
| cmt_fictional_02 | non | absent | v1.0 | false | Décision du codeur B : absente |

Ce registre détaille les 2 lacunes de décision exclues sur 22 unités sources éligibles, ce qui laisse 20 unités à paire connue pour entrer dans le tableau d'accord. Les décisions manquantes ne sont pas des désaccords et restent hors du dénominateur où n est égal à 20.

### Tableau d'accord principal (20 unités appariées)

| Codeur A | Codeur B oui | Codeur B non | Total de ligne |
| --- | --- | --- | --- |
| Oui | 8 | 2 | 10 |
| Non | 1 | 9 | 10 |
| Total de colonne | 9 | 11 | 20 |

Les marges du codeur A montrent 10 oui et 10 non. Les marges du codeur B montrent 9 oui et 11 non. Dix-sept des 20 décisions appariées concordent, ce qui donne un accord observé p_o égal à 0,85.

L'accord attendu p_e se calcule comme (10 divisé par 20 fois 9 divisé par 20) plus (10 divisé par 20 fois 11 divisé par 20), ce qui est égal à 0,50.

Le kappa de Cohen est (0,85 moins 0,50) divisé par (1 moins 0,50), ce qui est égal à 0,70.

Trois désaccords appariés et deux lacunes de décision exclues restent séparés. Ce petit cas de test source n'étiquette aucun client réel et ne prouve pas que le code est correct.

### Exemples de textes de commentaires et traitement par la règle

- Commentaire avec accord sur oui : « La synchronisation du calendrier échoue chaque matin. » (Énonce directement un défaut actuel).
- Commentaire avec accord sur non : « La couleur du calendrier est bleue. » (N'énonce pas de défaut).
- Commentaire de souhait ambigu : « J'aimerais que la synchronisation du calendrier fonctionne. » (Cela peut exprimer un défaut actuel ou une capacité souhaitée ; cela ne prouve pas que l'auteur demande une fonction. Conservez le choix inconnu ou ambigu, puis le contexte ou la clarification ultérieure de la règle, sans imposer une intention).

### Tableau diagnostique un (accord élevé, kappa faible)

| Codeur A | Codeur B oui | Codeur B non | Total de ligne |
| --- | --- | --- | --- |
| Oui | 18 | 1 | 19 |
| Non | 1 | 0 | 1 |
| Total de colonne | 19 | 1 | 20 |

Marges des codeurs : le codeur A a 19 oui et 1 non. Le codeur B a 19 oui et 1 non. Le total d'unités n est égal à 20. L'accord observé p_o est égal à 0,90. L'accord attendu p_e est égal à 0,905. Le kappa est égal à moins 1 divisé par 19, soit environ -0,05263.

### Tableau diagnostique deux (kappa non défini)

| Codeur A | Codeur B oui | Codeur B non | Total de ligne |
| --- | --- | --- | --- |
| Oui | 20 | 0 | 20 |
| Non | 0 | 0 | 0 |
| Total de colonne | 20 | 0 | 20 |

Marges des codeurs : le codeur A a 20 oui et 0 non. Le codeur B a 20 oui et 0 non. Le total d'unités n est égal à 20. L'accord observé p_o et l'accord attendu p_e sont tous les deux égaux à 1. Cela rend le kappa non défini. N'appelez pas une valeur non définie un kappa parfait et n'inventez pas de seuil universel de réussite.

## Revoir les désaccords et réviser les règles

Lisez les désaccords dans leur contexte source après la passe indépendante. Pour le commentaire de souhait, la règle peut être lue comme un défaut actuel ou comme une fonction souhaitée. Notez le désaccord et clarifiez le texte de la règle. L'arbitrage est une décision conjointe ultérieure, et non une partie de la statistique d'accord d'origine.

Conservez sans modification les feuilles indépendantes d'origine et le tableau. Donnez une version à la règle révisée et testez-la sur un échantillon nouveau ou sur un échantillon recodé déclaré explicitement. Remettez le tableau d'accord, le registre des décisions manquantes et les changements concrets de la règle avant d'appliquer le code plus largement.

## Action suivante

Donnez à deux codeurs le même petit échantillon et comparez leurs feuilles indépendantes avant toute discussion. Pour lancer votre collecte pilote, copiez l'entrée de la Task dans la plateforme Apify, mettez à jour la liste `postUrls` avec votre fil public connu, réglez `maxCommentsPerPost` sur 3, puis exécutez le [Reddit Comments Scraper Actor](https://apify.com/chronometrica/reddit-comments-scraper) avec la [Reddit Conversation Analysis Data Task](https://apify.com/chronometrica/reddit-comments-scraper/examples/reddit-conversation-analysis-data).

## Sources et lectures complémentaires

- [https://online.stat.psu.edu/stat509/Lesson07#713-cohens-kappa-statistic-for-measuring-agreement](https://online.stat.psu.edu/stat509/Lesson07#713-cohens-kappa-statistic-for-measuring-agreement)
- [https://online.stat.psu.edu/stat504/Lesson11](https://online.stat.psu.edu/stat504/Lesson11)
- [https://www.reddit.com/r/ProductMarketing/comments/1liklfb/best_tactics_for_customer_research/](https://www.reddit.com/r/ProductMarketing/comments/1liklfb/best_tactics_for_customer_research/)
- [https://www.reddit.com/r/SaaS/comments/1tb26ri/customer_research_on_reddit/](https://www.reddit.com/r/SaaS/comments/1tb26ri/customer_research_on_reddit/)