File size: 6,632 Bytes
0d3411a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import torch
import streamlit as st
import io
import imageio
from PIL import Image
import torch.nn as nn
import time
from task2 import predict_class
from task3 import generate_text
import tempfile
import os
from transformers import pipeline

# Замените "ваш-пользователь/ваш-новый-репозиторий" на ваш новый путь на Hugging Face
model_path = "HaggiVaggi/nlp_project"
generator = pipeline('text-generation', model=model_path)

st.title('Обработка естественного языка • Natural Language Processing')

with st.sidebar:
    st.header('Выберите страницу')
    page = st.selectbox("Выберите страницу", ["Главная", "Отзывы на рестораны",\
                        "Тематика новостей", "GPT by GPT-team", "Итоги"])

if page == "Главная":
    st.header('Выполнила команда "GPT":')
    st.subheader('🦁Рома')
    st.subheader('🐯Руслан')
    st.subheader('🐱Тата')
    

    st.header(" 🌟 " * 10)

    st.header('Наши задачи:')
    st.subheader('*Задача №1*: Классификация отзыва на рестораны')
    st.subheader('*Задача №2*: Классификация тематики новостей из телеграм каналов')
    st.subheader('*Задача №2*: Генерация текста GPT-моделью по пользовательскому prompt')


elif page == "Отзывы на рестораны":
    st.header("Отзывы на рестораны:")
   

elif page == "Тематика новостей":
    st.header("Тематика новостей:")

    st.markdown(f"<span style='font-size:{30}px; color:purple'>{'Модель: DeepPavlov/rubert-base-cased'}</span>", unsafe_allow_html=True)
    st.info('Модель основана на архитектуре BERT (Bidirectional Encoder Representations from Transformers), представленной в [статье](https://arxiv.org/abs/1810.04805)')
    st.info('Rubert-base-cased: "cased" означает, что в этой модели сохранен регистр слов. Это важно для русского языка, где регистр может влиять на смысл слов.')
    st.info('В библиотеке [Transformers от Hugging Face](https://huggingface.co/DeepPavlov/rubert-base-cased), слой классификации представляется в виде BertForSequenceClassification. Этот классификатор добавляется к основной модели BERT и обучается на конкретной задаче классификации текста.')
    user_input = st.text_area('Введите текст поста и мы узнаем, к какой тематике его отнести:')
    if st.button("Предсказать"):
        pred = predict_class(user_input)
        st.subheader("Это текст по теме:" )
        st.markdown(f'<span style="font-size:{25}px; color:pink">{pred}</span>', unsafe_allow_html=True)
        st.subheader("Accuracy и Loss на 5 эпохах" )
        image_1 = imageio.imread('pictures/im1.png')[:, :, :]
        st.image(image_1)



elif page == "GPT by GPT-team":
    st.header("GPT by GPT-team:")
    st.markdown(f"<span style='font-size:{30}px; color:green'>{'Модель: GPT2LMHeadModel'}</span>", unsafe_allow_html=True)
    st.info('[GPT2LMHeadModel](https://huggingface.co/docs/transformers/model_doc/gpt2) - это модель, способная генерировать текст, учитывая предшествующий контекст.')
    st.info('[Sberbank-ai/rugpt3small_based_on_gpt2](https://huggingface.co/ai-forever/rugpt3small_based_on_gpt2): Это конкретная предобученная модель GPT-2, которая была дообучена на русском языке командой Sber AI.\
             Она обладает способностью генерировать текст, принимая на вход текстовый контекст.')
    user_input2 = st.text_area("Введите текст:", "")
    if st.button("Сгенерировать"):
        generated = generate_text(user_input2)
        st.subheader("Сгенерированный текст:")
        st.markdown(f'<span style="font-size:{25}px; color:green">{generated}</span>', unsafe_allow_html=True)
       

    
    # st.subheader("- Модель: *ConvAutoencoder()*")
    # st.subheader("- Количество эпох обучения: *100*")

    # st.info('Расширение картинки должно быть в формате .jpg /.jpeg /.png')
    # image_url2 = st.text_input("Введите URL изображения")
    # start_time2 = time.time()

    # if image_url2:
    #     # Загрузка изображения по ссылке
    #     response2 = requests.get(image_url2)
    #     image2 = Image.open(io.BytesIO(response2.content))
    #     st.subheader('Ваше фото до обработки:')
    #     st.image(image2)
    #     prediction_result = predict_1(image2)

    #     show_result_button3 = st.button("Показать результат", key="result_button_3")
    #     if show_result_button3:
    #         st.success("Ваш результат готов!")

    #         st.subheader("Ваше фото после обработки:")
    #         st.image(prediction_result, channels='GRAY')
    #         st.subheader(f'Время предсказания: {round((time.time() - start_time2), 2)} сек.')
    #         st.header('🎈' * 10)





elif page == "Итоги":
    st.header('Результаты и выводы')
#     st.subheader('*Задача №1*: Детектирование ветряных мельниц')

#     st.subheader("Метрики из Clear ML")
#     image_1 = Image.open("pictures/P_curve.png")
#     image_2 = Image.open("pictures/PR_curve.png")
#     image_3 = Image.open("pictures/R_curve.png")
#     image_4 = Image.open("pictures/F1_curve.png")

# # Отображаем изображения в одной строке
#     st.image([image_1, image_2, image_3, image_4], caption=['Image 1 - P_curve', 'Image 2 - PR_curve', 'Image 3 - R_curve', 'Image 4 - F1_curve'], width=300)

#     st.subheader("Результативные графики из Clear ML")
#     image_5 = imageio.imread('pictures/plots.jpg')[:, :, :]
#     st.image(image_5)