code: def matchBlocks(self, blocks, threshold=.5, *args, **kwargs):
          
          candidate_records = itertools.chain.from_iterable(self._blockedPairs(blocks))
  
          matches = core.scoreDuplicates(candidate_records,
                                         self.data_model,
                                         self.classifier,
                                         self.num_cores,
                                         threshold=0)
  
          logger.debug("matching done, begin clustering")
  
          for cluster in self._cluster(matches, threshold, *args, **kwargs):
              yield cluster
  
          try:
              match_file = matches.filename
              del matches
              os.remove(match_file)
          except AttributeError:
              pass
docs: Partitions blocked data and generates a sequence of clusters,
          where each cluster is a tuple of record ids
  
          Keyword arguments:
  
          blocks -- Sequence of tuples of records, where each tuple is a
                    set of records covered by a blocking predicate
  
          threshold -- Number between 0 and 1 (default is .5). We will
                        only consider as duplicates record pairs as
                        duplicates if their estimated duplicate
                        likelihood is greater than the threshold.
  
                        Lowering the number will increase recall,
                        raising it will increase precision