Dialectologie perceptive dans Potato : tâches de dessin sur carte et cartes de chaleur des chevauchements
Menez en ligne la tâche de dessin sur carte de Preston dans Potato : les participants délimitent et nomment des aires dialectales sur un fond de carte, et l'export les superpose en cartes de chaleur.
La dialectologie perceptive étudie où des non-linguistes situent les aires dialectales, et comment ils les nomment. Sa méthode la plus connue est la tâche de dessin sur carte (draw-a-map) de Dennis Preston, dans laquelle les participants tracent sur une carte vierge les contours des zones où, selon eux, les gens parlent différemment, et nomment chacune d'elles. Potato 2.12.0 exécute cette tâche en ligne avec le schéma geo_annotation et agrège les dessins de nombreux participants en cartes de chaleur avec l'export geo_overlap.
La superposition des cartes montre sur quelles zones les participants s'accordent et comment ils les appellent. L'implémentation de Potato lui est propre : les outils de dessin sur carte disponibles en ligne ne portent aucune licence, et Potato ne partage donc aucun code avec eux.
Essayer l'étude d'exemple
examples/advanced/dialect-map/ est une étude complète portant sur un pays fictif, l'Arventa, dont les contours des dix provinces sont synthétiques et ne ressemblent à aucune frontière réelle. Elle pose trois questions sur une même page :
- Tracez les zones où les gens parlent différemment (
task: draw) : contours à main levée ou polygones, une étiquette indiquant à quel point le parler semble différent, et un nom obligatoire pour chaque zone. - Où avez-vous grandi ? (
task: pin) : une seule épingle. - Comment sonne pour vous le parler de chaque province ? (
task: classify_region) : chaque province reçoit Sounds like home, Sounds different ou Don't know.
python potato/flask_server.py start examples/advanced/dialect-map/config.yaml -p 8000La carte ne nécessite aucune connexion réseau, et rien n'est récupéré auprès d'un serveur de tuiles.
Choisir un fond de carte
Utilisez un fond de carte que les participants reconnaîtront, sans les étiquettes dialectales ni les noms régionaux que vous cherchez à faire émerger, car une carte étiquetée oriente les réponses. Les limites d'États, de provinces ou de comtés sont le choix habituel.
- Placez le fichier dans le répertoire du projet et indiquez-le dans
basemap.geojson. Il est intégré à la page ; simplifiez-le donc d'abord, avec mapshaper, QGIS ou un outil similaire, jusqu'à quelques centaines de kilo-octets au plus. - Vérifiez la licence des données de limites avant de les mettre dans le projet. De nombreux instituts nationaux de statistique publient des fichiers de limites sous licence ouverte, et certains jeux de limites commerciaux ne peuvent pas être redistribués.
- Si le fichier écrit la latitude en premier, définissez
coordinate_order: latlon. - Les noms de régions présents dans le fond de carte (
region_name_property) sont affichés sur la carte. S'ils risquent d'orienter les participants, retirez cette propriété du fichier.
Configurer la question de dessin
- annotation_type: geo_annotation
name: dialect_areas
description: "Draw the areas where people speak differently"
task: draw
tools: [freehand, polygon]
labels:
- "A little different"
- "Very different"
- "Hard to understand"
feature_text:
prompt: "What do you call how people talk there?"
required: true
basemap:
geojson: maps/regions.geojson
label_requirement:
required: truetools: [freehand]seul est ce qui se rapproche le plus d'un dessin au stylo sur une carte papier. Les contours à main levée peuvent se recouper, et l'agrégat les remplit selon la règle pair-impair ; un huit compte donc comme ses deux boucles.- Une seule étiquette suffit si vous ne voulez que les zones et leurs noms. Davantage d'étiquettes permettent aux participants d'évaluer chaque zone au moment où ils la tracent : à quel point le parler est différent, agréable ou facile à comprendre.
feature_text.requiredimpose un nom à chaque zone avant Next, etmin_featuresetmax_featuresbornent le nombre de zones qu'un participant trace.
task: pin avec une étiquette par question enregistre des lieux comme le lieu de naissance ou de résidence actuelle, dont vous aurez généralement besoin pour regrouper les dessins. task: classify_region demande un jugement par région et produit une carte choroplèthe au lieu de contours libres. Cartes décrit toutes les options.
Cartes de chaleur des chevauchements
python -m potato.export --config config.yaml --format geo_overlap --output out/Pour chaque item et chaque schéma de dessin, l'export pose une grille régulière en longitude/latitude sur le fond de carte, ou sur les dessins s'il n'y a pas de fond de carte. Pour chaque étiquette, la part d'une cellule est la fraction des répondants ayant au moins un polygone de cette étiquette dont le contour contient le centre de la cellule. Les répondants sont les participants qui ont tracé au moins un polygone dans ce schéma sur cet item, et un participant compte une seule fois par cellule, quel que soit le nombre de ses polygones qui s'y chevauchent.
| Fichier | Contenu |
|---|---|
geo_overlap/<item>__<schema>__<group>.geojson | Un polygone carré par cellule couverte, avec count, respondents, share, row, col, ainsi que l'item, le schéma et le groupe |
geo_overlap/<item>__<schema>__<group>.png | Un aperçu, avec les cellules couvertes ombrées du clair (peu de répondants) au foncé (tous les répondants) et le fond de carte en gris |
geo_overlap_summary.csv | Une ligne par carte de chaleur : répondants, polygones, cellules couvertes, part la plus élevée, taille et étendue de la grille |
geo_names.csv | Chaque entité tracée : participant, item, étiquette, nom tel que saisi, forme normalisée, type de géométrie, superficie en km² et un point d'étiquette |
geo_name_counts.csv | Par schéma, étiquette et nom normalisé, le nombre de participants qui l'ont utilisé |
geo_regions.csv | Pour les schémas classify_region, par région et par étiquette, le nombre de participants qui l'ont choisie et la part correspondante |
| Option | Valeur par défaut | Signification |
|---|---|---|
group_by | label | label, text (le nom normalisé) ou label_text (les deux) |
cells | 100 | Nombre de cellules le long du plus grand côté de l'étendue |
cell_size | aucune | Taille des cellules en degrés, qui remplace cells |
extent | limites du fond de carte | min_lon,min_lat,max_lon,max_lat |
schema | tous | Exporte un seul schéma |
Les cellules sont égales en degrés, et non en superficie. À l'échelle d'un pays, la différence est faible, et les cellules GeoJSON portent les coordonnées de leurs coins, de sorte qu'un SIG peut les reprojeter. L'aperçu PNG est en plate carrée ; il paraît donc plus large que la carte en Web Mercator affichée sur la page.
Le regroupement par nom ne réunit deux zones que lorsque leurs noms normalisés coïncident, après neutralisation de la casse et réduction des espaces. geo_name_counts.csv montre les graphies employées par les participants. Pour fusionner des variantes comme "Southern", "the south" et "southern drawl", recodez geo_names.csv et agrégez vous-même les polygones, ou demandez plutôt aux participants de choisir parmi des étiquettes. Les points et les lignes ne sont pas agrégés, et une carte de chaleur dont la part vaut 1,0 partout où elle est ombrée signifie qu'un seul participant a tracé cette étiquette.
L'export geojson écrit chaque dessin avec son participant et son item, pour l'analyse dans QGIS, R (sf) ou Python (geopandas).
Pour aller plus loin
- Cartes - Toutes les options, fonds de carte et contrôles de
geo_annotation - Terrain linguistique - Glose interlinéaire, FLEx et Toolbox
- Mener des expériences comportementales en ligne - Recruter et sélectionner les participants
Pour les détails d'implémentation, consultez la documentation source.