def __call__(self, documentSet, words_limit, method="mmr", metric="tf", summary_order="origin"):
dictionary = self._create_dictionary(documentSet)
self.summary_order = summary_order
# empty document
if not dictionary:
return ()
if metric.lower() == "tf":
matrix = self._create_matrix(documentSet, dictionary)
matrix = self._compute_term_frequency(matrix)
elif metric.lower() == "tfidf":
matrix = self._create_tfidf_matrix(documentSet, dictionary)
else:
raise ValueError("Don't support your metric now.")
u, sigma, v = svd(matrix, full_matrices=False)
ranks = iter(self._compute_ranks(sigma, v))
if method.lower() == "default":
return self._get_best_sentences(documentSet.sentences, words_limit,
lambda sent: next(ranks))
if method.lower() == "mmr":
return self._get_best_sentences_by_MMR(documentSet.sentences, words_limit,
matrix, lambda sent: next(ranks))
评论列表
文章目录