def freeze(self, unknown_marker = '<UNK>'):
    """Prevent further additions to the symbol table.

    After a table is frozen, subsequent calls to insert() will not change the
    table, and calls to get_id(s) will return the id for the unknown word marker
    for any s that did not have an id when the table was frozen. If the table
    is already frozen this action is a no-op.

    Args:
      unknown_marker: string  Unknown words or words added after a freeze are
        mapped to the unknown marker. If None, do not use an unknown value.
    """
    if self._frozen:
      return
    if unknown_marker:
      self.insert(unknown_marker)
      self._unk = self._id_dict[unknown_marker]
    self._frozen = True
Prevent further additions to the symbol table.

    After a table is frozen, subsequent calls to insert() will not change the
    table, and calls to get_id(s) will return the id for the unknown word marker
    for any s that did not have an id when the table was frozen. If the table
    is already frozen this action is a no-op.

    Args:
      unknown_marker: string  Unknown words or words added after a freeze are
        mapped to the unknown marker. If None, do not use an unknown value.
    
language/nql/nql/symbol.py