code: def match(self, messy_data, threshold=0.5, n_matches=1, generator=False):  # pragma: no cover
          
          blocked_pairs = self._blockData(messy_data)
  
          clusters = self.matchBlocks(blocked_pairs, threshold, n_matches)
  
          clusters = (cluster for cluster in clusters if len(cluster))
  
          if generator:
              return clusters
          else:
              return list(clusters)
docs: Identifies pairs of records that refer to the same entity, returns
          tuples containing a set of record ids and a confidence score as a float
          between 0 and 1. The record_ids within each set should refer to the
          same entity and the confidence score is the estimated probability that
          the records refer to the same entity.
  
          This method should only used for small to moderately sized datasets
          for larger data, use matchBlocks
  
          Arguments:
          messy_data -- Dictionary of records from messy dataset, where the
                        keys are record_ids and the values are dictionaries with
                        the keys being field names
  
          threshold -- Number between 0 and 1 (default is .5). We will consider
                       records as potential duplicates if the predicted
                       probability of being a duplicate is above the threshold.
  
                       Lowering the number will increase recall, raising it
                       will increase precision
  
          n_matches -- Maximum number of possible matches from the canonical
                       record set to match against each record in the messy
                       record set