[Memory Based Tagger]. Herramienta académica de procesamiento del lenguaje natural desarrollada por universidades europeas [Radboud, Tilburg, Antwerp] y generador de etiquetas morfosintácticas [POS tagging], chunking, lematización, etc. Incluye la herramienta mbtg [archivos de entrenamiento]. Ver mbtserver.
$ mbt -f configfile.cfg < input.txt > output.tagged
$ mbtg -f configfile.cfg -n modelname
1.-
Simular un flujo completo para entrenar un modelo pequeño y usarlo para etiquetar.
$ mkdir ~/mbt-test && cd ~/mbt-test
Crear un corpus de entrenamiento con frases ya etiquetadas: una palabra + etiqueta por línea y frases separadas por líneas vacías (por cuestiones de configuración del texto hemos puesto ### que han de borrarse):
$ nano train.data
El DET
perro NOUN
marrón ADJ
come VERB
rápido ADV
. PUNCT
###
La DET
gata NOUN
blanca ADJ
duerme VERB
. PUNCT
Crear un archivo de configuración que define cómo se construyen los contextos para el aprendizaje.
$ nano config.cfg
0=w[-1]
1=w[0]
2=w[1]
3=POS[-1]
LABEL=POS
w[-1] es la palabra anterrior, w[0] es la palabra actual, w[1] la siguiente, etc. POS[-1] es la etiqueta anterior, LABEL=POS qué vamos a predecir.
Entrenar el modelo
$ mbtg -f config.cfg -n spanish_model -i train.data
crear un texto a etiquetar:
$ nano test.txt
Un gato negro salta .
La niña canta feliz .
Etiquetarlo:
$ mbt -f config.cfg -s spanish_model -i test.txt -o output.tagged
Resultado en output.tagged:
$ cat output.tagged
Un DET
gato NOUN
negro ADJ
salta VERB
. PUNCT
###
La DET
niña NOUN
canta VERB
feliz ADJ
. PUNCT
Nota.- El ejemplo mencionado puede fallar o inventar, pero en corpus grandes funciona muy bien.