class_docstr: Helper data object for training IBM Models 3 and up
  
  Read-only. For a source sentence and its counterpart in the target
  language, this class holds information about the sentence pair's
  alignment, cepts, and fertility.
  
  Warning: Alignments are one-indexed here, in contrast to
  nltk.translate.Alignment and AlignedSent, which are zero-indexed
  This class is not meant to be used outside of IBM models.
class_docstr_tok: ["Helper","data","object","for","training","IBM","Models","3","and","up","Read-only",".","For","a","source","sentence","and","its","counterpart","in","the","target","language",",","this","class","holds","information","about","the","sentence","pair's","alignment",",","cepts",",","and","fertility",".","Warning",":","Alignments","are","one-indexed","here",",","in","contrast","to","nltk.translate.Alignment","and","AlignedSent",",","which","are","zero-indexed","This","class","is","not","meant","to","be","used","outside","of","IBM","models","."]
docstr: :return: The previous cept of ``j``, or None if ``j`` belongs to
      the first cept
docstr_tok: [":","return",":","The","previous","cept","of","``","j","``",",","or","None","if","``","j","``","belongs","to","the","first","cept"]
code: def previous_cept(self, j):
      """
      :return: The previous cept of ``j``, or None if ``j`` belongs to
          the first cept
      """
      i = self.alignment[j]
      if i == 0:
          raise ValueError(
              "Words aligned to NULL cannot have a previous "
              "cept because NULL has no position"
          )
      previous_cept = i - 1
      while (
          previous_cept > 0 and self.fertility_of_i(previous_cept) == 0
      ):
          previous_cept -= 1
  
      if previous_cept <= 0:
          previous_cept = None
      return previous_cept
  
imports: from bisect import insort_left
  from collections import defaultdict
  from copy import deepcopy
  from math import ceil
label_desc: Use image node_id 5 for calling the AlignmentInfo obj's underlying member method code with example usage: obj.previous_cept(j) and returns: previous_cept