code: def getNext(self, normalize_digits=True):
      line = self.__source_file.readline()
      # skip multiple blank lines.
      while len(line) > 0 and len(line.strip()) == 0:
          line = self.__source_file.readline()
      if len(line) == 0:
          return None
  
      lines = []
      while len(line.strip()) > 0:
          line = line.strip()
          lines.append(line.split(" "))
          line = self.__source_file.readline()
  
      length = len(lines)
      if length == 0:
          return None
  
      words = []
      word_ids = []
      char_seqs = []
      char_id_seqs = []
      ner_tags = []
      ner_ids = []
  
      for tokens in lines:
          chars = []
          char_ids = []
          for char in tokens[1]:
              chars.append(char)
              char_ids.append(self.__char_vocab[char])
          if len(chars) > MAX_CHAR_LENGTH:
              chars = chars[:MAX_CHAR_LENGTH]
              char_ids = char_ids[:MAX_CHAR_LENGTH]
          char_seqs.append(chars)
          char_id_seqs.append(char_ids)
  
          word = (
              DIGIT_RE.sub("0", tokens[1])
              if normalize_digits
              else tokens[1]
          )
          ner = tokens[4]
  
          words.append(word)
          word_ids.append(self.__word_vocab[word])
  
          ner_tags.append(ner)
          ner_ids.append(self.__ner_vocab[ner])
  
      return NERInstance(
          Sentence(words, word_ids, char_seqs, char_id_seqs),
          ner_tags,
          ner_ids,
      )
  
imports: import re
  from collections import defaultdict
  import numpy
  import tensorflow
label_desc: Use image node_id 3 for calling the CoNLLReader obj's underlying member method code with example usage: obj.getNext(normalize_digits) and returns: NERInstance, None, None