所以我使用的是“limdu”ML 庫(https://www.npmjs.com/package/limdu)。在其中,我嘗試使用 .trainBatch() 函式。訓練批次接受一個物件串列,每個物件都有一個輸入(作為另一個物件)和一個輸出,作為一個字串陣列。一個示例如下所示:
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" },
]);
現在,我正在嘗試將動態資訊傳遞到 trainBatch 函式中。我有一個 csv 檔案,其中每一行都有要傳入的“輸入”和“輸出”。 .csv 的決議如下所示:
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));
此時,訓練資料是一個物件,其中所有輸入都是鍵,輸出是相應字串陣列的值。我的問題是如何在 .trainBatch() 函式中添加這些輸入和輸出?非常感謝任何幫助,我真的很迷茫。
uj5u.com熱心網友回復:
當您呼叫的函式需要一個陣列時,您正在構建一個物件。也許您應該構建一個陣列,然后推送陣列中的每一行?然后,最后,只需將構造的陣列傳遞給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));
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/385960.html
標籤:javascript 节点.js 文件
上一篇:CSV參考值在資料中帶有換行符
