{"id":387791,"date":"2024-06-29T07:32:34","date_gmt":"2024-06-29T07:32:34","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=387791"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=387791","title":{"rendered":"<span>\u041f\u0438\u0448\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043c\u0443\u0437\u044b\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 ML<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/d8b\/c53\/cc5\/d8bc53cc5c6f27a9917110d847ee9bf5.jpg\" width=\"780\" height=\"440\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d8b\/c53\/cc5\/d8bc53cc5c6f27a9917110d847ee9bf5.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a \u0441\u0442\u0430\u0440\u0442\u0443 <a href=\"https:\/\/skillfactory.ru\/machine-learning-i-deep-learning?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_mldl_241021&amp;utm_term=lead\">\u043a\u0443\u0440\u0441\u0430 \u043f\u043e ML \u0438 DL<\/a> \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u043a\u0430\u043a \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f API Spotify, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043c\u0443\u0437\u044b\u043a\u0438 \u043f\u043e\u0434 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 ML. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043b\u0435\u0433\u043a\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0434 \u0432\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b: API Spotify \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0435\u043c\u0431\u0440. \u0417\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u043c \u043f\u043e\u0434 \u043a\u0430\u0442.<\/p>\n<hr\/>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439, \u043d\u0443\u0436\u043d\u043e \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0436\u0430\u043d\u0440\u043e\u0432 \u0438 \u2014 \u0447\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u2014 \u043d\u0430\u0439\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0439 \u0432 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041c\u0435\u0442\u043e\u0434\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u0435\u0442\u0432\u0438.<\/p>\n<h3>\u041a\u043e\u043b\u043b\u0430\u0431\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p>\u0412 \u043d\u0435\u0439 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438.\u00a0\u0412 \u0445\u043e\u0434 \u0438\u0434\u0451\u0442 \u0441\u0430\u043a\u0440\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u00ab\u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u043b\u0438&#8230;\u00bb. \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043e\u0431\u0449\u0430\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c. \u0422\u0430\u043a, \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0414\u0440\u0435\u0439\u043a \u043f\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 Slipknot. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e, \u0435\u0441\u043b\u0438 \u0435\u043c\u0443 \u043d\u0440\u0430\u0432\u044f\u0442\u0441\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0440\u044d\u043f-\u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438.<\/p>\n<h3>\u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044e<\/h3>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u2014 \u044d\u0442\u043e \u0434\u0430\u0442\u0430 \u0440\u0435\u043b\u0438\u0437\u0430, \u0436\u0430\u043d\u0440 \u0438\u043b\u0438 \u043b\u0435\u0439\u0431\u043b, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u044b\u0448\u0435\u043b \u0442\u0440\u0435\u043a. \u0418\u043b\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0430\u0443\u0434\u0438\u043e \u2014 \u043e\u0442 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u0442\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0442\u0435\u043c\u043f\u0430 \u0434\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0445, \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 MFCC \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 \u0442\u0435\u043c\u0431\u0440\u0430.\u00a0\u041d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f\u2026 \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0441 \u0432\u0430\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.<\/p>\n<h3>\u041f\u043b\u044e\u0441\u044b \u043f\u043e\u0434\u0445\u043e\u0434\u0430<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043a\u043e\u043b\u043b\u0430\u0431\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 (\u00ab\u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u043b\u0438&#8230;\u00bb).\u00a0\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043e\u043d \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0442\u0435\u043c, \u043a\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0442\u043e\u0447\u0435\u043a \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u043b\u044e\u0441 \u2014 \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043e\u0442 \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430.<\/p>\n<h2>\u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435<\/h2>\n<p>\u0418\u0437\u0432\u043b\u0435\u0447\u044c \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0438\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u2014 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430 \u044d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0443\u043c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 API, \u0433\u0434\u0435 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u0430\u043c\u0438 \u0438\u043d\u043d\u043e\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f4c\/79e\/e31\/f4c79ee31689718d9ac07a14eb2c0897.png\" alt=\"\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 API Spotify \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u0445 \u0430\u0443\u0434\u0438\u043e\" title=\"\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 API Spotify \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u0445 \u0430\u0443\u0434\u0438\u043e\" width=\"630\" height=\"388\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f4c\/79e\/e31\/f4c79ee31689718d9ac07a14eb2c0897.png\"\/><figcaption>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 API Spotify \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u0445 \u0430\u0443\u0434\u0438\u043e<\/figcaption><\/figure>\n<p>API \u043e\u0442 Spotify \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0438 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f, \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c\u044b\u0445 \u043f\u0440\u044f\u043c\u043e \u0438\u0437 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u041d\u043e \u043a\u0430\u043a \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u044c\u043c\u044f \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438: \u00ab\u0422\u0430\u043d\u0446\u0435\u0432\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e\u00bb, \u00ab\u0412\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e\u00bb, \u00ab\u0412\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u043c\u00bb \u0438 \u00ab\u0422\u0435\u043c\u043f\u043e\u043c\u00bb? \u0422\u0435\u043c\u043f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c [\u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u0430\u0432\u0442\u043e\u0440\u0430] \u0435\u0434\u0432\u0430 \u043b\u0438 \u043e\u0442\u043d\u0435\u0441\u0451\u0448\u044c \u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0443\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438.<\/p>\n<h2>\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f: \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb<\/h2>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/50f\/a4d\/059\/50fa4d0591002d34540acc6313677c95.png\" alt=\"\u041f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb \u0441 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u044d\u043c\u043e\u0446\u0438\u0439 (Russel, 1980)\" title=\"\u041f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb \u0441 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u044d\u043c\u043e\u0446\u0438\u0439 (Russel, 1980)\" width=\"864\" height=\"711\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/50f\/a4d\/059\/50fa4d0591002d34540acc6313677c95.png\"\/><figcaption>\u041f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb \u0441 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u044d\u043c\u043e\u0446\u0438\u0439 (Russel, 1980)<\/figcaption><\/figure>\n<p>\u041f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb \u2014 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u044d\u043c\u043e\u0446\u0438\u0439. \u041c\u043e\u0434\u0435\u043b\u044c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u044d\u043c\u043e\u0446\u0438\u0439. \u042d\u043c\u043e\u0446\u0438\u0438 \u0441\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a \u0434\u0432\u0443\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044e (\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0432\u044f\u043b\u043e\u0441\u0442\u0438) \u0438 \u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438 (\u043f\u043e\u0437\u0438\u0442\u0438\u0432\u0443 \u0438\u043b\u0438 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u0443).\u00a0<\/p>\n<p>\u0423 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b: \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0441\u0442\u0440\u0430\u0445 \u0438 \u0433\u043d\u0435\u0432 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0431\u043b\u0438\u0437\u043a\u043e, \u043d\u043e \u0443 \u043d\u0435\u0451 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0431\u0430\u043b\u0430\u043d\u0441 \u043c\u0435\u0436\u0434\u0443 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u0420\u0430\u0441\u0441\u0435\u043b\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435. \u0410 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043e\u043d\u0430 \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u0441 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u043c\u00bb \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 Spotify. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e API \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e, \u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439.<\/p>\n<h2>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435<\/h2>\n<h3>\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>\u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a Spotify API \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e <a href=\"https:\/\/developer.spotify.com\/documentation\/general\/guides\/authorization-guide\/\">\u044d\u0442\u043e\u043c\u0443 <\/a>\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443 \u0438\u043b\u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u0443 <a href=\"https:\/\/medium.com\/@maxtingle\/getting-started-with-spotifys-api-spotipy-197c3dc6353b\">\u043d\u0430\u0433\u043b\u044f\u0434\u043d\u0443\u044e<\/a> \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430 Medium. \u0411\u0435\u0437 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a\u043e\u0434\u0430<\/h3>\n<p>\u041d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0442\u0440\u0435\u043a\u0430\u0445, \u043f\u0430\u043a\u0435\u0442 <a href=\"https:\/\/github.com\/felix-hilden\/tekore\">tekore<\/a>, Client ID \u0438 Secret ID \u043e\u0442 Spotify \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a API. \u0412 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0438\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 <code>authorization.py<\/code>:<\/p>\n<pre><code class=\"python\">import tekore as tk def authorize():  CLIENT_ID = \"ENTER YOUR CLIENT ID HERE\"  CLIENT_SECRET = \"ENTER YOUR CLIENT SECRET HERE\"  app_token = tk.request_client_token(CLIENT_ID, CLIENT_SECRET)  return tk.Spotify(app_token)<\/code><\/pre>\n<p>\u0412 \u043a\u043e\u0434\u0435 \u0432\u0432\u043e\u0434\u0438\u043c Client ID \u0438 Client Secret ID. \u0421\u043a\u0440\u0438\u043f\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a Spotify API \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a API, \u0430 \u0435\u0449\u0451 \u0441\u043b\u0443\u0436\u0438\u0442 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043e\u043d \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e Client ID \u0438 Client Secret ID \u0441\u043a\u0440\u044b\u0442\u044b.<\/p>\n<h3>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 Spotify<\/h3>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 pip install pandas tqdm \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b. \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043a\u043e\u0434 \u043d\u0438\u0436\u0435 \u0438\/\u0438\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u0435\u043c \u043a\u0440\u0430\u0442\u043a\u043e\u043c\u0443 \u043e\u0431\u0437\u043e\u0440\u0443 \u043a\u043e\u0434\u0430.<\/p>\n<pre><code class=\"python\">################# ## PREPARATION ## #################  # Import modules import sys # If your authentification script is not in the project directory # append its folder to sys.path sys.path.append(\"..\/spotify_api_web_app\") import authorization import pandas as pd from tqdm import tqdm import time  # Authorize and call access object \"sp\" sp = authorization.authorize()  # Get all genres genres = sp.recommendation_genre_seeds()  # Set number of recommendations per genre n_recs = 100  # Initiate a dictionary with all the information you want to crawl data_dict = {\"id\":[], \"genre\":[], \"track_name\":[], \"artist_name\":[],              \"valence\":[], \"energy\":[]}  ################ ## CRAWL DATA ## ################  # Get recs for every genre for g in tqdm(genres):          # Get n recommendations     recs = sp.recommendations(genres = [g], limit = n_recs)     # json-like string to dict     recs = eval(recs.json().replace(\"null\", \"-999\").replace(\"false\", \"False\").replace(\"true\", \"True\"))[\"tracks\"]          # Crawl data from each track     for track in recs:         # ID and Genre         data_dict[\"id\"].append(track[\"id\"])         data_dict[\"genre\"].append(g)         # Metadata         track_meta = sp.track(track[\"id\"])         data_dict[\"track_name\"].append(track_meta.name)         data_dict[\"artist_name\"].append(track_meta.album.artists[0].name)         # Valence and energy         track_features = sp.track_audio_features(track[\"id\"])         data_dict[\"valence\"].append(track_features.valence)         data_dict[\"energy\"].append(track_features.energy)                  # Wait 0.2 seconds per track so that the api doesnt overheat         time.sleep(0.2)          ################## ## PROCESS DATA ## ##################  # Store data in dataframe df = pd.DataFrame(data_dict)  # Drop duplicates df.drop_duplicates(subset = \"id\", keep = \"first\", inplace = True) df.to_csv(\"valence_arousal_dataset.csv\", index = False)<\/code><\/pre>\n<h3>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u043e\u0434<\/h3>\n<ol>\n<li>\n<p>\u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>sp.recommendation_genre_seeds()<\/code> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0441\u0435 120 \u0436\u0430\u043d\u0440\u043e\u0432 Spotify.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0447\u0438\u0441\u043b\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043d\u0430 \u0436\u0430\u043d\u0440 (100).\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0434\u0430\u0451\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 API.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0436\u0430\u043d\u0440\u0443 \u0438 \u0442\u0440\u0435\u043a\u0443.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0430\u0443\u0434\u0438\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432 <code>data_dict<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0432\u043e \u0444\u0440\u0435\u0439\u043c pandas.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0443\u0431\u043b\u0435\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0435\u0451 \u0432 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433.<\/p>\n<\/li>\n<\/ol>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 <code>valence_arousal_dataset.csv<\/code> \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439.<\/p>\n<h2>\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439<\/h2>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a \u043d\u0438\u0436\u0435:\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/370\/d57\/497\/370d574971b946d05c4c3a4ab82ed36a.png\" alt=\"\u0412\u0435\u043a\u0442\u043e\u0440\u044b \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435\" title=\"\u0412\u0435\u043a\u0442\u043e\u0440\u044b \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435\" width=\"827\" height=\"687\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/370\/d57\/497\/370d574971b946d05c4c3a4ab82ed36a.png\"\/><figcaption>\u0412\u0435\u043a\u0442\u043e\u0440\u044b \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435<\/figcaption><\/figure>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb \u0441\u043e\u0435\u0434\u0438\u043d\u0451\u043d \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0442\u0440\u0435\u043a\u0430\u043c\u0438 \u043b\u0438\u043d\u0438\u044f\u043c\u0438. \u041c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u044d\u043c\u043e\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c Thriller \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044f \u041c\u0430\u0439\u043a\u043b\u0430 \u0414\u0436\u0435\u043a\u0441\u043e\u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 Rosanna.<\/p>\n<p>\u0418\u0437\u043c\u0435\u0440\u0438\u043c \u0434\u043b\u0438\u043d\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0438\u043b\u0438 \u0438\u0445 \u00ab\u043d\u043e\u0440\u043c\u0443\u00bb. \u0412\u043e\u0442 \u0444\u043e\u0440\u043c\u0443\u043b\u0430:\u00a0<em>sqrt(a\u00b2+b\u00b2)<\/em>.\u00a0\u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ol>\n<li>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u00bb \u0442\u0440\u0435\u043a\u0430 \u2014 0,5, \u0430 \u0435\u0433\u043e \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb \u2014 1, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u043d \u0438\u043c\u0435\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b (0,5, 1).\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0434\u043e \u0442\u0440\u0435\u043a\u0430 \u0440\u0430\u0432\u043d\u043e <em>sqrt((0,5)\u00b2 + 1\u00b2<\/em>) = 1,12.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0434\u043e \u0442\u0440\u0435\u043a\u0430 \u0440\u0430\u0432\u043d\u043e <em>sqrt((0,5)\u00b2 + 1\u00b2<\/em>) = 1,12.<\/p>\n<p>\u0422\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u044b, \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0438\u0435 \u0442\u0440\u0435\u043a \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0442\u0440\u0435\u043a\u0430\u043c\u0438: \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0438 \u0432\u0437\u044f\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u0434\u043b\u0438\u043d\u043e\u0439.<\/p>\n<p>\u0416\u0451\u043b\u0442\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0438\u0437 \u0442\u043e\u0447\u043a\u0438 <em>p1<\/em> \u0432 \u0442\u043e\u0447\u043a\u0443 <em>p2<\/em> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u044c \u0434\u0432\u0443\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432: p2 &#8212; p1<em>.<\/em> \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u00ab\u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f\u00bb \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u043a\u0430\u043c\u0438 t1 \u0438 t2 \u0440\u0430\u0432\u043d\u043e \u043d\u043e\u0440\u043c\u0435 (t2 &#8212; t1). \u0418\u043d\u0430\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0438\u0437 t2 \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f t1 \u0438 \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0440\u043c\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u0412 \u043a\u043e\u0434\u0435 \u043d\u0430 Python \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<pre><code class=\"python\">def distance(p1, p2):     distance_x = p2[0] - p1[0]     distance_y = p2[1] - p1[1]     distance_vec = [distance_x, distance_y]     norm = (distance_vec[0]**2 + distance_vec[1]**2)**(1\/2)     return norm<\/code><\/pre>\n<p>\u0412 \u0441\u0432\u043e\u0451\u043c \u043a\u043e\u0434\u0435 \u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f <code>numpy.linalg.norm(p2-p1)<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<h3>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b<\/h3>\n<p>\u0415\u0449\u0451 \u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u0434\u0432\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435 \u0432\u0430\u0436\u043d\u044b \u0434\u043b\u044f \u0432\u0430\u0441, \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0439\u0442\u0435 \u044d\u0442\u0443 \u0447\u0430\u0441\u0442\u044c \u0438\u043b\u0438 \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u043a \u043d\u0435\u0439 \u043f\u043e\u0437\u0436\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/6be\/04e\/c35\/6be04ec3565f4405e75ca54afabcdb6a.jpeg\" alt=\"\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb\" title=\"\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb\" width=\"2400\" height=\"1200\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6be\/04e\/c35\/6be04ec3565f4405e75ca54afabcdb6a.jpeg\" data-blurred=\"true\"\/><figcaption>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb<\/figcaption><\/figure>\n<p>\u0423 \u0434\u0432\u0443\u0445 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f: \u0443 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u043e\u043d\u043e \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0441\u043a\u043e\u043c\u0443 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e, \u0430 \u0443 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u043a\u043e\u0448\u0435\u043d\u043e.<\/p>\n<p>\u0421\u043a\u0430\u0447\u043e\u043a \u043d\u0430 0,2 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441\u043e \u0441\u043a\u0430\u0447\u043a\u043e\u043c \u043d\u0430 0,2 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb. \u0414\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u044d\u0442\u043e \u2014 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a. \u041e\u043d\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 (0,5, 0,5) \u0442\u0430\u043a \u0436\u0435 \u0431\u043b\u0438\u0437\u043e\u043a \u043a (0,7, 0,5), \u043a\u0430\u043a \u0438 \u043a (0,5, 0,7). \u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/medium.com\/analytics-vidhya\/z-score-in-detail-9dd0f0afa142\">z-\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/a>, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043c\u044b \u0435\u0433\u043e \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/518\/bbf\/90f\/518bbf90ffa1593341efb098fee01f78.jpeg\" alt=\"\u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb, \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f\" title=\"\u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb, \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f\" width=\"450\" height=\"450\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/518\/bbf\/90f\/518bbf90ffa1593341efb098fee01f78.jpeg\" data-blurred=\"true\"\/><figcaption>\u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb, \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f<\/figcaption><\/figure>\n<p>\u0414\u0440\u0443\u0433\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0432\u044b\u0448\u0435. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u0438 \u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u2014 \u0434\u0432\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u044d\u043c\u043e\u0446\u0438\u0439. \u041d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0430\u043d\u0435\u0441\u0442\u0438 \u0432\u0441\u0435 12\u00a0000 \u0442\u0440\u0435\u043a\u043e\u0432 \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb.<\/p>\n<p>\u041d\u0430\u043a\u043b\u043e\u043d \u043b\u0438\u043d\u0438\u0438 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 0,250 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044e \u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f: \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 (\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435) \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 Spotify API.<\/p>\n<h2>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439<\/h2>\n<p>\u041e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043f\u0440\u043e\u0441\u0442. \u041f\u0440\u043e\u0439\u0434\u0451\u043c \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u044d\u0442\u0430\u043f\u044b. \u0412\u0435\u0441\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u044b \u043d\u0430\u0439\u0434\u0451\u0442\u0435 \u0432 <a href=\"https:\/\/github.com\/MaxHilsdorf\/mood-based-music-recommendation-system\/blob\/main\/recommendation_system.ipynb\">\u044d\u0442\u043e\u043c <\/a>\u0431\u043b\u043e\u043a\u043d\u043e\u0442\u0435. <\/p>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u0438:<\/p>\n<pre><code class=\"python\">import pandas as pd import random import authorization # this is the script we created earlier import numpy as np from numpy.linalg import norm<\/code><\/pre>\n<p>\u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 12 000 \u0442\u0440\u0435\u043a\u043e\u0432 \u0438\u0437 \u0444\u0440\u0435\u0439\u043c\u0430:<\/p>\n<pre><code class=\"python\">df = pd.read_csv(\"valence_arousal_dataset.csv\")<\/code><\/pre>\n<p>\u041a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0440\u0435\u043a\u0430 \u0435\u0434\u0438\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 mood_vec:<\/p>\n<pre><code class=\"python\">df[\"mood_vec\"] = df[[\"valence\", \"energy\"]].values.tolist()<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u0442\u0430\u043f \u043f\u0435\u0440\u0435\u0434 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u2014 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a API Spotify:<\/p>\n<pre><code class=\"python\">sp = authorization.authorize()<\/code><\/pre>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u043b\u0438\u043d\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u0430:<\/p>\n<pre><code class=\"python\">def recommend(track_id, ref_df, sp, n_recs = 5):          # Crawl valence and arousal of given track from spotify api     track_features = sp.track_audio_features(track_id)     track_moodvec = np.array([track_features.valence, track_features.energy])          # Compute distances to all reference tracks     ref_df[\"distances\"] = ref_df[\"mood_vec\"].apply(lambda x: norm(track_moodvec-np.array(x)))     # Sort distances from lowest to highest     ref_df_sorted = ref_df.sort_values(by = \"distances\", ascending = True)     # If the input track is in the reference set, it will have a distance of 0, but should not be recommendet     ref_df_sorted = ref_df_sorted[ref_df_sorted[\"id\"] != track_id]          # Return n recommendations     return ref_df_sorted.iloc[:n_recs]<\/code><\/pre>\n<h2>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c<\/h2>\n<p>\u041e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0434\u0430\u0451\u0442 \u043b\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0440\u0435\u043a\u0430 \u043d\u0430 Spotify \u0435\u0441\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430 \u043f\u0435\u0441\u043d\u044e:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b5c\/dc5\/fd6\/b5cdc5fd6dda4f6f0f3c562950a16f36.png\" width=\"630\" height=\"359\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b5c\/dc5\/fd6\/b5cdc5fd6dda4f6f0f3c562950a16f36.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u0441\u044b\u043b\u043a\u0443: <a href=\"https:\/\/open.spotify.com\/track\/3JOVTQ5h8HGFnDdp4VT3MP?si=96f7844315434b0a\">https:\/\/open.spotify.com\/track\/<strong>3JOVTQ5h8HGFnDdp4VT3MP<\/strong>?si=96f7844315434b0a<\/a>. \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0440\u0435\u043a\u0430 \u2014 \u044d\u0442\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 <a href=\"https:\/\/open.spotify.com\/track\/3JOVTQ5h8HGFnDdp4VT3MP?si=96f7844315434b0a\">3JOVTQ5h8HGFnDdp4VT3MP<\/a>.<\/p>\n<h3>Gary Jules \u2014 Mad World<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u0440\u0435\u043a Mad World \u0441 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e\u00bb 0,30 \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u043c\u00bb 0,06.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/617569ba4615593b75e246c2\" data-style=\"\" id=\"617569ba4615593b75e246c2\" width=\"\"><\/div>\n<pre><code class=\"python\">mad_world = \"3JOVTQ5h8HGFnDdp4VT3MP\" recommend(track_id = mad_world, ref_df = df, sp = sp, n_recs = 5)<\/code><\/pre>\n<p>\u041b\u0443\u0447\u0448\u0430\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f \u0441 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e\u00bb 0,31 \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u043c\u00bb 0,05 \u2014 \u044d\u0442\u043e Glory Manger \u043e\u0442 Harry Belafonte.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/61756c9b4615593b75e246c3\" data-style=\"\" id=\"61756c9b4615593b75e246c3\" width=\"\"><\/div>\n<p>\u041d\u0435\u043f\u043b\u043e\u0445\u043e! \u0425\u043e\u0442\u044f Glory Manger \u0438\u0437 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0436\u0430\u043d\u0440\u0430, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043b \u044d\u0442\u043e\u0442 \u0442\u0440\u0435\u043a \u043a\u0430\u043a \u0438\u043c\u0435\u044e\u0449\u0438\u0439 \u0441\u0445\u043e\u0436\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u0438 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb.<\/p>\n<h3>Rosanna, Toto<\/h3>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0435\u0449\u0451! Rosanna \u0438\u043c\u0435\u0435\u0442 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u00bb 0,739 \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb 0,513.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/61756cc5abb378f6450d1a42\" data-style=\"\" id=\"61756cc5abb378f6450d1a42\" width=\"\"><\/div>\n<p>\u041b\u0443\u0447\u0448\u0430\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f \u0441 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e\u00bb 0,740 \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u043c\u00bb 0,504 \u2014 Sentimientos De Chart\u00f3n \u043e\u0442 Duelo.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/61756d136ea11f3bbbaf1fe0\" data-style=\"\" id=\"61756d136ea11f3bbbaf1fe0\" width=\"\"><\/div>\n<p>\u0421\u043d\u043e\u0432\u0430 \u0436\u0430\u043d\u0440 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f: \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u043b\u0430\u0442\u0438\u043d\u043e, \u0447\u0435\u043c \u043f\u043e\u043f-\u0440\u043e\u043a. \u041d\u043e Sentimientos De Cart\u00f3n \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0447\u0443\u0432\u0441\u0442\u0432\u043e \u0440\u043e\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0441\u043a\u0438 \u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f, \u0440\u0438\u0442\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0449\u0443\u0449\u0430\u044e\u0442\u0441\u044f \u0438 \u0432 Rosanna.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u044e! \u0412\u044b \u0434\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u2014 \u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0441\u0432\u043e\u044e \u043f\u0435\u0440\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043f\u043e\u0434 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435, \u043b\u0438\u0431\u043e \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0437\u043d\u0430\u043b\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u041d\u043e \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043a\u043e\u0435-\u0447\u0442\u043e.<\/p>\n<h3>\u041a\u0430\u043a \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443?<\/h3>\n<ul>\n<li>\n<p>\u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0441\u0442\u0430\u043b\u0438 \u0442\u043e\u0447\u043d\u0435\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c z-\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb.<\/p>\n<\/li>\n<li>\n<p>\u0412 Spotify API \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: \u00ab\u0442\u0430\u043d\u0446\u0435\u0432\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u00bb, \u00ab\u0430\u043a\u0443\u0441\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u00bb, \u00ab\u0442\u0435\u043c\u043f\u00bb.\u00a0\u041f\u043e\u0434\u0443\u043c\u0430\u0439\u0442\u0435, \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0438\u0442\u044c \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb \u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043f\u043e\u0434 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043a\u043e\u043b\u043b\u0430\u0431\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438. \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f 10 \u043b\u0443\u0447\u0448\u0438\u0445 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0441 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u043c\u00bb \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043f\u043e \u00ab\u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438\u00bb \u2014 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0442\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 API Spotify.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043a\u0438 \u0436\u0430\u043d\u0440\u043e\u0432 \u2014 \u0431\u0435\u043b\u044b\u0439 \u0438 \u0447\u0451\u0440\u043d\u044b\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u043e\u0438\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0437\u0443\u0447\u0438\u0432 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 Spotify API \u0438 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0435\u043a\u043e\u0432. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0442\u0440\u0435\u043a\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435, \u043d\u043e \u0438 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043d\u0430\u0448\u0438 \u043a\u0443\u0440\u0441\u044b:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/machine-learning-i-deep-learning?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_mldl_241021&amp;utm_term=conc\">\u041a\u0443\u0440\u0441 \u00abMachine Learning \u0438 Deep Learning\u00bb (6 \u043c\u0435\u0441\u044f\u0446\u0435\u0432)<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/data-scientist-pro?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_dspr_241021&amp;utm_term=conc\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Data Scientist (24 \u043c\u0435\u0441\u044f\u0446\u0430)<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b <a href=\"https:\/\/skillfactory.ru\/catalogue?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=sf_allcourses_241021&amp;utm_term=conc\">\u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430<\/a>, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4cb\/f38\/0fb\/4cbf380fb5af6a7ce549977901b8ca96.png\" width=\"1000\" height=\"200\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4cb\/f38\/0fb\/4cbf380fb5af6a7ce549977901b8ca96.png\"\/><figcaption><\/figcaption><\/figure>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438 \u0438 \u043a\u0443\u0440\u0441\u044b<\/summary>\n<div class=\"spoiler__content\">\n<p><strong>Data Science \u0438 Machine Learning<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/data-scientist-pro?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_dspr_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Data Scientist<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/data-analyst-pro?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=analytics_dapr_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Data Analyst<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/matematika-dlya-data-science#syllabus?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_mat_241021&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u00ab\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f Data Science\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/matematika-i-machine-learning-dlya-data-science?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_matml_241021&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u00ab\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0438 Machine Learning \u0434\u043b\u044f Data Science\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/data-engineer?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_dea_241021&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u043f\u043e Data Engineering<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/machine-learning-i-deep-learning?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_mldl_241021&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u00abMachine Learning \u0438 Deep Learning\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/machine-learning?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_ml_241021&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u043f\u043e Machine Learning<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>Python, \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/python-fullstack-web-developer?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_fpw_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Fullstack-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430 Python<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/python-for-web-developers?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_pws_241021&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u00abPython \u0434\u043b\u044f \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/frontend-razrabotchik?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_fr_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Frontend-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/webdev?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_webdev_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f \u0412\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/ios-razrabotchik-s-nulya?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_ios_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f iOS-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/android-razrabotchik?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_andr_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Android-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>Java \u0438 C#<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/java-razrabotchik?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_java_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/java-qa-engineer-testirovshik-po?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_qaja_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f QA-\u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u043d\u0430 JAVA<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/c-sharp-razrabotchik?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_cdev_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f C#-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/game-razrabotchik-na-unity-i-c-sharp?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_gamedev_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0433\u0440 \u043d\u0430 Unity<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041e\u0442 \u043e\u0441\u043d\u043e\u0432 \u2014 \u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u0443<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/algoritmy-i-struktury-dannyh?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_algo_241021&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u00ab\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/c-plus-plus-razrabotchik?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_cplus_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f C++ \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/cyber-security-etichnij-haker?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_hacker_241021&amp;utm_term=cat\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f \u042d\u0442\u0438\u0447\u043d\u044b\u0439 \u0445\u0430\u043a\u0435\u0440<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0410 \u0442\u0430\u043a\u0436\u0435:<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/devops-ingineer?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=coding_devops_241021&amp;utm_term=cat\">\u041a\u0443\u0440\u0441 \u043f\u043e DevOps<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/catalogue?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=sf_allcourses_241021&amp;utm_term=cat\">\u0412\u0441\u0435 \u043a\u0443\u0440\u0441\u044b<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/585182\/\"> https:\/\/habr.com\/ru\/articles\/585182\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041a \u0441\u0442\u0430\u0440\u0442\u0443 <a href=\"https:\/\/skillfactory.ru\/machine-learning-i-deep-learning?utm_source=habr&amp;utm_medium=habr&amp;utm_campaign=article&amp;utm_content=data-science_mldl_241021&amp;utm_term=lead\">\u043a\u0443\u0440\u0441\u0430 \u043f\u043e ML \u0438 DL<\/a> \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u043a\u0430\u043a \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f API Spotify, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043c\u0443\u0437\u044b\u043a\u0438 \u043f\u043e\u0434 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 ML. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043b\u0435\u0433\u043a\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0434 \u0432\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b: API Spotify \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0435\u043c\u0431\u0440. \u0417\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u043c \u043f\u043e\u0434 \u043a\u0430\u0442.<\/p>\n<hr\/>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439, \u043d\u0443\u0436\u043d\u043e \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0436\u0430\u043d\u0440\u043e\u0432 \u0438 \u2014 \u0447\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u2014 \u043d\u0430\u0439\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0439 \u0432 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041c\u0435\u0442\u043e\u0434\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u0435\u0442\u0432\u0438.<\/p>\n<h3>\u041a\u043e\u043b\u043b\u0430\u0431\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p>\u0412 \u043d\u0435\u0439 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438.\u00a0\u0412 \u0445\u043e\u0434 \u0438\u0434\u0451\u0442 \u0441\u0430\u043a\u0440\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u00ab\u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u043b\u0438&#8230;\u00bb. \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043e\u0431\u0449\u0430\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c. \u0422\u0430\u043a, \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0414\u0440\u0435\u0439\u043a \u043f\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 Slipknot. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e, \u0435\u0441\u043b\u0438 \u0435\u043c\u0443 \u043d\u0440\u0430\u0432\u044f\u0442\u0441\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0440\u044d\u043f-\u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438.<\/p>\n<h3>\u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044e<\/h3>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u2014 \u044d\u0442\u043e \u0434\u0430\u0442\u0430 \u0440\u0435\u043b\u0438\u0437\u0430, \u0436\u0430\u043d\u0440 \u0438\u043b\u0438 \u043b\u0435\u0439\u0431\u043b, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u044b\u0448\u0435\u043b \u0442\u0440\u0435\u043a. \u0418\u043b\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0430\u0443\u0434\u0438\u043e \u2014 \u043e\u0442 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u0442\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0442\u0435\u043c\u043f\u0430 \u0434\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0445, \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 MFCC \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 \u0442\u0435\u043c\u0431\u0440\u0430.\u00a0\u041d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f\u2026 \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0441 \u0432\u0430\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.<\/p>\n<h3>\u041f\u043b\u044e\u0441\u044b \u043f\u043e\u0434\u0445\u043e\u0434\u0430<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043a\u043e\u043b\u043b\u0430\u0431\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 (\u00ab\u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u043b\u0438&#8230;\u00bb).\u00a0\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043e\u043d \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0442\u0435\u043c, \u043a\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043e\u0432 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0442\u043e\u0447\u0435\u043a \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u043b\u044e\u0441 \u2014 \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043e\u0442 \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430.<\/p>\n<h2>\u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435<\/h2>\n<p>\u0418\u0437\u0432\u043b\u0435\u0447\u044c \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0438\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u2014 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430 \u044d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0443\u043c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 API, \u0433\u0434\u0435 \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u0430\u043c\u0438 \u0438\u043d\u043d\u043e\u0432\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438.<\/p>\n<figure class=\"full-width\"><figcaption>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 API Spotify \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u0445 \u0430\u0443\u0434\u0438\u043e<\/figcaption><\/figure>\n<p>API \u043e\u0442 Spotify \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0438 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f, \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c\u044b\u0445 \u043f\u0440\u044f\u043c\u043e \u0438\u0437 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u041d\u043e \u043a\u0430\u043a \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u044c\u043c\u044f \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438: \u00ab\u0422\u0430\u043d\u0446\u0435\u0432\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e\u00bb, \u00ab\u0412\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e\u00bb, \u00ab\u0412\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u043c\u00bb \u0438 \u00ab\u0422\u0435\u043c\u043f\u043e\u043c\u00bb? \u0422\u0435\u043c\u043f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c [\u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u0430\u0432\u0442\u043e\u0440\u0430] \u0435\u0434\u0432\u0430 \u043b\u0438 \u043e\u0442\u043d\u0435\u0441\u0451\u0448\u044c \u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0443\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438.<\/p>\n<h2>\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f: \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb<\/h2>\n<figure class=\"full-width\"><figcaption>\u041f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb \u0441 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u044d\u043c\u043e\u0446\u0438\u0439 (Russel, 1980)<\/figcaption><\/figure>\n<p>\u041f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb \u2014 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u044d\u043c\u043e\u0446\u0438\u0439. \u041c\u043e\u0434\u0435\u043b\u044c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u044d\u043c\u043e\u0446\u0438\u0439. \u042d\u043c\u043e\u0446\u0438\u0438 \u0441\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a \u0434\u0432\u0443\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044e (\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0432\u044f\u043b\u043e\u0441\u0442\u0438) \u0438 \u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438 (\u043f\u043e\u0437\u0438\u0442\u0438\u0432\u0443 \u0438\u043b\u0438 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u0443).\u00a0<\/p>\n<p>\u0423 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b: \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0441\u0442\u0440\u0430\u0445 \u0438 \u0433\u043d\u0435\u0432 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0431\u043b\u0438\u0437\u043a\u043e, \u043d\u043e \u0443 \u043d\u0435\u0451 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0431\u0430\u043b\u0430\u043d\u0441 \u043c\u0435\u0436\u0434\u0443 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u0420\u0430\u0441\u0441\u0435\u043b\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435. \u0410 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043e\u043d\u0430 \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u0441 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u043c\u00bb \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 Spotify. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e API \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e, \u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439.<\/p>\n<h2>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435<\/h2>\n<h3>\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>\u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a Spotify API \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e <a href=\"https:\/\/developer.spotify.com\/documentation\/general\/guides\/authorization-guide\/\">\u044d\u0442\u043e\u043c\u0443 <\/a>\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443 \u0438\u043b\u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u0443 <a href=\"https:\/\/medium.com\/@maxtingle\/getting-started-with-spotifys-api-spotipy-197c3dc6353b\">\u043d\u0430\u0433\u043b\u044f\u0434\u043d\u0443\u044e<\/a> \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430 Medium. \u0411\u0435\u0437 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a\u043e\u0434\u0430<\/h3>\n<p>\u041d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0442\u0440\u0435\u043a\u0430\u0445, \u043f\u0430\u043a\u0435\u0442 <a href=\"https:\/\/github.com\/felix-hilden\/tekore\">tekore<\/a>, Client ID \u0438 Secret ID \u043e\u0442 Spotify \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a API. \u0412 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0438\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 <code>authorization.py<\/code>:<\/p>\n<pre><code class=\"python\">import tekore as tk def authorize():  CLIENT_ID = \"ENTER YOUR CLIENT ID HERE\"  CLIENT_SECRET = \"ENTER YOUR CLIENT SECRET HERE\"  app_token = tk.request_client_token(CLIENT_ID, CLIENT_SECRET)  return tk.Spotify(app_token)<\/code><\/pre>\n<p>\u0412 \u043a\u043e\u0434\u0435 \u0432\u0432\u043e\u0434\u0438\u043c Client ID \u0438 Client Secret ID. \u0421\u043a\u0440\u0438\u043f\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a Spotify API \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a API, \u0430 \u0435\u0449\u0451 \u0441\u043b\u0443\u0436\u0438\u0442 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043e\u043d \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e Client ID \u0438 Client Secret ID \u0441\u043a\u0440\u044b\u0442\u044b.<\/p>\n<h3>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 Spotify<\/h3>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 pip install pandas tqdm \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b. \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043a\u043e\u0434 \u043d\u0438\u0436\u0435 \u0438\/\u0438\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u0435\u043c \u043a\u0440\u0430\u0442\u043a\u043e\u043c\u0443 \u043e\u0431\u0437\u043e\u0440\u0443 \u043a\u043e\u0434\u0430.<\/p>\n<pre><code class=\"python\">################# ## PREPARATION ## #################  # Import modules import sys # If your authentification script is not in the project directory # append its folder to sys.path sys.path.append(\"..\/spotify_api_web_app\") import authorization import pandas as pd from tqdm import tqdm import time  # Authorize and call access object \"sp\" sp = authorization.authorize()  # Get all genres genres = sp.recommendation_genre_seeds()  # Set number of recommendations per genre n_recs = 100  # Initiate a dictionary with all the information you want to crawl data_dict = {\"id\":[], \"genre\":[], \"track_name\":[], \"artist_name\":[],              \"valence\":[], \"energy\":[]}  ################ ## CRAWL DATA ## ################  # Get recs for every genre for g in tqdm(genres):          # Get n recommendations     recs = sp.recommendations(genres = [g], limit = n_recs)     # json-like string to dict     recs = eval(recs.json().replace(\"null\", \"-999\").replace(\"false\", \"False\").replace(\"true\", \"True\"))[\"tracks\"]          # Crawl data from each track     for track in recs:         # ID and Genre         data_dict[\"id\"].append(track[\"id\"])         data_dict[\"genre\"].append(g)         # Metadata         track_meta = sp.track(track[\"id\"])         data_dict[\"track_name\"].append(track_meta.name)         data_dict[\"artist_name\"].append(track_meta.album.artists[0].name)         # Valence and energy         track_features = sp.track_audio_features(track[\"id\"])         data_dict[\"valence\"].append(track_features.valence)         data_dict[\"energy\"].append(track_features.energy)                  # Wait 0.2 seconds per track so that the api doesnt overheat         time.sleep(0.2)          ################## ## PROCESS DATA ## ##################  # Store data in dataframe df = pd.DataFrame(data_dict)  # Drop duplicates df.drop_duplicates(subset = \"id\", keep = \"first\", inplace = True) df.to_csv(\"valence_arousal_dataset.csv\", index = False)<\/code><\/pre>\n<h3>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u043e\u0434<\/h3>\n<ol>\n<li>\n<p>\u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>sp.recommendation_genre_seeds()<\/code> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0441\u0435 120 \u0436\u0430\u043d\u0440\u043e\u0432 Spotify.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0447\u0438\u0441\u043b\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043d\u0430 \u0436\u0430\u043d\u0440 (100).\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0434\u0430\u0451\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 API.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0436\u0430\u043d\u0440\u0443 \u0438 \u0442\u0440\u0435\u043a\u0443.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0430\u0443\u0434\u0438\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432 <code>data_dict<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0432\u043e \u0444\u0440\u0435\u0439\u043c pandas.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0443\u0431\u043b\u0435\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0435\u0451 \u0432 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433.<\/p>\n<\/li>\n<\/ol>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 <code>valence_arousal_dataset.csv<\/code> \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439.<\/p>\n<h2>\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439<\/h2>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a \u043d\u0438\u0436\u0435:\u00a0<\/p>\n<figure class=\"full-width\"><figcaption>\u0412\u0435\u043a\u0442\u043e\u0440\u044b \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435<\/figcaption><\/figure>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb \u0441\u043e\u0435\u0434\u0438\u043d\u0451\u043d \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0442\u0440\u0435\u043a\u0430\u043c\u0438 \u043b\u0438\u043d\u0438\u044f\u043c\u0438. \u041c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u044d\u043c\u043e\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c Thriller \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044f \u041c\u0430\u0439\u043a\u043b\u0430 \u0414\u0436\u0435\u043a\u0441\u043e\u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 Rosanna.<\/p>\n<p>\u0418\u0437\u043c\u0435\u0440\u0438\u043c \u0434\u043b\u0438\u043d\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0438\u043b\u0438 \u0438\u0445 \u00ab\u043d\u043e\u0440\u043c\u0443\u00bb. \u0412\u043e\u0442 \u0444\u043e\u0440\u043c\u0443\u043b\u0430:\u00a0<em>sqrt(a\u00b2+b\u00b2)<\/em>.\u00a0\u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ol>\n<li>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u00bb \u0442\u0440\u0435\u043a\u0430 \u2014 0,5, \u0430 \u0435\u0433\u043e \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb \u2014 1, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u043d \u0438\u043c\u0435\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b (0,5, 1).\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0434\u043e \u0442\u0440\u0435\u043a\u0430 \u0440\u0430\u0432\u043d\u043e <em>sqrt((0,5)\u00b2 + 1\u00b2<\/em>) = 1,12.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0434\u043e \u0442\u0440\u0435\u043a\u0430 \u0440\u0430\u0432\u043d\u043e <em>sqrt((0,5)\u00b2 + 1\u00b2<\/em>) = 1,12.<\/p>\n<p>\u0422\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u044b, \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0438\u0435 \u0442\u0440\u0435\u043a \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0442\u0440\u0435\u043a\u0430\u043c\u0438: \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0438 \u0432\u0437\u044f\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u0434\u043b\u0438\u043d\u043e\u0439.<\/p>\n<p>\u0416\u0451\u043b\u0442\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0438\u0437 \u0442\u043e\u0447\u043a\u0438 <em>p1<\/em> \u0432 \u0442\u043e\u0447\u043a\u0443 <em>p2<\/em> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u044c \u0434\u0432\u0443\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432: p2 &#8212; p1<em>.<\/em> \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u00ab\u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f\u00bb \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u043a\u0430\u043c\u0438 t1 \u0438 t2 \u0440\u0430\u0432\u043d\u043e \u043d\u043e\u0440\u043c\u0435 (t2 &#8212; t1). \u0418\u043d\u0430\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0438\u0437 t2 \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f t1 \u0438 \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0440\u043c\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u0412 \u043a\u043e\u0434\u0435 \u043d\u0430 Python \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<pre><code class=\"python\">def distance(p1, p2):     distance_x = p2[0] - p1[0]     distance_y = p2[1] - p1[1]     distance_vec = [distance_x, distance_y]     norm = (distance_vec[0]**2 + distance_vec[1]**2)**(1\/2)     return norm<\/code><\/pre>\n<p>\u0412 \u0441\u0432\u043e\u0451\u043c \u043a\u043e\u0434\u0435 \u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f <code>numpy.linalg.norm(p2-p1)<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<h3>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b<\/h3>\n<p>\u0415\u0449\u0451 \u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u0434\u0432\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435 \u0432\u0430\u0436\u043d\u044b \u0434\u043b\u044f \u0432\u0430\u0441, \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0439\u0442\u0435 \u044d\u0442\u0443 \u0447\u0430\u0441\u0442\u044c \u0438\u043b\u0438 \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u043a \u043d\u0435\u0439 \u043f\u043e\u0437\u0436\u0435.<\/p>\n<figure class=\"full-width\"><figcaption>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb<\/figcaption><\/figure>\n<p>\u0423 \u0434\u0432\u0443\u0445 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f: \u0443 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u043e\u043d\u043e \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0441\u043a\u043e\u043c\u0443 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e, \u0430 \u0443 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u043a\u043e\u0448\u0435\u043d\u043e.<\/p>\n<p>\u0421\u043a\u0430\u0447\u043e\u043a \u043d\u0430 0,2 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441\u043e \u0441\u043a\u0430\u0447\u043a\u043e\u043c \u043d\u0430 0,2 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb. \u0414\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u044d\u0442\u043e \u2014 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a. \u041e\u043d\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 (0,5, 0,5) \u0442\u0430\u043a \u0436\u0435 \u0431\u043b\u0438\u0437\u043e\u043a \u043a (0,7, 0,5), \u043a\u0430\u043a \u0438 \u043a (0,5, 0,7). \u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/medium.com\/analytics-vidhya\/z-score-in-detail-9dd0f0afa142\">z-\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/a>, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043c\u044b \u0435\u0433\u043e \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c.<\/p>\n<figure class=\"\"><figcaption>\u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb, \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f<\/figcaption><\/figure>\n<p>\u0414\u0440\u0443\u0433\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0432\u044b\u0448\u0435. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u0438 \u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u2014 \u0434\u0432\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u044d\u043c\u043e\u0446\u0438\u0439. \u041d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0430\u043d\u0435\u0441\u0442\u0438 \u0432\u0441\u0435 12\u00a0000 \u0442\u0440\u0435\u043a\u043e\u0432 \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u2014 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u0435\u00bb.<\/p>\n<p>\u041d\u0430\u043a\u043b\u043e\u043d \u043b\u0438\u043d\u0438\u0438 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 0,250 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044e \u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f: \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 (\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435) \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 Spotify API.<\/p>\n<h2>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439<\/h2>\n<p>\u041e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043f\u0440\u043e\u0441\u0442. \u041f\u0440\u043e\u0439\u0434\u0451\u043c \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u044d\u0442\u0430\u043f\u044b. \u0412\u0435\u0441\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u044b \u043d\u0430\u0439\u0434\u0451\u0442\u0435 \u0432 <a href=\"https:\/\/github.com\/MaxHilsdorf\/mood-based-music-recommendation-system\/blob\/main\/recommendation_system.ipynb\">\u044d\u0442\u043e\u043c <\/a>\u0431\u043b\u043e\u043a\u043d\u043e\u0442\u0435. <\/p>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u0438:<\/p>\n<pre><code class=\"python\">import pandas as pd import random import authorization # this is the script we created earlier import numpy as np from numpy.linalg import norm<\/code><\/pre>\n<p>\u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 12 000 \u0442\u0440\u0435\u043a\u043e\u0432 \u0438\u0437 \u0444\u0440\u0435\u0439\u043c\u0430:<\/p>\n<pre><code class=\"python\">df = pd.read_csv(\"valence_arousal_dataset.csv\")<\/code><\/pre>\n<p>\u041a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u00ab\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438\u00bb \u0438 \u00ab\u0432\u043e\u0437\u0431\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u00bb \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0440\u0435\u043a\u0430 \u0435\u0434\u0438\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 mood_vec:<\/p>\n<pre><code class=\"python\">df[\"mood_vec\"] = df[[\"valence\", \"energy\"]].values.tolist()<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u0442\u0430\u043f \u043f\u0435\u0440\u0435\u0434 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u2014 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a API Spotify:<\/p>\n<pre><code class=\"python\">sp = authorization.authorize()<\/code><\/pre>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u043b\u0438\u043d\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u0430:<\/p>\n<pre><code class=\"python\">def<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-387791","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/387791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=387791"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/387791\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=387791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=387791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=387791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}