Spaces:
Build error
Build error
| from .base_multi_doc_model import MultiDocSummModel | |
| from model.base_model import SummModel | |
| from model.single_doc import TextRankModel | |
| from typing import Union, List | |
| class MultiDocSeparateModel(MultiDocSummModel): | |
| model_name = "Multi-document separate" | |
| is_multi_document = True | |
| def __init__(self, model_backend: SummModel = TextRankModel, **kwargs): | |
| super(MultiDocSeparateModel, self).__init__() | |
| model = model_backend(**kwargs) | |
| self.model = model | |
| def summarize( | |
| self, | |
| corpus: Union[List[str], List[List[str]]], | |
| query: Union[List[str], List[List[str]]] = None, | |
| ) -> List[str]: | |
| self.assert_summ_input_type(corpus, None) | |
| summaries = [] | |
| for instance in corpus: | |
| instance_summaries = self.model.summarize(instance) | |
| summaries.append(" ".join(instance_summaries)) | |
| return summaries | |
| def generate_basic_description(cls) -> str: | |
| basic_description = ( | |
| "MultiDocSeparateModel performs multi-document summarization by" | |
| " first performing single-document summarization on each document," | |
| " and then concatenating the results." | |
| ) | |
| return basic_description | |
| def show_capability(cls): | |
| basic_description = cls.generate_basic_description() | |
| more_details = ( | |
| "A multi-document summarization model." | |
| " Allows for custom model backend selection at initialization." | |
| " Performs single-document summarization on each document in corpus and returns concatenated result.\n" | |
| "Strengths: \n - Allows for control of backend model.\n" | |
| "Weaknesses: \n - Assumes all documents are equally weighted.\n - May produce redundant information for similar documents.\n" | |
| ) | |
| print(f"{basic_description}\n{'#' * 20}\n{more_details}") | |