docstr: Add tag to lexicon
  
  Parameters
  ----------
  name : str
      Tag name.
  values : list(str)
      Tag values.
  overwrite : bool
      If True, replaces tag with the same name if it already exists
  append : bool
      If True, adds values to current lexicon with name
  remove_duplicates: bool
      If append=True and remove_duplicates=True, remove duplicate values
      from lexicon after appending
docstr_tok: ["Add","tag","to","lexicon","Parameters","--","--","--","--","--","name",":","str","Tag","name",".","values",":","list","(","str",")","Tag","values",".","overwrite",":","bool","If","True",",","replaces","tag","with","the","same","name","if","it","already","exists","append",":","bool","If","True",",","adds","values","to","current","lexicon","with","name","remove_duplicates",":","bool","If","append=True","and","remove_duplicates=True",",","remove","duplicate","values","from","lexicon","after","appending"]
code: def add_lexicon(
      self,
      name,
      values,
      overwrite=False,
      append=False,
      remove_duplicates=False,
  ):
      """Add tag to lexicon
  
      Parameters
      ----------
      name : str
          Tag name.
      values : list(str)
          Tag values.
      overwrite : bool
          If True, replaces tag with the same name if it already exists
      append : bool
          If True, adds values to current lexicon with name
      remove_duplicates: bool
          If append=True and remove_duplicates=True, remove duplicate values
          from lexicon after appending
      """
      # words can be strings, dictionarys, and other objects
      if overwrite == True and append == True:
          raise Exception("Either overwrite or append must be False")
      if append == True:
          if name not in self.lexicons:
              self.lexicons[name] = values
          else:
              self.lexicons[name].extend(values)
          if remove_duplicates == True:
              self.lexicons[name] = list(set(self.lexicons[name]))
          return
      if name in self.lexicons and not overwrite:
          raise Exception(
              "%s already in lexicons. Call with overwrite=True to overwrite"
              % name
          )
      self.lexicons[name] = values
  
imports: import collections
  import itertools
  import string
  import numpy
  import re
  import copy
  import os
  import json
  import munch
  import pickle
  import csv
  from .viewer.template_editor import TemplateEditor
  from .multilingual import multilingual_params, get_language_code
label_desc: Use image node_id 14 for calling the Editor obj's underlying member method code with example usage: obj.add_lexicon(name, values, overwrite, append, remove_duplicates) without return types