(volver a la página principal)
En este trabajo práctico implementaremos modelos de etiquetado de secuencias y realizaremos experimentos con ellos.
El código base para el proyecto se encuentra en el repositorio de la materia. La entrega del proyecto es a través de github. Por lo tanto, deben hacer un “fork” del repositorio dentro de sus cuentas de github.
Además del código fuente, deben elaborar un README con una breve explicación de lo que hicieron en cada ejercicio. El README puede estar en texto plano (txt), markdown (md) o restrucured text (rst), y debe estar incluído dentro de la carpeta tagging
.
Criterios de Evaluación:
Programar un script stats.py
que muestre la siguiente información del corpus:
Uso del script:
$ python tagging/scripts/stats.py -c ancora-3.0.1es
Documentación:
Interfaz de BaselineTagger
en baseline.py
:
class BaselineTagger: def __init__(self, tagged_sents, default_tag='nc0s000'): """ tagged_sents -- training sentences, each one being a list of pairs. default_tag -- tag for unknown words. """ def tag(self, sent): """Tag a sentence. sent -- the sentence. """ def tag_word(self, w): """Tag a word. w -- the word. """ def unknown(self, w): """Check if a word is unknown for the model. w -- the word. """
Tests:
$ nosetests tagging/tests/test_baseline.py
Ejemplo de uso de los scripts:
$ python tagging/scripts/train.py -c ancora-3.0.1es -m base -o baseline $ python tagging/scripts/eval.py -c ancora-3.0.1es -i baseline
Documentación:
classifier.py
un tagger que utilice un clasificador para etiquetar cada palabra en base a la información disponible en una ventana alrededor de la palabra.sklearn.linear_model.LogisticRegression
sklearn.naive_bayes.MultinomialNB
sklearn.svm.LinearSVC
Interfaz de ClassifierTagger
en classifier.py
:
class ClassifierTagger: """Simple and fast classifier based tagger. """ def __init__(self, tagged_sents, clf='lr'): """ clf -- classifying model, one of 'svm', 'lr' (default: 'lr'). """ def fit(self, tagged_sents): """ Train. tagged_sents -- list of sentences, each one being a list of pairs. """ def tag_sents(self, sents): """Tag sentences. sent -- the sentences. """ def tag(self, sent): """Tag a sentence. sent -- the sentence. """ def unknown(self, w): """Check if a word is unknown for the model. w -- the word. """
Tests:
$ nosetests tagging/tests/test_classifier.py
Documentación:
Documentación:
fasttext.py
.Documentación: