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 MultiDocJointModel(MultiDocSummModel): | |
model_name = "Multi-document joint" | |
is_multi_document = True | |
def __init__(self, model_backend: SummModel = TextRankModel, **kwargs): | |
super(MultiDocJointModel, 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) | |
joint_corpus = [] | |
for instance in corpus: | |
joint_corpus.append(" ".join(instance)) | |
summaries = self.model.summarize(joint_corpus) | |
return summaries | |
def generate_basic_description(cls) -> str: | |
basic_description = ( | |
"MultiDocJointModel performs multi-document summarization by" | |
" first concatenating all documents," | |
" and then performing single-document summarization on the concatenation." | |
) | |
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." | |
" Concatenates each document in corpus and returns single-document summarization of joint corpus.\n" | |
"Strengths: \n - Allows for control of backend model.\n" | |
"Weaknesses: \n - Assumes all documents are equally weighted.\n" | |
" - May fail to extract information from certain documents.\n" | |
) | |
print(f"{basic_description}\n{'#' * 20}\n{more_details}") | |