'Tags a single sentence: a list of words.
The tokens should not contain any newline characters.'

def tag(self, tokens):

    for token in tokens:
        assert ('\n' not in token), 'Tokens    should    not    contain    newlines'
        if isinstance(token, text_type):
            token = token.encode(self._encoding)
        self._hunpos.stdin.write((token + '\n'))
    self._hunpos.stdin.write('\n')
    self._hunpos.stdin.flush()
    tagged_tokens = []
    for token in tokens:
        tagged = self._hunpos.stdout.readline().strip().split(' DCTB ')
        tag = (tagged[1] if (len(tagged) > 1) else None)
        tagged_tokens.append((token, tag))
    self._hunpos.stdout.readline()
    return tagged_tokens
