class_docstr: Reads tokens and their sentiment labels from the Stanford Sentiment Treebank.
  
  The Stanford Sentiment Treebank comes with labels
  from 0 to 4. ``"5-class"`` uses these labels as is. ``"3-class"`` converts the
  problem into one of identifying whether a sentence is negative, positive, or
  neutral sentiment. In this case, 0 and 1 are grouped as label 0 (negative sentiment),
  2 is converted to label 1 (neutral sentiment) and 3 and 4 are grouped as label 2
  (positive sentiment). ``"2-class"`` turns it into a binary classification problem
  between positive and negative sentiment. 0 and 1 are grouped as the label 0
  (negative sentiment), 2 (neutral) is discarded, and 3 and 4 are grouped as the label 1
  (positive sentiment).
  
  Expected format for each input line: a linearized tree, where nodes are labeled
  by their sentiment.
  
  The output of ``read`` is a list of ``Instance`` s with the fields:
      tokens: ``TextField`` and
      label: ``LabelField``
  
  Parameters
  ----------
  token_indexers : ``Dict[str, TokenIndexer]``, optional (default=``{"tokens": SingleIdTokenIndexer()}``)
      We use this to define the input representation for the text.  See :class:`TokenIndexer`.
  use_subtrees : ``bool``, optional, (default = ``False``)
      Whether or not to use sentiment-tagged subtrees.
  granularity : ``str``, optional (default = ``"5-class"``)
      One of ``"5-class"``, ``"3-class"``, or ``"2-class"``, indicating the number
      of sentiment labels to use.
  lazy : ``bool``, optional, (default = ``False``)
      Whether or not instances can be read lazily.
class_docstr_tok: ["Reads","tokens","and","their","sentiment","labels","from","the","Stanford","Sentiment","Treebank",".","The","Stanford","Sentiment","Treebank","comes","with","labels","from","0","to","4",".","``","``","5-class","''","``","uses","these","labels","as","is",".","``","``","3-class","''","``","converts","the","problem","into","one","of","identifying","whether","a","sentence","is","negative",",","positive",",","or","neutral","sentiment",".","In","this","case",",","0","and","1","are","grouped","as","label","0","(","negative","sentiment",")",",","2","is","converted","to","label","1","(","neutral","sentiment",")","and","3","and","4","are","grouped","as","label","2","(","positive","sentiment",")",".","``","``","2-class","''","``","turns","it","into","a","binary","classification","problem","between","positive","and","negative","sentiment",".","0","and","1","are","grouped","as","the","label","0","(","negative","sentiment",")",",","2","(","neutral",")","is","discarded",",","and","3","and","4","are","grouped","as","the","label","1","(","positive","sentiment",")",".","Expected","format","for","each","input","line",":","a","linearized","tree",",","where","nodes","are","labeled","by","their","sentiment",".","The","output","of","``","read","``","is","a","list","of","``","Instance","``","s","with","the","fields",":","tokens",":","``","TextField","``","and","label",":","``","LabelField","``","Parameters","--","--","--","--","--","token_indexers",":","``","Dict","[","str",",","TokenIndexer","]","``",",","optional","(","default=","``","{","``","tokens","''",":","SingleIdTokenIndexer","(",")","}","``",")","We","use","this","to","define","the","input","representation","for","the","text",".","See",":","class",":","`","TokenIndexer","`",".","use_subtrees",":","``","bool","``",",","optional",",","(","default","=","``","False","``",")","Whether","or","not","to","use","sentiment-tagged","subtrees",".","granularity",":","``","str","``",",","optional","(","default","=","``","``","5-class","''","``",")","One","of","``","``","5-class","''","``",",","``","``","3-class","''","``",",","or","``","``","2-class","''","``",",","indicating","the","number","of","sentiment","labels","to","use",".","lazy",":","``","bool","``",",","optional",",","(","default","=","``","False","``",")","Whether","or","not","instances","can","be","read","lazily","."]
docstr: We take `pre-tokenized` input here, because we don't have a tokenizer in this class.
  
  Parameters
  ----------
  tokens : ``List[str]``, required.
      The tokens in a given sentence.
  sentiment ``str``, optional, (default = None).
      The sentiment for this sentence.
  
  Returns
  -------
  An ``Instance`` containing the following fields:
      tokens : ``TextField``
          The tokens in the sentence or phrase.
      label : ``LabelField``
          The sentiment label of the sentence or phrase.
docstr_tok: ["We","take","`","pre-tokenized","`","input","here",",","because","we","do","n't","have","a","tokenizer","in","this","class",".","Parameters","--","--","--","--","--","tokens",":","``","List","[","str","]","``",",","required",".","The","tokens","in","a","given","sentence",".","sentiment","``","str","``",",","optional",",","(","default","=","None",")",".","The","sentiment","for","this","sentence",".","Returns","--","--","--","-","An","``","Instance","``","containing","the","following","fields",":","tokens",":","``","TextField","``","The","tokens","in","the","sentence","or","phrase",".","label",":","``","LabelField","``","The","sentiment","label","of","the","sentence","or","phrase","."]
code: def text_to_instance(self, tokens, sentiment=None):  # type: ignore
      """
      We take `pre-tokenized` input here, because we don't have a tokenizer in this class.
  
      Parameters
      ----------
      tokens : ``List[str]``, required.
          The tokens in a given sentence.
      sentiment ``str``, optional, (default = None).
          The sentiment for this sentence.
  
      Returns
      -------
      An ``Instance`` containing the following fields:
          tokens : ``TextField``
              The tokens in the sentence or phrase.
          label : ``LabelField``
              The sentiment label of the sentence or phrase.
      """
      # pylint: disable=arguments-differ
      text_field = TextField(
          [Token(x) for x in tokens],
          token_indexers=self._token_indexers,
      )
      fields = {"tokens": text_field}
      if sentiment is not None:
          # 0 and 1 are negative sentiment, 2 is neutral, and 3 and 4 are positive sentiment
          # In 5-class, we use labels as is.
          # 3-class reduces the granularity, and only asks the model to predict
          # negative, neutral, or positive.
          # 2-class further reduces the granularity by only asking the model to
          # predict whether an instance is negative or positive.
          if self._granularity == "3-class":
              if int(sentiment) < 2:
                  sentiment = "0"
              elif int(sentiment) == 2:
                  sentiment = "1"
              else:
                  sentiment = "2"
          elif self._granularity == "2-class":
              if int(sentiment) < 2:
                  sentiment = "0"
              elif int(sentiment) == 2:
                  return None
              else:
                  sentiment = "1"
          fields["label"] = LabelField(sentiment)
      return Instance(fields)
  
file_path: magnitude/pymagnitude/third_party/allennlp/data/dataset_readers/stanford_sentiment_tree_bank.py
imports: from __future__ import with_statement
  from __future__ import absolute_import
  import logging
  from nltk.tree import Tree
  from allennlp.common.file_utils import cached_path
  from allennlp.data.dataset_readers.dataset_reader import DatasetReader
  from allennlp.data.fields import LabelField, TextField, Field
  from allennlp.data.instance import Instance
  from allennlp.data.token_indexers import TokenIndexer, SingleIdTokenIndexer
  from allennlp.data.tokenizers import Token
  from allennlp.common.checks import ConfigurationError
  from io import open
label_desc: Use image node_id 3 for calling the StanfordSentimentTreeBankDatasetReader obj's underlying member method code with example usage: obj.text_to_instance(tokens, sentiment) and returns: Instance, None