'Determine the most appropriate tag sequence for the given
token sequence, and return a corresponding list of tagged
tokens.  A tagged token is encoded as a tuple ``(token, tag)``.
:rtype: list(tuple(str, str))'

@abstractmethod
def tag(self, tokens):

    if overridden(self.tag_sents):
        return self.tag_sents([tokens])[0]
