рдкрд╛рдпрд╕ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд░рд╕ рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдХреА рддреИрдирд╛рддреА

рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд╛рдареНрдпрдХреНрд░рдо "рдкрд╛рдпрдерди рдореЗрдВ рд╡реЗрдм-рдбреЗрд╡рд▓рдкрд░" рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред




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

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

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

рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:


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



рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред

рджреГрд╖реНрдЯрд┐рдХреЛрдг


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

рдлреНрд▓рд╛рд╕реНрдХ рдкрд░ рдореВрд▓ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ


рдкрд╛рдпрдерди рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рдлреНрд▓рд╛рд╕реНрдХ (http://flask.pocoo.org/) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "<h1>Not Much Going On Here</h1>" app.run(host='0.0.0.0', port=50000) 

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

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╡реЗрд╢ рдлрд╛рд░реНрдо


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

  1. RNN рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдЕрдиреБрдХреНрд░рдо рджрд░реНрдЬ рдХрд░реЗрдВ рдпрд╛ рдЗрд╕реЗ рдЕрдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред
  2. RNN рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЗ "рд╡рд┐рд╡рд┐рдзрддрд╛" рдХрд╛ рдЪрдпрдиред
  3. RNN рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рд╢рдмреНрдж рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЪреБрдирд╛рд╡ред

рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рд░реВрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо wtforms рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ред рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдХреЛрдб рдиреАрдЪреЗ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

 from wtforms import (Form, TextField, validators, SubmitField, DecimalField, IntegerField) class ReusableForm(Form): """User entry form for entering specifics for generation""" # Starting seed seed = TextField("Enter a seed string or 'random':", validators=[ validators.InputRequired()]) # Diversity of predictions diversity = DecimalField('Enter diversity:', default=0.8, validators=[validators.InputRequired(), validators.NumberRange(min=0.5, max=5.0, message='Diversity must be between 0.5 and 5.')]) # Number of words words = IntegerField('Enter number of words to generate:', default=50, validators=[validators.InputRequired(), validators.NumberRange(min=10, max=100, message='Number of words must be between 10 and 100')]) # Submit button submit = SubmitField("Enter") 

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдлреЙрд░реНрдо рдмрдирд╛рдпрд╛ рд╣реИ ( main.css рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде):



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


рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐

рд╣рдо Flask рдкрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдлреЙрд░реНрдо рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВред

рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕


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

 from flask import render_template # Home page @app.route("/", methods=['GET', 'POST']) def home(): """Home page of app with form""" # Create form form = ReusableForm(request.form) # Send template information to index.html return render_template('index.html', form=form) 

рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдлреЙрд░реНрдо рд╕реЗ рдЗрдирдкреБрдЯ рдХреЗ index.html рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рдЯреЗрдореНрдкрд▓реЗрдЯ рдПрдХ рдкреВрд░реНрдг HTML рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо {{variable}} рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдЪрд░реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

 <!DOCTYPE html> <html> <head> <title>RNN Patent Writing</title> <link rel="stylesheet" href="/static/css/main.css"> <link rel="shortcut icon" href="/static/images/lstm.ico"> </head> <body> <div class="container"> <h1> <center>Writing Novel Patent Abstracts with Recurrent Neural Networks</center> </h1> {% block content %} {% for message in form.seed.errors %} <div class="flash">{{ message }}</div> {% endfor %} {% for message in form.diversity.errors %} <div class="flash">{{ message }}</div> {% endfor %} {% for message in form.words.errors %} <div class="flash">{{ message }}</div> {% endfor %} <form method=post> {{ form.seed.label }} {{ form.seed }} {{ form.diversity.label }} {{ form.diversity }} {{ form.words.label }} {{ form.words }} {{ form.submit }} </form> {% endblock %} </div> </body> </html> 

рдЬрдм рдлреЙрд░реНрдо рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ (рдЗрдирдкреБрдЯ рдЬрд┐рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдлреНрд▓реИрд╢ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлреЙрд░реНрдо рдКрдкрд░ рдХреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ рдФрд░ submit ( POST рдЕрдиреБрд░реЛрдз) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╣реА рд╣реИ, рддреЛ рд╣рдо рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд RNN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпрд╛рдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ home() рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ home() ред

 from flask import request # User defined utility functions from utils import generate_random_start, generate_from_seed # Home page @app.route("/", methods=['GET', 'POST']) def home(): """Home page of app with form""" # Create form form = ReusableForm(request.form) # On form entry and all conditions met if request.method == 'POST' and form.validate(): # Extract information seed = request.form['seed'] diversity = float(request.form['diversity']) words = int(request.form['words']) # Generate a random sequence if seed == 'random': return render_template('random.html', input=generate_random_start(model=model, graph=graph, new_words=words, diversity=diversity)) # Generate starting from a seed sequence else: return render_template('seeded.html', input=generate_from_seed(model=model, graph=graph, seed=seed, new_words=words, diversity=diversity)) # Send template information to index.html return render_template('index.html', form=form) 

рдЕрдм, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ submit рдФрд░ рджрд░реНрдЬ рдХреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╣реА рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрдирдкреБрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрдирдкреБрдЯ рдХреЛ рдпрд╛ рддреЛ generate_random_start рдпрд╛ generate_from_seed рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ diversity рдкреИрд░рд╛рдореАрдЯрд░ num_words рд╕рд╛рде рдПрдХ рдирдпрд╛ рдкреЗрдЯреЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд░рд╕ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ num_words ред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ, рдмрджрд▓реЗ рдореЗрдВ, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ random.html рдпрд╛ seeded.html рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╡реЗрдм рдкреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреЗрд░ рдкреВрд░реНрд╡ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпрд╛рдВ рдХрд░рдирд╛


рдкреИрд░рд╛рдореАрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХреЗрд░ рдореЙрдбрд▓ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ:

 from keras.models import load_model import tensorflow as tf def load_keras_model(): """Load in the pre-trained model""" global model model = load_model('../models/train-embeddings-rnn.h5') # Required for model to work global graph graph = tf.get_default_graph() load_keras_model() 

(рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ рдЬреЛ tf.get_default_graph() рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ)
рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреЛ рдЙрдкрдпреЛрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдирд╣реАрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ (рдХреЛрдб рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рдорд┐рд▓реЗрдЧрд╛), рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХреЗрд░рд╛рд╕ рдореЙрдбрд▓ рдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ - рдкреЗрдЯреЗрдВрдЯ рдПрдиреЛрдЯреЗрд╢рдиред

рдпреЗ рджреЛрдиреЛрдВ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкрд╛рдпрдерди рдореЗрдВ HTML рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд░реЗрдЦрд╛ рджреВрд╕рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, random.html рд░рд┐рдЯрд░реНрди рд╕реНрд╡рд░реВрдкрд┐рдд HTML рдЬреЛ random.html рднреЗрдЬреА random.html :

 <!DOCTYPE html> <html> <header> <title>Random Starting Abstract </title> <link rel="stylesheet" href="/static/css/main.css"> <link rel="shortcut icon" href="/static/images/lstm.ico"> <ul> <li><a href="/">Home</a></li> </ul> </header> <body> <div class="container"> {% block content %} {{input|safe}} {% endblock %} </div> </body> 

рдпрд╣рд╛рдБ рд╣рдо рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╛рд░реВрдкрд┐рдд HTML рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Jinja рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдкрд╛рдпрдерди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА HTML рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реИ, рд╣рдо рд╕рднреА рдХреЛ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рд╣реЛрдЧрд╛ {{input|safe}} (рдЬрд╣рд╛рдВ input рдкрд╛рдпрдерди рд╡реЗрд░рд┐рдПрдмрд▓ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдлрд┐рд░ main.css рд╣рдо рдЗрд╕ рдкреЗрдЬ рдкрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдиреНрдп HTML рдкреЗрдЬ рднреАред

рдХрд╛рдо рдХрд╛ рдирддреАрдЬрд╛


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


рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЗрдирдкреБрдЯ рдЕрдиреБрдХреНрд░рдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

generate_from_seed рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрдХреНрд░рдо рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдЙрдЯрдкреБрдЯред

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

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ


рдЕрдкрдиреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ рдЬрд╣рд╛рдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╣реИ рдФрд░ run_keras_server.py рджрд░реНрдЬ run_keras_server.py ред рдЖрд╡реЗрджрди localhost:10000 рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред

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

рдЕрдЧрд▓реЗ рдЪрд░рдг


рдЖрдкрдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдорд┐рддреНрд░реЛрдВ рдФрд░ рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЖрдкрдХреЗ рд╣реЛрдо рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╕рднреА рдХреЛ рдЦреЛрд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреЗрддрд╛ред рдмрд╛рдж рдореЗрдВ рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ AWS EC2 рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рджреБрдирд┐рдпрд╛ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╢реИрд▓рд┐рдпреЛрдВ ( main.css рдореЗрдВ ) рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╣рд╛рди рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рддрдм рддрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЖрд░рдВрдн рдХрд░реЗрдВред



рдирд┐рд╖реНрдХрд░реНрд╖


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

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

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


All Articles