code: def calculate_weights(self, measure='tfidf'):
          
          from math import log
  
          # TODO replace with spipy matrices (and calculate with scikit)
  
          if measure == 'tfidf':
              self.calculate_idf()
  
          for doc_idx, document in enumerate(self.resulting_documents):
              train_word_count = defaultdict(int)
              self.tf_idfs[doc_idx] = {}
              for word in document:
                  train_word_count[word] += 1
  
              for word in document:
                  if measure == "binary":
                      tf = 1
                      idf = 1
                  else:
                      tf = train_word_count[word]
                      idf = 1 if measure == "tf" else (self.idf[word] if word in self.idf else None)
  
                  if idf != None:
                      self.tf_idfs[doc_idx][word] = tf * idf
docs: Counts word frequency and calculates tf-idf values for words in every document.
  
              :param measure: example weights approach (can be one of ``tfidf, binary, tf``).