Texto glosado interlineal: segmentación morfológica y glosas de Leipzig
Glosa oraciones palabra por palabra en Potato con segmentación morfológica, comprobaciones de alineación de Leipzig y niveles adicionales, y exporta FLExText, Toolbox o LaTeX de gb4e.
Nuevo en v2.12.0
Un esquema interlinear_gloss muestra una oración como una columna por palabra. Cada columna tiene la palabra (de solo lectura), su segmentación en morfemas y su glosa, y la traducción libre va en una línea bajo las columnas. Es adecuado para la documentación lingüística, los datos tipológicos y la revisión de glosas importadas de FLEx o Toolbox. En una pantalla estrecha, las columnas pasan a líneas siguientes, como ocurre con un ejemplo largo en un texto impreso.
La página comprueba cada palabra según las Reglas de glosado de Leipzig (Comrie, Haspelmath y Bickel) mientras el anotador escribe. Trabajo de campo lingüístico explica el viaje de ida y vuelta con FLEx y Toolbox.
Configuración
annotation_schemes:
- annotation_type: interlinear_gloss
name: igt
description: Segment each word into morphemes and gloss every morpheme
source_field: text # sentence string, or a list of words
morphemes_field: morphemes # optional pre-filled segmentation
gloss_field: glosses # optional pre-filled glosses
translation_field: translation
tiers: [pos, notes] # optional extra lines per word
abbreviations: leipzig # warn on unknown category labels
language: la # BCP 47 tag of the object language
metalanguage: en # language of the glosses and translation
label_requirement:
required: true{"id": "latin_1", "text": "Puella rosam amat.",
"morphemes": ["puell-a", "ros-am", "ama-t"],
"glosses": ["girl-NOM.SG", "rose-ACC.SG", "love-3SG"],
"translation": "The girl loves the rose.",
"pos": ["n", "n", "v"]}Cuando source_field contiene una cadena, se divide por los espacios, y se elimina la puntuación de los bordes de cada palabra (., ,, ?, comillas y corchetes). Los guiones y = dentro de una palabra se conservan. Para controlar exactamente las palabras, da una lista.
Los campos de prerrelleno admiten una lista con una entrada por palabra, o una cadena con una entrada por palabra separada por espacios. Un nivel configurado se rellena previamente desde un campo del ítem con el mismo nombre cuando ese campo es una lista. Una palabra sin segmentación previa empieza con la propia palabra en la celda de segmentación, así que el anotador solo escribe los límites.
| Clave | Valor por defecto | Significado |
|---|---|---|
source_field | text | Campo del ítem con la oración (cadena) o las palabras (lista) |
morphemes_field | ninguno | Campo del ítem con una segmentación por palabra |
gloss_field | ninguno | Campo del ítem con una glosa por palabra |
translation_field | ninguno | Campo del ítem con la traducción libre |
tiers | [] | Líneas adicionales por palabra, como [pos, notes]. word, morphemes y gloss están reservados |
abbreviations | ninguno | leipzig para la lista estándar, una lista de etiquetas o un mapeo de etiqueta a significado. [leipzig, EVID, AOR] añade tus propias etiquetas a las estándar. Sin esta opción, las etiquetas no se comprueban |
language | ninguno | Etiqueta de idioma que se pone en las celdas de palabra y de segmentación, y que se escribe en FLExText |
metalanguage | ninguno | Etiqueta de idioma para las celdas de glosa, de nivel y de traducción |
show_translation | true | Muestra la línea de traducción libre |
label_requirement | ninguno | required: true bloquea Next hasta que todas las palabras están segmentadas, glosadas y alineadas |
Comprobaciones de alineación y de etiquetas
En cada palabra, la segmentación y la glosa tienen que tener los mismos límites - (afijo) y = (clítico) en el mismo orden. ros-am con rose-ACC.SG está alineado, y rose-ACC-SG tiene un límite de más. vir-um=que con man-ACC.SG-and tiene el número correcto de límites, pero glosa el clítico =que como un afijo, así que también se marca.
Una palabra se marca como mal alineada, con el motivo bajo su columna, cuando:
- los límites difieren en número, tipo u orden;
- un morfema o una glosa entre dos límites está vacío (
ev--ler,house-); - una celda contiene un espacio. Une las palabras de una glosa con
.(put.in.bag), y separa los morfemas con-o=.
Los infijos entre corchetes angulares (s<um>ulat) se cuentan en ambas líneas, pero no se emparejan por posición, porque la glosa del infijo va junto a la glosa de la raíz y no dentro de ella.
Una palabra mal alineada tiene un borde rojo, un ≠ delante de la palabra y aria-invalid en ambas celdas, y una palabra con solo una de las dos líneas rellenada se muestra como aún no glosada. El recuento en la parte superior del widget indica cuántas palabras están mal alineadas, y cuando el esquema es obligatorio, cualquiera de los dos estados bloquea Next.
Las etiquetas de categorías gramaticales (palabras en mayúsculas y combinaciones de persona y número como ACC y 3SG) se muestran bajo la celda de la glosa en versalitas. Con abbreviations definido, una etiqueta que no está en la lista aparece como advertencia bajo la palabra, como "Unknown label: EVID", que no bloquea Next. La comprobación acepta la persona y el número escritos juntos (3SG), el prefijo N- para "no-" (NSG, NPST) y Ø.
| Tecla | Acción |
|---|---|
| Tab, Shift+Tab | Celda siguiente o anterior: baja por las líneas de una palabra y después pasa a la palabra siguiente |
| Enter | La misma línea de la palabra siguiente, o la traducción desde la última palabra |
| Shift+Enter | La misma línea de la palabra anterior |
Respuesta guardada
{"words": [{"word": "Puella", "morphemes": "puell-a", "gloss": "girl-NOM.SG",
"pos": "n", "notes": ""}],
"translation": "The girl loves the rose."}Un ítem que llegó con un análisis previo se guarda cuando el anotador pulsa Next, aunque no se haya editado nada, así que una importación confirmada se guarda como la respuesta de esa persona. Un ítem sin prerrelleno se guarda en cuanto el anotador escribe en él.
Exportación
| Formato | Archivos | Contenido |
|---|---|---|
flextext | <user>.flextext | XML interlineal de FieldWorks, un archivo por anotador |
toolbox | <user>.txt | Formato estándar de Toolbox con líneas \tx \mb \ge \ps \ft alineadas por columnas |
igt | igt.txt, igt.tex | Texto plano alineado y LaTeX de gb4e |
python -m potato.export --config config.yaml --format igt --output out/igt.tex contiene un entorno exe con un \ex por respuesta guardada, la segmentación y la glosa en una línea \gll y la traducción en \glt. Las etiquetas de categoría se escriben como \textsc{...} en minúsculas, y los caracteres especiales de LaTeX se escapan. Carga gb4e en el preámbulo, y compila con XeLaTeX o LuaLaTeX para escrituras distintas de la latina.
Las palabras que siguen mal alineadas se exportan tal como se guardaron, y la exportación muestra cuántas había. FLExText y Toolbox emparejan glosas y morfemas uno a uno, así que allí la glosa completa de una palabra mal alineada va en su primer morfema.
Ejemplo
python potato/flask_server.py start examples/span/interlinear-gloss/config.yaml -p 8000El ejemplo tiene cuatro oraciones latinas glosadas a modo de ilustración. Una está completa, otra está en blanco, otra tiene segmentación y no tiene glosas, y otra tiene un error deliberado, el clítico -que glosado con -.
Lecturas adicionales
- Trabajo de campo lingüístico - Importar desde FLEx y Toolbox y exportar de vuelta
- Formatos de transcripción - Praat, ELAN y otras transcripciones alineadas en el tiempo
- Anotación multilingüe y de bajos recursos - Anotar en muchas lenguas
Para detalles de implementación, consulta la documentación fuente.