code: def tokenize(s: TextSeries) -> TokenSeries:
      """
      Tokenize each row of the given Series.
  
      Tokenize each row of the given Pandas Series and return a Pandas Series
      where each row contains a list of tokens.
  
      Algorithm: add a space between any punctuation symbol at
      exception if the symbol is between two alphanumeric character and split.
  
      Examples
      --------
      >>> import texthero as hero
      >>> import pandas as pd
      >>> s = pd.Series(["Today you're looking great!"])
      >>> hero.tokenize(s)
      0    [Today, you're, looking, great, !]
      dtype: object
  
      """
  
      punct = string.punctuation.replace("_", "")
      # In regex, the metacharacter 'w' is "a-z, A-Z, 0-9, including the _ (underscore)
      # character." We therefore remove it from the punctuation string as this is already
      # included in \w.
  
      pattern = rf"((\w)([{punct}])(?:\B|$)|(?:^|\B)([{punct}])(\w))"
  
      return s.str.replace(pattern, r"\2 \3 \4 \5").str.split()
  
imports: from gensim.models.phrases import Phrases
  import re
  import string
  from typing import Optional, Set
  import unicodedata
  import numpy
  import pandas
  from texthero._types import TokenSeries, TextSeries, InputSeries
  from typing import List, Callable, Union
  import warnings
label_desc: Use image node_id 23 for calling a global function with example usage: tokenize(s) and returns: s