рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрд▓рдбреАрдП рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб

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


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


"рдЕрдиреБрдХрд░рдгреАрдп" рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдбреЗрдЯрд╛ рд╣рдореЗрд╢рд╛ рдХреНрд░рдо рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдЬрдЧрд╣ рдкрд░ рдвреЗрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЙрддреНрдкрд╛рджрди рдореЙрдбрд▓ рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджреЗрддреЗ рд╕рдордп, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╕реАрдзреЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рдкрд░реАрдд рд╣реЛрддрд╛ рд╣реИ:


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

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


рд╡рд┐рд╖рдп рдореЙрдбрд▓рд┐рдВрдЧ рдФрд░ рдПрд▓рдбреАрдПред


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


рдЧреНрд░рдВрдереЛрдВ рдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдПрд▓рдбреАрдП рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдкрд╛рда рдирд┐рдХрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд╢рд░реАрд░ рдХреЛ рдПрдХ рд╢рдмреНрдж-рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред


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


рдПрд▓рдбреАрдП рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рджрд┐рдП рдЧрдП рдЯрд░реНрдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рд╡рд┐рд╖рдпреЛрдВ рдХреА рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЯреА рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рддрд░рдг:


  1. рдЧреНрд░рдВрдереЛрдВ рдореЗрдВ рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рд╡рд┐рддрд░рдгред (рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЖрдХрд╛рд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдПрди рдЯреА)
  2. рд╡рд┐рд╖рдп рджреНрд╡рд╛рд░рд╛ рд╢рдмреНрджреЛрдВ рдХрд╛ рд╡рд┐рддрд░рдгред (рдЖрдХрд╛рд░ рдореИрдЯреНрд░рд┐рдХреНрд╕) T рдЧреБрдирд╛W)

рдЗрди рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдп рдХреНрд░рдорд╢рдГ, рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд┐рд╖рдп рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ (рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд┐рд╖рдп рдХрд╛ рдЕрдиреБрдкрд╛рдд, рдпрджрд┐ рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рдорд┐рд╢реНрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреЗ рд╣реИрдВ) рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП 'рдЧреНрд░рдВрдереЛрдВ рдореЗрдВ рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рд╡рд┐рддрд░рдг'ред


рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП 'рд╡рд┐рд╖рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╢рдмреНрджреЛрдВ рдХрд╛ рд╡рд┐рддрд░рдг', рдорд╛рди рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде рдкрд╛рда рдореЗрдВ рд╢рдмреНрдж рдЬреЗ рд╕реЗ рдорд┐рд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЧреБрдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ, рд╣рдо рдЗрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЧреБрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╢рдмреНрдж рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред


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


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



рд╣рдореЗрдВ рд╡рд╛рдЗрд▓реНрдб рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИ


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


рд╣рдо рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд░реЗрдВрдЧреЗ:


  1. рд╣рдо рдХреБрдЫ рд╡реАрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред
  2. рд╣рдореЗрдВ рдЙрдирдХреЗ рд╕рднреА рджреЛрд╕реНрддреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓реА рд╣реИред
  3. рдкреНрд░рддреНрдпреЗрдХ рдорд┐рддреНрд░ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрд╕рдХреЗ рд╕рднреА рд╕рдореБрджрд╛рдп рдХреЛ рд▓реЗрддреЗ рд╣реИрдВред
  4. рдкреНрд░рддреНрдпреЗрдХ рдорд┐рддреНрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ n (n = 100) рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкреЛрд╕реНрдЯ рдХреЛ рдкрдВрдк рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рдореБрджрд╛рдп рдкрд╛рда рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдЙрдкрдХрд░рдг рдФрд░ рд▓реЗрдЦ


рдкрджреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо VKontakte API рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП vk рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред VKontakte API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрддреЗ рд╕рдордп рд╕рдмрд╕реЗ рдЬрдЯрд┐рд▓ рдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╣реИ, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдХреЛрдб рдЬреЛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдЦрд┐рдд рд╣реИ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рд╣реИ, vk рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдореЙрдбреНрдпреВрд▓ - vkauth рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред


VKontakte API рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдФрд░ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдВрдХ:



рдПрдХ рдХреЛрдб рд▓рд┐рдЦрдирд╛


рдФрд░ рдЗрд╕рд▓рд┐рдП, vkauth рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ:


#authorization of app using modules imported. app_id = '6203169' perms = ['photos','friends','groups'] API_ver = '5.68' Auth = VKAuth(perms, app_id, API_ver) Auth.auth() token = Auth.get_token() user_id = Auth.get_user_id() #starting session session = vk.Session(access_token=token) api = vk.API(session) 

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


 def get_friends_ids(api, user_id): ''' For a given API object and user_id returns a list of all his friends ids. ''' friends = api.friends.get(user_id=user_id, v = '5.68') friends_ids = friends['items'] return friends_ids def get_user_groups(api, user_id, moder=True, only_open=True): ''' For a given API user_id returns list of all groups he subscribed to. Flag model to get only those groups where user is a moderator or an admin) Flag only_open to get only public(open) groups. ''' kwargs = {'user_id' : user_id, 'v' : '5.68' } if moder == True: kwargs['filter'] = 'moder' if only_open == True: kwargs['extended'] = 1 kwargs['fields'] = ['is_closed'] groups = api.groups.get(**kwargs) groups_refined = [] for group in groups['items']: cond_check = (only_open and group['is_closed'] == 0) or not only_open if cond_check: refined = {} refined['id'] = group['id'] * (-1) refined['name'] = group['name'] groups_refined.append(refined) return groups_refined def get_n_posts_text(api, group_id, n_posts=50): ''' For a given api and group_id returns first n_posts concatenated as one text. ''' wall_contents = api.wall.get(owner_id = group_id, count=n_posts, v = '5.68') wall_contents = wall_contents['items'] text = '' for post in wall_contents: text += post['text'] + ' ' return text 

рдЕрдВрддрд┐рдо рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


 #id of user whose friends you gonna get, like: https://vk.com/id111111111 user_id = 111111111 friends_ids = vt.get_friends_ids(api, user_id) #collecting all groups groups = [] for i,friend in tqdm(enumerate(friends_ids)): if i % 3 == 0: sleep(1) friend_groups = vt.get_user_groups(api, friend, moder=False) groups += friend_groups #converting groups to dataFrame groups_df = pd.DataFrame(groups) groups_df.drop_duplicates(inplace=True) #reading content(content == first 100 posts) for i,group in tqdm(groups_df.iterrows()): name = group['name'] group_id = group['id'] #Different kinds of fails occures during scrapping #For examples there are names of groups with slashes #Like: 'The Kaaats / Indie-rock' try: content = vt.get_n_posts_text(api, group_id, n_posts=100) dst_path = join(data_path, name + '.txt') with open(dst_path, 'w+t') as f: f.write(content) except Exception as e: print('Error occured on group:', name) print(e) continue #need it because of requests limitaion in VK API. if i % 3 == 0: sleep(1) 

рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ


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


  1. рдХрднреА-рдХрднреА, рдХреБрдЫ рд╕рдореБрджрд╛рдпреЛрдВ рдХреА рдЧреЛрдкрдиреАрдпрддрд╛ рдХреЗ рдХрд╛рд░рдг, рдЖрдкрдХреЛ рдПрдХреНрд╕реЗрд╕ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреА, рдХрднреА-рдХрднреА рдЕрдиреНрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╕рд╣реА рдЬрдЧрд╣ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдкреНрд░рдпрд╛рд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдВрдЧреАред
  2. рд╡реАрдХреЗ рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕реАрдорд╛ рд╣реИ ред

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


  1. рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ: рд╕реНрдЯрд┐рдХ рд╕реНрд▓реАрдк (рдХреБрдЫ) рд╣рд░ 3 рдЕрдиреБрд░реЛрдзред рдпрд╣ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдХрд╛рдлреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред (рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  2. рд▓рд╛рдВрдЧ рдкреЛрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рд╕рдордЭреЗрдВ https://vk.com/dev/use_longpoll

рдЗрд╕ рдкрддреНрд░ рдореЗрдВ, рдПрдХ рд╕рд░рд▓ рдФрд░ рдзреАрдореА рд╡рд┐рдзрд┐ рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ рд╕рдВрднрд╡рддрдГ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдХрдо рдпрд╛ рдХрдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реВрдХреНрд╖реНрдо рд▓реЗрдЦ рд▓рд┐рдЦреВрдВрдЧрд╛ред


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


рдмреАрдЬ рдХреЗ рд╕рд╛рде "рдХреБрдЫ" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рд▓реЗ ~ 150 рджреЛрд╕реНрдд, рд╡реЗ 4,679 рдЧреНрд░рдВрдереЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ - рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡реАрдХреЗ рд╕рдореБрджрд╛рдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдЧреНрд░рдВрде рдЖрдХрд╛рд░ рдореЗрдВ рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ - рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред


рдореБрдЦреНрдп рд╢рд░реАрд░


рдЫрд╡рд┐


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


CountVectorizer


рдПрд▓рдбреАрдП рдХреЛ рдкрдврд╝рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдПрдХ рдЯрд░реНрдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдСрдкрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


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

рд╕реНрдХреЗрд▓реЗрд░ рдореЗрдВ рдпреЗ рд╕рднреА рдХрд╛рд░реНрдп рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрдХрд╛рдИ - sklearn.feature_extraction.text.CountVectorizer рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред


рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рд▓рд┐рдВрдХ


рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ:


 count_vect = CountVectorizer(input='filename', stop_words=stopwords, vocabulary=voc) dataset = count_vect.fit_transform(train_names) 

рдЭреАрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг


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


рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рд▓рд┐рдВрдХ


рдЖрдкрдХреЛ рдПрд▓рдбреАрдП рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


 #training LDA lda = LDA(n_components = 60, max_iter=30, n_jobs=6, learning_method='batch', verbose=1) lda.fit(dataset) 

preprocessing


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


рд╣рдорд╛рд░реЗ рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЖрдХрд╛рд░ 769801 рд╣реЛрдЧрд╛ред рднрд▓реЗ рд╣реА рд╣рдо рдпрд╣ рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢рдмреНрдж рд╕реВрдЪрдирд╛рддреНрдордХ рд╣реИрдВ, рдлрд┐рд░ рднреА рд╣рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдПрд▓рдбреАрдП рдорд┐рд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдореЗрдВ 'рдХрд░реНрд╕ рдСрдл рдбрд╛рдЗрдореЗрдВрд╢рдиреНрд╕' рдЬреИрд╕рд╛ рдХреБрдЫ рдорд┐рд▓реЗрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рд╣рдо рд╕рд┐рд░реНрдл рд╕рднреА RAM рдХреЛ рд░реЛрдХреЗрдВрдЧреЗред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢рдмреНрдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХрд░реВрдк рдирд╣реАрдВ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣реИрдВ:


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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реАрдХреЗ рдореЗрдВ рдХрдИ рд╕рдореВрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реИрдВ - рд╡рд╣рд╛рдВ рд▓рдЧрднрдЧ рдХреЛрдИ рдЯреЗрдХреНрд╕реНрдЯ рдкреЛрд╕реНрдЯ рдирд╣реАрдВ рд╣реИрдВ - рдЙрдирдХреЗ рдЕрдиреБрд░реВрдк рдЧреНрд░рдВрде рдкрддрд┐рдд рд╣реИрдВ, рдерд░реНрдорд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рд╡реЗ рд╣рдореЗрдВ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╢реВрдиреНрдп рд▓рд╛рдЗрдиреЗрдВ рджреЗрдВрдЧреЗред


рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЪрд▓реЛ рдЗрд╕реЗ рд╕рднреА рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ!
рд╣рдо рд╕рднреА рдЧреНрд░рдВрдереЛрдВ рдХреЛ рдЯреЛрдХрди рджреЗрддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рдЧреНрд░рдВрдереЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:
рдЫрд╡рд┐


рд╣рдо рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ 100 рд╢рдмреНрджреЛрдВ рд╕реЗ рдЫреЛрдЯрд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЙрдирдореЗрдВ 525 рд╣реИрдВ)


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


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


  • рд╕рд░реНрд╡рдирд╛рдо рдФрд░ рдкреНрд░рд╕реНрддрд╛рд╡ред
  • рд▓реЗрдЦ - рдП, рдПред
  • рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрдж: 'рд╣реЛрдирд╛', 'рдЕрдЪреНрдЫрд╛', 'рд╢рд╛рдпрдж', рдЖрджрд┐ред

Nltk рдореЙрдбреНрдпреВрд▓ рдиреЗ рд░реВрд╕реА рдФрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╕реНрдЯреЙрдкрд╡рд░реНрдбреНрд╕ рдХреА рд╕реВрдЪреА рдмрдирд╛рдИ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдмрд▓реНрдХрд┐ рдХрдордЬреЛрд░ рд╣реИрдВред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рдЖрдк рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЙрдкрд╡рд╛рд░реНрдб рдХреА рд╕реВрдЪреА рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ nltk рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рд╣рдо рдХрд░реЗрдВрдЧреЗред рдпрд╣рд╛рдВ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдЯреЙрдк рдкрд╛рд╕рд╡рд░реНрдб рд▓реЗрдВ:



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


рдЕрдкрдиреЗ рдЖрдк рд╕реЗ, рд╕реНрдЯреЙрдкрд╡рд╛рд░реНрдб рд╣рдЯрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рдЙрдВрдЯрд╡реЗрдХреНрдЯрд░рд╛рдЗрдЬрд╝рд░ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ - рд╣рдореЗрдВ рдмрд╕ рдЙрдирдХреА рдПрдХ рд╕реВрдЪреА рдЪрд╛рд╣рд┐рдПред


рдХреНрдпрд╛ рд╣рдордиреЗ рдХрд╛рдлреА рдХреБрдЫ рдХрд┐рдпрд╛ рд╣реИ?


рдЫрд╡рд┐


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


idf(t,D)= log frac|D||d D:t d|$рдореЗ


рдЬрд╣рд╛рдБ
t рд╢рдмреНрджрдХреЛрд╢ рд╕реЗ рдПрдХ рд╢рдмреНрдж рд╣реИред
рдбреА - рдХреЗрд╕ (рдХрдИ рдЧреНрд░рдВрде)
d рд╢рд░реАрд░ рдХреЗ рдЧреНрд░рдВрдереЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЗ рдЖрдИрдбреАрдПрдл рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдЖрдИрдбреАрдПрдл (рдмрд╣реБрдд рджреБрд░реНрд▓рдн) рдФрд░ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ (рд╡реНрдпрд╛рдкрдХ рд╢рдмреНрджреЛрдВ) рдХреЗ рд╕рд╛рде рд╢рдмреНрджреЛрдВ рдХреЛ рдХрд╛рдЯ рджреЗрддреЗ рд╣реИрдВред


 #'training' (tf-)idf vectorizer. tf_idf = TfidfVectorizer(input='filename', stop_words=stopwords, smooth_idf=False ) tf_idf.fit(train_names) #getting idfs idfs = tf_idf.idf_ #sorting out too rare and too common words lower_thresh = 3. upper_thresh = 6. not_often = idfs > lower_thresh not_rare = idfs < upper_thresh mask = not_often * not_rare good_words = np.array(tf_idf.get_feature_names())[mask] #deleting punctuation as well. cleaned = [] for word in good_words: word = re.sub("^(\d+\w*$|_+)", "", word) if len(word) == 0: continue cleaned.append(word) 

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


 #Stemming m = Mystem() stemmed = set() voc_len = len(cleaned) for i in tqdm(range(voc_len)): word = cleaned.pop() stemmed_word = m.lemmatize(word)[0] stemmed.add(stemmed_word) stemmed = list(stemmed) print('After stemming: %d'%(len(stemmed))) 

рдЙрдкрд░реЛрдХреНрдд рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЖрдХрд╛рд░ 769801 рд╕реЗ рдШрдЯ рдЧрдпрд╛
13611 рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде, рдЖрдк рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдПрд▓рдбреАрдП рдореЙрдбрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдкрд░реАрдХреНрд╖рдг, рдЖрд╡реЗрджрди рдФрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдПрд▓рдбреАрдП


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


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


  1. рд╣рдо рдПрд▓рдбреАрдП рд╕реЗ рдЗрд╕ рдкрд╛рда рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рд╡рд┐рддрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
  2. рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╖рдпреЛрдВ рдХреЗ n (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, n = 2) рдЪреБрдиреЗрдВред
  3. рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП, m (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП m = 3) рд╕рдмрд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╢рдмреНрдж рдЪреБрдиреЗрдВред
  4. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рджрд┐рдП рдЧрдП рдкрд╛рда рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реБрдП n * m рд╢рдмреНрджреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред

рд╣рдо рдПрдХ рд╕рд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреНрд▓рд╛рд╕ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдХреАрд╡рд░реНрдб рдмрдирд╛рдиреЗ рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛:


 #Let\`s do simple interface class class TopicModeler(object): ''' Inteface object for CountVectorizer + LDA simple usage. ''' def __init__(self, count_vect, lda): ''' Args: count_vect - CountVectorizer object from sklearn. lda - LDA object from sklearn. ''' self.lda = lda self.count_vect = count_vect self.count_vect.input = 'content' def __call__(self, text): ''' Gives topics distribution for a given text Args: text - raw text via python string. returns: numpy array - topics distribution for a given text. ''' vectorized = self.count_vect.transform([text]) lda_topics = self.lda.transform(vectorized) return lda_topics def get_keywords(self, text, n_topics=3, n_keywords=5): ''' For a given text gives n top keywords for each of m top texts topics. Args: text - raw text via python string. n_topics - int how many top topics to use. n_keywords - how many top words of each topic to return. returns: list - of m*n keywords for a given text. ''' lda_topics = self(text) lda_topics = np.squeeze(lda_topics, axis=0) n_topics_indices = lda_topics.argsort()[-n_topics:][::-1] top_topics_words_dists = [] for i in n_topics_indices: top_topics_words_dists.append(self.lda.components_[i]) shape=(n_keywords*n_topics, self.lda.components_.shape[1]) keywords = np.zeros(shape=shape) for i,topic in enumerate(top_topics_words_dists): n_keywords_indices = topic.argsort()[-n_keywords:][::-1] for k,j in enumerate(n_keywords_indices): keywords[i * n_keywords + k, j] = 1 keywords = self.count_vect.inverse_transform(keywords) keywords = [keyword[0] for keyword in keywords] return keywords 

рд╣рдо рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрдкрдиреА рдкрджреНрдзрддрд┐ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:
рд╕рдореБрджрд╛рдп : рдЯреНрд░реИрд╡рд▓ рдПрдЬреЗрдВрд╕реА "рдХрд▓рд░реНрд╕ рдСрдлрд╝ рдж рд╡рд░реНрд▓реНрдб"
рдХреАрд╡рд░реНрдб: ['рдлреЛрдЯреЛ', 'рд╕рд╛рдорд╛рдЬрд┐рдХ', 'рдпрд╛рддреНрд░рд╛', 'рд╕рдореБрджрд╛рдп', 'рдпрд╛рддреНрд░рд╛', 'рдпреВрд░реЛ', 'рдЖрд╡рд╛рд╕', 'рдХреАрдордд', 'рдкреЛрд▓реИрдВрдб', 'рдкреНрд░рд╕реНрдерд╛рди']
рд╕рдореБрджрд╛рдп: рдЦрд╛рджреНрдп Gifs
рдХреАрд╡рд░реНрдб: ['рдордХреНрдЦрди', 'рд╕реЗрдВрдЯ', 'рдирдордХ', 'рдкреАрд╕реА', 'рдЖрдЯрд╛', 'рдХреБрдХрд┐рдВрдЧ', 'рдкреНрдпрд╛рдЬ', 'рдХрд╛рд▓реА рдорд┐рд░реНрдЪ', 'рдЪреАрдиреА', 'рдЬреАрдЖрд░']


рдКрдкрд░ рджрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо 'рдЪреЗрд░реА рдкрд┐рдХ' рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рджрд┐рдЦрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ рдкрд╣рд▓реЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдореЙрдбрд▓ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдП рдЧрдП рдкрд╣рд▓реЗ рдПрд▓рдбреАрдП рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдХреАрд╡рд░реНрдбреНрд╕ рдХреЗ рдмреАрдЪ рдХрд╛рдлреА рдЦрд░рд╛рдм рдкрд░рд┐рдгрд╛рдо рдЖрдПред


  1. рд╡реЗрдм рдкрддреЗ рдХреЗ рд╕рдордЧреНрд░ рдШрдЯрдХ: www, http, ru, com ...
  2. рдЖрдо рд╢рдмреНрджред
  3. рдЗрдХрд╛рдЗрдпреЛрдВ: рд╕реЗрдореА, рдореАрдЯрд░, рдХрд┐рдореА ...

рдореЙрдбрд▓ рдХреА рдЯреНрдпреВрдирд┐рдВрдЧ (рдЯреНрдпреВрдирд┐рдВрдЧ) рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:


  1. рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП, n (n = 5) рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рдмреНрджреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
  2. рд╣рдо рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдорд╛рдирддреЗ рд╣реИрдВред
  3. рд╣рдо рд╕рдмрд╕реЗ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ 5-10% рдХреАрд╡рд░реНрдб рд▓рд╛рддреЗ рд╣реИрдВред

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


рдХрд╣реАрдВ рди рдХрд╣реАрдВ 2-3 рдкреАрдврд╝реА рдХреЗ рдореЙрдбрд▓ рдореЗрдВ, рд╕реНрдЯреЙрдкрд╡рд░реНрдбреНрд╕ рдХреЗ рдЪрдпрди рдХреЗ рд╕рдорд╛рди рддрд░реАрдХреЗ рдХреЗ рд╕рд╛рде, рд╡реНрдпрд╛рдкрдХ рд╢реАрд░реНрд╖-рд╢рдмреНрдж рд╡рд┐рддрд░рдг рдХреЗ рд╢реАрд░реНрд╖ 5% рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:
[[рдХреЛрдИ тАЩ, 'рдкреВрд░реА рддрд░рд╣тАЩ,' рд╕рд╣реА тАЩ,, рдЖрд╕рд╛рдитАЩ,, рдЕрдЧрд▓рд╛ тАЩ, 'рдЗрдВрдЯрд░рдиреЗрдЯтАЩ,' рдЫреЛрдЯрд╛ тАЩ, difficult рд░рд╛рд╕реНрддрд╛тАЩ, way рдореБрд╢реНрдХрд┐рд▓ тАЩ, 'рдореВрдбтАЩ, much рдЗрддрдирд╛ тАЩ,' рд╕реЗрдЯтАЩ, тАЩ рд╡рд┐рдХрд▓реНрдк ',' рдирд╛рдо ',' рднрд╛рд╖рдг ',' рдХрд╛рд░реНрдпрдХреНрд░рдо ',' рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ ',' рд╕рдВрдЧреАрдд ',' рд▓рдХреНрд╖реНрдп ',' рдлрд┐рд▓реНрдо ',' рдХреАрдордд ',' рдЦреЗрд▓ ',' рдкреНрд░рдгрд╛рд▓реА ',' рдЦреЗрд▓ ',' рдХрдВрдкрдиреА ' , 'рдЕрдЪреНрдЫрд╛']


рдЕрдзрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ


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


рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:


 term_doc_matrix = count_vect.transform(names) embeddings = lda.transform(term_doc_matrix) kmeans = KMeans(n_clusters=30) clust_labels = kmeans.fit_predict(embeddings) clust_centers = kmeans.cluster_centers_ embeddings_to_tsne = np.concatenate((embeddings,clust_centers), axis=0) tSNE = TSNE(n_components=2, perplexity=15) tsne_embeddings = tSNE.fit_transform(embeddings_to_tsne) tsne_embeddings, centroids_embeddings = np.split(tsne_embeddings, [len(clust_labels)], axis=0) 

рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рд╣рдореЗрдВ рдирд┐рдореНрди рдЫрд╡рд┐ рдорд┐рд▓рддреА рд╣реИ:
рдЫрд╡рд┐


рдХреНрд░реЙрд╕ рдЧреБрдЪреНрдЫреЛрдВ рдХреЗ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг (рд╕реЗрдиреНрд░реЙрдЗрдбреНрд╕) рдХреЗ рдХреЗрдВрджреНрд░ рд╣реИрдВред


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


рдмрд╛рдХреА рд╕рдм, рдЖрдкрдХреЗ рдКрдкрд░ред


рд╕рднреА рдХреЛрдб рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ: https://gitlab.com/Mozes/VK_LDA

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


All Articles