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:
- 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. - Where did you grow up? (
task: pin): una chincheta. - 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.
python potato/flask_server.py start examples/advanced/dialect-map/config.yaml -p 8000El 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
- 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]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.requiredhace que cada zona necesite un nombre antes de Next, ymin_featuresymax_featuresacotan 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
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.
| Archivo | Contenido |
|---|---|
geo_overlap/<item>__<schema>__<group>.geojson | Un 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>.png | Una vista previa, con las celdas cubiertas sombreadas de claro (pocos encuestados) a oscuro (todos ellos) y el contorno en gris |
geo_overlap_summary.csv | Una 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.csv | Cada 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.csv | Por esquema, etiqueta y nombre normalizado, cuántos participantes lo usaron |
geo_regions.csv | Para los esquemas classify_region, por región y etiqueta, cuántos participantes la eligieron y la proporción |
| Opción | Valor por defecto | Significado |
|---|---|---|
group_by | label | label, text (el nombre normalizado) o label_text (ambos) |
cells | 100 | Celdas a lo largo del lado más largo de la extensión |
cell_size | ninguno | Tamaño de celda en grados, que tiene prioridad sobre cells |
extent | límites del mapa de contornos | min_lon,min_lat,max_lon,max_lat |
schema | todos | Exporta 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
- Mapas - Todas las opciones, mapas base y controles de
geo_annotation - Trabajo de campo lingüístico - Glosado interlineal, FLEx y Toolbox
- Experimentos conductuales en línea - Reclutar y seleccionar participantes
Para detalles de implementación, consulta la documentación fuente.