javascript - Brainjs返回错误数据
问题描述
我正在使用 Brain.js 来检测消息中的诈骗。现在,我正在传递一系列消息,brain.js 应该告诉我这是否是一个骗局。
我只用了 1 条消息进行了尝试,它奏效了。现在有了 2,它会无缘无故地返回非常高的数字。
我的代码: serializer.js:
const fixLengths = (data) => {
let maxLengthInput = -1;
for (let i = 0; i < data.length; i++) {
if (data[i].input.length > maxLengthInput) {
maxLengthInput = data[i].input.length;
}
}
for (let i = 0; i < data.length; i++) {
while (data[i].input.length < maxLengthInput) {
data[i].input.push(0);
}
}
return data;
}
const encode = d => {
const newArr = [];
for (let i = 0; i < d.length; i++) {
d[i].split('').map(c => {
newArr.push((c.charCodeAt(0) / 255))
})
}
return newArr;
}
const encodeData = data => {
return data.map( d => {
return {
input: encode(d.input),
output: d.output
}
})
}
const serialize = data => fixLengths(encodeData(data))
module.exports = {
serialize: serialize,
encode: encode,
fixLengths: fixLengths
}
index.js:
const brain = require('brain.js')
const trainData = require('./src/training-data')
const serializer = require('./src/serializer')
const net = new brain.NeuralNetwork()
net.train(serializer.serialize(trainData))
let messages = ["I just got tons of free money by clicking this link and going to this website: bux.gg. It really works!", "hi can I have free money please?"]
const output = net.run(serializer.encode(messages))
console.log(output) // Returning some crazy numbers like ".99 for scam", when it should be around .5
任何帮助都会很棒。谢谢!
解决方案
推荐阅读
- sql - 由于表的哪些索引在 Oracle 中变得不可用,如何调试哪个 DB 用户对表进行了更改?
- python - TensorFlow 中切片输入的梯度为无
- mongodb - 我想按特定字段匹配的用户名对 mongoDB 文档进行分组,以便输出是按用户名分组的所有文档
- javascript - Angular 使用 Jasmine 和 Karma 获取 - 不完整:未找到规范
- ruby-on-rails - 在 Rails 中阻止 MD5 散列
- android - 如何防止 Outlook for Android 将数字格式化为链接
- wso2 - api管理器是否有最大范围计数?
- android - chart_flutter - 域轴的自定义比例
- jenkins - 在 Jenkins 下运行 msbuild /t:restore 以恢复 nuget 包时出错
- java - Sharedpreference 不起作用,没有运行时错误