molokhovdmitry commited on
Commit
b87c360
·
1 Parent(s): b404872

Add summarization.py

Browse files

Former-commit-id: 56bdf7d9d9503049e395a9f23421101b16725c09

Files changed (2) hide show
  1. requirements.txt +2 -1
  2. summarization.py +34 -0
requirements.txt CHANGED
@@ -4,4 +4,5 @@ Pillow
4
  bs4
5
  lxml
6
  requests
7
- requests
 
 
4
  bs4
5
  lxml
6
  requests
7
+ requests
8
+ transformers
summarization.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import AutoTokenizer, T5ForConditionalGeneration
2
+
3
+ def init_model_and_tokenizer():
4
+ """Initializes the model and the tokenizer."""
5
+ model_name = "IlyaGusev/rut5_base_sum_gazeta"
6
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
7
+ model = T5ForConditionalGeneration.from_pretrained(model_name)
8
+
9
+ return model, tokenizer
10
+
11
+ def summarize(text, model, tokenizer):
12
+ """Summarizes the text."""
13
+ input_ids = tokenizer(
14
+ [text],
15
+ max_length=600,
16
+ add_special_tokens=True,
17
+ padding="max_length",
18
+ truncation=True,
19
+ return_tensors="pt"
20
+ )["input_ids"]
21
+
22
+ output_ids = model.generate(
23
+ input_ids=input_ids,
24
+ no_repeat_ngram_size=4
25
+ )[0]
26
+
27
+ summary = tokenizer.decode(output_ids, skip_special_tokens=True)
28
+ return summary
29
+
30
+ if __name__ == "__main__":
31
+ # Test
32
+ text = "Памятник Александру Пушкину и Наталье Гончаровой', 'summary': 'Па́мятник Алекса́ндру Пу́шкину и Ната́лье Гончаро́вой — памятник известному русскому поэту Александру Пушкину и его жене Наталье Гончаровой. Установлен в 1999 году на Арбате напротив дома, где они жили. Авторами проекта являются скульпторы Александр и Игорь Бургановы, архитекторы Евгений Розанов и Е. К. Шумов.\nСкульптура копирует сцену после венчания пары и изображает их шагающими вперёд держась за руки. Обе бронзовые статуи выполнены с большим портретным сходством и установлены на гранитный постамент с надписью: «Александр Пушкин и Наталья Гончарова»."
33
+ model, tokenizer = init_model_and_tokenizer()
34
+ print(summarize(text, model, tokenizer))