kikikita's picture
app done
6f32d95
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()