kleytondacosta commited on
Commit
4772b09
·
verified ·
1 Parent(s): 32f609d

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +29 -32
index.html CHANGED
@@ -143,84 +143,82 @@
143
  <section class="section">
144
  <div class="container is-max-desktop">
145
  <div class="columns is-centered">
146
- <!-- Table and Filters Section -->
147
  <div class="column">
148
  <div class="content">
149
  <h2 class="title is-3">Filtered Dataset Table</h2>
150
  <p>
151
- Use the filters below to select a dataset view by task and stage. Each combination returns a filtered Hugging Face dataset.
152
  </p>
153
  <!-- Filters -->
154
  <div class="filters">
155
  <label for="task">Task:</label>
156
  <select id="task" onchange="updateTable()">
157
  <option value="binary_classification">Binary Classification</option>
158
- <!-- Add more task options if needed -->
159
  </select>
160
  <label for="stage">Stage:</label>
161
  <select id="stage" onchange="updateTable()">
162
  <option value="preprocessing">Preprocessing</option>
163
- <!-- Add more stage options if needed -->
164
  </select>
165
  </div>
166
- <!--/ Filters -->
167
 
168
  <!-- Table -->
169
  <table id="datasetTable" class="table is-striped">
170
  <thead>
171
- <tr id="tableHeader">
172
- <!-- Table headers will be dynamically populated -->
173
- </tr>
174
  </thead>
175
- <tbody id="tableBody">
176
- <!-- Table rows will be dynamically populated -->
177
- </tbody>
178
  </table>
179
- <!--/ Table -->
180
  </div>
181
  </div>
182
  </div>
183
  </div>
184
  </section>
185
 
 
186
  <script>
187
  async function fetchDataset(task, stage) {
188
- // Create URL based on the selected task and stage
189
  const datasetURL = `https://huggingface.co/datasets/holistic-ai/bias_mitigation_benchmark/resolve/main/benchmark_${task}_${stage}.csv`;
190
-
191
- const response = await fetch(datasetURL);
192
- const text = await response.text();
193
-
194
- // Parse CSV text into a format suitable for the table
195
- const data = Papa.parse(text, { header: true }); // Use PapaParse library for CSV parsing
196
- return data.data;
 
 
 
 
 
197
  }
198
 
199
  async function updateTable() {
200
  const task = document.getElementById('task').value;
201
  const stage = document.getElementById('stage').value;
202
-
203
- // Fetch dataset based on current filter values
204
  const dataset = await fetchDataset(task, stage);
205
 
206
- // Populate table headers
 
 
 
 
 
 
207
  const tableHeader = document.getElementById('tableHeader');
208
- tableHeader.innerHTML = ''; // Clear existing headers
209
- const headers = Object.keys(dataset[0] || {});
210
- headers.forEach(column => {
211
  const th = document.createElement('th');
212
- th.textContent = column;
213
  tableHeader.appendChild(th);
214
  });
215
 
216
- // Populate table rows
217
  const tableBody = document.getElementById('tableBody');
218
- tableBody.innerHTML = ''; // Clear existing rows
219
  dataset.forEach(row => {
220
  const tr = document.createElement('tr');
221
- headers.forEach(column => {
222
  const td = document.createElement('td');
223
- td.textContent = row[column];
224
  tr.appendChild(td);
225
  });
226
  tableBody.appendChild(tr);
@@ -228,7 +226,6 @@
228
  }
229
  </script>
230
 
231
- <script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.0/papaparse.min.js"></script>
232
 
233
 
234
 
 
143
  <section class="section">
144
  <div class="container is-max-desktop">
145
  <div class="columns is-centered">
 
146
  <div class="column">
147
  <div class="content">
148
  <h2 class="title is-3">Filtered Dataset Table</h2>
149
  <p>
150
+ Use the filters below to load the dataset based on task and stage.
151
  </p>
152
  <!-- Filters -->
153
  <div class="filters">
154
  <label for="task">Task:</label>
155
  <select id="task" onchange="updateTable()">
156
  <option value="binary_classification">Binary Classification</option>
 
157
  </select>
158
  <label for="stage">Stage:</label>
159
  <select id="stage" onchange="updateTable()">
160
  <option value="preprocessing">Preprocessing</option>
 
161
  </select>
162
  </div>
 
163
 
164
  <!-- Table -->
165
  <table id="datasetTable" class="table is-striped">
166
  <thead>
167
+ <tr id="tableHeader"></tr>
 
 
168
  </thead>
169
+ <tbody id="tableBody"></tbody>
 
 
170
  </table>
 
171
  </div>
172
  </div>
173
  </div>
174
  </div>
175
  </section>
176
 
177
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.0/papaparse.min.js"></script>
178
  <script>
179
  async function fetchDataset(task, stage) {
 
180
  const datasetURL = `https://huggingface.co/datasets/holistic-ai/bias_mitigation_benchmark/resolve/main/benchmark_${task}_${stage}.csv`;
181
+ try {
182
+ const response = await fetch(datasetURL);
183
+ if (!response.ok) {
184
+ throw new Error(`HTTP error! Status: ${response.status}`);
185
+ }
186
+ const text = await response.text();
187
+ return Papa.parse(text, { header: true }).data;
188
+ } catch (error) {
189
+ console.error("Failed to fetch dataset:", error);
190
+ alert("Failed to load dataset. Please check the console for details.");
191
+ return [];
192
+ }
193
  }
194
 
195
  async function updateTable() {
196
  const task = document.getElementById('task').value;
197
  const stage = document.getElementById('stage').value;
 
 
198
  const dataset = await fetchDataset(task, stage);
199
 
200
+ if (dataset.length === 0) {
201
+ document.getElementById('tableHeader').innerHTML = "<th>No data available</th>";
202
+ document.getElementById('tableBody').innerHTML = "<tr><td>No data</td></tr>";
203
+ return;
204
+ }
205
+
206
+ const headers = Object.keys(dataset[0]);
207
  const tableHeader = document.getElementById('tableHeader');
208
+ tableHeader.innerHTML = ""; // Clear existing headers
209
+ headers.forEach(header => {
 
210
  const th = document.createElement('th');
211
+ th.textContent = header;
212
  tableHeader.appendChild(th);
213
  });
214
 
 
215
  const tableBody = document.getElementById('tableBody');
216
+ tableBody.innerHTML = ""; // Clear existing rows
217
  dataset.forEach(row => {
218
  const tr = document.createElement('tr');
219
+ headers.forEach(header => {
220
  const td = document.createElement('td');
221
+ td.textContent = row[header];
222
  tr.appendChild(td);
223
  });
224
  tableBody.appendChild(tr);
 
226
  }
227
  </script>
228
 
 
229
 
230
 
231