{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# Calcular el acuerdo entre dos anotadores\n",
        "\n",
        "Cuaderno de apoyo al [taller sobre acuerdo entre anotadores](https://www.maquinashablantes.com/taller/acuerdo-entre-anotadores). Primero calcula kappa con los datos de ejemplo; después sustituye las listas por tus etiquetas, manteniendo cada par en la misma posición."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 1. Instalar scikit-learn"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "!pip -q install scikit-learn"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 2. Calcular kappa de Cohen"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "from sklearn.metrics import cohen_kappa_score, confusion_matrix\n",
        "\n",
        "ana = [\"pos\"] * 25 + [\"neg\"] * 25\n",
        "bea = [\"pos\"] * 20 + [\"neg\"] * 5 + [\"pos\"] * 10 + [\"neg\"] * 15\n",
        "\n",
        "kappa = cohen_kappa_score(ana, bea)\n",
        "print(\"Kappa:\", kappa)\n",
        "print(\"Coincidencias observadas:\", sum(a == b for a, b in zip(ana, bea)), \"de\", len(ana))\n",
        "print(\"Matriz de confusión:\\n\", confusion_matrix(ana, bea, labels=[\"pos\", \"neg\"]))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 3. Sustituye los datos\n",
        "\n",
        "Usa las mismas unidades y el mismo orden para ambas anotadoras. Las etiquetas deben coincidir con tus categorías. Kappa resume el acuerdo corregido por el acuerdo esperable al azar; no explica por sí sola por qué hay desacuerdos."
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}
