Skip to content

Dialectología perceptiva en Potato: tareas de dibujo en mapa y mapas de calor de solapamiento

Realiza en línea la tarea de dibujo en mapa de Preston con Potato: los participantes delimitan y nombran zonas dialectales sobre un mapa mudo, y la exportación las superpone como mapas de calor.

La dialectología perceptiva estudia dónde creen los no lingüistas que están las zonas dialectales y cómo las llaman. Su método más conocido es la tarea de dibujo en mapa (draw-a-map) de Dennis Preston, en la que los participantes delimitan sobre un mapa en blanco las zonas donde creen que la gente habla de otra manera y ponen nombre a cada una. Potato 2.12.0 ejecuta la tarea en línea con el esquema geo_annotation y agrega los dibujos de muchos participantes en mapas de calor con la exportación geo_overlap.

Superponer los mapas muestra en qué zonas coinciden los participantes y cómo las llaman. La implementación de Potato es propia: las herramientas de dibujo en mapa que se encuentran en línea no tienen licencia, así que no comparte código con ellas.

Probar el estudio de ejemplo

examples/advanced/dialect-map/ es un estudio completo sobre un país ficticio, Arventa, cuyos diez contornos de provincia son sintéticos y no se parecen a ninguna frontera real. Plantea tres preguntas en una página:

  1. Draw the areas where people speak differently (task: draw): contornos a mano alzada o poligonales, una etiqueta para lo diferente que suena el habla y un nombre obligatorio para cada zona.
  2. Where did you grow up? (task: pin): una chincheta.
  3. How does the speech of each province sound to you? (task: classify_region): cada provincia recibe Sounds like home, Sounds different o Don't know.
bash
python potato/flask_server.py start examples/advanced/dialect-map/config.yaml -p 8000

El mapa no necesita conexión de red, y no se descarga nada de ningún servidor de teselas.

Elegir un mapa mudo

Usa un mapa de contornos que los participantes reconozcan, sin las etiquetas dialectales ni los nombres regionales que intentas elicitar, porque un mapa con etiquetas condiciona las respuestas. La elección habitual son los límites de estados, provincias o condados.

  • Pon el archivo dentro del directorio del proyecto y nómbralo en basemap.geojson. Se incrusta en la página, así que simplifícalo antes, con mapshaper, QGIS o una herramienta similar, hasta unos pocos cientos de kilobytes o menos.
  • Comprueba la licencia de los datos de límites antes de ponerlos en el proyecto. Muchas oficinas nacionales de estadística publican archivos de límites con licencias abiertas, y algunos conjuntos de límites comerciales no pueden redistribuirse.
  • Si el archivo escribe primero la latitud, define coordinate_order: latlon.
  • Los nombres de región del mapa de contornos (region_name_property) se dibujan en el mapa. Si fueran a condicionar a los participantes, quita esa propiedad del archivo.

Configurar la pregunta de dibujo

yaml
- 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: true
  • tools: [freehand] por sí solo es lo más parecido a dibujar con un bolígrafo sobre un mapa de papel. Los contornos a mano alzada pueden cruzarse a sí mismos, y la agregación los rellena con la regla par-impar, así que un ocho cuenta como sus dos bucles.
  • Basta con una etiqueta si solo quieres las zonas y sus nombres. Más etiquetas permiten que los participantes valoren cada zona al dibujarla, según lo diferente, lo agradable o lo fácil de entender que les resulta el habla.
  • feature_text.required hace que cada zona necesite un nombre antes de Next, y min_features y max_features acotan cuántas zonas dibuja un participante.

task: pin con una etiqueta por pregunta registra lugares como el de nacimiento o el de residencia actual, que normalmente querrás para agrupar los dibujos. task: classify_region pide un juicio por región y da un mapa de coropletas en lugar de contornos libres. Mapas recoge todas las opciones.

Mapas de calor de solapamiento

bash
python -m potato.export --config config.yaml --format geo_overlap --output out/

Para cada ítem y cada esquema de dibujo, la exportación superpone una cuadrícula regular de longitud/latitud sobre el mapa de contornos, o sobre los dibujos si no hay mapa de contornos. Para cada etiqueta, la proporción de una celda es la fracción de encuestados con al menos un polígono de esa etiqueta cuyo contorno contiene el centro de la celda. Los encuestados son los participantes que dibujaron al menos un polígono en ese esquema sobre ese ítem, y un participante cuenta una vez por celda por muchos de sus polígonos que se solapen en ella.

ArchivoContenido
geo_overlap/<item>__<schema>__<group>.geojsonUn polígono cuadrado por celda cubierta, con count, respondents, share, row, col, y el ítem, el esquema y el grupo
geo_overlap/<item>__<schema>__<group>.pngUna vista previa, con las celdas cubiertas sombreadas de claro (pocos encuestados) a oscuro (todos ellos) y el contorno en gris
geo_overlap_summary.csvUna fila por mapa de calor: encuestados, polígonos, celdas cubiertas, proporción máxima, tamaño de la cuadrícula y extensión
geo_names.csvCada entidad dibujada: participante, ítem, etiqueta, el nombre tal como se escribió, una forma normalizada, el tipo de geometría, el área en km² y un punto de etiqueta
geo_name_counts.csvPor esquema, etiqueta y nombre normalizado, cuántos participantes lo usaron
geo_regions.csvPara los esquemas classify_region, por región y etiqueta, cuántos participantes la eligieron y la proporción
OpciónValor por defectoSignificado
group_bylabellabel, text (el nombre normalizado) o label_text (ambos)
cells100Celdas a lo largo del lado más largo de la extensión
cell_sizeningunoTamaño de celda en grados, que tiene prioridad sobre cells
extentlímites del mapa de contornosmin_lon,min_lat,max_lon,max_lat
schematodosExporta un solo esquema

Las celdas son iguales en grados, no en área. Sobre un solo país la diferencia es pequeña, y las celdas GeoJSON llevan las coordenadas de sus esquinas, así que un SIG puede reproyectarlas. La vista previa PNG está en plate carrée, por lo que se ve más ancha que el mapa en Web Mercator de la página.

Agrupar por nombre junta dos zonas solo cuando sus nombres normalizados coinciden, después de pasar a minúsculas y colapsar los espacios en blanco. geo_name_counts.csv muestra las grafías que usaron los participantes. Para fusionar variantes como "Southern", "the south" y "southern drawl", recodifica geo_names.csv y agrega tú los polígonos, o pide a los participantes que elijan entre etiquetas. Los puntos y las líneas no se agregan, y un mapa de calor con proporción 1.0 en todo lo sombreado significa que solo un participante dibujó esa etiqueta.

La exportación geojson escribe cada dibujo con su participante y su ítem, para analizarlo en QGIS, R (sf) o Python (geopandas).

Lecturas adicionales

Para detalles de implementación, consulta la documentación fuente.