neural-networktext-analysisbrain.js

Use brain.js neural network to do text analysis


I'm trying to do some text analysis to determine if a given string is... talking about politics. I'm thinking I could create a neural network where the input is either a string or a list of words (ordering might matter?) and the output is whether the string is about politics.

However the brain.js library only takes inputs of a number between 0 and 1 or an array of numbers between 0 and 1. How can I coerce my data in such a way that I can achieve the task?


Solution

  • new brain.recurrent.LSTM(); 
    

    this does the trick for you.

    Example,

    var brain = require('brain.js')
    var net = new brain.recurrent.LSTM();
    net.train([
      {input: "my unit-tests failed.", output: "software"},
      {input: "tried the program, but it was buggy.", output: "software"},
      {input: "i need a new power supply.", output: "hardware"},
      {input: "the drive has a 2TB capacity.", output: "hardware"},
      {input: "unit-tests", output: "software"},
      {input: "program", output: "software"},
      {input: "power supply", output: "hardware"},
      {input: "drive", output: "hardware"},
    ]);
    
    console.log("output = "+net.run("drive"));
    
    
    output = hardware
    

    refer to this link=> https://github.com/BrainJS/brain.js/issues/65 this has clear explanation and usage of brain.recurrent.LSTM()