Spaces:
Runtime error
Runtime error
| import pandas as pd | |
| import streamlit as st | |
| df = pd.read_csv("movies_prepared.csv") | |
| # Определяем список эмоций | |
| emotions = ["Positive", "Neutral", "Negative"] | |
| # Определяем Streamlit app | |
| def app(): | |
| st.title("Приложение для аннотации эмоций в диалоге") | |
| # Просим пользователя выбрать фильм | |
| movies = df["movie_title"].unique() | |
| movie = st.selectbox("Выберите фильм", movies, key='movie_select') | |
| # Фильтруем данные по выбранному фильму | |
| data = df[df["movie_title"] == movie].copy() | |
| # Создаем новую колонку для выбранных эмоций | |
| data["emotions"] = [[] for _ in range(len(data))] | |
| # Отображаем диалоги для выбранного фильма | |
| for i, row in data.iterrows(): | |
| names = eval(row["names"]) | |
| dialog = eval(row["dialog"]) | |
| dialogues = [f"{name}: {replic}" for name, | |
| replic in zip(names, dialog)] | |
| dialogue_text = "\n\n".join(dialogues) | |
| st.write(f"**Dialogue {i + 1}** \n\n {dialogue_text}") | |
| # Просим пользователя выбрать эмоции для диалога | |
| emotions_selected = [] | |
| for j, replic in enumerate(dialog): | |
| emotion = st.multiselect(f"Выберите эмоции для реплик(и) {j+1}", | |
| emotions, key=f'emotions_select_{i}_{j}') | |
| emotions_selected.append(emotion) | |
| # Отображаем выбранные эмоции | |
| st.write("Выбранные эмоции:", emotions_selected) | |
| # Добавляем выбранные эмоции в датафрейм | |
| data.at[i, "emotions"] = emotions_selected | |
| # Добавляем разделитель | |
| st.markdown("---") | |
| # Добавляем кнопку для загрузки размеченных данных | |
| if st.button("Сохранить размеченные данные"): | |
| # Сохраняем размеченные данные в csv-файл | |
| data.to_csv("my_movies_prepared.csv", index=False) | |
| if __name__ == "__main__": | |
| app() | |