File size: 2,096 Bytes
f1953a3
 
 
 
c60844b
f1953a3
6cd4aa9
 
 
 
 
 
 
 
 
 
 
f1953a3
c60844b
6cd4aa9
 
 
c60844b
 
6cd4aa9
 
 
 
 
 
 
 
 
f1953a3
 
 
 
 
 
 
6cd4aa9
f1953a3
6cd4aa9
f1953a3
 
 
 
 
c60844b
3a54228
f1953a3
 
 
 
c60844b
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
46
47
48
49
50
51
52
53
54
55
import gradio as gr
import pandas as pd
import re

def calculate_correlations(file_obj):
    try:
        # Попробуем разные разделители
        try:
            df = pd.read_csv(file_obj.name, encoding='utf-8')
        except pd.errors.ParserError:
            try:
                df = pd.read_csv(file_obj.name, sep=';', encoding='utf-8')
            except pd.errors.ParserError:
                try:
                    df = pd.read_csv(file_obj.name, sep='\t', encoding='utf-8')
                except pd.errors.ParserError as e:
                    return {"error": f"Ошибка парсинга файла: {e}"}


        # Проверяем, что столбец 'Soon ' существует
        if 'Soon ' not in df.columns:
          return {"error": "Столбец 'Soon ' не найден в файле."}


        # Преобразование 'Soon ' с обработкой ошибок
        try:
            df['Soon '] = df['Soon '].astype(str).str.replace(' из 5', '')
            df['Soon '] = pd.to_numeric(df['Soon '].astype(str).str.replace(',', '.'), errors='coerce')
        except AttributeError:
            return {"error": "Ошибка преобразования столбца 'Soon '. Проверьте формат данных."}

        # ... (остальной код для расчета корреляций без изменений) ...


        return {
            "correlation_review": correlation_review,
            "correlation_accommodation": correlation_accommodation,
            "correlation_expert": correlation_expert
        }


    except Exception as e:
        return {"error": f"Неизвестная ошибка: {e}"} # Общее сообщение об ошибке



iface = gr.Interface(
    fn=calculate_correlations,
    inputs=gr.File(type="filepath", label="CSV файл с отзывами"),
    outputs=gr.JSON(),
    title="Корреляционный анализ отзывов",
    description="Загрузите CSV файл с отзывами."
)

iface.launch()