@galihru/tvmai
Version:
Training and Evaluation AI Model Recommendation Engine for WebNN
46 lines (45 loc) • 1.66 kB
JavaScript
import Papa from 'papaparse';
export const loadCSVDataset = (file) => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = (e) => {
const csvData = e.target?.result;
const config = {
header: true,
dynamicTyping: true,
skipEmptyLines: true,
complete: (results) => {
const data = results.data;
if (!data.length) {
reject(new Error('CSV file is empty'));
return;
}
const columns = results.meta.fields ?? [];
const target = columns[columns.length - 1];
const dist = {};
data.forEach((row) => {
const label = row[target];
if (label !== undefined) {
dist[label] = (dist[label] || 0) + 1;
}
});
resolve({
type: 'tabular',
size: data.length,
features: columns.length - 1,
classes: Object.keys(dist).length,
classDistribution: dist,
});
},
error: (err) => {
reject(err);
},
};
Papa.parse(csvData, config);
};
reader.onerror = () => {
reject(new Error('Failed to read CSV file'));
};
reader.readAsText(file);
});
};