рдЬреВрд▓рд┐рдпрд╛ рдФрд░ рд╡рд┐рддрд░рдг рд╢рдмреНрджрд╛рд░реНрде


рдЬреВрд▓рд┐рдпрд╛ рднрд╛рд╖рд╛ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж рд╕реЗ, рдмрд╣реБрдд рд╕рд╛рд░реА рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рддреЗрдВ рд╣реБрдИрдВ:



рдЗрд╕реА рд╕рдордп, рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдмреНрдпрд╛рдЬ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ, рдЬреЛ рдкреНрд░рдЪреБрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрдд рдХреА рдЧрдИ рд╣реИ:



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


рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдпрд╣рд╛рдБ рдкрд░ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреБрд▓ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЛ рдПрдирдПрд▓рдкреА - рдЬреВрд▓рд░реА рдПрдирдПрд▓рдкреА - рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╢реЛрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ ред рд╣рдо рдЧреНрд░рдВрдереЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ ред рддреЛ рдЪрд▓рд┐рдП рддреБрд░рдВрдд рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддреЗ рд╣реИрдВ рдФрд░ TextAnalysis рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред


TextAnalisys


рдХреБрдЫ рдкрд╛рда рджрд┐рдП рдЬрд╛рдПрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ:


using TextAnalysis str = """ Ich mag die Sonne, die Palmen und das Meer, Ich mag den Himmel schauen, den Wolken hinterher. Ich mag den kalten Mond, wenn der Vollmond rund, Und ich mag dich mit einem Knebel in dem Mund. """; sd = StringDocument(str) 

 StringDocument{String}("Ich mag die ... dem Mund.\n", TextAnalysis.DocumentMetadata(Languages.Default(), "Untitled Document", "Unknown Author", "Unknown Time")) 

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


 title!(sd, "Knebel") prepare!(sd, strip_punctuation) remove_case!(sd) text(sd) 

 "ich mag die sonne die palmen und das meer \nich mag den himmel schauen den wolken hinterher \nich mag den kalten mond wenn der vollmond rund \nund ich mag dich mit einem knebel in dem mund \n" 

рдЬреЛ рдЖрдкрдХреЛ рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╢реБрджреНрдз рдПрди-рдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:


 dict1 = ngrams(sd) Dict{String,Int64} with 26 entries: "dem" => 1 "himmel" => 1 "knebel" => 1 "der" => 1 "schauen" => 1 "mund" => 1 "rund" => 1 "in" => 1 "mond" => 1 "dich" => 1 "einem" => 1 "ich" => 4 "hinterher" => 1 "wolken" => 1 "den" => 3 "das" => 1 "palmen" => 1 "kalten" => 1 "mag" => 4 "sonne" => 1 "vollmond" => 1 "die" => 2 "mit" => 1 "meer" => 1 "wenn" => 1 "und" => 2 

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкреВрдВрдЬреА рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдФрд░ рд╢рдмреНрдж рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реЛрдВрдЧреА, рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рда рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рдмреНрджреЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЧреБрдгрд╛рддреНрдордХ рдореВрд▓реНрдпрд╛рдВрдХрди рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░реЗрдЧреА, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЙрдирд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓рд┐рдпрд╛ред рдПрди-рдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП, рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдвреВрдВрдврдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рда рдореЗрдВ рдЦреЛрдЬ рдХреЛ рдзреВрдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╣рдо рд╕рд┐рд░реНрдл рдкрд░реНрдпрдЯрдХ рд╣реИрдВ, рд╣рдо рдЦрд┐рд▓реМрдирд╛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рддреН рдорд╛рд░реНрдХреЛрд╡ рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рда рдХреА рдкреАрдврд╝реА


рдкреНрд░реЛрдЪреНрдЬрд╝реЗрдирд┐ рдореЙрдбрд▓реЛрд╡реЗрд╣реЛ рдЧреНрд░рд╛рдлреНрдЯреБ


рдорд╛рд░реНрдХреЛрд╡ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдПрдХ рдорд╛рд░реНрдХреЛрд╡ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рдЕрд╕рддрдд рдореЙрдбрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдЗрд╕рдХреА (рдореЙрдбрд▓) рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рддрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред рдмреЛрд▓рдЪрд╛рд▓ рдХреА рднрд╛рд╖рд╛ рдореЗрдВ, рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдПрдХ рд╕рдВрднрд╛рд╡реНрдп рдХреЛрд╢рд┐рдХреАрдп рдСрдЯреЛрдореЛрдмреЗрдЯрди рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рдПрди-рдЧреНрд░рд╛рдо рдХрд╛рдлреА рд╕рд╣-рдЕрд╕реНрддрд┐рддреНрд╡рд╡рд╛рджреА: рд▓реЗрдХреНрд╕рд┐рдХреЙрди рд╕реЗ рдХреЛрдИ рднреА рд╢рдмреНрдж рд╡рд┐рднрд┐рдиреНрди рдореЛрдЯрд╛рдИ рдХреЗ рд╣рд░ рджреВрд╕рд░реЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬреЛ рдкрд╛рда рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬреЛрдбрд╝реЗ (рдЧреНрд░рд╛рдо) рдХреА рдШрдЯрдирд╛ рдХреА рдЖрд╡реГрддреНрддрд┐ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред



рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдПрдмреАрдПрдмреАрдбреА" рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХреЛрд╡ рд╢реНрд░реГрдВрдЦрд▓рд╛


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


рдкрд╛рда рдХреЛ рдЯреЛрдХрди рдореЗрдВ рддреЛрдбрд╝рдирд╛ (рдЙрджрд╛ред рд╢рдмреНрдж)


 using Markovify, Markovify.Tokenizer tokens = tokenize(str, on = words) 2-element Array{Array{String,1},1}: ["Ich", "mag", "die", "Sonne,", "die", "Palmen", "und", "das", "Meer,", "Ich", "mag", "den", "Himmel", "schauen,", "den", "Wolken", "hinterher."] ["Ich", "mag", "den", "kalten", "Mond,", "wenn", "der", "Vollmond", "rund,", "Und", "ich", "mag", "dich", "mit", "einem", "Knebel", "in", "dem", "Mund."] 

рд╣рдо рдкрд╣рд▓реЗ рдХреНрд░рдо рдХрд╛ рдореЙрдбрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ (рдХреЗрд╡рд▓ рдирд┐рдХрдЯрддрдо рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ):


 mdl = Model(tokens; order=1) Model{String}(1, Dict(["dich"] => Dict("mit" => 1),["den"] => Dict("Himmel" => 1,"kalten" => 1,"Wolken" => 1),["in"] => Dict("dem" => 1),["Palmen"] => Dict("und" => 1),["wenn"] => Dict("der" => 1),["rund,"] => Dict("Und" => 1),[:begin] => Dict("Ich" => 2),["Vollmond"] => Dict("rund," => 1),["die"] => Dict("Sonne," => 1,"Palmen" => 1),["kalten"] => Dict("Mond," => 1)тАж)) 

рдлрд┐рд░ рд╣рдо рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрддреНрдкрдиреНрди рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдореЙрдбрд▓, рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб, рдФрд░ рдЙрди рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ рдЖрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:


рдХреЛрдб
 function gensentences(model, fun, n) sentences = [] # Stop only after n sentences were generated # and passed through the length test while length(sentences) < n seq = fun(model) # Add the sentence to the array iff its length is ok if length(seq) > 3 && length(seq) < 20 push!(sentences, join(seq, " ")) end end sentences end 

рдкреИрдХреЗрдЬ рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рджреЛ рдмрд╛рдИрдкрд╛рд╕ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд┐рдП: walk рдФрд░ walk walk2 (рджреВрд╕рд░рд╛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЕрджреНрд╡рд┐рддреАрдп рдбрд┐рдЬрд╛рдЗрди рджреЗрддрд╛ рд╣реИ), рдФрд░ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдирд╛ рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдЗрд╕реЗ рдЖрдЬрдорд╛рдПрдБ:


 gensentences(mdl, walk, 4) 4-element Array{Any,1}: "Ich mag den Wolken hinterher." "Ich mag die Palmen und das Meer, Ich mag den Himmel schauen, den Wolken hinterher." "Ich mag den Wolken hinterher." "Ich mag die Palmen und das Meer, Ich mag dich mit einem Knebel in dem Mund." gensentences(mdl, walk2, 4) 4-element Array{Any,1}: "Ich mag den Wolken hinterher." "Ich mag dich mit einem Knebel in dem Mund." "Ich mag den Himmel schauen, den kalten Mond, wenn der Vollmond rund, Und ich mag den Wolken hinterher." "Ich mag die Sonne, die Palmen und das Meer, Ich mag dich mit einem Knebel in dem Mund." 

рдмреЗрд╢рдХ, рдкреНрд░рд▓реЛрднрди рд░реВрд╕реА рдЧреНрд░рдВрдереЛрдВ рдкрд░ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рд╕рдлреЗрдж рдЫрдВрдж рдкрд░ред рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЕрдкрдардиреАрдп рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рджреЗрдЦрднрд╛рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдпрд╛ рддреЛ рдЙрди рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдкрд╛рда UTF-8 рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


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


  ",             !" ".   , :    !" ",   , , ,       ?" "      !" ".     ,     !" ".  ,       ?" "    ,         !" "      ?" " ,   ,       ?" "     ?" ",      .     ?" 

рдЙрд╕рдиреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рдпрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдРрд╕реА рддрдХрдиреАрдХ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдорд╣рд┐рд▓рд╛ рдорд╕реНрддрд┐рд╖реНрдХ рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ... рдЕрд╣рдо, рдФрд░ рдореИрдВ рдХреМрди рд╣реВрдБ рдмрд╣рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ...


рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреАрдЬрд┐рдП


TextAnalysis рдкреИрдХреЗрдЬ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЖрдк рдкрд╛рда рдбреЗрдЯрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛рдВрдЧреНрд░реЗрд╕ рдХреЗ рдкрд╣рд▓реЗ рдЕрдореЗрд░рд┐рдХреА рд░рд╛рд╖реНрдЯреНрд░рдкрддрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рднрд╛рд╖рдгреЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИ



рдХреЛрдб
 using TextAnalysis, Clustering, Plots#, MultivariateStats pth = "C:\\Users\\User\\.julia\\packages\\TextAnalysis\\pcFQf\\test\\data\\sotu" files = readdir(pth) 

 29-element Array{String,1}: "Bush_1989.txt" "Bush_1990.txt" "Bush_1991.txt" "Bush_1992.txt" "Bush_2001.txt" "Bush_2002.txt" "Bush_2003.txt" "Bush_2004.txt" "Bush_2005.txt" "Bush_2006.txt" "Bush_2007.txt" "Bush_2008.txt" "Clinton_1993.txt" тЛо "Clinton_1998.txt" "Clinton_1999.txt" "Clinton_2000.txt" "Obama_2009.txt" "Obama_2010.txt" "Obama_2011.txt" "Obama_2012.txt" "Obama_2013.txt" "Obama_2014.txt" "Obama_2015.txt" "Obama_2016.txt" "Trump_2017.txt" 

рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЙрдирд╕реЗ рдПрдХ рд╡рд╛рд╣рд┐рдиреА рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рд╕реЗ рдЗрд╕реЗ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рднреА рднрд╛рд╖рдгреЛрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджрд╛рд╡рд▓реА рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ:


рдХреЛрдб
 crps = DirectoryCorpus(pth) standardize!(crps, StringDocument) crps = Corpus(crps[1:29]); 

 remove_case!(crps) prepare!(crps, strip_punctuation) update_lexicon!(crps) update_inverse_index!(crps) lexicon(crps) 

 Dict{String,Int64} with 9078 entries: "enriching" => 1 "ferret" => 1 "offend" => 1 "enjoy" => 4 "limousines" => 1 "shouldn" => 21 "fight" => 85 "everywhere" => 17 "vigilance" => 4 "helping" => 62 "whose" => 22 "'" => 725 "manufacture" => 3 "sleepless" => 2 "favor" => 6 "incoherent" => 1 "parenting" => 2 "wrongful" => 1 "poised" => 3 "henry" => 3 "borders" => 30 "worship" => 3 "star" => 10 "strand" => 1 "rejoin" => 3 тЛо => тЛо 

рдпрд╣ рджреЗрдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рдмреНрдж рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдмрд╛рдд рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдХрд┐ рд╣рдо рд╡рд╛рджреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ:


 crps["promise"]' 1├Ч24 LinearAlgebra.Adjoint{Int64,Array{Int64,1}}: 1 2 3 4 6 7 9 10 11 12 15 тАж 21 22 23 24 25 26 27 28 29 crps["reached"]' 1├Ч7 LinearAlgebra.Adjoint{Int64,Array{Int64,1}}: 12 14 15 17 19 20 22 

рдпрд╛ рд╕рд░реНрд╡рдирд╛рдо рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде:


 lexical_frequency(crps, "i"), lexical_frequency(crps, "you") (0.010942182388035081, 0.005905479339070189) 

рддреЛ рд╢рд╛рдпрдж рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдФрд░ рдкрддреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдмрд▓рд╛рддреНрдХрд╛рд░ рдФрд░ рдЕрдзреНрдпрдпрди рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдкреНрд░рддрд┐ рд╡рд┐рдХреГрдд рд░рд╡реИрдпрд╛ рд╣реИред


Matematritsy


рд╕рдЪ рдореЗрдВ рд╡рд┐рддрд░рдгрд╛рддреНрдордХ рд╢рдмреНрджрд╛рд░реНрде рддрдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЧреНрд░рдВрде, рдЧреНрд░рд╛рдо рдФрд░ рдЯреЛрдХрди рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред


рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореИрдЯреНрд░рд┐рдХреНрд╕ ( DTM ) рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдПрди рдбрдмреНрд▓реВрдЬрд╣рд╛рдБ рдПрди- рдорд╛рдорд▓реЗ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдФрд░ рдбрдмреНрд▓реНрдпреВ- рдХреЙрд░реНрдкрд╕ рдбрд┐рдХреНрд╢рдирд░реА рдХрд╛ рдЖрдХрд╛рд░ рдпрд╛рдиреА рд╢рдмреНрджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдЕрджреНрд╡рд┐рддреАрдп) рдЬреЛ рд╣рдорд╛рд░реЗ рдХреЙрд░реНрдкрд╕ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред I- th рдкрдВрдХреНрддрд┐ рдореЗрдВ, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ j- th рдХреЙрд▓рдо рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ - i- th рдкрд╛рда рдореЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ j- th рд╢рдмреНрдж рдорд┐рд▓рд╛ред


рдХреЛрдб
 dtm1 = DocumentTermMatrix(crps) 

 D = dtm(dtm1, :dense) 29├Ч9078 Array{Int64,2}: 0 0 1 4 0 0 0 0 0 0 0 0 0 тАж 1 0 0 16 0 0 0 0 0 0 0 1 4 0 0 0 0 0 0 0 0 0 1 0 0 4 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 3 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 5 8 0 0 0 0 0 0 0 0 0 0 0 0 10 38 0 0 0 0 0 3 0 0 0 0 0 0 0 0 5 0 тАж 0 0 0 22 0 0 0 0 0 0 0 12 4 2 0 0 0 0 0 1 3 0 0 0 0 41 0 0 0 0 0 0 0 1 1 2 1 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 44 0 0 0 0 0 0 0 2 1 1 0 0 0 0 0 0 2 0 0 0 67 0 0 14 1 1 31 2 0 8 2 1 1 0 0 0 0 0 4 0 тАж 0 0 0 50 0 0 0 0 0 2 0 3 3 0 2 0 0 0 0 0 2 1 0 0 0 11 0 0 0 0 0 0 0 8 3 6 3 0 0 0 0 0 0 0 1 0 0 4 0 0 0 0 0 тЛо тЛо тЛо тЛ▒ тЛо тЛо 0 1 11 5 3 3 0 0 0 1 0 1 0 1 0 0 44 0 0 0 0 0 0 0 11 5 4 5 0 0 0 0 0 1 0 1 0 0 48 0 0 0 0 0 0 0 18 6 8 4 0 0 0 0 0 0 1 1 0 0 80 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 тАж 0 0 0 26 0 0 0 0 0 1 0 4 5 5 1 0 0 0 0 0 1 0 0 0 45 0 0 0 0 0 1 1 0 8 2 1 3 0 0 0 0 0 2 0 0 0 47 0 0 170 11 11 1 0 0 7 1 1 1 0 0 0 0 0 0 0 0 0 3 2 0 208 2 2 0 1 0 5 2 0 1 1 0 0 0 0 1 0 0 0 41 0 0 122 7 7 1 0 0 4 3 4 1 0 0 0 0 0 0 0 тАж 0 0 62 0 0 173 11 11 7 2 0 6 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 3 0 3 0 0 0 0 0 0 0 0 0 0 0 35 0 0 0 0 0 1 0 2 2 0 2 0 0 0 0 0 1 0 0 0 0 30 0 0 0 0 0 

рдпрд╣рд╛рдБ рдореВрд▓ рдЗрдХрд╛рдЗрдпрд╛рдБ рд╢рдмреНрдж рд╣реИрдВ


 m.terms[3450:3465] 16-element Array{String,1}: "franklin" "frankly" "frankness" "fraud" "frayed" "fraying" "fre" "freak" "freddie" "free" "freed" "freedom" "freedoms" "freely" "freer" "frees" 

рдПрдХ рдкрд▓ рд░реБрдХрд┐рдП ...


 crps["freak"] 1-element Array{Int64,1}: 25 files[25] "Obama_2013.txt" 

рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрдврд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ ...


рдЖрдк рд╢рдмреНрдж рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд┐рд▓рдЪрд╕реНрдк рдбреЗрдЯрд╛ рднреА рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рдмреНрджреЛрдВ рдХреА рдШрдЯрдирд╛ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХрд╣реЗрдВ


 w1, w2 = dtm1.column_indices["freedom"], dtm1.column_indices["terror"] (3452, 8101) 

 D[:, w1] |> bar 


 D[:, w1] |> bar 


рдпрд╛ рдХреБрдЫ рдЫрд┐рдкреЗ рд╣реБрдП рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рд╕рдорд╛рдирддрд╛:


 k = 3 #     iterations = 1000 # number of gibbs sampling iterations ╬▒ = 0.1 # hyper parameter ╬▓ = 0.1 # hyper parameter # Latent Dirichlet Allocation ╧Х, ╬╕ = lda(m, k, iterations, ╬▒, ╬▓) # Latent Dirichlet Allocation plot(╬╕', line = 3) 


рд░реЗрдЦрд╛рдВрдХрди рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рднрд╛рд╖рдгреЛрдВ рдореЗрдВ рддреАрди рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдХреИрд╕реЗ рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ


рдпрд╛ рд╡рд┐рд╖рдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢рдмреНрдж , рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рдмреНрджрд╛рд╡рд▓реА рдХреА рд╕рдорд╛рдирддрд╛ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╖рдпреЛрдВ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛


 T = tf_idf(D) cl = kmeans(T, 5) #   assign = assignments(cl) #       clc = cl.centers #   clsize = counts(cl) #   5-element Array{Int64,1}: 1 1784 36 1 7280 

 s1 = scatter(T[10, 1:10:end], assign, yaxis = "Bush 2006") s2 = scatter(T[29, 1:10:end], assign, yaxis = "Obama 2016") s3 = scatter(T[30, 1:10:end], assign, yaxis = "Trump 2017") plot(s1, s2, s3, layout = (3,1), legend=false ) 


рдХрд╛рдлреА рдкреНрд░рд╛рдХреГрддрд┐рдХ рдкрд░рд┐рдгрд╛рдо, рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рдиред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдирдПрд▓рдкреА рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЬреНрдЮрд╛рди рд╣реИ, рдФрд░ рдЖрдк рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ: рдЖрдк рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдкрд░ рдХрдИ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ( рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓реЗрдЦрдХ рдХреА рдорд╛рдиреНрдпрддрд╛ , рдПрд▓рдбреАрдП рдХрд╛ рдЙрдкрдпреЛрдЧ , рдЖрджрд┐)


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


рдХреЛрдб
 function loadfiles(filenames) return ( open(filename) do file text = read(file, String) # Tokenize on words (we could also tokenize on letters/lines etc.) # That means: split the text to sentences and then those sentences to words tokens = tokenize(text; on=letters) return Model(tokens; order=N) end for filename in filenames ) end pth = "C:\\Users\\User\\.julia\\packages\\TextAnalysis\\pcFQf\\test\\data\\sotu" FILENAMES = readdir(pth) N = 1 MODEL = combine(loadfiles(FILENAMES)...) gensentences(MODEL, walk2, 7) 

 7-element Array{Any,1}: "I want harmony and fathers, sons and we mark the jobkilling TransPacific Partnership." "I am asking all across our partners must be one very happy, indeed." "At the health insurance and terrorismrelated offenses since my Inauguration, and the future and pay their jobs, their community." "Millions lifted from this Nation, and Jessica Davis." "It will expand choice, increase access, lower the Director of our aspirations, not working." "We will defend our freedom." "The challenges we will celebrate the audience tonight, has come for a record." 

рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╕реНрдореГрддрд┐


рдЦреИрд░, рдпрд╣ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ! рд╡реЗ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмрдврд╝рддреА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд▓реЙрд░реЗрд▓ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬреВрд▓рд┐рдпрд╛ рднрд╛рд╖рд╛ рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣рд░ рддрд░рд╣ рд╕реЗ рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИред рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреЗрдиреЗрдЯ рдкреИрдХреЗрдЬ рдХреА рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдлреНрд▓рдХреНрд╕ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд┐рд╕рдХреА рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЬрд╛рдВрдЪ рдХреА рдереА , рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдФрд░ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╢реИрдХреНрд╖рдгрд┐рдХ рд░реБрдЪрд┐ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЧрд╣рд░реА рд╕рдордЭ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рднреА рджреЗрддрд╛ рд╣реИред рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рд╕реНрд╡-рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧрджрд░реНрд╢рди, рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╕рд╛рдордЧреНрд░реА рдорд┐рд▓реЗрдЧреА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╢реЗрдХреНрд╕рдкрд┐рдпрд░ рдкрд╛рда рдЬрдирд░реЗрдЯрд░ рдпрд╛ рдЖрд╡рд░реНрддрдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЬреВрд▓рд┐рдпрд╛рдХ рдХреЛрдб рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЗрдиреЗрдЯ рдкреИрдХреЗрдЬ рдХреЗ рдХреБрдЫ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдЬреАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдлреНрд▓рдХреНрд╕ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЪрд▓рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред



рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдХреНрд╕рд░ рдореЙрдбрд▓ рд╣реИ рдХрд┐ рд╢реЗрдХреНрд╕рдкрд┐рдпрд░ рдХреЗ рд╕реЛрдирдиреЗрдЯреНрд╕ рдХреЛ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


 QUEN: Chiet? The buswievest by his seld me not report. Good eurronish too in me will lide upon the name; Nor pain eat, comes, like my nature is night. GRUMIO: What for the Patrople: While Antony ere the madable sut killing! I think, bull call. I have what is that from the mock of France: Then, let me? CAMILLE: Who! we break be what you known, shade well? PRINCE HOTHEM: If I kiss my go reas, if he will leave; which my king myself. BENEDICH: The aunest hathing rouman can as? Come, my arms and haste. This weal the humens? Come sifen, shall as some best smine? You would hain to all make on, That that herself: whom will you come, lords and lafe to overwark the could king to me, My shall it foul thou art not from her. A time he must seep ablies in the genely sunsition. BEATIAR: When hitherdin: so like it be vannen-brother; straight Edwolk, Wholimus'd you ainly. DUVERT: And do, still ene holy break the what, govy. Servant: I fearesed, Anto joy? Is it do this sweet lord Caesar: The dece рд╡рд╣ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ; QUEN: Chiet? The buswievest by his seld me not report. Good eurronish too in me will lide upon the name; Nor pain eat, comes, like my nature is night. GRUMIO: What for the Patrople: While Antony ere the madable sut killing! I think, bull call. I have what is that from the mock of France: Then, let me? CAMILLE: Who! we break be what you known, shade well? PRINCE HOTHEM: If I kiss my go reas, if he will leave; which my king myself. BENEDICH: The aunest hathing rouman can as? Come, my arms and haste. This weal the humens? Come sifen, shall as some best smine? You would hain to all make on, That that herself: whom will you come, lords and lafe to overwark the could king to me, My shall it foul thou art not from her. A time he must seep ablies in the genely sunsition. BEATIAR: When hitherdin: so like it be vannen-brother; straight Edwolk, Wholimus'd you ainly. DUVERT: And do, still ene holy break the what, govy. Servant: I fearesed, Anto joy? Is it do this sweet lord Caesar: The dece 

рдпрджрд┐ рдЖрдк рдЕрдВрдЧреНрд░реЗрдЬреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдирд╛рдЯрдХ рдХрд╛рдлреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ ред



рд░реВрд╕реА рдореЗрдВ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ


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


рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣


Pies рдФрд░ рдкрд╛рдЙрдбрд░ - рд▓рдпрдмрджреНрдз quatrains, рдЕрдХреНрд╕рд░ рдХрд╡рд┐рддрд╛ рдХреЗ рдмрд┐рдирд╛, рдХрдо рдорд╛рдорд▓реЗ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдХреЗ рдмрд┐рдирд╛ред


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


  • HTTP.jl - рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП HTTP рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛
  • Gumbo.jl - html- рд▓реЗрдЖрдЙрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдФрд░ рди рдХреЗрд╡рд▓
  • Cascadia.jl - рдЧреБрдордмреЛ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рдкреИрдХреЗрдЬ


рдлрд┐рд░ рд╣рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд╡рд┐рддрд╛ рдХреЗ рдкрдиреНрдиреЛрдВ рдХреЛ рдмрджрд▓ рджреЗрддреА рд╣реИ рдФрд░ рдПрдХ рдкрд╛рда рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ pies рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ:


рдХреЛрдб
 using HTTP, Gumbo, Cascadia function grabit(npages) str = "" for i = 1:npages url = "https://poetory.ru/por/rating/$i" # https://poetory.ru/pir/rating/$i res = HTTP.get(url) body1 = String(res.body) htmlka = parsehtml(body1) qres = eachmatch(sel".item-text", htmlka.root) for elem in qres str *= (elem[1].text * "\n\n") end print(i, ' ') end f = open("poroh.txt","w") write(f, str) close(f) end grabit(30) 

рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ, рдпрд╣ рдПрдХ рдмреГрд╣рд╕реНрдкрддрд┐ рдиреЛрдЯрдмреБрдХ рдореЗрдВ рд╡рд┐рд╕реНрдерд╛рдкрд┐рдд рд╣реИ ред рдЪрд▓реЛ рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкрд╛рдИ рдФрд░ рдмрд╛рд░реВрдж рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ:


 str = read("pies.txt", String) * read("poroh.txt", String); length(str) # 7092659 

рдФрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЛ рджреЗрдЦреЗрдВ:


 prod(sort([unique(str)..., '_']) ) # "\n !\"#\$&'()*+,-./012345678:<>?@ABCDEFGHIKLMNOPQRSTUV[]^__abcdefghijklmnopqrstuvwxyz┬л\uad┬░┬║┬╗┬╛┬┐├Р├С├Я├а├б├г├д├е├ж├з├и├й├к├л├м├н├о├░├▒├│├╡├╢├╣├╗├╝├╜├╛├┐─▒┼Ж┼Н┼П╞Н╟Э╟╣╔Р╔У╔Ф╔п╔╣╩Б╩О╩Ъ╩Ю╠Б╬╡╤Ф╤Ц╤Ч╤Ю╤г╥║╫Р╫С╫Ф╫Х╫Ч╫Ш╫Щ╫Ъ╫Ь╫Э╫Ю╫в╫г╫ж╫з╫и╫й╫к╪ж╪з╪й╪к╪м╪п╪▒╪▓╪│╪╣┘Г┘Д┘Е┘Ж┘З┘И┘╛┌Ж┌С┌й┌п┌║┌╛█Б█М█Т  \u200bтАУтАФтАжтВмтХСтХЫтХитЦИтЦб \ufeff" 


рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред


рдЕрдп-рдЖрд╣-рдЖрд╣, рдХреНрдпрд╛ рдЕрдкрдорд╛рди! рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рдпрдореЛрдВ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВ (рдХрднреА-рдХрднреА рд▓реЛрдЧ рдЗрди рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ рд╢реЛрд░ рдХрд░рдХреЗ рдЦреБрдж рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рддреЗ рд╣реИрдВ)ред рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдкрдиреЗ рдкреНрд░рддреАрдХ рдорд╛рдорд▓реЗ рдХреЛ рдХрдЪрд░реЗ рд╕реЗ рд╕рд╛рдл рдХрд░реЗрдВрдЧреЗ


 str = lowercase(str) #    #      str = replace(str, r"|" => s"" ); #   str = replace(str, r" | | " => " "); #     str = replace(str, r"[!-]|[╤Р-\u2714]|\ufeff" => "") alstr = str |> unique |> sort |> prod #alstr = prod(sort(unique(str)) ) #  # "\n " 

рдЬреИрд╕рд╛ рдХрд┐ rssdev10 рджреНрд╡рд╛рд░рд╛ рд╕рд▓рд╛рд╣ рджреА рдЧрдИ рд╣реИ , рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдЕрдзрд┐рдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╡рд░реНрдг рд╕реЗрдЯ рдорд┐рд▓рд╛ред рдЖрдЬ рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд░рд╣рд╕реНрдпреЛрджреНрдШрд╛рдЯрди рдпрд╣ рд╣реИ рдХрд┐, рдорд╢реАрди рдХреЛрдб рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдХрдо рд╕реЗ рдХрдо рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рди рд╣реИрдВ - рдпрд╣ рдбреЗрдЯрд╛ рд╢рд┐рдХрд╛рд░реА рдХреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдард┐рди рд╣реИред



рдЕрдм рдЖрдк рдлреНрд▓рдХреНрд╕ рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рдж рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЙрдЯреНрд╕ рд╡реИрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:


рдлреНрд▓рдХреНрд╕ рдЦреЗрд▓рдиреЗ рдореЗрдВ рдЖрддрд╛ рд╣реИ
 using Flux using Flux: onehot, chunk, batchseq, throttle, crossentropy using StatsBase: wsample using Base.Iterators: partition texta = collect(str) println(length(texta)) # 7086899 alphabet = [unique(texta)..., '_'] texta = map(ch -> onehot(ch, alphabet), texta) stopa = onehot('_', alphabet) println(length(alphabet)) # 34 N = length(alphabet) seqlen = 128 nbatch = 128 Xs = collect(partition(batchseq(chunk(texta, nbatch), stopa), seqlen)) Ys = collect(partition(batchseq(chunk(texta[2:end], nbatch), stopa), seqlen)); 

рд╣рдо рдореЙрдбрд▓ рдХреЛ LSTM рдкрд░рддреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рд╕реЗ, рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрди рдФрд░ рд╕реЙрдлреНрдЯрдореИрдХреНрд╕, рд╕рд╛рде рд╣реА рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ, рдФрд░ рдиреБрдХрд╕рд╛рди рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЕрдиреБрдХреВрд▓рдХ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:


рдХреЛрдб
 m = Chain( LSTM(N, 256), LSTM(256, 128), Dense(128, N), softmax) # m = gpu(m) function loss(xs, ys) l = sum(crossentropy.(m.(gpu.(xs)), gpu.(ys))) Flux.truncate!(m) return l end opt = ADAM(0.01) tx, ty = (Xs[5], Ys[5]) evalcb = () -> @show loss(tx, ty) 

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


 @time Flux.train!(loss, params(m), zip(Xs, Ys), opt, cb = throttle(evalcb, 30)) 

рдПрдХ рдирдореВрдирд╛ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЕрдкрдиреЗ рдордЬрджреВрд░реЛрдВ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


Barmaglot рдЬрдирд░реЗрдЯрд░
 function sample(m, alphabet, len) #m = cpu(m) Flux.reset!(m) buf = IOBuffer() c = rand(alphabet) for i = 1:len write(buf, c) c = wsample(alphabet, m( onehot(c, alphabet) ).data ) end return String(take!(buf)) end sample(m, alphabet, 1000) |> println 

                                                                                 

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



рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рд╡рдЬрди рдбрд┐рд╕реНрдХ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ


 weights = Tracker.data.(params(model)); using BSON: @save # https://github.com/JuliaIO/BSON.jl @save "Pies_34x128.bson" weights #     : using BSON: @load @load "mymodel1.bson" weights Flux.loadparams!(m, weights) 

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



         !     . ? ,    ,                ,   ,        ,  ,   ,     ,                      .           , ,      ,         ,       .            ,         . ? , ,  ,   ,       ,  ,    

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЬреВрд▓рд┐рдпрд╛ рднрд╛рд╖рд╛ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд┐рдХрд▓рддрд╛ рд╣реИ:


рдкреВрд░реНрд╡ рдпрдВрддреНрд░рдгрд╛
  # optional _ = Expr(expMreadcos, Expr(:meta, :stderr), :n, :default, ex, context[oeex, ex.args[1] -typeinfo + Int]) isprint((v), GotoNode(e)) end for (fname, getfield) do t print(io, ":") new() end end if option quote bounds end end @sprintf("Other prompt", ex.field, UV_REQ) == pop!(bb_start_off+1, i) write(io, take!(builder_path)) end Base.:Table(io::IOContext) = write(io, position(s)) function const_rerror(pre::GlobalRef) ret = proty(d) if !rel_key && length(blk) return htstarted_keys(terminal(u, p)) end write(io, ("\\\\" => "\n\n\n\n") ? "<username>\n>\n" p = empty(dir+stdout) n = MD(count_ok_new_data(L) : n_power while push!(blks[$ur], altbuf) end function prec_uninitual(p, keep='\n') print(io, "1 2") else p = blk + p0 out = Mair(1) elseif occursin(".cmd", keep=ks) != 0 res = write(io, c) end while take!(word) 

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


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


рдЗрд╕ рдкрд░, рдореИрдВ рдЕрдкрдиреА рдЫреБрдЯреНрдЯреА рд▓реЗ рд▓реВрдВред рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛, рдЧреАрдереВрдм рдкрд░ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ, рдЖрдВрдЦреЛрдВ рдореЗрдВ рдЖрдЧ, рдмрддрдЦ рдореЗрдВ рдПрдХ рдЕрдВрдбрд╛ рдФрд░ рд╕рднреА рдХреЛ рд╢реБрдн рд░рд╛рддреНрд░рд┐!

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


All Articles