Skip to content

POS tagger

thaije edited this page Jun 15, 2015 · 3 revisions

**POS tagger/chuncker, met behulp van nltk-trainer op basis van de cnll2002 Corpus. **

Tagger:

De POS tagger is behulp met de nltk package voor python gemaakt. De POS tagger zelf is getraind met behulp van het programma nltk-trainer. Info: Een demo is hier te zien

Voor het trainen van de POS tagger is de conll2002 corpus gebruikt welke via de nltk package kan worden gedownload. Verder is er een Naive Bayes classifier gebruikt bij het maken van de tagger.
De precieze command:
python train_tagger.py conll2002 --fileids ned.train --classifier NaiveBayes
loading conll2002
using tagged sentences from ned.train
15806 tagged sents, training on 15806
training AffixTagger with affix -3 and backoff <DefaultTagger: tag=-None->
training <class 'nltk.tag.sequential.UnigramTagger'> tagger with backoff <AffixTagger: size=3988>
training <class 'nltk.tag.sequential.BigramTagger'> tagger with backoff <UnigramTagger: size=7799>
training <class 'nltk.tag.sequential.TrigramTagger'> tagger with backoff <BigramTagger: size=1455>
training ['NaiveBayes'] ClassifierBasedPOSTagger
Constructing training corpus for classifier.
Training classifier (202644 instances)
training NaiveBayes classifier
evaluating ClassifierBasedPOSTagger
accuracy: 0.967426
dumping ClassifierBasedPOSTagger to /home/tjalling/nltk_data/taggers/conll2002_NaiveBayes_aubt.pickle

De trainingcorpus bevat dus ongeveer 16000 zinnen. Verder heeft de tagger over deze tekst een accuracy van 0.967426.

De POS tagger word gebruikt in POStagger_corpus.py en POStagger_text.py

POStagger_corpus.py

Gebruikt voor het maken van POS tag analyses van corpora zoals kidsweek of nos. Outputs de POS tags in een file. Het programma gaat uit van 1 zin per regel in het tekst bestand. Gebruik: python POStagger_corpus.py -file path/to/corpus.txt -output /path/to/outputfile.txt

POStagger_text.py

Gebruikt voor het maken van POS-tag analyse van een tekst die word meegegeven.
Gebruik: import POStagger_text
newPOStags = POStagger_text.getPOStags(text)

Chunker:

python train_chunker.py conll2002 --fileids ned.train --classifier NaiveBayes loading conll2002 using chunked sentences from ned.train 15806 chunks, training on 15806 training ClassifierChunker with ['NaiveBayes'] classifier Constructing training corpus for classifier. Training classifier (202644 instances) training NaiveBayes classifier evaluating ClassifierChunker ChunkParse score: IOB Accuracy: 95.4% Precision: 66.9% Recall: 71.9% F-Measure: 69.3%