Logo Lanfrica

katjakon/hausa-pos

Domain:

natural language processing

Record type:

project
Creator:
kat
Host:
Hausa Part-of-Speech Tagging in a Low-Resource Scenario. # Hausa Part-of-Speech Tagging in a Low-Resource Scenario This project is for my Bachelor thesis at the University of Potsdam for which I investigated automatic POS Tagging in Hausa by assuming that no annotated data is available. Instead, I utilized parallel sentences in Englisch, French, Arabic and German to induce word classes. ## Overview Parallel sentences for the Quran can be found in the directory `parallel`. Each file has alignment information in the directory `aligned` and tags for the source language in the directory `tagged`. Alignments and source tags are used to project tags onto the Hausa sentences. These files can be found in the directory `projected`. On the data in `projected` I train different tagging models. I evaluate them on the test data in the directory `test_data`. Predictions for each tagger can also be found in this directory under `predictions`. All the figure can be found in the directory `figures`. ## Notebooks For various aspects of this work, I made use of Jupyter notebooks in Google Colab. They can be found in the directory `notebooks`: + In `word_alignment_hausa.ipynb`, parallel sentences are aligned with `fast_align` and `SimAlign` + In `tag_english.ipynb`, `tag_multilingual.ipynb` and `tag_arabic.ipynb`, POS tagging for the source languages is done + In `bi-lstm-trainer.ipynb`, a BI-LSTM model with a CRF layer is trained. See the individual notebooks for instructions on how to use them. ## Annotation Projection After word alignment and tagging of the source languages, the tags of the source language are projected onto the Hausa sentences. This is can be reproduced with `project_tags.py`. It takes the following arguments: + `langs`: These are the source languages that should be used. The following languages are available `ar` (Arabic), `en` (English), `de` (German) and `fr` (French). If multiple source languages should be used, seperate them with a comma. + `align`: This is the alignment method that should be used. Can either be …