one-hot-json
Version:
flattening JSON Objects and encoding values via one-hot approach
48 lines (42 loc) • 1.3 kB
JavaScript
;
const Onehot = require('./index.js');
const _ = require('lodash');
const input = [
{
user: { id: 1, name: 'Dalton', prename: 'John', online: true },
project: { id: 1, name: 'lodash'},
},
{
user: { id: 1, name: 'Dalton', prename: 'John', online: true },
project: { id: 2, name: 'docdown'},
},
{
user: { id: 1, name: 'Dalton', prename: 'John', online: true },
project: { id: 3, name: 'lodash-cli'},
},
{
user: { id: 2, name: '-', prename: 'contra', online: false },
project: { id: 4, name: 'gulp'},
},
{
user: { id: 3, name: '-', prename: 'phated', online: true },
project: { id: 4, name: 'gulp'},
}
];
let sample = _.first(input);
const User = Onehot(sample);
let encoded = User.encode(input);
let decoded = User.decode(encoded);
console.log(encoded);
console.log(decoded);
console.log(JSON.stringify(input) === JSON.stringify(decoded));
let deformatedEncoding = [
[ 0.9, 0.1, 0.2, 2.3, 0.8, 0.01 ],
[ 1.1, 0.2, 0.3, 2.2, 2.1, 1.35 ],
[ 0.8, 0.1, 0.1, 2.3, 3.2, 2.11 ],
[ 1.9, 0.9, 1.2, 3.1, 4.2, 3.31 ],
[ 2.9, 1.1, 2.2, 2.1, 4.3, 3.22 ]
];
let decodedDeformation = User.decode(deformatedEncoding);
console.log(decodedDeformation);
console.log(JSON.stringify(input) === JSON.stringify(decodedDeformation));