import { readFile, writeFile, readdir } from "node:fs/promises"; import { join, basename } from "node:path"; async function prepare() { const csvContent = await readFile("measure.csv", "utf-8"); const lines = csvContent.split("\n").slice(1); const factorizeDir = "sample/output/factorize"; const files = (await readdir(factorizeDir)).filter(f => f.endsWith(".json")); const dataset: any[] = []; for (const file of files) { const data = JSON.parse(await readFile(join(factorizeDir, file), "utf-8")); const songno = basename(file, ".json"); const match = lines.find(l => l.split(",")[1] == songno); if (match) { const constant = parseFloat(match.split(",")[0]); for (const analysis of data.analysis) { dataset.push({ x: Object.values(analysis.factors), y: constant }); } } } await writeFile("sample/dataset/dataset.json", JSON.stringify(dataset)); console.log(`Dataset prepared with ${dataset.length} samples.`); } prepare().catch(console.error);