Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2015
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. var _=require('lodash');
  3.  
  4. // var blobUtil=require('blobl-util');
  5.  
  6. var dictionary = "0123456789qwertyuiopasdfghjklzxcvbnm,.()'- ".split("");
  7.  
  8. var keys = {};
  9.  
  10. for (var i in dictionary)
  11. {
  12.     keys[ dictionary[ i ] ] = +i;
  13. }
  14.  
  15. var words =
  16. [
  17.     [ "extorsion", [ 0.98, 4 ] ]
  18.     , [ "secuestro", [ 0.97, 4 ] ]
  19.     , [ "homicidio", [ 0.96, 4 ] ]
  20.     , [ "asesinato", [ 0.96, 4 ] ]
  21.     , [ "corrupcion", [ 0.10, 1 ] ]
  22.     , [ "violencia", [ 0.96, 0.4 ] ]
  23.     , [ "inseguridad", [ 0.95, 0.4 ] ]
  24.     , [ "feminicidio", [ 0.2, 4 ] ]
  25.     , [ "robos", [ 0.92, 4 ] ]
  26.     , [ "puterias", [ 0.20, 4 ] ]
  27.     , [ "prostituta", [ 0.20, 4 ] ]
  28.     , [ "prostitutas", [ 0.20, 4 ] ]
  29.     , [ "putas", [ 0.20, 4 ] ]
  30.     , [ "puteria", [ 0.20, 4 ] ]
  31.     , [ "pandilla", [ 0.50, 4 ] ]
  32.     , [ "pandillas", [ 0.50, 4 ] ]
  33.     , [ "pandilleros", [ 0.50, 4 ] ]
  34. ];
  35.  
  36. var target_words =
  37. [
  38.     "extorsin"
  39.     , "extorsione"
  40.     , "puteria"
  41.     , "prostituta"
  42.     , "secuestru"
  43.     , "secuestro"
  44.     , "sequestru"
  45.     , "pandill"
  46. ];
  47.  
  48. // console.log( dictionary, keys );
  49.  
  50. var synaptic = require('synaptic'); // this line is not needed in the browser
  51.  
  52. var Trainer = synaptic.Trainer,
  53.     Architect = synaptic.Architect;
  54.  
  55. // var perceptron = new Architect.Perceptron(2,15,3);
  56.  
  57. var myLSTM = new Architect.LSTM( 4, 4, 4, 4, 1 );
  58.  
  59. // training set
  60. var learningRate = 0.3;
  61.  
  62. var trainingSet = [];
  63. var targetSet = [];
  64.  
  65. _.each( words, function ( item ) {
  66.     var input=[],output=0;
  67.     _.each( item[ 0 ].split(''), function( key ){
  68.         input.push( keys[ key ] );
  69.         output += keys[ key ];
  70.         return;
  71.     } );
  72.     return trainingSet.push( { input: _.slice( input, 0, 4 ), output: [ item[ 1 ][ 0 ] + ( output / 10000 ) ] } );
  73. } );
  74.  
  75. console.log(trainingSet);
  76.  
  77. _.each( target_words, function ( item ) {
  78.     var input=[];
  79.     _.each( item.split(''), function( key ){
  80.         return input.push( keys[ key ] );
  81.     } );
  82.     return targetSet.push( input );
  83. } );
  84.  
  85. console.log(targetSet);
  86.  
  87. var trainer = new Trainer( myLSTM );
  88.  
  89. // trainer.train(trainingSet,{ rate: learningRate, iterations: 200, error: .005, shuffle: true, log: 1000, cost: Trainer.cost.CROSS_ENTROPY });
  90.  
  91. trainer.train( trainingSet );
  92.  
  93. _.each( words, function ( word ) {
  94.     return console.log( word[ 0 ], word[ 1 ][ 0 ] );
  95. });
  96.  
  97. _.each( targetSet, function ( it, key ) {
  98.     it = _.slice( it, 0, 4 );
  99.     return console.log( target_words[ key ], it.length, it, myLSTM.activate( it ) );
  100. } );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement