Spaces:
Running
on
Zero
Running
on
Zero
Commit
·
a5a84d4
1
Parent(s):
301bc6b
minor change
Browse files
app.py
CHANGED
@@ -86,28 +86,45 @@ def process_file(file):
|
|
86 |
processed_rows = []
|
87 |
|
88 |
for _, row in df.iterrows():
|
89 |
-
text = row
|
90 |
-
entity = row
|
91 |
|
92 |
event_type, event_summary = detector.detect_events(text, entity)
|
93 |
sentiment = detector.analyze_sentiment(text)
|
94 |
|
95 |
-
|
96 |
'Объект': entity,
|
97 |
-
'Заголовок': row
|
98 |
'Sentiment': sentiment,
|
99 |
'Event_Type': event_type,
|
100 |
'Event_Summary': event_summary,
|
101 |
'Текст': text
|
102 |
-
}
|
103 |
-
processed_rows.append(processed_row)
|
104 |
|
105 |
return pd.DataFrame(processed_rows)
|
106 |
|
107 |
except Exception as e:
|
108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
|
110 |
def create_visualizations(df):
|
|
|
|
|
|
|
111 |
# Create sentiment distribution plot
|
112 |
sentiments = df['Sentiment'].value_counts()
|
113 |
fig_sentiment = go.Figure(data=[go.Pie(
|
@@ -116,7 +133,7 @@ def create_visualizations(df):
|
|
116 |
marker_colors=['#FF6B6B', '#4ECDC4', '#95A5A6']
|
117 |
)])
|
118 |
|
119 |
-
# Create events distribution plot
|
120 |
events = df['Event_Type'].value_counts()
|
121 |
fig_events = go.Figure(data=[go.Bar(
|
122 |
x=events.index,
|
|
|
86 |
processed_rows = []
|
87 |
|
88 |
for _, row in df.iterrows():
|
89 |
+
text = str(row.get('Выдержки из текста', ''))
|
90 |
+
entity = str(row.get('Объект', ''))
|
91 |
|
92 |
event_type, event_summary = detector.detect_events(text, entity)
|
93 |
sentiment = detector.analyze_sentiment(text)
|
94 |
|
95 |
+
processed_rows.append({
|
96 |
'Объект': entity,
|
97 |
+
'Заголовок': str(row.get('Заголовок', '')),
|
98 |
'Sentiment': sentiment,
|
99 |
'Event_Type': event_type,
|
100 |
'Event_Summary': event_summary,
|
101 |
'Текст': text
|
102 |
+
})
|
|
|
103 |
|
104 |
return pd.DataFrame(processed_rows)
|
105 |
|
106 |
except Exception as e:
|
107 |
+
# Return empty DataFrame instead of string
|
108 |
+
return pd.DataFrame(columns=['Объект', 'Заголовок', 'Sentiment', 'Event_Type', 'Event_Summary', 'Текст'])
|
109 |
+
|
110 |
+
def analyze(file):
|
111 |
+
if file is None:
|
112 |
+
return None, None, None
|
113 |
+
|
114 |
+
df = process_file(file)
|
115 |
+
if df.empty:
|
116 |
+
return df, None, None
|
117 |
+
|
118 |
+
try:
|
119 |
+
fig_sentiment, fig_events = create_visualizations(df)
|
120 |
+
return df, fig_sentiment, fig_events
|
121 |
+
except Exception as e:
|
122 |
+
return df, None, None
|
123 |
|
124 |
def create_visualizations(df):
|
125 |
+
if df is None or df.empty:
|
126 |
+
return None, None
|
127 |
+
|
128 |
# Create sentiment distribution plot
|
129 |
sentiments = df['Sentiment'].value_counts()
|
130 |
fig_sentiment = go.Figure(data=[go.Pie(
|
|
|
133 |
marker_colors=['#FF6B6B', '#4ECDC4', '#95A5A6']
|
134 |
)])
|
135 |
|
136 |
+
# Create events distribution plot
|
137 |
events = df['Event_Type'].value_counts()
|
138 |
fig_events = go.Figure(data=[go.Bar(
|
139 |
x=events.index,
|