code: def levenshtein(a, b):
      m = len(a)
      n = len(b)
      D = np.zeros((m + 1, n + 1), dtype=int)
  
      D[:, 0] = np.arange(m + 1)
      D[0, :] = np.arange(n + 1)
  
      for j in range(1, n + 1):
          for i in range(1, m + 1):
              if a[i - 1] == b[j - 1]:
                  D[i, j] = D[i - 1, j - 1]
              else:
                  D[i, j] = min(
                      D[i - 1, j] + 1,
                      D[i, j - 1] + 1,
                      D[i - 1, j - 1] + 1,
                  )
  
      return D[m, n]
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import copy
  import unittest
  import numpy
  import turicreate
  from turicreate.toolkits._main import ToolkitError
  from collections import Counter
  import sys
label_desc: Use image node_id 8 for calling a global function with example usage: levenshtein(a, b) and returns: D