así que estoy usando la biblioteca ML 'limdu' ( https://www.npmjs.com/package/limdu ). En él, estoy tratando de usar la función .trainBatch(). Train batch toma una lista de objetos, y cada objeto tiene una entrada (siendo otro objeto) y una salida, siendo una matriz de cadenas. Un ejemplo se ve así:
intentClassifier.trainBatch([ { input: { I: 1, want: 1, an: 1, apple: 1 }, output: ["WANT", "APPLE"] }, { input: { I: 1, want: 1, a: 1, banana: 1 }, output: ["BANANA", "WANT"] }, { input: { I: 1, want: 1, chips: 1 }, output: "CHIPS" }, ]);Ahora, estoy tratando de pasar información dinámica a la función trainBatch. Tengo un archivo csv donde cada fila tiene la 'entrada' y la 'salida' para pasar. El análisis del .csv se puede ver a continuación:
var trainingData = {} fs.createReadStream('data.csv') .pipe(csv.parse({ headers: true })) .on('error', error => console.error(error)) .on('data', row => { trainingData[row.input] = [row.output] }) .on('end', rowCount => console.log(trainingData));En este punto, los datos de entrenamiento son un objeto donde todas las entradas son claves y las salidas son los valores de las matrices de cadenas correspondientes. Mi pregunta es ¿cómo agrego estas entradas y salidas dentro de la función .trainBatch()? Cualquier ayuda es muy apreciada, estoy realmente perdido.
Está construyendo un objeto, cuando la función que está llamando espera una matriz. ¿Quizás debería construir una matriz en su lugar y empujar cada fila en la matriz? Luego, al final, simplemente pase la matriz construida a trainBatch
let trainingData = []; fs.createReadStream('data.csv') .pipe(csv.parse({ headers: true })) .on('error', error => console.error(error)) .on('data', row => { trainingData.push({input:row.input, output:row.output}) }) .on('end', rowCount => trainBatch(trainingData));