class_docstr: Unlabeled parser that finds a grammatical relation between two words in a
  sentence.
  
  Dependency parser provides information about word relationship. For example,
  dependency parsing can tell you what the subjects and objects of a verb are,
  as well as which words are modifying (describing) the subject. This can help
  you find precise answers to specific questions.
  
  This is the instantiated model of the :class:`.DependencyParserApproach`.
  For training your own model, please see the documentation of that class.
  
  Pretrained models can be loaded with :meth:`.pretrained` of the companion
  object:
  
  >>> dependencyParserApproach = DependencyParserModel.pretrained() \
  ...     .setInputCols(["sentence", "pos", "token"]) \
  ...     .setOutputCol("dependency")
  
  
  The default model is ``"dependency_conllu"``, if no name is provided.
  For available pretrained models please see the
  `Models Hub <https://sparknlp.org/models>`__.
  
  For extended examples of usage, see the `Examples <https://github.com/JohnSnowLabs/spark-nlp/blob/master/examples/python/annotation/text/english/graph-extraction/graph_extraction_intro.ipynb>`__.
  
  ================================ ======================
  Input Annotation types           Output Annotation type
  ================================ ======================
  ``[String]DOCUMENT, POS, TOKEN`` ``DEPENDENCY``
  ================================ ======================
  
  Parameters
  ----------
  perceptron
      Dependency parsing perceptron features
  
  Examples
  --------
  >>> import sparknlp
  >>> from sparknlp.base import *
  >>> from sparknlp.annotator import *
  >>> from pyspark.ml import Pipeline
  >>> documentAssembler = DocumentAssembler() \
  ...     .setInputCol("text") \
  ...     .setOutputCol("document")
  >>> sentence = SentenceDetector() \
  ...     .setInputCols(["document"]) \
  ...     .setOutputCol("sentence")
  >>> tokenizer = Tokenizer() \
  ...     .setInputCols(["sentence"]) \
  ...     .setOutputCol("token")
  >>> posTagger = PerceptronModel.pretrained() \
  ...     .setInputCols(["sentence", "token"]) \
  ...     .setOutputCol("pos")
  >>> dependencyParser = DependencyParserModel.pretrained() \
  ...     .setInputCols(["sentence", "pos", "token"]) \
  ...     .setOutputCol("dependency")
  >>> pipeline = Pipeline().setStages([
  ...     documentAssembler,
  ...     sentence,
  ...     tokenizer,
  ...     posTagger,
  ...     dependencyParser
  ... ])
  >>> data = spark.createDataFrame([[
  ...     "Unions representing workers at Turner Newall say they are 'disappointed' after talks with stricken parent " +
  ...     "firm Federal Mogul."
  ... ]]).toDF("text")
  >>> result = pipeline.fit(data).transform(data)
  >>> result.selectExpr("explode(arrays_zip(token.result, dependency.result)) as cols") \
  ...     .selectExpr("cols['0'] as token", "cols['1'] as dependency").show(8, truncate = False)
  +------------+------------+
  |token       |dependency  |
  +------------+------------+
  |Unions      |ROOT        |
  |representing|workers     |
  |workers     |Unions      |
  |at          |Turner      |
  |Turner      |workers     |
  |Newall      |say         |
  |say         |Unions      |
  |they        |disappointed|
  +------------+------------+
  
  See Also
  --------
  TypedDependencyParserMdoel : to extract labels for the dependencies
code: def __init__(
      self,
      classname="com.johnsnowlabs.nlp.annotators.parser.dep.DependencyParserModel",
      java_model=None,
  ):
      super(DependencyParserModel, self).__init__(
          classname=classname, java_model=java_model
      )
  
file_path: spark-nlp/python/sparknlp/annotator/dependency/dependency_parser.py
imports: from sparknlp.common import *
label_desc: Use image node_id 1 to create a new DependencyParserModel object from inherited base classes: AnnotatorModel with example: obj = DependencyParserModel(classname, java_model)