File size: 1,699 Bytes
88c381a
 
91dd84e
240b689
ac0c206
ec5e298
41cc661
 
ac0c206
88c381a
ac0c206
91dd84e
ac0c206
ec5e298
88c381a
 
ac0c206
 
 
 
 
 
 
ec5e298
91dd84e
 
 
 
 
 
ac0c206
91dd84e
 
ac0c206
91dd84e
 
 
 
 
88c381a
91dd84e
225ca46
88c381a
ac0c206
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
import streamlit as st
import pandas as pd
from transformers import pipeline

# Load translation and summarization pipelines
translator = pipeline("translation_ru_to_en", model="Helsinki-NLP/opus-mt-ru-en")
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")

# Function to translate and summarize text
def translate_and_summarize(text):
    translated_text = translator(text)[0]['translation_text']
    summary = summarizer(translated_text, max_length=140, min_length=110, do_sample=False)[0]['summary_text']
    return summary

# Streamlit interface
def main():
    st.title("CSV Translator and Summarizer")

    # File uploader
    uploaded_file = st.file_uploader("Choose a CSV file", type="csv")
    if uploaded_file is not None:
        # Read data
        data = pd.read_csv(uploaded_file)

        # Check necessary columns
        required_columns = {'Description', 'Published'}
        if not required_columns.issubset(data.columns):
            missing_cols = required_columns - set(data.columns)
            st.error(f"Uploaded CSV is missing the following required column(s): {', '.join(missing_cols)}")
            return

        # Filter rows where 'Published' is unchecked (assuming False or equivalent)
        data_filtered = data[data['Published'] == False]

        # Apply translation and summarization
        if not data_filtered.empty:
            data_filtered['Summary'] = data_filtered['Description'].apply(translate_and_summarize)
            # Display data in a table
            st.write(data_filtered[['ID', 'Title', 'Summary']])
        else:
            st.write("No unpublished descriptions to process.")

if __name__ == "__main__":
    main()