pentarosarium commited on
Commit
87fd9e7
·
1 Parent(s): 4673e91

progress more 32+

Browse files
Files changed (1) hide show
  1. app.py +50 -59
app.py CHANGED
@@ -164,74 +164,65 @@ def process_file(uploaded_file):
164
  return df
165
 
166
  def create_output_file(df):
167
- # Create a new Excel writer object
168
- output = io.BytesIO()
169
- writer = pd.ExcelWriter(output, engine='openpyxl')
170
-
171
  # Load the sample file to copy its structure
172
  sample_wb = load_workbook("sample_file.xlsx")
173
 
174
- # Process data for 'Сводка' sheet
175
- entities = df['Объект'].unique()
176
- summary_data = []
177
- for entity in entities:
178
- entity_df = df[df['Объект'] == entity]
179
- total_news = len(entity_df)
180
- negative_news = sum((entity_df['FinBERT'] == 'Negative') |
181
- (entity_df['RoBERTa'] == 'Negative') |
182
- (entity_df['FinBERT-Tone'] == 'Negative'))
183
- positive_news = sum((entity_df['FinBERT'] == 'Positive') |
184
- (entity_df['RoBERTa'] == 'Positive') |
185
- (entity_df['FinBERT-Tone'] == 'Positive'))
186
- summary_data.append([entity, total_news, negative_news, positive_news])
187
-
188
- summary_df = pd.DataFrame(summary_data, columns=['Объект', 'Всего новостей', 'Отрицательные', 'Положительные'])
189
- summary_df = summary_df.sort_values('Отрицательные', ascending=False)
190
-
191
- # Write 'Сводка' sheet
192
- if 'Сводка' in sample_wb.sheetnames:
193
- writer.book['Сводка'] = sample_wb['Сводка']
194
- summary_df.to_excel(writer, sheet_name='Сводка', startrow=3, startcol=4, index=False, header=False)
195
-
196
- # Process data for 'Значимые' and 'Анализ' sheets
197
- significant_data = []
198
- analysis_data = []
199
- for _, row in df.iterrows():
200
- if any(row[model] in ['Negative', 'Positive'] for model in ['FinBERT', 'RoBERTa', 'FinBERT-Tone']):
201
- sentiment = 'Negative' if any(row[model] == 'Negative' for model in ['FinBERT', 'RoBERTa', 'FinBERT-Tone']) else 'Positive'
202
- significant_data.append([row['Объект'], sentiment, row['Заголовок'], row['Выдержки из текста']])
203
 
204
- if any(row[model] == 'Negative' for model in ['FinBERT', 'RoBERTa', 'FinBERT-Tone']):
205
- analysis_data.append([row['Объект'], 'РИСК УБЫТКА', row['Заголовок'], row['Выдержки из текста']])
206
-
207
- # Write 'Значимые' sheet
208
- if 'Значимые' in sample_wb.sheetnames:
209
- writer.book['Значимые'] = sample_wb['Значимые']
210
- significant_df = pd.DataFrame(significant_data, columns=['Объект', 'Окраска', 'Заголовок', 'Текст'])
211
- significant_df.to_excel(writer, sheet_name='Значимые', startrow=2, startcol=2, index=False)
212
-
213
- # Write 'Анализ' sheet
214
- if 'Анализ' in sample_wb.sheetnames:
215
- writer.book['Анализ'] = sample_wb['Анализ']
216
- analysis_df = pd.DataFrame(analysis_data, columns=['Объект', 'Тип риска', 'Заголовок', 'Текст'])
217
- analysis_df.to_excel(writer, sheet_name='Анализ', startrow=3, startcol=4, index=False)
218
-
219
- # Copy 'Публикации' sheet from original file
220
- if 'Публикации' in sample_wb.sheetnames:
221
- writer.book['Публикации'] = sample_wb['Публикации']
222
- df.to_excel(writer, sheet_name='Публикации', index=False)
223
-
224
- # Add 'Тех.приложение' sheet
225
- df.to_excel(writer, sheet_name='Тех.приложение', index=False)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
 
227
- writer.save()
228
  output.seek(0)
229
-
230
  return output
231
 
232
-
233
  def main():
234
- st.title("... приступим к анализу... версия 31+")
235
 
236
  uploaded_file = st.file_uploader("Выбирайте Excel-файл", type="xlsx")
237
 
 
164
  return df
165
 
166
  def create_output_file(df):
 
 
 
 
167
  # Load the sample file to copy its structure
168
  sample_wb = load_workbook("sample_file.xlsx")
169
 
170
+ # Create a new Excel writer object
171
+ output = io.BytesIO()
172
+ with pd.ExcelWriter(output, engine='openpyxl') as writer:
173
+ writer.book = sample_wb
174
+ writer.sheets = {ws.title: ws for ws in sample_wb.worksheets}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
 
176
+ # Process data for 'Сводка' sheet
177
+ entities = df['Объект'].unique()
178
+ summary_data = []
179
+ for entity in entities:
180
+ entity_df = df[df['Объект'] == entity]
181
+ total_news = len(entity_df)
182
+ negative_news = sum((entity_df['FinBERT'] == 'Negative') |
183
+ (entity_df['RoBERTa'] == 'Negative') |
184
+ (entity_df['FinBERT-Tone'] == 'Negative'))
185
+ positive_news = sum((entity_df['FinBERT'] == 'Positive') |
186
+ (entity_df['RoBERTa'] == 'Positive') |
187
+ (entity_df['FinBERT-Tone'] == 'Positive'))
188
+ summary_data.append([entity, total_news, negative_news, positive_news])
189
+
190
+ summary_df = pd.DataFrame(summary_data, columns=['Объект', 'Всего новостей', 'Отрицательные', 'Положительные'])
191
+ summary_df = summary_df.sort_values('Отрицательные', ascending=False)
192
+
193
+ # Write 'Сводка' sheet
194
+ summary_df.to_excel(writer, sheet_name='Сводка', startrow=3, startcol=4, index=False, header=False)
195
+
196
+ # Process data for 'Значимые' and 'Анализ' sheets
197
+ significant_data = []
198
+ analysis_data = []
199
+ for _, row in df.iterrows():
200
+ if any(row[model] in ['Negative', 'Positive'] for model in ['FinBERT', 'RoBERTa', 'FinBERT-Tone']):
201
+ sentiment = 'Negative' if any(row[model] == 'Negative' for model in ['FinBERT', 'RoBERTa', 'FinBERT-Tone']) else 'Positive'
202
+ significant_data.append([row['Объект'], sentiment, row['Заголовок'], row['Выдержки из текста']])
203
+
204
+ if any(row[model] == 'Negative' for model in ['FinBERT', 'RoBERTa', 'FinBERT-Tone']):
205
+ analysis_data.append([row['Объект'], 'РИСК УБЫТКА', row['Заголовок'], row['Выдержки из текста']])
206
+
207
+ # Write 'Значимые' sheet
208
+ significant_df = pd.DataFrame(significant_data, columns=['Объект', 'Окраска', 'Заголовок', 'Текст'])
209
+ significant_df.to_excel(writer, sheet_name='Значимые', startrow=2, startcol=2, index=False)
210
+
211
+ # Write 'Анализ' sheet
212
+ analysis_df = pd.DataFrame(analysis_data, columns=['Объект', 'Тип риска', 'Заголовок', 'Текст'])
213
+ analysis_df.to_excel(writer, sheet_name='Анализ', startrow=3, startcol=4, index=False)
214
+
215
+ # Copy 'Публикации' sheet from original file
216
+ df.to_excel(writer, sheet_name='Публикации', index=False)
217
+
218
+ # Add 'Тех.приложение' sheet
219
+ df.to_excel(writer, sheet_name='Тех.приложение', index=False)
220
 
 
221
  output.seek(0)
 
222
  return output
223
 
 
224
  def main():
225
+ st.title("... приступим к анализу... версия 32+")
226
 
227
  uploaded_file = st.file_uploader("Выбирайте Excel-файл", type="xlsx")
228