docs: 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)
              ])