Last active
June 3, 2025 21:52
-
-
Save patcon/c58e72380f259442336770cac3c2e235 to your computer and use it in GitHub Desktop.
polis-data-difference-between-csv-and-api.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "nbformat": 4, | |
| "nbformat_minor": 0, | |
| "metadata": { | |
| "colab": { | |
| "provenance": [], | |
| "authorship_tag": "ABX9TyO11rrJsw+DGZPVjPGnDhNB", | |
| "include_colab_link": true | |
| }, | |
| "kernelspec": { | |
| "name": "python3", | |
| "display_name": "Python 3" | |
| }, | |
| "language_info": { | |
| "name": "python" | |
| } | |
| }, | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "view-in-github", | |
| "colab_type": "text" | |
| }, | |
| "source": [ | |
| "<a href=\"https://colab.research.google.com/gist/patcon/c58e72380f259442336770cac3c2e235/polis-data-difference-between-csv-and-api.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "%pip install --quiet --no-cache-dir git+https://github.com/polis-community/red-dwarf.git@2025-06-02-patcon" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "_D0y7bhAg5zt", | |
| "outputId": "1b215ada-2ee9-4a0b-f161-321ade3cea81" | |
| }, | |
| "execution_count": 1, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| " Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", | |
| " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", | |
| " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", | |
| "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m116.1/116.1 kB\u001b[0m \u001b[31m11.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", | |
| "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m161.7/161.7 kB\u001b[0m \u001b[31m95.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", | |
| "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m61.4/61.4 kB\u001b[0m \u001b[31m127.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", | |
| "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m69.2/69.2 kB\u001b[0m \u001b[31m182.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", | |
| "\u001b[?25h Building wheel for red-dwarf (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "from reddwarf.data_loader import Loader\n", | |
| "from reddwarf.data_presenter import generate_figure_polis, print_selected_statements\n", | |
| "from reddwarf.implementations.polis import run_clustering\n", | |
| "from reddwarf.utils.polismath import get_corrected_centroid_guesses\n", | |
| "from reddwarf.utils.statements import process_statements\n", | |
| "\n", | |
| "# So far, this is the only conversation for which this happens. There are likely others.\n", | |
| "REPORT_ID = \"r6ipxzfudddppwesbmtmn\" # initial bug. works now!\n", | |
| "# REPORT_ID = \"r8jhyfp54cyanhu26cz3v\" # works now!\n", | |
| "# REPORT_ID = \"r2dtdbwbsrzu8bj8wmpmc\" # works! with force k\n", | |
| "# REPORT_ID = \"r7dr5tzke7pbpbajynkv8\" # very high is_meta count. works! if unflip X on guesses, and force k to keep mono-cluster.\n", | |
| "print(f\"For this conversation: https://pol.is/report/{REPORT_ID}\")\n", | |
| "\n", | |
| "def run_algo_from_data_source(data_source: str):\n", | |
| " loader = Loader(polis_id=REPORT_ID, data_source=data_source)\n", | |
| " loader.load_api_data_report()\n", | |
| " loader.conversation_id = loader.report_data[\"conversation_id\"]\n", | |
| " loader.load_api_data_math()\n", | |
| "\n", | |
| " init_cluster_center_guesses = get_corrected_centroid_guesses(\n", | |
| " loader.math_data,\n", | |
| " flip_x=True,\n", | |
| " flip_y=True,\n", | |
| " )\n", | |
| "\n", | |
| " _, _, mod_out_statement_ids, meta_statement_ids = process_statements(\n", | |
| " statement_data=loader.comments_data,\n", | |
| " )\n", | |
| "\n", | |
| " result = run_clustering(\n", | |
| " votes=loader.votes_data,\n", | |
| " mod_out_statement_ids=mod_out_statement_ids,\n", | |
| " meta_statement_ids=meta_statement_ids,\n", | |
| " # If k is ready to change and is being held back by k-smoothing, might need to force k\n", | |
| " # force_group_count=len(init_cluster_center_guesses),\n", | |
| " keep_participant_ids=loader.math_data[\"in-conv\"],\n", | |
| " init_centers=init_cluster_center_guesses,\n", | |
| " )\n", | |
| "\n", | |
| " return loader, result" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "__bTDkHigtkK", | |
| "outputId": "3dec7c71-5942-481b-8e02-f4f051119b36" | |
| }, | |
| "execution_count": 74, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "For this conversation: https://pol.is/report/r6ipxzfudddppwesbmtmn\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "# From API data\n", | |
| "\n", | |
| "This should look exactly like the participation view and the report. If they do, selected statements will also be identical." | |
| ], | |
| "metadata": { | |
| "id": "I0U8f2LzgnWo" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 75, | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 433 | |
| }, | |
| "id": "lpq6PfCQgOw1", | |
| "outputId": "d2a5cd4a-9beb-4e27-9cca-34ca1d0f664a" | |
| }, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "Calculating convex hulls around clusters...\n", | |
| "Hull 0, bounding 11 points\n", | |
| "Hull 1, bounding 10 points\n", | |
| "Hull 2, bounding 6 points\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 560x400 with 2 Axes>" | |
| ], | |
| "image/png": "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\n" | |
| }, | |
| "metadata": {} | |
| } | |
| ], | |
| "source": [ | |
| "loader_api, result_api = run_algo_from_data_source(data_source=\"api\")\n", | |
| "generate_figure_polis(result=result_api, show_guesses=True, flip_x=True)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "print_selected_statements(\n", | |
| " result=result_api,\n", | |
| " statements_data=loader_api.comments_data,\n", | |
| ")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "4IHZGGFtgTgw", | |
| "outputId": "e47f1312-22e2-424d-d9c9-13514f11f2e7" | |
| }, | |
| "execution_count": 76, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "# CONSENSUS STATEMENTS\n", | |
| "\n", | |
| "## FOR AGREEMENT\n", | |
| "\n", | |
| "* Systematické kurikulárne vzdelávanie k demokracii, diskusii a k ich prínosom a výzvam.\n", | |
| " 96% of everyone who voted on statement 27 agreed.\n", | |
| "\n", | |
| "* Právo prejavu je garantované ústavou.\n", | |
| " 96% of everyone who voted on statement 19 agreed.\n", | |
| "\n", | |
| "* Zbaviť sa pocitu vlastnej neomylnosti, naučiť sa počúvať a formulovať argumenty nedefenzívnym spôsobom\n", | |
| " 96% of everyone who voted on statement 30 agreed.\n", | |
| "\n", | |
| "* Ak platí sloboda prejavu pre jednotlivca, musí platiť aj pre skupiny a organizácie.\n", | |
| " 92% of everyone who voted on statement 17 agreed.\n", | |
| "\n", | |
| "* Formulovať zrozumiteľné posolstvá\n", | |
| " 91% of everyone who voted on statement 47 agreed.\n", | |
| "\n", | |
| "## FOR DISAGREEMENT\n", | |
| "\n", | |
| "None.\n", | |
| "\n", | |
| "\n", | |
| "# GROUP-REPRESENTATIVE STATEMENTS\n", | |
| "\n", | |
| "## GROUP A\n", | |
| "\n", | |
| "* Ak sme súčasťou ver. života, máme právo sa vyjadrovať k ver. politikám, k využitiu ver. zdrojov a k demokracii. V tom je politikum.\n", | |
| " 100% of those in group A who voted on statement 52 agreed.\n", | |
| "\n", | |
| "* nedôveru spôsobuje agresívna komunikácia niektorých mimovládok\n", | |
| " 90% of those in group A who voted on statement 34 disagreed.\n", | |
| "\n", | |
| "* mimovládky si často konkurujú a spôsobuje to nedôveru\n", | |
| " 81% of those in group A who voted on statement 22 disagreed.\n", | |
| "\n", | |
| "* Mám pocit, že mimovládky sú neraz závislé od vôle sponzorov-\n", | |
| " 72% of those in group A who voted on statement 7 disagreed.\n", | |
| "\n", | |
| "\n", | |
| "## GROUP B\n", | |
| "\n", | |
| "* Nezávislosť je mýtus.\n", | |
| " 66% of those in group B who voted on statement 15 agreed.\n", | |
| "\n", | |
| "* nedôveru spôsobuje agresívna komunikácia niektorých mimovládok\n", | |
| " 70% of those in group B who voted on statement 34 agreed.\n", | |
| "\n", | |
| "* mno slabo propagujú svoju činnosť\n", | |
| " 80% of those in group B who voted on statement 14 agreed.\n", | |
| "\n", | |
| "* často nie je jasné, za akým účelom mno vznikla a čo robí\n", | |
| " 100% of those in group B who voted on statement 16 agreed.\n", | |
| "\n", | |
| "* mimovládky si často konkurujú a spôsobuje to nedôveru\n", | |
| " 75% of those in group B who voted on statement 22 agreed.\n", | |
| "\n", | |
| "\n", | |
| "## GROUP C\n", | |
| "\n", | |
| "* Priradiť váhu kritérií pri vyjadrovaní sa.\n", | |
| " 100% of those in group C who voted on statement 40 agreed.\n", | |
| "\n", | |
| "* Nezávisloť je primárny predpoklad, nedokazuje sa.\n", | |
| " 100% of those in group C who voted on statement 39 agreed.\n", | |
| "\n", | |
| "* MNO zo zákona nemozu vyvíjať politickú činnosť\n", | |
| " 100% of those in group C who voted on statement 12 agreed.\n", | |
| "\n", | |
| "* Nezávislosť je to, že nepotrebujem dónora\n", | |
| " 80% of those in group C who voted on statement 28 agreed.\n", | |
| "\n", | |
| "* Na negatívnom vnímaní mimovládok majú aj ony svoj podiel viny.\n", | |
| " 100% of those in group C who voted on statement 5 agreed.\n", | |
| "\n", | |
| "\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "# From CSV data\n", | |
| "\n", | |
| "This looks different for some reason.\n", | |
| "\n", | |
| "The statements selected should be identical, but they might change if kmeans finds diff group membership as the projections shift." | |
| ], | |
| "metadata": { | |
| "id": "LkKKuWCxhGzS" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "loader_csv, result_csv = run_algo_from_data_source(data_source=\"csv_export\")\n", | |
| "generate_figure_polis(result=result_csv, show_guesses=True, flip_x=True)" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 489 | |
| }, | |
| "id": "uLoErunPhItH", | |
| "outputId": "cdd7ded4-2ee4-46d1-cc9a-9b96b0072095" | |
| }, | |
| "execution_count": 77, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stderr", | |
| "text": [ | |
| "/usr/local/lib/python3.11/dist-packages/reddwarf/data_loader.py:130: UserWarning: CSV import is missing is_meta field. Attempting to load comments data from API instead...\n", | |
| " warnings.warn(\"CSV import is missing is_meta field. Attempting to load comments data from API instead...\")\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "Calculating convex hulls around clusters...\n", | |
| "Hull 0, bounding 11 points\n", | |
| "Hull 1, bounding 10 points\n", | |
| "Hull 2, bounding 6 points\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 560x400 with 2 Axes>" | |
| ], | |
| "image/png": "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\n" | |
| }, | |
| "metadata": {} | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "print_selected_statements(\n", | |
| " result=result_csv,\n", | |
| " statements_data=loader_csv.comments_data,\n", | |
| ")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "ngdkb70YiOJK", | |
| "outputId": "21b669bd-6ca2-4e90-a564-c0122712dbc9" | |
| }, | |
| "execution_count": 78, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "# CONSENSUS STATEMENTS\n", | |
| "\n", | |
| "## FOR AGREEMENT\n", | |
| "\n", | |
| "* Systematické kurikulárne vzdelávanie k demokracii, diskusii a k ich prínosom a výzvam.\n", | |
| " 96% of everyone who voted on statement 27 agreed.\n", | |
| "\n", | |
| "* Právo prejavu je garantované ústavou.\n", | |
| " 96% of everyone who voted on statement 19 agreed.\n", | |
| "\n", | |
| "* Zbaviť sa pocitu vlastnej neomylnosti, naučiť sa počúvať a formulovať argumenty nedefenzívnym spôsobom\n", | |
| " 96% of everyone who voted on statement 30 agreed.\n", | |
| "\n", | |
| "* Ak platí sloboda prejavu pre jednotlivca, musí platiť aj pre skupiny a organizácie.\n", | |
| " 92% of everyone who voted on statement 17 agreed.\n", | |
| "\n", | |
| "* Formulovať zrozumiteľné posolstvá\n", | |
| " 91% of everyone who voted on statement 47 agreed.\n", | |
| "\n", | |
| "## FOR DISAGREEMENT\n", | |
| "\n", | |
| "None.\n", | |
| "\n", | |
| "\n", | |
| "# GROUP-REPRESENTATIVE STATEMENTS\n", | |
| "\n", | |
| "## GROUP A\n", | |
| "\n", | |
| "* Ak sme súčasťou ver. života, máme právo sa vyjadrovať k ver. politikám, k využitiu ver. zdrojov a k demokracii. V tom je politikum.\n", | |
| " 100% of those in group A who voted on statement 52 agreed.\n", | |
| "\n", | |
| "* nedôveru spôsobuje agresívna komunikácia niektorých mimovládok\n", | |
| " 90% of those in group A who voted on statement 34 disagreed.\n", | |
| "\n", | |
| "* mimovládky si často konkurujú a spôsobuje to nedôveru\n", | |
| " 81% of those in group A who voted on statement 22 disagreed.\n", | |
| "\n", | |
| "* Mám pocit, že mimovládky sú neraz závislé od vôle sponzorov-\n", | |
| " 72% of those in group A who voted on statement 7 disagreed.\n", | |
| "\n", | |
| "\n", | |
| "## GROUP B\n", | |
| "\n", | |
| "* Nezávislosť je mýtus.\n", | |
| " 66% of those in group B who voted on statement 15 agreed.\n", | |
| "\n", | |
| "* nedôveru spôsobuje agresívna komunikácia niektorých mimovládok\n", | |
| " 70% of those in group B who voted on statement 34 agreed.\n", | |
| "\n", | |
| "* mno slabo propagujú svoju činnosť\n", | |
| " 80% of those in group B who voted on statement 14 agreed.\n", | |
| "\n", | |
| "* často nie je jasné, za akým účelom mno vznikla a čo robí\n", | |
| " 100% of those in group B who voted on statement 16 agreed.\n", | |
| "\n", | |
| "* mimovládky si často konkurujú a spôsobuje to nedôveru\n", | |
| " 75% of those in group B who voted on statement 22 agreed.\n", | |
| "\n", | |
| "\n", | |
| "## GROUP C\n", | |
| "\n", | |
| "* Priradiť váhu kritérií pri vyjadrovaní sa.\n", | |
| " 100% of those in group C who voted on statement 40 agreed.\n", | |
| "\n", | |
| "* Nezávisloť je primárny predpoklad, nedokazuje sa.\n", | |
| " 100% of those in group C who voted on statement 39 agreed.\n", | |
| "\n", | |
| "* MNO zo zákona nemozu vyvíjať politickú činnosť\n", | |
| " 100% of those in group C who voted on statement 12 agreed.\n", | |
| "\n", | |
| "* Nezávislosť je to, že nepotrebujem dónora\n", | |
| " 80% of those in group C who voted on statement 28 agreed.\n", | |
| "\n", | |
| "* Na negatívnom vnímaní mimovládok majú aj ony svoj podiel viny.\n", | |
| " 100% of those in group C who voted on statement 5 agreed.\n", | |
| "\n", | |
| "\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# Compare the loaders\n", | |
| "\n", | |
| "# Same number of votes\n", | |
| "assert len(loader_api.votes_data) == len(loader_csv.votes_data)\n", | |
| "\n", | |
| "# Same number of non-zero/non-missing votes again\n", | |
| "assert result_api.raw_vote_matrix.astype(bool).sum().sum() == result_csv.raw_vote_matrix.astype(bool).sum().sum()\n", | |
| "\n", | |
| "# Not true at all\n", | |
| "# assert result_api.filtered_vote_matrix.astype(bool).sum().sum() == result_csv.filtered_vote_matrix.astype(bool).sum().sum()\n", | |
| "\n", | |
| "# Very different. Why?\n", | |
| "print(f\"{result_api.filtered_vote_matrix.astype(bool).sum().sum()=}\")\n", | |
| "print(f\"{result_csv.filtered_vote_matrix.astype(bool).sum().sum()=}\")\n", | |
| "print()\n", | |
| "\n", | |
| "# Count of non-zero entries per statement.\n", | |
| "print(f\"{result_api.filtered_vote_matrix.astype(bool).sum(axis=0).tolist()=}\")\n", | |
| "print(f\"{result_csv.filtered_vote_matrix.astype(bool).sum(axis=0).tolist()=}\")\n", | |
| "print()\n", | |
| "\n", | |
| "_, _, mod_out_statement_ids_api, _ = process_statements(statement_data=loader_api.comments_data)\n", | |
| "_, _, mod_out_statement_ids_csv, _ = process_statements(statement_data=loader_csv.comments_data)\n", | |
| "print(f\"{mod_out_statement_ids_api=}\")\n", | |
| "print(f\"{mod_out_statement_ids_csv=}\")\n", | |
| "print()\n", | |
| "\n", | |
| "print(f\"{loader_api.comments_data[0]['is_meta']=}\")\n", | |
| "print(f\"{loader_csv.comments_data[0]['is_meta']=}\")\n", | |
| "\n", | |
| "# Seems that is_meta isn't being set when imported from CSV, likely due to column being called is-meta now." | |
| ], | |
| "metadata": { | |
| "id": "HN2Bs7iEvRlW", | |
| "outputId": "1e9862ba-5a85-4e62-dc18-d9ba4a283b1c", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| } | |
| }, | |
| "execution_count": 79, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "result_api.filtered_vote_matrix.astype(bool).sum().sum()=np.int64(1176)\n", | |
| "result_csv.filtered_vote_matrix.astype(bool).sum().sum()=np.int64(1176)\n", | |
| "\n", | |
| "result_api.filtered_vote_matrix.astype(bool).sum(axis=0).tolist()=[0, 0, 0, 0, 22, 23, 20, 20, 19, 24, 23, 16, 19, 22, 22, 19, 24, 25, 21, 26, 23, 20, 25, 17, 24, 19, 23, 26, 22, 24, 27, 22, 23, 23, 24, 20, 23, 23, 19, 18, 15, 21, 21, 22, 22, 22, 21, 25, 24, 25, 25, 22, 25, 17, 26, 26, 27]\n", | |
| "result_csv.filtered_vote_matrix.astype(bool).sum(axis=0).tolist()=[0, 0, 0, 0, 22, 23, 20, 20, 19, 24, 23, 16, 19, 22, 22, 19, 24, 25, 21, 26, 23, 20, 25, 17, 24, 19, 23, 26, 22, 24, 27, 22, 23, 23, 24, 20, 23, 23, 19, 18, 15, 21, 21, 22, 22, 22, 21, 25, 24, 25, 25, 22, 25, 17, 26, 26, 27]\n", | |
| "\n", | |
| "mod_out_statement_ids_api=[0, 1, 2, 3]\n", | |
| "mod_out_statement_ids_csv=[0, 1, 2, 3]\n", | |
| "\n", | |
| "loader_api.comments_data[0]['is_meta']=True\n", | |
| "loader_csv.comments_data[0]['is_meta']=True\n" | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment