molokhovdmitry
commited on
Commit
·
b87c360
1
Parent(s):
b404872
Add summarization.py
Browse filesFormer-commit-id: 56bdf7d9d9503049e395a9f23421101b16725c09
- requirements.txt +2 -1
- 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))
|