code: def run(
      self,
      data: Union[str, PathLike] = None,
      parsed_data: Union[str, PathLike] = None,
      out_dir: Union[str, PathLike] = TRAIN_OUT,
  ):
      if not parsed_data:
          if not self.parser:
              raise RuntimeError(
                  "Parser not initialized (try parse=True at init)"
              )
          parsed_dir = Path(out_dir) / "parsed" / Path(data).stem
          parsed_data = self.parse_data(data, parsed_dir)
      generated_aspect_lex = self.acquire_lexicon.acquire_lexicons(
          parsed_data
      )
      _write_aspect_lex(parsed_data, generated_aspect_lex, LEXICONS_OUT)
      generated_opinion_lex_reranked = self.rerank.predict(
          AcquireTerms.acquired_opinion_terms_path,
          AcquireTerms.generic_opinion_lex_path,
      )
      _write_opinion_lex(
          parsed_data, generated_opinion_lex_reranked, LEXICONS_OUT
      )
      return generated_opinion_lex_reranked, generated_aspect_lex
  
file_path: nlp-architect/nlp_architect/models/absa/train/train.py
imports: from pathlib import Path, PosixPath
  from os import PathLike
  from typing import Union
  from nlp_architect.models.absa import TRAIN_OUT, LEXICONS_OUT
  from nlp_architect.models.absa.train.acquire_terms import AcquireTerms
  from nlp_architect.models.absa.train.rerank_terms import RerankTerms
  from nlp_architect.models.absa.utils import parse_docs, parse_docs_bist, _download_pretrained_rerank_model, _write_aspect_lex, _write_opinion_lex
  from nlp_architect.utils.io import download_unzip
label_desc: Use image node_id 2 for calling the TrainSentiment obj's underlying member method code with example usage: obj.run(data, parsed_data, out_dir) and returns: generated_opinion_lex_reranked,  generated_aspect_lex