File size: 1,404 Bytes
a08962e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fbd2a16
a08962e
 
 
 
 
 
 
 
bb72d7e
a08962e
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from transformers import pipeline, T5Tokenizer, T5ForConditionalGeneration


class TextSummarizer:
    model_name = "sonoisa/t5-base-japanese"
    tokenizer_name = "sonoisa/t5-base-japanese"

    def __init__(self):
        """
        TextSummarizerクラスを初期化し、トークナイザ、モデル、パイプラインを設定

        Parameters:
        - なし

        Returns:
        - なし
        """
        # トークナイザを個別に初期化し、legacy=Falseを指定
        self.tokenizer = T5Tokenizer.from_pretrained(self.tokenizer_name, legacy=False)
        # モデルを個別に初期化
        self.model = T5ForConditionalGeneration.from_pretrained(self.model_name)
        # パイプラインを初期化
        self.summarizer = pipeline("summarization", model=self.model, tokenizer=self.tokenizer)

    def summarize(self, text, max_length=20, min_length=10):
        """
        テキストを要約

        Parameters:
        - text (str): 要約する対象のテキスト。
        - max_length (int): 要約の最大長 (デフォルトは20)
        - min_length (int): 要約の最小長 (デフォルトは10)

        Returns:
        - summary_text (str): 要約されたテキスト
        """
        summary = self.summarizer(text, max_length=max_length, min_length=min_length, do_sample=False)
        return summary[0]['summary_text']