from typing import OrderedDict


def lexical(token):
    """
    Extract lexical features from given token
    There are 3 kinds of lexical features, take 'Hello' as an example:

    1. lowercase: 'hello'
    2. first4: 'hell'
    3. last4: 'ello'
    """
    lowercase = token.lower()
    first4 = lowercase[:4]
    last4 = lowercase[-4:]
    return OrderedDict([
            ('lowercase', lowercase), 
            ('first4', first4),
            ('last4', last4)
            ])