Trabajo de campo lingüístico en Potato: glosado con FLEx, Toolbox, Praat y ELAN
Importa textos de FLEx o Toolbox a Potato, revisa las glosas interlineales según las reglas de Leipzig y exporta a FLExText, Toolbox o LaTeX; además, niveles de TextGrid y ELAN.
Potato 2.12.0 importa textos interlineales de FieldWorks Language Explorer (FLEx) y de Toolbox, permite a los anotadores revisar cada oración en un esquema interlinear_gloss que comprueba las reglas de alineación de Leipzig, y exporta las glosas corregidas de vuelta al mismo formato. Los archivos TextGrid de Praat y los de ELAN se importan del mismo modo, como niveles alineados en el tiempo.
El análisis suele estar ya en FLEx o en Toolbox, y el trabajo consiste en revisarlo y corregirlo, a menudo con varias personas revisando textos distintos. Potato añade el paso de revisión: la asignación de textos a revisores, una comprobación de alineación en cada palabra y un registro de quién confirmó cada oración.
Importar textos de FLEx o Toolbox
# A FLEx interlinear export (FLExText)
potato import -i stories.flextext -o glossing-project/
# A Toolbox or Shoebox text database
potato import -i texts.txt -f toolbox -o glossing-project/-i también puede ser un directorio de archivos .flextext, o de archivos de Toolbox (.txt, .sfm, .db, .tbx, .toolbox). El formato se detecta a partir del contenido: un archivo FLExText tiene elementos <interlinear-text>, y un archivo de Toolbox tiene registros \ref con una línea de texto y una línea de morfemas o de glosas. -f flextext o -f toolbox lo elige explícitamente.
Un archivo FLExText que no puede leerse se deja fuera con el motivo: es binario o no es texto UTF-8, no es XML bien formado, o define entidades XML, algo que los archivos subidos no pueden hacer.
Cada frase de FLEx o registro de Toolbox se convierte en un ítem. El análisis existente se escribe en los campos del propio ítem (words, morphemes, glosses, translation, y pos cuando el origen tiene categorías gramaticales), y el esquema generado los lee como punto de partida. Nada cuenta como respuesta de una persona hasta que un anotador pulsa Next o edita el ítem, así que una exportación anterior a la revisión contiene solo las oraciones que alguien ha comprobado.
| FLExText | Potato |
|---|---|
Título de interlinear-text | Campo text_title, que se reutiliza al exportar |
paragraph, segnum de la frase | Campos paragraph, phrase |
txt de la palabra | Una palabra. Las palabras punct se quedan en el texto de la oración, pero no se glosan |
txt (o cf) y type del morfema | La segmentación, con - o = tomados de las marcas de la propia forma o del tipo |
gls del morfema | La glosa de ese morfema, con los espacios convertidos en . |
pos de la palabra, o el msa de la raíz | El nivel pos |
gls de la frase | La traducción libre |
language vernácula y de análisis | language y metalanguage del esquema |
Los registros de Toolbox empiezan en \ref, y las líneas interlineales se leen por columnas, como las escribe Toolbox. Los archivos editados a mano a menudo no están alineados, así que primero se prueban dos lecturas por orden: los morfemas agrupados en palabras según sus propias marcas, y las glosas emparejadas con los morfemas por orden. El importador lee \tx o \t para el texto, \mb o \m para los morfemas, \ge o \g para la glosa, \ps o \p para la categoría gramatical, y \ft o \f para la traducción libre. Los demás marcadores de un registro, como \nt, se guardan en el campo sfm_extra del ítem y se vuelven a escribir al exportar.
Revisar las glosas
python potato/flask_server.py start glossing-project/config.yaml -p 8000Los anotadores ven cada oración con el análisis importado ya en su sitio. Cualquier palabra cuya segmentación y glosa no se correspondan se marca al abrir la página, así que los errores que ya traía el origen aparecen en la primera revisión. Texto glosado interlineal enumera las comprobaciones y los controles de teclado.
Las comprobaciones siguen las Reglas de glosado de Leipzig de Bernard Comrie, Martin Haspelmath y Balthasar Bickel:
- La línea del ejemplo y la línea de la glosa están alineadas palabra por palabra.
- Dentro de una palabra,
-separa los afijos y=separa los clíticos, y la glosa tiene los mismos separadores en los mismos lugares, así que morfema y glosa pueden emparejarse contando. - Cuando un morfema representa varios significados, estos se unen con un punto:
NOM.SG,put.in.bag. Un punto no es un límite y no se cuenta. - La persona y el número pueden escribirse juntos sin punto, como en
3SG. - Las categorías gramaticales son abreviaturas en mayúsculas, impresas en versalitas.
- Un infijo se delimita con corchetes angulares en ambas líneas, y su glosa va junto a la glosa de la raíz.
Exportar de vuelta a FLEx, Toolbox o LaTeX
python -m potato.export --config glossing-project/config.yaml --format flextext --output out/
python -m potato.export --config glossing-project/config.yaml --format toolbox --output out/
python -m potato.export --config glossing-project/config.yaml --format igt --output out/flextextescribe<annotator>.flextext, uno por anotador, agrupado en los textos y párrafos que registró la importación. Los tipos de morfema se deducen de los límites: el primer morfema con una glosa en minúsculas (léxica) es la raíz, los morfemas anteriores son prefijos o proclíticos, y los posteriores son sufijos o enclíticos.toolboxescribe<annotator>.txtcon las líneas alineadas por columnas y los valores\reforiginales.igtescribeigt.txt, con tres líneas alineadas y la traducción de cada ejemplo, eigt.texpara el paquete gb4e de LaTeX.
Volver a importar un archivo exportado da las mismas palabras, segmentaciones, glosas, traducciones y categorías gramaticales. Lo que no sobrevive al viaje de ida y vuelta:
- Los GUID de FLEx y los vínculos con el léxico, porque la exportación no tiene léxico.
- Las palabras de puntuación de FLEx, que se quedan en el texto de la oración del ítem pero no se vuelven a escribir como palabras
punct. - El tipo de un morfema que no es la raíz ni está junto a un límite marcado, como una segunda raíz en un compuesto.
- Los niveles distintos de
posen FLExText. En Toolbox se escriben como líneas adicionales con el nombre del nivel.
TextGrids de Praat y archivos de ELAN
potato import -i recordings/ -o my-projectrecordings/ contiene archivos .TextGrid o .eaf, cada uno con un archivo de audio o vídeo del mismo nombre al lado. Cada archivo se convierte en un ítem con su multimedia copiada en media/, cada nivel se convierte en un nivel de un esquema tiered_annotation, y cada intervalo no vacío se convierte en un segmento que los anotadores pueden corregir. Un nivel con como mucho 30 valores distintos, como fonos o códigos de hablante, los recibe como etiquetas. Los exportadores textgrid y eaf vuelven a escribir los niveles corregidos. Importar proyectos tiene los detalles.
Lecturas adicionales
- Texto glosado interlineal - Opciones del esquema, comprobaciones y la respuesta guardada
- Formatos de transcripción - Transcripciones y niveles alineados en el tiempo
- Dialectología perceptiva - Tareas de dibujo en mapa para la percepción dialectal
- Anotación multilingüe y de bajos recursos - Anotar en muchas lenguas
Para detalles de implementación, consulta la documentación fuente.