Spaces:
Build error
Build error
| import json | |
| from pathlib import Path | |
| import pandas as pd | |
| import streamlit as st | |
| from category_classification.models import models as class_models | |
| 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: "Аннотация"} | |
| metrics_label = {en: "Test metrics", ru: "Метрики на тренировочном датасете"} | |
| with open( | |
| Path(__file__).parent / "category_classification" / "test_results.json", "r" | |
| ) as metric_f: | |
| metrics = json.load(metric_f) | |
| def text_area_height(line_height: int): | |
| return 34 * line_height | |
| def load_class_model(name): | |
| model = class_models.get_model(name) | |
| return model | |
| lang = st.pills(label=langs_str, options=langs) | |
| if lang is None: | |
| lang = 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 = {"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) | |
| lang_metrics = pd.DataFrame(metrics[lang]) | |
| if not lang_metrics.empty: | |
| with st.expander(metrics_label[lang]): | |
| st.dataframe(lang_metrics) | |