code: def b_cubed(clusters, mention_to_gold):
          
          numerator, denominator = 0, 0
          for cluster in clusters:
              if len(cluster) == 1:
                  continue
              gold_counts = Counter()
              correct = 0
              for mention in cluster:
                  if mention in mention_to_gold:
                      gold_counts[tuple(mention_to_gold[mention])] += 1
              for cluster2, count in gold_counts.items():
                  if len(cluster2) != 1:
                      correct += count * count
              numerator += correct / float(len(cluster))
              denominator += len(cluster)
          return numerator, denominator
docs: Averaged per-mention precision and recall.
          <https://pdfs.semanticscholar.org/cfe3/c24695f1c14b78a5b8e95bcbd1c666140fd1.pdf>