NodeJS рдкрд░ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд░реВрд╕реА рдкрд╛рда рдХрд╛ рд╡рд░реНрдЧреАрдХрд░рдг

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


рдореИрдВ рдХрд┐рд╕реА рдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рдЕрдЧрд░ рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдЖрдзреБрдирд┐рдХ рд╡реНрдпрдХреНрддрд┐ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рд╣рд░ рджрд┐рди рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рдЖрд░рдПрд╕рдПрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рд▓рдЧрднрдЧ 500 рд▓реЗрдЦ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдПрдХрдорд╛рддреНрд░ рд╕реНрд░реЛрдд рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред

рдореИрдВрдиреЗ NodeJS рдкрд░ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд▓реЗрдЦ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд▓рд┐рдП RSS рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдиреЛрдб рдХреЗ рддрд╣рдд рд░реЗрдбреАрдореЗрдб рдЖрд░рдПрд╕рдПрд╕ рд░реАрдбрд░ рд╣реИрдВ, рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗ рд╕рд╛рде рд░реЗрдбреА-рдореЗрдб рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд▓рд┐рдЦрдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред

рдореИрдВрдиреЗ рд╣рд╛рде рдореЗрдВ рдЖрдП рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЗрдирдкреБрдЯ рд▓рд┐рдпрд╛ред рдореИрдВрдиреЗ рдЧреАрдХ рдкрддреНрд░рд┐рдХрд╛ рд╕реЗ рдиреЛрдбрдЬ рдкрд░ рд▓реЗрдЦреЛрдВ рдХреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдбреЗрдЯрд╛ рдХреА рдирдХрд▓ рдХреА рдореБрдЭреЗ "tape.ru" рдкрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдбреЗрдЯрд╛ рдорд┐рд▓рд╛ред рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХрд╛ рдХрд╛рд░реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдиреЛрдбрдЬ рдкрд░ рд▓реЗрдЦреЛрдВ рдХреЛ рдЫрд╛рдВрдЯрдирд╛ рдерд╛, рдЬреЛ рдореЗрд░реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдЪрд╛рд░ рд╕реЗ рдЬреБрдбрд╝реЗ рдереЗред

рдореИрдВ рдмреНрд░реЗрди рдФрд░ рдлреИрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ - рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рдЬрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдЙрдЯ рдСрдл рдмреЙрдХреНрд╕ рд╕реВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ - рдореЗрд░реЗ рдЗрдирдкреБрдЯ рдкрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рд╣реА рдЙрддреНрддрд░ рдирд╣реАрдВ рджрд┐рдПред рд▓реЗрдХрд┐рди рдиреЗрдЪреБрд░рд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред

рдЖрдЧреЗ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛, рдЗрд╕рдХреЗ рдХрд╛рдо рдХреА рдЬрд╛рдБрдЪ рдХреА рдФрд░ рдореБрдЭреЗ рд░реВрд╕реА рднрд╛рд╖рд╛ рд╕рдордЭрд╛рдИред



рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛


рдЬрд┐рд╕ рдбреЗрдЯрд╛ рдкрд░ рдореИрдВрдиреЗ рдХреНрд▓рд╛рд╕рд┐рдлрд╝рд╛рдпрд░ рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕реЗ рдпрд╣рд╛рдБ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рд╕реЗ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ред

рдХреЛрдб


'use strict'; var data = require('./data'); var natural = require('natural'), porterStemmer = natural.PorterStemmerRu, classifier = new natural.BayesClassifier(porterStemmer); //  classifier'     . for (var i = 0; i < data.good.length; i++) { classifier.addDocument(data.good[i], 'good'); }; for (var i = 0; i < data.bad.length; i++) { classifier.addDocument(data.bad[i], 'bads'); }; //     . classifier.train(); //     . console.log('START CLASSIFICATION'); console.log('Test on good'); for (var i = 0; i < data.test_good.length; i++) { console.log("> ",classifier.classify(data.test_good[i])); }; console.log('Test on bad'); for (var i = 0; i < data.test_bad.length; i++) { console.log("> ",classifier.classify(data.test_bad[i])); }; 


рдкрд░рд┐рдгрд╛рдо


  рд╕реНрдЯрд╛рд░реНрдЯ рдХреНрд▓рд╛рд╕
 рдЕрдЪреНрдЫрд╛ рдкрд░ рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВ
 > рдЕрдЪреНрдЫрд╛
 > рдЕрдЪреНрдЫрд╛
 > рдЕрдЪреНрдЫрд╛
 > рдЕрдЪреНрдЫрд╛
 рдЦрд░рд╛рдм рдкрд░ рдЯреЗрд╕реНрдЯ
 > рдмреИрдбреНрд╕
 > рдмреИрдбреНрд╕
 > рдмреИрдбреНрд╕
 > рдмреИрдбреНрд╕
 > рдЕрдЪреНрдЫрд╛
 > рдмреИрдбреНрд╕
 > рдмреИрдбреНрд╕
 > рдЕрдЪреНрдЫрд╛ 


рд░реВрд╕реА рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди


рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рдХреГрддрд┐рдХ "рд╕реНрдЯреЗрдорд░" рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкрд╛рда рдХреЛ рд╢рдмреНрджреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдмреЗрдХрд╛рд░ рд╢рдмреНрджреЛрдВ (рддрдерд╛рдХрдерд┐рдд рд╕реНрдЯреЙрдкрд╡рд░реНрдбреНрд╕ ) рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ, рдФрд░ рд╢рдмреНрдж рдХреЗ рдЕрдВрдд рдХреЛ рдХрд╛рдЯрддрд╛ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ рд░реВрд╕реА рд╢рдмреНрджреЛрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЛ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реБрд▓реЗрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбрд┐рдлреЙрд▓реНрдЯ рдЗрдВрдЧреНрд▓рд┐рд╢ рдЙрддреНрддреЗрдЬрдХ рдХреЛ рдмрджрд▓рдирд╛ред рдпрд╣ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:

 var classifier = new natural.BayesClassifier(natural.PorterStemmerRu); 


рдЕрдм рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗ рдЕрдВрджрд░ рдХреЗ рдкрд╛рда рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред

рдкреНрд░рдпреЛрдЧ рдкреНрд░реЗрдореА


рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд░реНрдХрд┐рдВрдЧ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛рдИред рд╕реНрдерд╛рдкрдирд╛ рддреБрдЪреНрдЫ рд╣реИ:

 git clone git@github.com:shuvalov-anton/classifier.git cd classifier npm i node app.js 


рдЗрд╕рдХреЗ рдмрд╛рдж, data.js рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдиреЗ рдореЗрдВ рдмрджрд▓реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВред

рдкреБрдирд╢реНрдЪ


рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдиреЗ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдЧреАрдердм рдкрд░ рд░реАрдбрдореА рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЧрдВрднреАрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рд▓реЗрдЦрди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдФрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЛ рдХреИрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдореБрдЭреЗ рд╕реНрд░реЛрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдВрдЧрд╛рдорд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕реБрдкрд░ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдерд╛, рдФрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдерд╛!

Source: https://habr.com/ru/post/In193738/


All Articles