docs: def burstness(corpus, featureset_name, features=[], k=5, topn=20,
                perslice=False, normalize=True, **kwargs):
      """
      Estimate burstness profile for the ``topn`` features (or ``flist``) in
      ``feature``.
  
      Uses the popular burstness automaton model inroduced by `Kleinberg (2002)
      <http://www.cs.cornell.edu/home/kleinber/bhs.pdf>`_.
  
      Parameters
      ----------
      corpus : :class:`.Corpus`
      feature : str
          Name of featureset in ``corpus``. E.g. ``'citations'``.
      k : int
          (default: 5) Number of burst states.
      topn : int or float {0.-1.}
          (default: 20) Number (int) or percentage (float) of top-occurring
          features to return. If ``flist`` is provided, this parameter is ignored.
      perslice : bool
          (default: False) If True, loads ``topn`` features per slice. Otherwise,
          loads ``topn`` features overall. If ``flist`` is provided, this
          parameter is ignored.
      flist : list
          List of features. If provided, ``topn`` and ``perslice`` are ignored.
      normalize : bool
          (default: True) If True, burstness is expressed relative to the hightest
          possible state (``k-1``). Otherwise, states themselves are returned.
      kwargs : kwargs
          Parameters for burstness automaton HMM.
  
      Returns
      -------
      B : dict
          Keys are features, values are tuples of ( dates, burstness )
  
      Examples
      --------
  
      .. code-block:: python
  
         >>> from tethne.analyze.corpus import burstness
         >>> B = burstness(corpus, 'abstractTerms', flist=['process', 'method']
         >>> B['process']
         ([1990, 1991, 1992, 1993], [0., 0.4, 0.6, 0.])
  
      """
  
      # If `features` of interest are not specified, calculate burstness for the
      #  top `topn` features.
      if len(features) == 0:
          T = corpus.top_features(featureset_name, topn=topn, perslice=perslice)
          if perslice:
              features = list(set([f[0] for flist in zip(*T)[1] for f in flist]))
          else:
              features = list(zip(*T))[0]
  
      B = {feature: feature_burstness(corpus, featureset_name, feature, k=k,
                                      normalize=normalize, **kwargs)
           for feature in features}
      return B