File size: 1,352 Bytes
ce0c8db
eaba143
 
7aae4ed
 
9d5b1d9
ce0c8db
9d5b1d9
90a7e15
9d5b1d9
90a7e15
fe3279c
9d5b1d9
 
eaba143
fe3279c
 
 
 
eaba143
 
 
 
 
 
9d5b1d9
90a7e15
eaba143
9d5b1d9
eaba143
fe3279c
 
 
eaba143
 
fe3279c
eaba143
ce0c8db
 
53bf7b2
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
import pandas as pd
import streamlit as st

from category_classification.models import models as class_models
from common import Input
from languages import *
from results import process_results

page_title = {en: "Papers classification", ru: "Классификация статей"}
model_label = {en: "Select model", ru: "Выберете модель"}
title_label = {en: "Title", ru: "Название статьи"}
authors_label = {en: "Author(s)", ru: "Автор(ы)"}
abstract_label = {en: "Abstract", ru: "Аннотация"}


def text_area_height(line_height: int):
    return 34 * line_height


@st.cache_data
def load_class_model(name):
    model = class_models.get_model(name)
    return model


lang = st.pills(label=langs_str, options=langs, default=en)
st.title(page_title[lang])
model_name = st.selectbox(
    model_label[lang], options=class_models.get_model_names_by_lang(lang)
)
title = st.text_area(title_label[lang], height=text_area_height(2))
authors = st.text_area(authors_label[lang], height=text_area_height(2))
abstract = st.text_area(abstract_label[lang], height=text_area_height(5))

if title:
    input = Input(title=title, abstract=abstract, authors=authors)
    model = load_class_model(model_name)
    results = model(input)
    results = process_results(results, lang)
    st.dataframe(results, hide_index=True)