docs: def _read_theta(self, dt):
          """
          Used by :func:`.from_mallet` to reconstruct theta posterior
          distributions.
  
          Returns
          -------
          td : Numpy array
              Rows are documents, columns are topics. Rows sum to ~1.
          """
  
          self.theta = FeatureSet()
  
          with open(dt, "rb") as f:
              i = -1
              reader = csv.reader(f, delimiter='\t')
              for line in reader:
                  i += 1
                  if i == 0:
                      continue     # Avoid header row.
  
                  d, id, t = int(line[0]), unicode(line[1]), line[2:]
                  feature = Feature([(int(t[i]), float(t[i + 1]))
                                     for i in xrange(0, len(t) - 1, 2)])
                  self.theta.add(id, feature)
  
          self.corpus.features['topics'] = self.theta
          return self.theta