{"id":342808,"date":"2022-12-17T15:01:00","date_gmt":"2022-12-17T15:01:00","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=342808"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2022-12-17T15:01:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=342808","title":{"rendered":"<span>\u0421\u0434\u0435\u043b\u0430\u043b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0445 \u043a\u043d\u0438\u0433 \u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432<\/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\/w1560\/getpro\/habr\/upload_files\/367\/bb6\/31a\/367bb631a55c11b2292b72c28794799d.png\" width=\"899\" height=\"547\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/367\/bb6\/31a\/367bb631a55c11b2292b72c28794799d.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0425\u043e\u0447\u0443 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441 \u0438 \u043a\u043d\u0438\u0433\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043c\u043e\u0435\u0433\u043e <a href=\"https:\/\/github.com\/averkij\/a-studio\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0442-\u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u043e\u0437\u044c\u043c\u0435\u043c 10 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439 &#171;\u041c\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u044b&#187; \u041c\u0438\u0445\u0430\u0438\u043b\u0430 \u0411\u0443\u043b\u0433\u0430\u043a\u043e\u0432\u0430 (<em>ru, uk, by, en, fr, it, es, de, hu, zh<\/em>). \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0435\u043c \u0434\u0435\u0432\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u043e\u043c, \u0430 \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0435\u043c \u0432\u0441\u0435 \u0432\u043c\u0435\u0441\u0442\u0435. \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441 \u043d\u0430 10 \u044f\u0437\u044b\u043a\u0430\u0445 \u0438 \u043c\u043d\u043e\u0433\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0445 \u043a\u043d\u0438\u0433. \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c.<\/p>\n<h2>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h2>\n<p>Lingtrain Alignment Studio \u2014 \u044d\u0442\u043e \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 lingtrain-aligner. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u044f\u043c\u0438\u043a\u043e\u043c \u0438\u0437 \u043a\u043e\u0434\u0430 \u043d\u0430 python (\u043f\u0440\u0438\u043c\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0436\u0435), \u043b\u0438\u0431\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0412 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u0435\u0439 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043a\u043e\u0440\u043f\u0443\u0441 \u043f\u043b\u044e\u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u043f\u043e \u0432\u0435\u0440\u0441\u0442\u043a\u0435. \u041a\u043e\u0434 \u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0438.<\/p>\n<p>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u043e\u0432 \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0438 \u043b\u043e\u0433\u0438\u043a\u0438 \u043f\u043e \u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e. \u042d\u0442\u043e \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430, \u044f \u043b\u0438\u0448\u044c \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e <strong>\u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0430\u043c\u0438<\/strong> \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0441\u0436\u0430\u0442\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435\u0441\u0443\u0449\u0438\u0435 \u0432 \u0441\u0435\u0431\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0442\u0435\u043a\u0441\u0442\u044b, \u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u0430\u044f \u0432 \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0430\u0445, \u043d\u0435\u0441\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0441\u043c\u044b\u0441\u043b \u044d\u0442\u0438\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u0431\u043b\u0438\u0437\u043e\u0441\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0435\u0440\u044f\u044f \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438. \u0412 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u0438 LaBSE (100+ \u044f\u0437\u044b\u043a\u043e\u0432) \u0438 sentence-transformers (50+ \u044f\u0437\u044b\u043a\u043e\u0432).<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0430\u0445 \u0440\u0430\u0437\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u043a\u0430\u043a \u0441\u043e \u0441\u0442\u0438\u043b\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430, \u0442\u0430\u043a \u0438 \u0441 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u0438\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u043f\u0440\u044f\u043c\u043e\u0439 \u0440\u0435\u0447\u044c\u044e \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u043d\u0430 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0442\u043e \u043d\u0430 3-4 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u043e\u0440\u043e\u0447\u0435. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043e\u0442 \u0441\u0435\u0431\u044f, \u043f\u0440\u0438\u0432\u043d\u043e\u0441\u044f \u0432 \u0442\u0435\u043a\u0441\u0442 \u043d\u043e\u0432\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043c\u043e\u0436\u0435\u0442 \u0438 \u0447\u0442\u043e-\u0442\u043e \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c. \u041e\u0434\u0438\u043d \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0443\u043f\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u0442\u043e\u0433\u0434\u0430 \u0432 \u043d\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u043b\u0430\u043a\u0443\u043d\u0430, \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438. \u0412\u0441\u0435 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0438.<\/p>\n<h2>\u0422\u0435\u043a\u0441\u0442\u044b<\/h2>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c. \u042f \u0431\u0443\u0434\u0443 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 &#171;\u041c\u0430\u0441\u0442\u0435\u0440\u0430&#187;, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0437\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u0442\u0435\u043a\u0441\u0442\u044b. \u0413\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e\u0431\u044b \u0432 \u043d\u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b\u0430\u0441\u044c \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0445\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434. \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0442\u0435\u043a\u0441\u0442\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 txt \u0444\u0430\u0439\u043b\u044b \u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0438\u0445 master_ru.txt, master_en.txt, master_de.txt \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>\u0412 \u0441\u044b\u0440\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u0430\u0445 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u043b\u0438\u0448\u043d\u044f\u044f \u0434\u043b\u044f \u043d\u0430\u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u2014 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0441\u043d\u043e\u0441\u043a\u0438 \u0438 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435, \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0438\u0437\u0434\u0430\u043d\u0438\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0438\u043b\u0438 \u043a\u043e\u043d\u0446\u0435 \u0442\u0435\u043a\u0441\u0442\u0430. \u042d\u0442\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u043c.<\/p>\n<p>\u0418\u043c\u0435\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u044b:<\/p>\n<blockquote>\n<p>\u041c\u0430\u0441\u0442\u0435\u0440 \u0438 \u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u0430<br \/>\u041c. \u0410. \u0411\u0443\u043b\u0433\u0430\u043a\u043e\u0432.<\/p>\n<p>\u0427\u0410\u0421\u0422\u042c \u041f\u0415\u0420\u0412\u0410\u042f<\/p>\n<p>\u0413\u043b\u0430\u0432\u0430 1<\/p>\n<p>\u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0439\u0442\u0435 \u0441 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c\u0438<\/p>\n<p>\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u0432\u0435\u0441\u043d\u043e\u044e, \u0432 \u0447\u0430\u0441 \u043d\u0435\u0431\u044b\u0432\u0430\u043b\u043e \u0436\u0430\u0440\u043a\u043e\u0433\u043e \u0437\u0430\u043a\u0430\u0442\u0430, \u0432 \u041c\u043e\u0441\u043a\u0432\u0435, \u043d\u0430 \u041f\u0430\u0442\u0440\u0438\u0430\u0440\u0448\u0438\u0445 \u043f\u0440\u0443\u0434\u0430\u0445, \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0432\u0430 \u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u043d\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445, \u043e\u0434\u0435\u0442\u044b\u0439 \u0432 \u043b\u0435\u0442\u043d\u044e\u044e \u0441\u0435\u0440\u0435\u043d\u044c\u043a\u0443\u044e \u043f\u0430\u0440\u0443, \u0431\u044b\u043b \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0433\u043e \u0440\u043e\u0441\u0442\u0430, \u0443\u043f\u0438\u0442\u0430\u043d, \u043b\u044b\u0441, \u0441\u0432\u043e\u044e \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u0443\u044e \u0448\u043b\u044f\u043f\u0443 \u043f\u0438\u0440\u043e\u0436\u043a\u043e\u043c \u043d\u0435\u0441 \u0432 \u0440\u0443\u043a\u0435, \u0430 \u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u044b\u0431\u0440\u0438\u0442\u043e\u043c \u043b\u0438\u0446\u0435 \u0435\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u043b\u0438\u0441\u044c \u0441\u0432\u0435\u0440\u0445\u044a\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043e\u0447\u043a\u0438 \u0432 \u0447\u0435\u0440\u043d\u043e\u0439 \u0440\u043e\u0433\u043e\u0432\u043e\u0439 \u043e\u043f\u0440\u0430\u0432\u0435. \u0412\u0442\u043e\u0440\u043e\u0439 \u2013 \u043f\u043b\u0435\u0447\u0438\u0441\u0442\u044b\u0439, \u0440\u044b\u0436\u0435\u0432\u0430\u0442\u044b\u0439, \u0432\u0438\u0445\u0440\u0430\u0441\u0442\u044b\u0439 \u043c\u043e\u043b\u043e\u0434\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0432 \u0437\u0430\u043b\u043e\u043c\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u0437\u0430\u0442\u044b\u043b\u043e\u043a \u043a\u043b\u0435\u0442\u0447\u0430\u0442\u043e\u0439 \u043a\u0435\u043f\u043a\u0435 \u2013 \u0431\u044b\u043b \u0432 \u043a\u043e\u0432\u0431\u043e\u0439\u043a\u0435, \u0436\u0435\u0432\u0430\u043d\u044b\u0445 \u0431\u0435\u043b\u044b\u0445 \u0431\u0440\u044e\u043a\u0430\u0445 \u0438 \u0432 \u0447\u0435\u0440\u043d\u044b\u0445 \u0442\u0430\u043f\u043e\u0447\u043a\u0430\u0445.<\/p>\n<p>&#8230;<\/p>\n<\/blockquote>\n<blockquote>\n<p>The Master and Margarita<br \/>Mikhail Bulgakov<\/p>\n<p>BOOK ONE<\/p>\n<p>CHAPTER 1<\/p>\n<p>Never Talk with Strangers<\/p>\n<p>At the hour of the hot spring sunset two citizens appeared at the Patriarch&#8217;s Ponds.<\/p>\n<p>One of them, approximately forty years old, dressed in a grey summer suit, was short, dark-haired, plump, bald, and carried his respectable fedora hat in his hand. His neatly shaven face was adorned with black horn-rimmed glasses of a supernatural size.<\/p>\n<p>&#8230;<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0442\u0435\u043a\u0441\u0442\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f <strong>\u043c\u0435\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/strong>, \u2014 \u044d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043d\u0438\u0433\u0438 \u0438 \u0438\u043c\u044f \u0430\u0432\u0442\u043e\u0440\u0430, \u043d\u043e\u043c\u0435\u0440\u0430 \u0433\u043b\u0430\u0432 \u0438 \u0447\u0430\u0441\u0442\u0435\u0439 \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0432\u0435\u0449\u0438. \u041c\u0435\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0447\u0430\u0441\u0442\u044c\u044e \u0442\u0435\u043a\u0441\u0442\u0430, \u043d\u043e \u044d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0432\u0435\u0449\u044c \u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0435\u0435 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043c\u0435\u0442\u0438\u043c \u0435\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th data-colwidth=\"169\" width=\"169\">\n<p>\u041c\u0435\u0442\u043a\u0430<\/p>\n<\/th>\n<th data-colwidth=\"225\" width=\"225\">\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td data-colwidth=\"169\" width=\"169\">\n<p align=\"left\">%%%%%author.<\/p>\n<\/td>\n<td data-colwidth=\"225\" width=\"225\">\n<p align=\"left\">\u0410\u0432\u0442\u043e\u0440<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041b\u044e \u0426\u0438 \u0421\u0438\u043d\u044c%%%%%author.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"169\" width=\"169\">\n<p align=\"left\">%%%%%title.<\/p>\n<\/td>\n<td data-colwidth=\"225\" width=\"225\">\n<p align=\"left\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0434\u0430\u0447\u0430 \u0442\u0440\u0451\u0445 \u0442\u0435\u043b%%%%%title.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"169\" width=\"169\">\n<p align=\"left\">%%%%%qtext.<\/p>\n<\/td>\n<td data-colwidth=\"225\" width=\"225\">\n<p align=\"left\">\u0426\u0438\u0442\u0430\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u0442, \u043a\u0442\u043e \u0441\u043f\u0430\u0441\u0430\u0435\u0442 \u043e\u0434\u043d\u0443 \u0436\u0438\u0437\u043d\u044c, \u0441\u043f\u0430\u0441\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u043c\u0438\u0440.%%%%%qtext.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"169\" width=\"169\">\n<p align=\"left\">%%%%%qname.<\/p>\n<\/td>\n<td data-colwidth=\"225\" width=\"225\">\n<p align=\"left\">\u041f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u043e\u0434 \u0446\u0438\u0442\u0430\u0442\u043e\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0440\u043e\u0434\u043d\u0430\u044f \u043c\u0443\u0434\u0440\u043e\u0441\u0442\u044c%%%%%qname.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"169\" width=\"169\">\n<p align=\"left\">%%%%%h1. %%%%%h2. %%%%%h3. %%%%%h4. %%%%%h5.<\/p>\n<\/td>\n<td data-colwidth=\"225\" width=\"225\">\n<p align=\"left\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0413\u043b\u0430\u0432\u0430 1%%%%%h2.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p> \u0422\u0435\u0433\u0438 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u043e\u043a. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a:<\/p>\n<blockquote>\n<p>\u041c\u0430\u0441\u0442\u0435\u0440 \u0438 \u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u0430%%%%%title.<br \/>\u041c. \u0410. \u0411\u0443\u043b\u0433\u0430\u043a\u043e\u0432%%%%%author.<\/p>\n<p>\u0427\u0410\u0421\u0422\u042c \u041f\u0415\u0420\u0412\u0410\u042f%%%%%h1.<\/p>\n<p>\u0413\u043b\u0430\u0432\u0430 1%%%%%h2.<\/p>\n<p>\u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0439\u0442\u0435 \u0441 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c\u0438%%%%%h2.<\/p>\n<p>\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u0432\u0435\u0441\u043d\u043e\u044e, \u0432 \u0447\u0430\u0441 \u043d\u0435\u0431\u044b\u0432\u0430\u043b\u043e \u0436\u0430\u0440\u043a\u043e\u0433\u043e \u0437\u0430\u043a\u0430\u0442\u0430, \u0432 \u041c\u043e\u0441\u043a\u0432\u0435, \u043d\u0430 \u041f\u0430\u0442\u0440\u0438\u0430\u0440\u0448\u0438\u0445 \u043f\u0440\u0443\u0434\u0430\u0445, \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0432\u0430 \u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u043d\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445, \u043e\u0434\u0435\u0442\u044b\u0439 \u0432 \u043b\u0435\u0442\u043d\u044e\u044e \u0441\u0435\u0440\u0435\u043d\u044c\u043a\u0443\u044e \u043f\u0430\u0440\u0443, \u0431\u044b\u043b \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0433\u043e \u0440\u043e\u0441\u0442\u0430, \u0443\u043f\u0438\u0442\u0430\u043d, \u043b\u044b\u0441, \u0441\u0432\u043e\u044e \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u0443\u044e \u0448\u043b\u044f\u043f\u0443 \u043f\u0438\u0440\u043e\u0436\u043a\u043e\u043c \u043d\u0435\u0441 \u0432 \u0440\u0443\u043a\u0435, \u0430 \u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u044b\u0431\u0440\u0438\u0442\u043e\u043c \u043b\u0438\u0446\u0435 \u0435\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u043b\u0438\u0441\u044c \u0441\u0432\u0435\u0440\u0445\u044a\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043e\u0447\u043a\u0438 \u0432 \u0447\u0435\u0440\u043d\u043e\u0439 \u0440\u043e\u0433\u043e\u0432\u043e\u0439 \u043e\u043f\u0440\u0430\u0432\u0435. \u0412\u0442\u043e\u0440\u043e\u0439 \u2013 \u043f\u043b\u0435\u0447\u0438\u0441\u0442\u044b\u0439, \u0440\u044b\u0436\u0435\u0432\u0430\u0442\u044b\u0439, \u0432\u0438\u0445\u0440\u0430\u0441\u0442\u044b\u0439 \u043c\u043e\u043b\u043e\u0434\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0432 \u0437\u0430\u043b\u043e\u043c\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u0437\u0430\u0442\u044b\u043b\u043e\u043a \u043a\u043b\u0435\u0442\u0447\u0430\u0442\u043e\u0439 \u043a\u0435\u043f\u043a\u0435 \u2013 \u0431\u044b\u043b \u0432 \u043a\u043e\u0432\u0431\u043e\u0439\u043a\u0435, \u0436\u0435\u0432\u0430\u043d\u044b\u0445 \u0431\u0435\u043b\u044b\u0445 \u0431\u0440\u044e\u043a\u0430\u0445 \u0438 \u0432 \u0447\u0435\u0440\u043d\u044b\u0445 \u0442\u0430\u043f\u043e\u0447\u043a\u0430\u0445.<\/p>\n<\/blockquote>\n<blockquote>\n<p>The Master and Margarita%%%%%title.<br \/>Mikhail Bulgakov%%%%%author.<\/p>\n<p>BOOK ONE%%%%%h1.<\/p>\n<p>CHAPTER 1%%%%%h2.<\/p>\n<p>Never Talk with Strangers%%%%%h2.<\/p>\n<p>At the hour of the hot spring sunset two citizens appeared at the Patriarch&#8217;s Ponds.<\/p>\n<p>One of them, approximately forty years old, dressed in a grey summer suit, was short, dark-haired, plump, bald, and carried his respectable fedora hat in his hand. His neatly shaven face was adorned with black horn-rimmed glasses of a supernatural size.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u043b\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/disk.yandex.ru\/d\/gmdGSaNZ6E15rQ\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. <\/p>\n<h2>\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435<\/h2>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eb2\/b64\/5cc\/eb2b645cc1f91d446aa1e1eee281b70d.png\" width=\"1153\" height=\"345\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eb2\/b64\/5cc\/eb2b645cc1f91d446aa1e1eee281b70d.png\"\/><figcaption><\/figcaption><\/figure>\n<h3>\u0421\u043a\u0440\u0438\u043f\u0442\u044b \u043d\u0430 \u043f\u0438\u0442\u043e\u043d\u0435<\/h3>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043a\u0430\u0436\u0443 \u0432\u0430\u043c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b \u043d\u0430 python. \u041f\u043b\u044e\u0441 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0432 Colab&#8217;\u0435 (\u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u043e\u0442 Google, \u0434\u0430\u044e\u0449\u0430\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430\u043c) \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c GPU, \u044d\u0442\u043e \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u0440\u0430\u0437\u044b, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0445\u043e\u0434\u0443, \u0430 \u044d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0439 \u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u041f\u043e\u0434\u0445\u043e\u0434\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f (\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u0432\u0438\u0434\u0435 sqlite \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445).<\/p>\n<p>\u0412\u043e\u0442 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 <a href=\"https:\/\/colab.research.google.com\/drive\/1lgmgCJuFAqjEI2zqn9RWPcQuO6rxC80f?usp=sharing\" rel=\"noopener noreferrer nofollow\">Colab-\u0431\u043b\u043e\u043a\u043d\u043e\u0442<\/a>, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443:<\/p>\n<pre><code class=\"python\"> pip install lingtrain-aligner==0.8.7<\/code><\/pre>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b:<\/p>\n<pre><code class=\"python\">from lingtrain_aligner import (     preprocessor,     splitter,     aligner,     resolver,     reader,     helper,     vis_helper,     metrics, )<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0435\u043c \u043d\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b:<\/p>\n<pre><code class=\"python\">text1_input = \"harper_lee_ru.txt\" text2_input = \"harper_lee_en.txt\"  with open(text1_input, \"r\", encoding=\"utf8\") as input1:   text1 = input1.readlines()  with open(text2_input, \"r\", encoding=\"utf8\") as input2:   text2 = input2.readlines()<\/code><\/pre>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0442\u0430\u043a\u0436\u0435 \u043f\u0443\u0442\u044c \u0434\u043e SQLite \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (\u044d\u0442\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0441\u043e \u0432\u0441\u0435\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u0434\u043b\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439) \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u044f\u0437\u044b\u043a\u0430\u00a0<em>lang_from<\/em>\u00a0\u0438\u00a0<em>lang_to<\/em>. \u042d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"python\">db_path = \"db\/book.db\"  lang_from = \"ru\" lang_to = \"en\"  models = [\"sentence_transformer_multilingual\", \"sentence_transformer_multilingual_labse\"] model_name = models[0]<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442, \u043d\u043e \u043e\u043d \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u044f\u043c\u0438, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u0434\u00a0<strong>xx<\/strong>, \u0442\u043e\u0433\u0434\u0430 \u043a \u0442\u0435\u043a\u0441\u0442\u0443 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f.\u00a0<\/p>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0430\u0431\u0437\u0430\u0446\u0435\u0432 \u0438 \u0440\u0430\u0437\u043e\u0431\u044a\u0435\u043c \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre><code class=\"python\">text1_prepared = preprocessor.mark_paragraphs(text1) text2_prepared = preprocessor.mark_paragraphs(text2)  splitted_from = splitter.split_by_sentences_wrapper(text1_prepared , lang_from) splitted_to = splitter.split_by_sentences_wrapper(text2_prepared , lang_to)<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0448\u0443 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0438\u043c \u0435\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0432\u0437\u044f\u0442\u044b\u043c\u0438 \u0438\u0437 \u043d\u0430\u0448\u0435\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438. \u0412 \u0431\u0430\u0437\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u0430\u0431\u0437\u0430\u0446\u0435\u0432 \u0438 \u0433\u043b\u0430\u0432, \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u0438\u0445 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043e\u0441\u0442\u0430\u0432 \u0438 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435. <\/p>\n<pre><code class=\"python\">aligner.fill_db(db_path, splitted_from, splitted_to)<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u0434\u0435\u0442 \u043a\u0443\u0441\u043a\u0430\u043c\u0438 \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c\u00a0<em>batch_size<\/em>, \u0432\u043e\u043a\u0440\u0443\u0433 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0443\u0441\u043a\u0430 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u00a0<em>window<\/em>, \u0447\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438. \u041c\u043e\u0434\u0435\u043b\u044c \u0431\u0435\u0440\u0435\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u043b\u0443\u0447\u0448\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041d\u0430 \u044d\u0442\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0435 \u0447\u0435\u0442\u044b\u0440\u0435\u0441\u0442\u0430 \u0441\u0442\u0440\u043e\u043a, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443.<\/p>\n<pre><code class=\"python\">batch_ids = [0,1,2,3]  aligner.align_db(db_path, \\                 model_name, \\                 batch_size=200, \\                 window=30, \\                 batch_ids=batch_ids, \\                 save_pic=False,                 embed_batch_size=50, \\                 normalize_embeddings=True, \\                 show_progress_bar=True                 )<\/code><\/pre>\n<h3>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u041d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c! \u042d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0432 \u0431\u0430\u0437\u0435 \u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u043c\u00a0<strong>vis_helper<\/strong>. \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a \u0443 \u043d\u0430\u0441 400, \u0442\u043e \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0432\u0441\u0435 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435, \u0437\u0430\u0434\u0430\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u00a0<em>batch_size=400<\/em>. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<em>batch_size=50<\/em>, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c 4 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043f\u043e-\u043c\u0435\u043d\u044c\u0448\u0435.<\/p>\n<pre><code class=\"python\">vis_helper.visualize_alignment_by_db(db_path, output_path=\"alignment_vis.png\", \\                                     lang_name_from=lang_from, \\                                     lang_name_to=lang_to, \\                                     batch_size=400, \\                                     size=(800,800), \\                                     plt_show=True)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6ca\/bc5\/33d\/6cabc533d4d114d9a502d330c95c1653.png\" width=\"658\" height=\"552\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6ca\/bc5\/33d\/6cabc533d4d114d9a502d330c95c1653.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e \u0438\u0434\u0435\u0442 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a \u043a\u043e\u043d\u0446\u0443, \u043d\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d \u0434\u0432\u0435:<\/p>\n<ul>\n<li>\n<p>\u0423 \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u044b\u043b\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0443\u0434\u0430\u0447\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432.<\/p>\n<ul>\n<li>\n<p>\u0422\u0430\u043a \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0430\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u0434\u0435\u0442 \u0434\u0438\u0430\u043b\u043e\u0433, \u0444\u0440\u0430\u0437\u044b \u0432 \u043d\u0435\u043c \u043e\u0434\u043d\u043e\u0441\u043b\u043e\u0436\u043d\u044b\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0438\u043c\u0435\u043d\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0423 \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u044b\u043b\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u043d\u0435\u0442.<\/p>\n<ul>\n<li>\n<p>\u0423 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u0438 \u043a \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041e\u0434\u0438\u043d \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e &#171;\u0443\u0431\u0435\u0433\u0430\u0435\u0442 \u0438\u0437 \u043e\u043a\u043d\u0430&#187; \u0438 \u043c\u044b \u043d\u0435 \u0438\u0449\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0430\u0434\u043e. \u041e\u043a\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c, \u043d\u043e \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u0438\u043b\u044c\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043e\u0448\u0438\u0431\u043e\u043a. \u041d\u0443\u0436\u0435\u043d \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u0425\u043e\u0440\u043e\u0448\u0438\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043c\u043d\u0435 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u043d\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u0442\u0440\u043e\u043a \u043f\u0440\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0438 \u0431\u0430\u0442\u0447\u0430 \u0438 \u0441\u0434\u0432\u0438\u0433 \u043e\u043a\u043d\u0430 \u043d\u0430 \u043a\u043e\u043d\u0435\u0446 \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u0440\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e. \u041c\u0438\u043d\u0443\u0441\u043e\u043c \u0442\u0443\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u0435\u0440\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0441\u0447\u0435\u0442\u0430 \u0431\u0430\u0442\u0447\u0435\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0441\u0442\u0430\u043d\u0443\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430.<\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043e\u043a\u043d\u043e \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d \u0442\u0435\u043a\u0441\u0442\u043e\u0432. \u0411\u0430\u0442\u0447\u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b, \u043d\u043e \u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u2014 \u0435\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u043a\u043d\u0438\u0433\u0438, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0442\u0435\u043a\u0441\u0442 \u043f\u043e\u043b\u043d\u044b\u0439, \u0442\u043e \u043e\u043a\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0443\u0431\u0435\u0436\u0438\u0442 \u043e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h3>\u0420\u0435\u0448\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b<\/h3>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0448\u0435\u0440\u043e\u0445\u043e\u0432\u0430\u0442\u043e\u0441\u0442\u044f\u043c\u0438. \u0413\u043b\u044f\u0434\u044f \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0435 \u0446\u0435\u043f\u043e\u0447\u043a\u0438, \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u044b\u0432\u044b \u0438 \u0435\u0441\u0442\u044c \u0432\u044b\u0431\u0440\u043e\u0441\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 10,11,12 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043b\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f 15,16,17 \u0438\u0437 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430. \u042d\u0442\u0430 \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0445\u043e\u0440\u043e\u0448\u0430\u044f. \u0412\u0441\u0435, \u0447\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u043c\u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u043c. \u041f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u041b\u043e\u0433\u0438\u043a\u0430 \u043f\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043c\u043e\u0434\u0443\u043b\u0435\u00a0<strong>resolver<\/strong>.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u0441\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b:<\/p>\n<pre><code class=\"python\">conflicts_to_solve, rest = resolver.get_all_conflicts(db_path, min_chain_length=2, max_conflicts_len=6)<\/code><\/pre>\n<pre><code class=\"python\">conflicts to solve: 42 total conflicts: 45<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e\u00a0<em>conflicts_to_solve<\/em>\u00a0\u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043f\u043e\u0438\u0441\u043a\u0430, \u0430 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e\u00a0<em>rest<\/em>\u00a0\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435.<\/p>\n<p>\u0412\u044b\u0432\u0435\u0434\u0435\u043c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443:<\/p>\n<pre><code class=\"python\">resolver.get_statistics(conflicts_to_solve) resolver.get_statistics(rest)<\/code><\/pre>\n<pre><code class=\"python\">('2:3', 25) ('3:3', 5) ('3:6', 2) ('3:5', 2) ('2:4', 2) ('3:4', 2) ('2:1', 1) ('3:2', 1) ('5:5', 1) ('4:5', 1) ('5:8', 1) ('5:9', 1)<\/code><\/pre>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0440\u0430\u0437\u043c\u0435\u0440\u0430 2:3, \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0447\u0430\u0441\u0442\u043e \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u043b \u043e\u0434\u043d\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0432\u0430.<\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"python\">resolver.show_conflict(db_path, conflicts_to_solve[10])<\/code><\/pre>\n<pre><code class=\"python\">105 \u2013 \u0411\u0440\u0430\u0432\u043e! \u2013 \u0432\u0441\u043a\u0440\u0438\u0447\u0430\u043b \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u0446, \u2013 \u0431\u0440\u0430\u0432\u043e! 106 \u0412\u044b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043b\u0438 \u043c\u044b\u0441\u043b\u044c \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0438\u043a\u0430 \u0418\u043c\u043c\u0430\u043d\u0443\u0438\u043b\u0430 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u043e\u0434\u0443.   122 'Bravo!' cried the foreigner. 123 'Bravo! 124 You have perfectly repeated restless old Immanuel's thought in this regard.<\/code><\/pre>\n<p>\u0412\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438 122 \u0438 123 \u043d\u0443\u0436\u043d\u043e \u0431\u044b \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u0443, \u0442\u043e\u0433\u0434\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u0431\u044b \u043a\u0430\u043a [105]-[122,123] \u0438 [106]-[124]. \u041a\u0430\u043a \u0436\u0435 \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443? \u0422\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0430 \u0443\u0436\u0435 \u0443\u043c\u0435\u0435\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u0439 \u0438\u0437 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u0442\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0439 \u0438\u0445 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043c. \u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0443 \u043d\u0430\u0441 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430, \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0438\u0445 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438, \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0431\u0440\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u0439. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430:<\/p>\n<pre><code class=\"python\">[105]-[122] \/\/ [106]-[123,124]  [105]-[122,123] \/\/ [106]-[124]<\/code><\/pre>\n<p>\u0427\u0442\u043e \u0434\u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f, \u0442\u043e \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0435\u0431\u044f \u043f\u0440\u043e\u044f\u0432\u0438\u043b\u0430 \u0442\u0430\u043a\u0430\u044f, \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0449\u0435\u043c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u043f\u0440\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u0435 \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 2 (\u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432 \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e) \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 6. \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0432\u0441\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043c\u0435\u043d\u044c\u0448\u0435 \u0442\u0430\u043a \u043c\u044b \u0438\u0445 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043b\u0438. \u0417\u0430\u0442\u0435\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u0438\u0449\u0435\u043c \u0438 \u0441\u043d\u043e\u0432\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c, \u0434\u043e\u0431\u0438\u0432\u0430\u044f \u043e\u0441\u0442\u0430\u0442\u043a\u0438.<\/p>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"python\">steps = 3 batch_id = -1 #\u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0431\u0430\u0442\u0447\u0438  for i in range(steps):     conflicts, rest = resolver.get_all_conflicts(db_path, min_chain_length=2+i, max_conflicts_len=6*(i+1), batch_id=batch_id)      resolver.resolve_all_conflicts(db_path, conflicts, model_name, show_logs=False)      vis_helper.visualize_alignment_by_db(db_path, output_path=\"img_test1.png\", batch_size=400, size=(800,800), plt_show=True)      if len(rest) == 0:         break<\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0448\u0430\u0433\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5b1\/35e\/f82\/5b135ef82c22fd340fc17e1aa813c2d3.png\" width=\"649\" height=\"540\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5b1\/35e\/f82\/5b135ef82c22fd340fc17e1aa813c2d3.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ead\/c33\/586\/eadc33586be4f0fb885eccfdca4811a3.png\" width=\"655\" height=\"541\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ead\/c33\/586\/eadc33586be4f0fb885eccfdca4811a3.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>master_en_ru.db<\/strong>. \u041f\u043e\u0445\u043e\u0436\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043d\u0438\u0433\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f (\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u044f\u0437\u044b\u043a).<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0432\u044b \u0443\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0432\u0435\u0440\u0441\u0442\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0443 \u0441 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u043e\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2b9\/160\/390\/2b9160390b7f96bcd61512469e03d655.png\" width=\"1269\" height=\"407\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2b9\/160\/390\/2b9160390b7f96bcd61512469e03d655.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u0431\u043b\u043e\u043a\u043d\u043e\u0442\u0435 \u0435\u0441\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434, \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0439 \u0441\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 (\u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0435\u0435 \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u0436\u0435\u043b\u0430\u043d\u0438\u044e) \u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0432 html \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0443.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u0435\u0431 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<h3>\u0412\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h3>\n<p>\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u044f \u043e\u0444\u043e\u0440\u043c\u0438\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0439 Docker \u043e\u0431\u0440\u0430\u0437\u043e\u0432. \u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f <strong>8.4<\/strong>. \u0421\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 LaBSE \u043e\u0442 Google (\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 <strong>100<\/strong> \u044f\u0437\u044b\u043a\u043e\u0432 \u0441 \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c), \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u2014 \u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u043e\u0442 sentence-transformers (<strong>50<\/strong> \u044f\u0437\u044b\u043a\u043e\u0432, \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e), \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f \u2014 \u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 rubert-tiny-v2 \u043e\u0442 \u0414\u0430\u0432\u0438\u0434\u0430 \u0414\u0430\u043b\u0435 (\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0438 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a\u0438, \u0437\u0430\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 CPU \u0431\u0435\u0437 \u0432\u0441\u044f\u043a\u0438\u0445 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442, \u0435\u0441\u043b\u0438 \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0440\u0443\u0441\u0441\u043a\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0443\u044e \u043a\u043d\u0438\u0436\u043a\u0443 \u0438\u043b\u0438 \u043a\u043e\u0440\u043f\u0443\u0441, \u0442\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u0435\u0435).<\/p>\n<h4>\u0411\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044f<\/h4>\n<p>\u041d\u0430 \u044d\u0442\u043e\u0439 \u0436\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <a href=\"http:\/\/beta.lingtra.in\" rel=\"noopener noreferrer nofollow\">beta.lingtra.in<\/a>. \u0421\u0435\u0440\u0432\u0435\u0440 \u0442\u0430\u043c \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0440\u0443\u0441\u0441\u043a\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b (html, tmx, lt (\u0444\u043e\u0440\u043c\u0430\u0442 lingtrain) \u0438 \u0442.\u0434.).<\/p>\n<h4>Docker<\/h4>\n<p>\u0412\u043e\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u0440\u0430\u0437\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>lingtrain\/studio:v8.4<\/p>\n<\/li>\n<li>\n<p>lingtrain\/studio:v8.4-labse<\/p>\n<\/li>\n<li>\n<p>lingtrain\/studio:v8.4-tiny<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u0432 \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0431\u044b\u043b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d Docker. \u0417\u0430\u0442\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"bash\">docker pull lingtain\/studio:v8.4<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432\u0430\u0448 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u043f\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044e. \u041d\u0443\u0436\u043d\u044b \u0434\u0432\u0435 \u043f\u0430\u043f\u043a\u0438, \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 (\u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f).<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0430\u043f\u043a\u0438 E:\\data \u0438 E:\\img, \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f Windows. \u0412 Linux \u0432\u0441\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e.<\/p>\n<pre><code>docker run -v E:\\data:\/app\/data -v E:\\img:\/app\/static\/img -p 80:80 lingtrain\/studio:v8.4<\/code><\/pre>\n<p>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0430 80-\u043c \u043f\u043e\u0440\u0442\u0443 \u0438 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 localhost.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/l8\/4y\/29\/l84y29mmfv4yp343nsn-zmaiif4.jpeg\" width=\"auto\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/l8\/4y\/29\/l84y29mmfv4yp343nsn-zmaiif4.jpeg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043f\u0440\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u044f \u043f\u0438\u0441\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/564944\/\" rel=\"noopener noreferrer nofollow\">\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0432\u0438\u0434\u0435\u043e \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. <\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/639d888ddef4079a5353d426\" data-style=\"\" id=\"639d888ddef4079a5353d426\" width=\"\"><\/div>\n<h4>\u041d\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b<\/h4>\n<p>\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 (8.4) \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b <strong>\u044d\u043a\u0441\u043f\u043e\u0440\u0442<\/strong> \u0438 <strong>\u0438\u043c\u043f\u043e\u0440\u0442<\/strong> \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f (\u043e\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 sqlite). \u0422\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u044f\u0442\u044c \u0432\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u0432 Colab&#8217;\u0435, \u0430 \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044e Lingtrain \u0438 \u0442\u0430\u043c \u0435\u0433\u043e \u043f\u043e\u0434\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0435\u0433\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430. \u042d\u0442\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f <strong>\u043c\u0430\u043b\u043e\u0440\u0435\u0441\u0443\u0440\u0441\u043d\u044b\u0445<\/strong> \u044f\u0437\u044b\u043a\u043e\u0432 \u0442\u0438\u043f\u0430 \u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u043e\u0433\u043e \u0438\u043b\u0438 \u0441\u0430\u043d\u0441\u043a\u0440\u0438\u0442\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 \u043d\u0438\u0445 \u043d\u0435 \u043e\u0431\u0443\u0447\u0430\u043b\u0438\u0441\u044c (\u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u2014 \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f <a href=\"https:\/\/habr.com\/ru\/post\/581272\/\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u0442\u043e\u0440\u0438\u044f<\/a>). \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u043e\u0434\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u0438\u0441\u0442\u043e\u0432 \u0441\u0430\u043d\u0441\u043a\u0440\u0438\u0442\u0430, <a href=\"https:\/\/laced-giant-927.notion.site\/9a0167a4f86a46aa9041fba01b75aa48\" rel=\"noopener noreferrer nofollow\">\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c<\/a>, \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e.<\/p>\n<h4>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c<\/h4>\n<p>\u0412\u043e\u0439\u0434\u0435\u043c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u043b\u044e\u0431\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c, \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/118\/c15\/708\/118c15708b4b66b5f5c43a462566781a.png\" width=\"752\" height=\"242\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/118\/c15\/708\/118c15708b4b66b5f5c43a462566781a.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412\u044b\u0431\u0435\u0440\u0435\u043c \u044f\u0437\u044b\u043a\u0438 (\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0438 \u0440\u0443\u0441\u0441\u043a\u0438\u0439). \u0417\u0430\u0442\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u043d\u0430\u0448\u0438 <strong>\u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435<\/strong> \u0442\u0435\u043a\u0441\u0442\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0d4\/67e\/3ea\/0d467e3eaface6d3189e05e7ad4cfdbf.png\" width=\"904\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0d4\/67e\/3ea\/0d467e3eaface6d3189e05e7ad4cfdbf.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041c\u0435\u0442\u043a\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442 \u0442\u0435\u043a\u0441\u0442\u044b \u0438 \u043c\u0435\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430. \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 Marks \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0430\u0445 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043c\u0435\u0442\u043e\u043a.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cc9\/c35\/704\/cc9c35704af4a88dbd89c1f200b7702d.png\" width=\"898\" height=\"669\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cc9\/c35\/704\/cc9c35704af4a88dbd89c1f200b7702d.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 Align, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0430\u0448\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5df\/cd3\/28f\/5dfcd328f5a149539acdffb278cf4f30.png\" width=\"912\" height=\"798\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5df\/cd3\/28f\/5dfcd328f5a149539acdffb278cf4f30.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0435 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 lt. \u042d\u0442\u043e \u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 en_ru_master.db, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0434\u0435\u043b\u0430\u043b\u0438 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 \u043f\u0440\u043e \u043f\u0438\u0442\u043e\u043d (\u043e\u043d\u043e \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 db, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445). \u041c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 *.lt \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6ec\/448\/f82\/6ec448f8213bb8fcec8f3591af0eccbd.png\" width=\"909\" height=\"198\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6ec\/448\/f82\/6ec448f8213bb8fcec8f3591af0eccbd.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8af\/0b1\/c92\/8af0b1c921241a740994116dfae691e9.png\" width=\"914\" height=\"465\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8af\/0b1\/c92\/8af0b1c921241a740994116dfae691e9.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0434\u0438\u043d \u0431\u0430\u0442\u0447 \u2014 200 \u0441\u0442\u0440\u043e\u043a \u043b\u0435\u0432\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043f\u0440\u0430\u0432\u043e\u0433\u043e. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 10 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0430\u0442\u0447\u0435\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f 49.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d60\/5af\/7ff\/d605af7ff7d1799c1675f0a72193a555.png\" width=\"905\" height=\"241\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d60\/5af\/7ff\/d605af7ff7d1799c1675f0a72193a555.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0416\u043c\u0435\u043c \u043d\u0430 Align next \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0431\u0430\u0442\u0447\u0430\u043c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d59\/0f2\/cd9\/d590f2cd996d9a420160f0d77ce19222.png\" width=\"722\" height=\"533\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d59\/0f2\/cd9\/d590f2cd996d9a420160f0d77ce19222.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u0442\u0435\u043a\u0441\u0442\u0430\u0445 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e, \u0442\u043e, \u0445\u043e\u0442\u044c \u043c\u044b \u0438 \u0431\u0435\u0440\u0435\u043c \u0431\u0430\u0442\u0447\u0438 \u0441 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0435\u043c, \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 (\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 5 \u0431\u0430\u0442\u0447):<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/af0\/531\/473\/af0531473ecdb85c14cfa7500afced05.png\" width=\"715\" height=\"472\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/af0\/531\/473\/af0531473ecdb85c14cfa7500afced05.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0431\u0430\u0442\u0447 \u0438 \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0441\u0434\u0432\u0438\u0433\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e49\/260\/14d\/e4926014d5cefae7dc00bddc359c802b.png\" width=\"863\" height=\"335\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e49\/260\/14d\/e4926014d5cefae7dc00bddc359c802b.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0431\u0430\u0442\u0447\u0435\u0439 \u0441\u043e \u0441\u0434\u0432\u0438\u0433\u043e\u043c \u043d\u0430\u0434\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 shift \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0431\u0430\u0442\u0447\u0438, \u043d\u0430\u0436\u0430\u0432 \u043a\u043d\u043e\u043f\u043a\u0443 Customize:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e35\/1eb\/c53\/e351ebc533b3b4c7bb13a93eddc38358.png\" width=\"775\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e35\/1eb\/c53\/e351ebc533b3b4c7bb13a93eddc38358.png\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bec\/91a\/c8c\/bec91ac8c4012bffefd30755dcfbe676.png\" width=\"910\" height=\"554\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bec\/91a\/c8c\/bec91ac8c4012bffefd30755dcfbe676.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0442\u0443\u0442, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/23a\/979\/df3\/23a979df3839d92db39fb305e8bbac12.png\" width=\"716\" height=\"472\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/23a\/979\/df3\/23a979df3839d92db39fb305e8bbac12.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430 \u0432\u0441\u0435\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u0445 \u0432\u0438\u0434\u043d\u0430 \u0442\u0430\u043a\u0430\u044f \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c, \u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043c \u043a \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430\u043c.<\/p>\n<h4>\u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b<\/h4>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u0432 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0438 \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2d0\/10e\/443\/2d010e443b48f0e0e5eba6153ed6a728.png\" width=\"910\" height=\"553\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2d0\/10e\/443\/2d010e443b48f0e0e5eba6153ed6a728.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b Handle start \u0438 Handle finish \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u043d\u0430 \u043a\u043e\u043d\u0446\u0430\u0445 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f. \u0416\u043c\u0435\u043c \u043d\u0430 Resolve all.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u043c\u043e\u0433\u0443\u0442 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b, \u043a\u043e\u0433\u0434\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0443 \u0432 20+ \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0440\u0443\u0433\u0438\u0445. \u042d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0438 \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u0432 \u0440\u0443\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 (\u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0438\u0436\u0435), \u0430 \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cf3\/c6d\/dda\/cf3c6ddda3ee3fb7cbba5bc78a642968.png\" width=\"917\" height=\"282\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cf3\/c6d\/dda\/cf3c6ddda3ee3fb7cbba5bc78a642968.png\"\/><figcaption><\/figcaption><\/figure>\n<h4>\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440<\/h4>\n<p>\u0421\u0430\u043c\u0430\u044f \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u0430\u044f UI \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u043e\u0437\u0438\u043b\u0441\u044f \u0441 \u043d\u0435\u0439 \u0434\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8fc\/aa9\/38f\/8fcaa938fb07f14333d088e2c7eda2fd.png\" width=\"913\" height=\"646\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8fc\/aa9\/38f\/8fcaa938fb07f14333d088e2c7eda2fd.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b, \u043d\u043e \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u044f\u0447\u0435\u0439\u043a\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0438\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f85\/095\/04f\/f8509504fab67170cba8db1a9d15124b.png\" width=\"921\" height=\"688\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f85\/095\/04f\/f8509504fab67170cba8db1a9d15124b.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u0442\u0435\u043a\u0441\u0442\u0443 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 Subscript. \u041d\u0443\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 (\u0435\u0441\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0437\u0430 \u0441\u0447\u0435\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430), \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u0444\u0430\u0439\u043b \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/587\/c40\/119\/587c40119bda2028d8b85400a34ba21a.png\" width=\"909\" height=\"451\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/587\/c40\/119\/587c40119bda2028d8b85400a34ba21a.png\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/883\/0e4\/769\/8830e476995a2e556e74dbf8d51c14b0.png\" alt=\"\u043c\u0430\u0448\u0438\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\" title=\"\u043c\u0430\u0448\u0438\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\" width=\"1612\" height=\"543\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/883\/0e4\/769\/8830e476995a2e556e74dbf8d51c14b0.png\"\/><figcaption>\u043c\u0430\u0448\u0438\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/figcaption><\/figure>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0440\u0430\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b \u0434\u0430\u0436\u0435 \u043d\u0435 \u0437\u043d\u0430\u044f \u044f\u0437\u044b\u043a\u0430, \u0435\u0441\u043b\u0438 \u0432\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u0435\u0442\u0435 <strong>\u0432\u0435\u043d\u0433\u0435\u0440\u0441\u043a\u0438\u043c<\/strong>, \u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0443\u0441\u0441\u043a\u043e-\u0432\u0435\u043d\u0433\u0435\u0440\u0441\u043a\u0443\u044e \u043a\u043d\u0438\u0433\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/259\/285\/7a1\/2592857a158ca7481ab66a665bb13ec0.png\" width=\"905\" height=\"652\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/259\/285\/7a1\/2592857a158ca7481ab66a665bb13ec0.png\"\/><figcaption><\/figcaption><\/figure>\n<h4>\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434, \u0442\u043e \u0441\u0442\u0430\u043d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043e\u043f\u0446\u0438\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e, \u0435\u0441\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0435 \u0431\u044b\u043b\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0430 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u044f\u0437\u044b\u043a\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f58\/5ea\/88b\/f585ea88bed14787136c06887386d577.png\" width=\"906\" height=\"599\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f58\/5ea\/88b\/f585ea88bed14787136c06887386d577.png\"\/><figcaption><\/figcaption><\/figure>\n<h4>\u042d\u043a\u0441\u043f\u043e\u0440\u0442<\/h4>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f (\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432, \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435, \u043f\u0440\u0430\u0432\u0438\u043c, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e) \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u2014 Create.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/69b\/448\/2d2\/69b4482d219da79b54d7685176ec7e67.png\" width=\"1367\" height=\"1579\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/69b\/448\/2d2\/69b4482d219da79b54d7685176ec7e67.png\"\/><figcaption><\/figcaption><\/figure>\n<h4>\u041a\u043d\u0438\u0433\u0430<\/h4>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434 \u043a\u043d\u0438\u0433\u0438 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4f6\/dd7\/d39\/4f6dd7d392382539dfcb7d5cf2f59158.png\" width=\"915\" height=\"488\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4f6\/dd7\/d39\/4f6dd7d392382539dfcb7d5cf2f59158.png\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2fc\/ed9\/2f6\/2fced92f65d0428e0c406bc0e0009262.png\" width=\"807\" height=\"744\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2fc\/ed9\/2f6\/2fced92f65d0428e0c406bc0e0009262.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0432 html \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0441\u0432\u0435\u0440\u0441\u0442\u0430\u0442\u044c \u0435\u0435 \u0432 \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u043e\u0431\u043b\u043e\u0436\u043a\u043e\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\u043c \u0438 \u0442.\u0434. \u041e\u0431 \u044d\u0442\u043e\u043c \u043f\u0438\u0441\u0430\u043b <a rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. <\/p>\n<h4>TMX<\/h4>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 TMX.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c4b\/43c\/ec6\/c4b43cec6dd1466eeba0dd9bbc278920.png\" width=\"948\" height=\"382\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c4b\/43c\/ec6\/c4b43cec6dd1466eeba0dd9bbc278920.png\"\/><figcaption><\/figcaption><\/figure>\n<h4>Database<\/h4>\n<p>\u0421\u0440\u0435\u0434\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 \u043d\u0430\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (Database). \u041d\u0430\u0436\u0430\u0432 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Download \u043c\u044b \u0441\u043a\u0430\u0447\u0430\u0435\u043c \u0444\u0430\u0439\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 lt.<\/p>\n<pre><code>6b773d7aebd045e399c57d033b00460c.lt<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043b\u0438 \u0440\u0443\u0441\u0441\u043a\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0443\u044e \u043a\u043d\u0438\u0433\u0443, \u0442\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0435\u043c \u0444\u0430\u0439\u043b \u0432 <strong>master_en_ru.lt<\/strong>.<\/p>\n<h3>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 \u0432\u043c\u0435\u0441\u0442\u0435<\/h3>\n<p>\u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u043d\u0435\u0435, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441 \u0438\u043b\u0438 \u043a\u043d\u0438\u0433\u0443, \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f 9 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f\u043c\u0438:<\/p>\n<pre><code>master_by_ru.lt master_de_ru.lt master_en_ru.lt master_es_ru.lt master_fr_ru.lt master_hu_ru.lt master_it_ru.lt master_uk_ru.lt master_zh_ru.lt<\/code><\/pre>\n<p>\u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c <a href=\"https:\/\/disk.yandex.ru\/d\/1gBjPQMKYSy1Lg\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0432\u044b\u0440\u0430\u0432\u043d\u044f\u0442\u044c \u0438\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 lingtran-aligner. \u041f\u043e\u043b\u043e\u0436\u0438\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u043f\u0430\u043f\u043a\u0443 db \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 python \u0441\u043a\u0440\u0438\u043f\u0442.<\/p>\n<pre><code class=\"python\">from lingtrain_aligner import reader, saver, preprocessor from operator import itemgetter import json  db_path1 = \"db\/master_en_ru.lt\" db_path2 = \"db\/master_de_ru.lt\" db_path3 = \"db\/master_zh_ru.lt\" db_path4 = \"db\/master_by_ru.lt\" db_path5 = \"db\/master_uk_ru.lt\" db_path6 = \"db\/master_hu_ru.lt\" db_path7 = \"db\/master_it_ru.lt\" db_path8 = \"db\/master_fr_ru.lt\" db_path9 = \"db\/master_es_ru.lt\"  paragraphs_dict, par_ids, meta_info = reader.get_paragraphs_polybook(     db_paths=[db_path1, db_path2, db_path3, \\               db_path4, db_path5, db_path6, \\               db_path7, db_path8, db_path9] )  def save_corpora(paragraphs, lang, output_path):     if lang not in paragraphs:         print(f\"{lang} language was not found in data.\")         return      flat_list = [sent for par in paragraphs[lang] for sent in par]     print(f\"There are {len(flat_list)} sentences for {lang} language.\")      with open(output_path, \"w\", encoding=\"utf-8\") as fout:         fout.write(\"\\n\".join(flat_list))   for lang in [\"ru\", \"de\", \"en\", \"fr\", \"zh\", \"uk\", \"by\", \"es\", \"it\", \"hu\"]:     output_path = f\"texts\/{lang}.txt\"     save_corpora(paragraphs_dict, lang, output_path)<\/code><\/pre>\n<p>\u0412 \u043f\u0430\u043f\u043a\u0443 texts \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0444\u0430\u0439\u043b\u044b ru.txt, en.txt, fr.txt \u0438 \u0442.\u0434. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u043d\u0438\u0445 \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0438 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u044b \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dd9\/25e\/443\/dd925e443493dad55799bbb073ee25c0.png\" width=\"1275\" height=\"664\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dd9\/25e\/443\/dd925e443493dad55799bbb073ee25c0.png\"\/><figcaption><\/figcaption><\/figure>\n<h3>\u0418\u0442\u043e\u0433 \u0438 \u043f\u043b\u0430\u043d\u044b<\/h3>\n<ul>\n<li>\n<p>\u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441 \u043d\u0430 10 \u044f\u0437\u044b\u043a\u0430\u0445, \u0435\u0433\u043e \u044f \u043e\u0444\u043e\u0440\u043c\u0438\u043b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u043d\u0430 GitHub \u2014 <a href=\"https:\/\/github.com\/averkij\/woland\" rel=\"noopener noreferrer nofollow\">Woland-10<\/a>. <\/p>\n<\/li>\n<li>\n<p>\u0418\u0437 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043d\u0438\u0433\u0443 \u0438 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0435\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 html. \u041c\u043e\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0438\u0442\u044c\u0441\u044f \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0443 \u0432 pdf \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/t.me\/lingtrain\/47\" rel=\"noopener noreferrer nofollow\">\u0442\u0430\u043a\u0443\u044e<\/a>. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <a href=\"https:\/\/habr.com\/ru\/company\/ods\/blog\/669990\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u0434\u043e\u043e\u0431\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u044f\u0437\u044b\u043a (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0430\u043b\u043e\u0440\u0435\u0441\u0443\u0440\u0441\u043d\u044b\u0439) \u0438 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u043e \u044d\u0442\u043e <a href=\"https:\/\/habr.com\/ru\/post\/581272\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u043d\u0430\u0434 <strong>\u043a\u043d\u0438\u0433\u043e\u0439-\u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440\u043e\u043c<\/strong>. \u041e\u0431 \u044d\u0442\u043e\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u0441\u044b\u043b\u043a\u0438<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/t.me\/doomgrad\" rel=\"noopener noreferrer nofollow\">\u0413\u0440\u0430\u0434\u0438\u0435\u043d\u0442 \u043e\u0431\u0440\u0435\u0447\u0435\u043d\u043d\u044b\u0439<\/a>. \u0422\u0443\u0442 \u043f\u0438\u0448\u0443 \u043f\u0440\u043e \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0431\u043e\u0442\u0443. \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u043e\u0431\u0449\u0435\u043d\u0438\u044e.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/t.me\/lingtrain_books\" rel=\"noopener noreferrer nofollow\">\u0427\u0430\u0442 Ligntrain<\/a>. \u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u0435\u0441\u0442\u044c \u0438\u0434\u0435\u0438, \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043b\u044e\u0431\u0438\u0442\u0435 \u044f\u0437\u044b\u043a\u0438 \u2014 \u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u0447\u0430\u0442.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/averkij\/a-studio\" rel=\"noopener noreferrer nofollow\">\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <\/a>\u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c. \u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 Python + Vue.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.tinkoff.ru\/collectmoney\/crowd\/averkiev.sergey7\/wYn8f32996\/\" rel=\"noopener noreferrer nofollow\">\u041d\u0430 \u043a\u043e\u0444\u0435 \u0441 \u043f\u0435\u0447\u0435\u043d\u044c\u043a\u0430\u043c\u0438<\/a>. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0447\u0435\u043a\u0430\u043d\u043e\u0439 \u043c\u043e\u043d\u0435\u0442\u043e\u0439.<\/p>\n<\/li>\n<\/ul>\n<h4>? \u0412\u0441\u0435\u0445 \u0441 \u041d\u0430\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u043c! \u041c\u0438\u0440\u0430, \u0441\u0447\u0430\u0441\u0442\u044c\u044f \u0438 \u0434\u043e\u0431\u0440\u0430 \u0432 \u041d\u043e\u0432\u043e\u043c \u0413\u043e\u0434\u0443!<\/h4>\n<\/p>\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\/post\/704958\/\"> https:\/\/habr.com\/ru\/post\/704958\/<\/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>\u0425\u043e\u0447\u0443 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441 \u0438 \u043a\u043d\u0438\u0433\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043c\u043e\u0435\u0433\u043e <a href=\"https:\/\/github.com\/averkij\/a-studio\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0442-\u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u043e\u0437\u044c\u043c\u0435\u043c 10 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0439 &#171;\u041c\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u044b&#187; \u041c\u0438\u0445\u0430\u0438\u043b\u0430 \u0411\u0443\u043b\u0433\u0430\u043a\u043e\u0432\u0430 (<em>ru, uk, by, en, fr, it, es, de, hu, zh<\/em>). \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0435\u043c \u0434\u0435\u0432\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u043e\u043c, \u0430 \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0435\u043c \u0432\u0441\u0435 \u0432\u043c\u0435\u0441\u0442\u0435. \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441 \u043d\u0430 10 \u044f\u0437\u044b\u043a\u0430\u0445 \u0438 \u043c\u043d\u043e\u0433\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0445 \u043a\u043d\u0438\u0433. \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c.<\/p>\n<h2>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h2>\n<p>Lingtrain Alignment Studio \u2014 \u044d\u0442\u043e \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 lingtrain-aligner. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u044f\u043c\u0438\u043a\u043e\u043c \u0438\u0437 \u043a\u043e\u0434\u0430 \u043d\u0430 python (\u043f\u0440\u0438\u043c\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0436\u0435), \u043b\u0438\u0431\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0412 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u0435\u0439 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043a\u043e\u0440\u043f\u0443\u0441 \u043f\u043b\u044e\u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u043f\u043e \u0432\u0435\u0440\u0441\u0442\u043a\u0435. \u041a\u043e\u0434 \u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0438.<\/p>\n<p>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u043e\u0432 \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0438 \u043b\u043e\u0433\u0438\u043a\u0438 \u043f\u043e \u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e. \u042d\u0442\u043e \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430, \u044f \u043b\u0438\u0448\u044c \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e <strong>\u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0430\u043c\u0438<\/strong> \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0441\u0436\u0430\u0442\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435\u0441\u0443\u0449\u0438\u0435 \u0432 \u0441\u0435\u0431\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0442\u0435\u043a\u0441\u0442\u044b, \u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u0430\u044f \u0432 \u044d\u043c\u0431\u0435\u0434\u0434\u0438\u043d\u0433\u0430\u0445, \u043d\u0435\u0441\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0441\u043c\u044b\u0441\u043b \u044d\u0442\u0438\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u0431\u043b\u0438\u0437\u043e\u0441\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0435\u0440\u044f\u044f \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438. \u0412 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u0438 LaBSE (100+ \u044f\u0437\u044b\u043a\u043e\u0432) \u0438 sentence-transformers (50+ \u044f\u0437\u044b\u043a\u043e\u0432).<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0430\u0445 \u0440\u0430\u0437\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u043a\u0430\u043a \u0441\u043e \u0441\u0442\u0438\u043b\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430, \u0442\u0430\u043a \u0438 \u0441 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u0438\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u043f\u0440\u044f\u043c\u043e\u0439 \u0440\u0435\u0447\u044c\u044e \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u043d\u0430 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0442\u043e \u043d\u0430 3-4 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u043e\u0440\u043e\u0447\u0435. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043e\u0442 \u0441\u0435\u0431\u044f, \u043f\u0440\u0438\u0432\u043d\u043e\u0441\u044f \u0432 \u0442\u0435\u043a\u0441\u0442 \u043d\u043e\u0432\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043c\u043e\u0436\u0435\u0442 \u0438 \u0447\u0442\u043e-\u0442\u043e \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c. \u041e\u0434\u0438\u043d \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0443\u043f\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u0442\u043e\u0433\u0434\u0430 \u0432 \u043d\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u043b\u0430\u043a\u0443\u043d\u0430, \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438. \u0412\u0441\u0435 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0438.<\/p>\n<h2>\u0422\u0435\u043a\u0441\u0442\u044b<\/h2>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c. \u042f \u0431\u0443\u0434\u0443 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 &#171;\u041c\u0430\u0441\u0442\u0435\u0440\u0430&#187;, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0437\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u0442\u0435\u043a\u0441\u0442\u044b. \u0413\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e\u0431\u044b \u0432 \u043d\u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b\u0430\u0441\u044c \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0445\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434. \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0442\u0435\u043a\u0441\u0442\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 txt \u0444\u0430\u0439\u043b\u044b \u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0438\u0445 master_ru.txt, master_en.txt, master_de.txt \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>\u0412 \u0441\u044b\u0440\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u0430\u0445 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u043b\u0438\u0448\u043d\u044f\u044f \u0434\u043b\u044f \u043d\u0430\u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u2014 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0441\u043d\u043e\u0441\u043a\u0438 \u0438 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435, \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0438\u0437\u0434\u0430\u043d\u0438\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0438\u043b\u0438 \u043a\u043e\u043d\u0446\u0435 \u0442\u0435\u043a\u0441\u0442\u0430. \u042d\u0442\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u043c.<\/p>\n<p>\u0418\u043c\u0435\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u044b:<\/p>\n<blockquote>\n<p>\u041c\u0430\u0441\u0442\u0435\u0440 \u0438 \u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u0430<br \/>\u041c. \u0410. \u0411\u0443\u043b\u0433\u0430\u043a\u043e\u0432.<\/p>\n<p>\u0427\u0410\u0421\u0422\u042c \u041f\u0415\u0420\u0412\u0410\u042f<\/p>\n<p>\u0413\u043b\u0430\u0432\u0430 1<\/p>\n<p>\u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0439\u0442\u0435 \u0441 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c\u0438<\/p>\n<p>\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u0432\u0435\u0441\u043d\u043e\u044e, \u0432 \u0447\u0430\u0441 \u043d\u0435\u0431\u044b\u0432\u0430\u043b\u043e \u0436\u0430\u0440\u043a\u043e\u0433\u043e \u0437\u0430\u043a\u0430\u0442\u0430, \u0432 \u041c\u043e\u0441\u043a\u0432\u0435, \u043d\u0430 \u041f\u0430\u0442\u0440\u0438\u0430\u0440\u0448\u0438\u0445 \u043f\u0440\u0443\u0434\u0430\u0445, \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0432\u0430 \u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u043d\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445, \u043e\u0434\u0435\u0442\u044b\u0439 \u0432 \u043b\u0435\u0442\u043d\u044e\u044e \u0441\u0435\u0440\u0435\u043d\u044c\u043a\u0443\u044e \u043f\u0430\u0440\u0443, \u0431\u044b\u043b \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0433\u043e \u0440\u043e\u0441\u0442\u0430, \u0443\u043f\u0438\u0442\u0430\u043d, \u043b\u044b\u0441, \u0441\u0432\u043e\u044e \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u0443\u044e \u0448\u043b\u044f\u043f\u0443 \u043f\u0438\u0440\u043e\u0436\u043a\u043e\u043c \u043d\u0435\u0441 \u0432 \u0440\u0443\u043a\u0435, \u0430 \u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u044b\u0431\u0440\u0438\u0442\u043e\u043c \u043b\u0438\u0446\u0435 \u0435\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u043b\u0438\u0441\u044c \u0441\u0432\u0435\u0440\u0445\u044a\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043e\u0447\u043a\u0438 \u0432 \u0447\u0435\u0440\u043d\u043e\u0439 \u0440\u043e\u0433\u043e\u0432\u043e\u0439 \u043e\u043f\u0440\u0430\u0432\u0435. \u0412\u0442\u043e\u0440\u043e\u0439 \u2013 \u043f\u043b\u0435\u0447\u0438\u0441\u0442\u044b\u0439, \u0440\u044b\u0436\u0435\u0432\u0430\u0442\u044b\u0439, \u0432\u0438\u0445\u0440\u0430\u0441\u0442\u044b\u0439 \u043c\u043e\u043b\u043e\u0434\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0432 \u0437\u0430\u043b\u043e\u043c\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u0437\u0430\u0442\u044b\u043b\u043e\u043a \u043a\u043b\u0435\u0442\u0447\u0430\u0442\u043e\u0439 \u043a\u0435\u043f\u043a\u0435 \u2013 \u0431\u044b\u043b \u0432 \u043a\u043e\u0432\u0431\u043e\u0439\u043a\u0435, \u0436\u0435\u0432\u0430\u043d\u044b\u0445 \u0431\u0435\u043b\u044b\u0445 \u0431\u0440\u044e\u043a\u0430\u0445 \u0438 \u0432 \u0447\u0435\u0440\u043d\u044b\u0445 \u0442\u0430\u043f\u043e\u0447\u043a\u0430\u0445.<\/p>\n<p>&#8230;<\/p>\n<\/blockquote>\n<blockquote>\n<p>The Master and Margarita<br \/>Mikhail Bulgakov<\/p>\n<p>BOOK ONE<\/p>\n<p>CHAPTER 1<\/p>\n<p>Never Talk with Strangers<\/p>\n<p>At the hour of the hot spring sunset two citizens appeared at the Patriarch&#8217;s Ponds.<\/p>\n<p>One of them, approximately forty years old, dressed in a grey summer suit, was short, dark-haired, plump, bald, and carried his respectable fedora hat in his hand. His neatly shaven face was adorned with black horn-rimmed glasses of a supernatural size.<\/p>\n<p>&#8230;<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0442\u0435\u043a\u0441\u0442\u0430\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f <strong>\u043c\u0435\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/strong>, \u2014 \u044d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043d\u0438\u0433\u0438 \u0438 \u0438\u043c\u044f \u0430\u0432\u0442\u043e\u0440\u0430, \u043d\u043e\u043c\u0435\u0440\u0430 \u0433\u043b\u0430\u0432 \u0438 \u0447\u0430\u0441\u0442\u0435\u0439 \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0432\u0435\u0449\u0438. \u041c\u0435\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0447\u0430\u0441\u0442\u044c\u044e \u0442\u0435\u043a\u0441\u0442\u0430, \u043d\u043e \u044d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0432\u0435\u0449\u044c \u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0435\u0435 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043c\u0435\u0442\u0438\u043c \u0435\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th data-colwidth=\"169\" width=\"169\">\n<p>\u041c\u0435\u0442\u043a\u0430<\/p>\n<\/th>\n<th data-colwidth=\"225\" width=\"225\">\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td data-colwidth=\"169\" width=\"169\">\n<p align=\"left\">%%%%%author.<\/p>\n<\/td>\n<td data-colwidth=\"225\" width=\"225\">\n<p align=\"left\">\u0410\u0432\u0442\u043e\u0440<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041b\u044e \u0426\u0438 \u0421\u0438\u043d\u044c%%%%%author.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"169\" width=\"169\">\n<p align=\"left\">%%%%%title.<\/p>\n<\/td>\n<td data-colwidth=\"225\" width=\"225\">\n<p align=\"left\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0434\u0430\u0447\u0430 \u0442\u0440\u0451\u0445 \u0442\u0435\u043b%%%%%title.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"169\" width=\"169\">\n<p align=\"left\">%%%%%qtext.<\/p>\n<\/td>\n<td data-colwidth=\"225\" width=\"225\">\n<p align=\"left\">\u0426\u0438\u0442\u0430\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u0442, \u043a\u0442\u043e \u0441\u043f\u0430\u0441\u0430\u0435\u0442 \u043e\u0434\u043d\u0443 \u0436\u0438\u0437\u043d\u044c, \u0441\u043f\u0430\u0441\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u043c\u0438\u0440.%%%%%qtext.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"169\" width=\"169\">\n<p align=\"left\">%%%%%qname.<\/p>\n<\/td>\n<td data-colwidth=\"225\" width=\"225\">\n<p align=\"left\">\u041f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u043e\u0434 \u0446\u0438\u0442\u0430\u0442\u043e\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0440\u043e\u0434\u043d\u0430\u044f \u043c\u0443\u0434\u0440\u043e\u0441\u0442\u044c%%%%%qname.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"169\" width=\"169\">\n<p align=\"left\">%%%%%h1. %%%%%h2. %%%%%h3. %%%%%h4. %%%%%h5.<\/p>\n<\/td>\n<td data-colwidth=\"225\" width=\"225\">\n<p align=\"left\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0413\u043b\u0430\u0432\u0430 1%%%%%h2.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p> \u0422\u0435\u0433\u0438 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u043e\u043a. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a:<\/p>\n<blockquote>\n<p>\u041c\u0430\u0441\u0442\u0435\u0440 \u0438 \u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u0430%%%%%title.<br \/>\u041c. \u0410. \u0411\u0443\u043b\u0433\u0430\u043a\u043e\u0432%%%%%author.<\/p>\n<p>\u0427\u0410\u0421\u0422\u042c \u041f\u0415\u0420\u0412\u0410\u042f%%%%%h1.<\/p>\n<p>\u0413\u043b\u0430\u0432\u0430 1%%%%%h2.<\/p>\n<p>\u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0439\u0442\u0435 \u0441 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c\u0438%%%%%h2.<\/p>\n<p>\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u0432\u0435\u0441\u043d\u043e\u044e, \u0432 \u0447\u0430\u0441 \u043d\u0435\u0431\u044b\u0432\u0430\u043b\u043e \u0436\u0430\u0440\u043a\u043e\u0433\u043e \u0437\u0430\u043a\u0430\u0442\u0430, \u0432 \u041c\u043e\u0441\u043a\u0432\u0435, \u043d\u0430 \u041f\u0430\u0442\u0440\u0438\u0430\u0440\u0448\u0438\u0445 \u043f\u0440\u0443\u0434\u0430\u0445, \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0432\u0430 \u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0438\u043d\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445, \u043e\u0434\u0435\u0442\u044b\u0439 \u0432 \u043b\u0435\u0442\u043d\u044e\u044e \u0441\u0435\u0440\u0435\u043d\u044c\u043a\u0443\u044e \u043f\u0430\u0440\u0443, \u0431\u044b\u043b \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0433\u043e \u0440\u043e\u0441\u0442\u0430, \u0443\u043f\u0438\u0442\u0430\u043d, \u043b\u044b\u0441, \u0441\u0432\u043e\u044e \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u0443\u044e \u0448\u043b\u044f\u043f\u0443 \u043f\u0438\u0440\u043e\u0436\u043a\u043e\u043c \u043d\u0435\u0441 \u0432 \u0440\u0443\u043a\u0435, \u0430 \u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u044b\u0431\u0440\u0438\u0442\u043e\u043c \u043b\u0438\u0446\u0435 \u0435\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u043b\u0438\u0441\u044c \u0441\u0432\u0435\u0440\u0445\u044a\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043e\u0447\u043a\u0438 \u0432 \u0447\u0435\u0440\u043d\u043e\u0439 \u0440\u043e\u0433\u043e\u0432\u043e\u0439 \u043e\u043f\u0440\u0430\u0432\u0435. \u0412\u0442\u043e\u0440\u043e\u0439 \u2013 \u043f\u043b\u0435\u0447\u0438\u0441\u0442\u044b\u0439, \u0440\u044b\u0436\u0435\u0432\u0430\u0442\u044b\u0439, \u0432\u0438\u0445\u0440\u0430\u0441\u0442\u044b\u0439 \u043c\u043e\u043b\u043e\u0434\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0432 \u0437\u0430\u043b\u043e\u043c\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u0437\u0430\u0442\u044b\u043b\u043e\u043a \u043a\u043b\u0435\u0442\u0447\u0430\u0442\u043e\u0439 \u043a\u0435\u043f\u043a\u0435 \u2013 \u0431\u044b\u043b \u0432 \u043a\u043e\u0432\u0431\u043e\u0439\u043a\u0435, \u0436\u0435\u0432\u0430\u043d\u044b\u0445 \u0431\u0435\u043b\u044b\u0445 \u0431\u0440\u044e\u043a\u0430\u0445 \u0438 \u0432 \u0447\u0435\u0440\u043d\u044b\u0445 \u0442\u0430\u043f\u043e\u0447\u043a\u0430\u0445.<\/p>\n<\/blockquote>\n<blockquote>\n<p>The Master and Margarita%%%%%title.<br \/>Mikhail Bulgakov%%%%%author.<\/p>\n<p>BOOK ONE%%%%%h1.<\/p>\n<p>CHAPTER 1%%%%%h2.<\/p>\n<p>Never Talk with Strangers%%%%%h2.<\/p>\n<p>At the hour of the hot spring sunset two citizens appeared at the Patriarch&#8217;s Ponds.<\/p>\n<p>One of them, approximately forty years old, dressed in a grey summer suit, was short, dark-haired, plump, bald, and carried his respectable fedora hat in his hand. His neatly shaven face was adorned with black horn-rimmed glasses of a supernatural size.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u043b\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/disk.yandex.ru\/d\/gmdGSaNZ6E15rQ\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. <\/p>\n<h2>\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435<\/h2>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h3>\u0421\u043a\u0440\u0438\u043f\u0442\u044b \u043d\u0430 \u043f\u0438\u0442\u043e\u043d\u0435<\/h3>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043a\u0430\u0436\u0443 \u0432\u0430\u043c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b \u043d\u0430 python. \u041f\u043b\u044e\u0441 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0432 Colab&#8217;\u0435 (\u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u043e\u0442 Google, \u0434\u0430\u044e\u0449\u0430\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430\u043c) \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c GPU, \u044d\u0442\u043e \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u0440\u0430\u0437\u044b, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0445\u043e\u0434\u0443, \u0430 \u044d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0439 \u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u041f\u043e\u0434\u0445\u043e\u0434\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f (\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u0432\u0438\u0434\u0435 sqlite \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445).<\/p>\n<p>\u0412\u043e\u0442 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 <a href=\"https:\/\/colab.research.google.com\/drive\/1lgmgCJuFAqjEI2zqn9RWPcQuO6rxC80f?usp=sharing\" rel=\"noopener noreferrer nofollow\">Colab-\u0431\u043b\u043e\u043a\u043d\u043e\u0442<\/a>, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u0442\u0435\u043a\u0441\u0442\u044b \u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443:<\/p>\n<pre><code class=\"python\"> pip install lingtrain-aligner==0.8.7<\/code><\/pre>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b:<\/p>\n<pre><code class=\"python\">from lingtrain_aligner import (     preprocessor,     splitter,     aligner,     resolver,     reader,     helper,     vis_helper,     metrics, )<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0435\u043c \u043d\u0430\u0448\u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b:<\/p>\n<pre><code class=\"python\">text1_input = \"harper_lee_ru.txt\" text2_input = \"harper_lee_en.txt\"  with open(text1_input, \"r\", encoding=\"utf8\") as input1:   text1 = input1.readlines()  with open(text2_input, \"r\", encoding=\"utf8\") as input2:   text2 = input2.readlines()<\/code><\/pre>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0442\u0430\u043a\u0436\u0435 \u043f\u0443\u0442\u044c \u0434\u043e SQLite \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (\u044d\u0442\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0441\u043e \u0432\u0441\u0435\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u0434\u043b\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439) \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u044f\u0437\u044b\u043a\u0430\u00a0<em>lang_from<\/em>\u00a0\u0438\u00a0<em>lang_to<\/em>. \u042d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"python\">db_path = \"db\/book.db\"  lang_from = \"ru\" lang_to = \"en\"  models = [\"sentence_transformer_multilingual\", \"sentence_transformer_multilingual_labse\"] model_name = models[0]<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442, \u043d\u043e \u043e\u043d \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u044f\u043c\u0438, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u0434\u00a0<strong>xx<\/strong>, \u0442\u043e\u0433\u0434\u0430 \u043a \u0442\u0435\u043a\u0441\u0442\u0443 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f.\u00a0<\/p>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0430\u0431\u0437\u0430\u0446\u0435\u0432 \u0438 \u0440\u0430\u0437\u043e\u0431\u044a\u0435\u043c \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre><code class=\"python\">text1_prepared = preprocessor.mark_paragraphs(text1) text2_prepared = preprocessor.mark_paragraphs(text2)  splitted_from = splitter.split_by_sentences_wrapper(text1_prepared , lang_from) splitted_to = splitter.split_by_sentences_wrapper(text2_prepared , lang_to)<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0448\u0443 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0438\u043c \u0435\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0432\u0437\u044f\u0442\u044b\u043c\u0438 \u0438\u0437 \u043d\u0430\u0448\u0435\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438. \u0412 \u0431\u0430\u0437\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u0430\u0431\u0437\u0430\u0446\u0435\u0432 \u0438 \u0433\u043b\u0430\u0432, \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u0438\u0445 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043e\u0441\u0442\u0430\u0432 \u0438 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435. <\/p>\n<pre><code class=\"python\">aligner.fill_db(db_path, splitted_from, splitted_to)<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u0434\u0435\u0442 \u043a\u0443\u0441\u043a\u0430\u043c\u0438 \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c\u00a0<em>batch_size<\/em>, \u0432\u043e\u043a\u0440\u0443\u0433 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0443\u0441\u043a\u0430 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u00a0<em>window<\/em>, \u0447\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438. \u041c\u043e\u0434\u0435\u043b\u044c \u0431\u0435\u0440\u0435\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u043b\u0443\u0447\u0448\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041d\u0430 \u044d\u0442\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0435 \u0447\u0435\u0442\u044b\u0440\u0435\u0441\u0442\u0430 \u0441\u0442\u0440\u043e\u043a, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443.<\/p>\n<pre><code class=\"python\">batch_ids = [0,1,2,3]  aligner.align_db(db_path, \\                 model_name, \\                 batch_size=200, \\                 window=30, \\                 batch_ids=batch_ids, \\                 save_pic=False,                 embed_batch_size=50, \\                 normalize_embeddings=True, \\                 show_progress_bar=True                 )<\/code><\/pre>\n<h3>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u041d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c! \u042d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0432 \u0431\u0430\u0437\u0435 \u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u043c\u00a0<strong>vis_helper<\/strong>. \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a \u0443 \u043d\u0430\u0441 400, \u0442\u043e \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0432\u0441\u0435 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435, \u0437\u0430\u0434\u0430\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u00a0<em>batch_size=400<\/em>. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<em>batch_size=50<\/em>, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c 4 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043f\u043e-\u043c\u0435\u043d\u044c\u0448\u0435.<\/p>\n<pre><code class=\"python\">vis_helper.visualize_alignment_by_db(db_path, output_path=\"alignment_vis.png\", \\                                     lang_name_from=lang_from, \\                                     lang_name_to=lang_to, \\                                     batch_size=400, \\                                     size=(800,800), \\                                     plt_show=True)<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e \u0438\u0434\u0435\u0442 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a \u043a\u043e\u043d\u0446\u0443, \u043d\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d \u0434\u0432\u0435:<\/p>\n<ul>\n<li>\n<p>\u0423 \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u044b\u043b\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0443\u0434\u0430\u0447\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432.<\/p>\n<ul>\n<li>\n<p>\u0422\u0430\u043a \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0430\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u0434\u0435\u0442 \u0434\u0438\u0430\u043b\u043e\u0433, \u0444\u0440\u0430\u0437\u044b \u0432 \u043d\u0435\u043c \u043e\u0434\u043d\u043e\u0441\u043b\u043e\u0436\u043d\u044b\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0438\u043c\u0435\u043d\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0423 \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u044b\u043b\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u043d\u0435\u0442.<\/p>\n<ul>\n<li>\n<p>\u0423 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u0438 \u043a \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041e\u0434\u0438\u043d<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\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-342808","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/342808","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=342808"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/342808\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=342808"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=342808"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=342808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}