|
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}"} |
|
|
|
|
|
|
|
if 'Soon ' not in df.columns: |
|
return {"error": "Столбец '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() |