class_docstr: Tokenizes raw text recursively based on a handful of definable rules.
  
  Unlike the Tokenizer, the RecursiveTokenizer operates based on these array
  string parameters only:
  
  - ``prefixes``: Strings that will be split when found at the beginning of
    token.
  - ``suffixes``: Strings that will be split when found at the end of token.
  - ``infixes``: Strings that will be split when found at the middle of token.
  - ``whitelist``: Whitelist of strings not to split
  
  For extended examples of usage, see the `Examples
  <https://github.com/JohnSnowLabs/spark-nlp/blob/master/examples/python/training/italian/Training_Context_Spell_Checker_Italian.ipynb>`__.
  
  ====================== ======================
  Input Annotation types Output Annotation type
  ====================== ======================
  ``DOCUMENT``           ``TOKEN``
  ====================== ======================
  
  Parameters
  ----------
  prefixes
      Strings to be considered independent tokens when found at the beginning
      of a word, by default ["'", '"', '(', '[', '\n']
  suffixes
      Strings to be considered independent tokens when found at the end of a
      word, by default ['.', ':', '%', ',', ';', '?', "'", '"', ')', ']',
      '\n', '!', "'s"]
  infixes
      Strings to be considered independent tokens when found in the middle of
      a word, by default ['\n', '(', ')']
  whitelist
      Strings to be considered as single tokens , by default ["it's",
      "that's", "there's", "he's", "she's", "what's", "let's", "who's",
      "It's", "That's", "There's", "He's", "She's", "What's", "Let's",
      "Who's"]
  
  Examples
  --------
  >>> import sparknlp
  >>> from sparknlp.base import *
  >>> from sparknlp.annotator import *
  >>> from pyspark.ml import Pipeline
  >>> documentAssembler = DocumentAssembler() \
  ...     .setInputCol("text") \
  ...     .setOutputCol("document")
  >>> tokenizer = RecursiveTokenizer() \
  ...     .setInputCols(["document"]) \
  ...     .setOutputCol("token")
  >>> pipeline = Pipeline().setStages([
  ...     documentAssembler,
  ...     tokenizer
  ... ])
  >>> data = spark.createDataFrame([["One, after the Other, (and) again. PO, QAM,"]]).toDF("text")
  >>> result = pipeline.fit(data).transform(data)
  >>> result.select("token.result").show(truncate=False)
  +------------------------------------------------------------------+
  |result                                                            |
  +------------------------------------------------------------------+
  |[One, ,, after, the, Other, ,, (, and, ), again, ., PO, ,, QAM, ,]|
  +------------------------------------------------------------------+
docstr: Sets strings to be considered independent tokens when found at the
  beginning of a word, by default ["'", '"', '(', '[', '\n'].
  
  Parameters
  ----------
  p : List[str]
      Strings to be considered independent tokens when found at the
      beginning of a word
code: def setPrefixes(self, p):
      """Sets strings to be considered independent tokens when found at the
      beginning of a word, by default ["'", '"', '(', '[', '\\n'].
  
      Parameters
      ----------
      p : List[str]
          Strings to be considered independent tokens when found at the
          beginning of a word
      """
      return self._set(prefixes=p)
  
file_path: spark-nlp/python/sparknlp/annotator/token/recursive_tokenizer.py
imports: from sparknlp.common import *
label_desc: Use image node_id 1 for calling the RecursiveTokenizer obj's underlying member method code with example usage: obj.setPrefixes(p) and returns: self