human
What is a the Python program you requested given the following:
I am working on the file "12-notebook-after-class.ipynb".
The first task is:
Aufgabe 4 &nbsp;&nbsp;&nbsp.
Datenbasiertes Chunking
(a) Betrachten Sie den folgenden Code für einen Chunker, der für jedes POS-Tag das
wahrscheinlichste Chunk-Tag berechnet (Training) und dieses dann zur Testzeit
ausgibt.
Can you write Python program for it?
assistant
#Here is the Python program you requested.

class UnigramChunker(nltk.ChunkParserI):
    def __init__(self, train_sents):
        train_data = [
            [
                (t,c)
                for w,t,c in nltk.chunk.tree2conlltags(sent)
            ]
            for sent in train_sents
        ]
        self.tagger = nltk.UnigramTagger(train_data)

    def parse(self, sentence):
        pos_tags = [pos for (word,pos) in sentence]
        tagged_pos_tags = self.tagger.tag(pos_tags)
        chunktags = [
            chunktag for (pos, chunktag) in tagged_pos_tags
        ]
        conlltags = [
            (word, pos, chunktag)
            for ((word, pos), chunktag)
            in zip(sentence, chunktags)
        ]
        return nltk.chunk.conlltags2tree(conlltags)