code: def getWord(self, pattern, returnDiff = 0):
          
          minDist = 10000
          closest = None
          for w in self.patterns:
              # There may be some patterns that are scalars; we don't search
              # those in this function:
              if type(self.patterns[w]) in [int, float, int]: continue
              if len(self.patterns[w]) == len(pattern):
                  dist = reduce(operator.add, [(a - b) ** 2 for (a,b) in zip(self.patterns[w], pattern )])
                  if dist == 0.0:
                      if returnDiff:
                          return w, dist
                      else:
                          return w
                  if dist < minDist:
                      minDist = dist
                      closest = w
          if returnDiff:
              return closest, minDist
          else:
              return closest
docs: Returns the word associated with pattern.
  
          Example: net.getWord([0, 0, 0, 1]) => "tom"
  
          This method now returns the closest pattern based on distance.