class_docstr: Lexicon acquisition. produce opinion lexicon and an aspect lexicon based
  on input dataset.
  
  Attributes:
      opinion_candidate_list_curr_iter (dict): candidate opinion terms in the current iteration
      opinion_candidate_list_prev_iter (dict): opinion candidates list of previous iteration
      opinion_candidate_list (dict): opinion terms learned across all iterations
      opinion_candidates_list_final (list): final opinion candidates list
      opinion_candidate_list_raw (dict): all instances of candidate opinion terms
                                         across all iterations
      aspect_candidate_list_curr_iter (dict): candidate terms in the current iteration
      aspects_candidate_list_prev_iter(list): Aspect candidates list of previous iteration
      aspect_candidate_list (list):  aspect terms learned across all iterations
      aspect_candidates_list_final (list): final aspect candidates list
      aspect_candidate_list_raw (dict): all instances of candidate aspect terms
                                        across all iterations
docstr: Add new opinion term to table
  Args:
      terms (list of CandidateTerm): candidate term
docstr_tok: ["Add","new","opinion","term","to","table","Args",":","terms","(","list","of","CandidateTerm",")",":","candidate","term"]
code: def _add_opinion_term(self, terms):
      """
      Add new opinion term to table
      Args:
          terms (list of CandidateTerm): candidate term
      """
      for term in terms:
          if term and self._is_valid_term(term):
              if str(term.term[0]) not in self.generic_sent_dict.keys():
                  if (
                      str(term.term[0])
                      not in self.opinion_candidate_list
                  ):
                      if len(str(term.term[0])) > 1:
                          if any(
                              c.isalnum() for c in str(term.term[0])
                          ):
                              _insert_new_term_to_table(
                                  term,
                                  self.opinion_candidate_list_curr_iter,
                              )
  
imports: import copy
  import re
  import sys
  from os import PathLike
  from tqdm import tqdm
  from nlp_architect.models.absa import TRAIN_LEXICONS, LEXICONS_OUT
  from nlp_architect.models.absa import GENERIC_OP_LEX
  from nlp_architect.models.absa.inference.data_types import Polarity
  from nlp_architect.models.absa.train.data_types import AspectTerm, DepRelation, DepRelationTerm, LoadOpinionStopLists, LoadAspectStopLists, OpinionTerm, QualifiedTerm
  from nlp_architect.models.absa.train.rules import rule_1, rule_2, rule_3, rule_4, rule_5, rule_6
  from nlp_architect.models.absa.utils import _load_parsed_docs_from_dir, _write_final_opinion_lex, _load_lex_as_list_from_csv, read_generic_lex_from_file
label_desc: Use image node_id 6 for calling the AcquireTerms obj's underlying member method code with example usage: obj._add_opinion_term(terms) without return types