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



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

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

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░


рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди CNN рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг [1] рдФрд░ [2] рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рджреГрд╖реНрдЯрд┐рдХреЛрдг [1], рдЬреЛ рдХрдВрдкреНрдпреВрдЯрд░ рднрд╛рд╖рд╛ рд╡рд┐рдЬреНрдЮрд╛рди рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╡рд╛рд░реНрд╖рд┐рдХ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдХрдВрдЯреЗрд╕реНрдЯреЗрдВрдЯ рдФрд░ рдЖрд╡рд░реНрддрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдПрдХ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, SemEval-2017 рдиреЗ рдЯрд╛рд╕реНрдХ 4 рдХреА рдЯреЙрдиреНрд╕рд┐рд▓рд┐рдЯреА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдореЗрдВ рдкрд╛рдВрдЪ рдирд╛рдорд╛рдВрдХрди рдореЗрдВ рдкреНрд░рдердо рд╕реНрдерд╛рди [3] рд▓рд┐рдпрд╛ред


рдЪрд┐рддреНрд░рд╛ 1. рд╕реАрдПрдирдПрди рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ [2]ред

CNN рдЗрдирдкреБрдЯ (рдЫрд╡рд┐ 1) рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдКрдВрдЪрд╛рдИ n рдХреЗ рд╕рд╛рде рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдЖрдпрд╛рдо k рдХреЗ рдПрдХ рдлреАрдЪрд░ рд╕реНрдкреЗрд╕ рдореЗрдВ рдПрдХ рдЯреЛрдХрди рдХреА рдПрдХ рд╡реЗрдХреНрдЯрд░ рдореИрдкрд┐рдВрдЧ рд╣реИред Word2Vec, Glove, FastText, рдЖрджрд┐ рдЬреИрд╕реЗ рд╡рд┐рддрд░рдг рд╢рдмреНрджрд╛рд░реНрде рдЙрдкрдХрд░рдг рдЕрдХреНрд╕рд░ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рд╕реНрдерд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

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

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

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

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛


рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдпреВрд▓рд┐рдпрд╛ рд░реВрдмрддрд╕реЛрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рд▓рдШреБ рдЧреНрд░рдВрдереЛрдВ рдХреЗ рдХреЛрд╖ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдЯреНрд╡рд┐рдЯрд░ [4] рд╕реЗ рд░реВрд╕реА-рднрд╛рд╖рд╛ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛ рдерд╛ред рдЗрд╕рдореЗрдВ 114 991 рд╕рдХрд╛рд░рд╛рддреНрдордХ, 111 923 рдирдХрд╛рд░рд╛рддреНрдордХ рдЯреНрд╡реАрдЯ, рд╕рд╛рде рд╣реА 17 639 674 рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдмрджреНрдз рдЯреНрд╡реАрдЯреНрд╕ рдХрд╛ рдПрдХ рдЖрдзрд╛рд░ рд╣реИред

import pandas as pd import numpy as np #   n = ['id', 'date', 'name', 'text', 'typr', 'rep', 'rtw', 'faw', 'stcount', 'foll', 'frien', 'listcount'] data_positive = pd.read_csv('data/positive.csv', sep=';', error_bad_lines=False, names=n, usecols=['text']) data_negative = pd.read_csv('data/negative.csv', sep=';', error_bad_lines=False, names=n, usecols=['text']) #    sample_size = min(data_positive.shape[0], data_negative.shape[0]) raw_data = np.concatenate((data_positive['text'].values[:sample_size], data_negative['text'].values[:sample_size]), axis=0) labels = [1] * sample_size + [0] * sample_size 

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ, рдЧреНрд░рдВрдереЛрдВ рдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛:

  • рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдбрд╛рд▓реА;
  • "рдИ" рдХрд╛ "рдИ" рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди;
  • "URL" рдЯреЛрдХрди рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдмрджрд▓рдирд╛;
  • USER рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди;
  • рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рд╣рдЯрд╛рдиреЗред

 import re def preprocess_text(text): text = text.lower().replace("", "") text = re.sub('((www\.[^\s]+)|(https?://[^\s]+))', 'URL', text) text = re.sub('@[^\s]+', 'USER', text) text = re.sub('[^a-zA-Z--1-9]+', ' ', text) text = re.sub(' +', ' ', text) return text.strip() data = [preprocess_text(t) for t in raw_data] 

рдЕрдЧрд▓рд╛, рдореИрдВрдиреЗ 4: 1 рдХреЗ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдирдореВрдиреЗ рдореЗрдВ рд╕реЗрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ред

 from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=1) 

рд╢рдмреНрджреЛрдВ рдХрд╛ рд╕рджрд┐рд╢ рдкреНрд░рджрд░реНрд╢рди


рдХрдиреНрд╡реЗрдиреНрд╢рд┐рдпрд▓ рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдКрдБрдЪрд╛рдИ n рд╡рд╛рд▓рд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХрд┐рд╕реА рд╢рдмреНрдж рдХрд╛ рд╡реЗрдХреНрдЯрд░ рдореИрдкрд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЖрдпрд╛рдо k рдХреЗ рдлреАрдЪрд░ рд╕реНрдкреЗрд╕ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ ред рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдкрд░рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡рд░реНрдб 2 рд╡реАрдИрд╕реА [5] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рд╢рдмреНрджрд╛рд░реНрде рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреЗ рдЕрд░реНрде рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред Word2Vec рд╢рдмреНрджреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдпрд╣ рдорд╛рдирдХрд░ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╢рдмреНрдж рд╕рдВрдмрдВрдзреА рд╢рдмреНрдж рд╕рдорд╛рди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдк рдореВрд▓ рд▓реЗрдЦ рдореЗрдВ Word2Vec рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рднреА ред рдЪреВрдВрдХрд┐ рдЯреНрд╡реАрдЯреНрд╕ рдореЗрдВ рд▓реЗрдЦрдХ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдФрд░ рдЗрдореЛрдЯрд┐рдХреЙрдиреНрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╛рдХреНрдпреЛрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдПрдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдХрд╛рдо рдореЗрдВ, рдореИрдВрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд╡реАрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡рд╛рдХреНрдп рд╣реИред

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

 import sqlite3 #  SQLite   conn = sqlite3.connect('mysqlite3.db') c = conn.cursor() with open('data/tweets.txt', 'w', encoding='utf-8') as f: #    for row in c.execute('SELECT ttext FROM sentiment'): if row[0]: tweet = preprocess(row[0]) #      print(tweet, file=f) 

рдлрд┐рд░, Gensim рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ Word2Vec рдореЙрдбрд▓ рдХреЛ рдирд┐рдореНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛:

  • рдЖрдХрд╛рд░ = 200 - рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реНрдерд╛рди рдХрд╛ рдЖрдпрд╛рдо;
  • window = 5 - рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджрд░реНрдн рд╕реЗ рд╢рдмреНрджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛;
  • min_count = 3 - рд╢рдмреНрдж рдХрдо рд╕реЗ рдХрдо рддреАрди рдмрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдореЙрдбрд▓ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ ред

 import logging import multiprocessing import gensim from gensim.models import Word2Vec logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) #      data = gensim.models.word2vec.LineSentence('data/tweets.txt') #   model = Word2Vec(data, size=200, window=5, min_count=3, workers=multiprocessing.cpu_count()) model.save("models/w2v/model.w2v") 


рдЪрд┐рддреНрд░рд╛ 2. рдЯреА-рдПрд╕рдПрдирдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рдорд╛рди рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХрд╛ рджреГрд╢реНрдпред

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

рдЧреНрд░рдВрдереЛрдВ рдХрд╛ рд╕рджрд┐рд╢ рдкреНрд░рджрд░реНрд╢рди



рдЕрдВрдЬреАрд░ 3. рдЧреНрд░рдВрдереЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдХрд╛ рд╡рд┐рддрд░рдгред

рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рда рдХреЛ рдЯреЛрдХрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдореИрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдкрд╛рда рд╕рджрд┐рд╢ s = 26 рдХреЗ рдЖрдпрд╛рдо рдХреЛ рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдореВрд▓реНрдп рдкрд░ рдЧрдард┐рдд рдирд┐рдХрд╛рдп рдореЗрдВ рд╕рднреА рдЧреНрд░рдВрдереЛрдВ рдХреЗ 99.71% рдХрд╡рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ (рдЪрд┐рддреНрд░ 3)ред рдпрджрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рджреМрд░рд╛рди рдЯреНрд╡реАрдЯ рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдКрдВрдЪрд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдИ, рддреЛ рд╢реЗрд╖ рд╢рдмреНрджреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╡рд░реНрдЧреАрдХрд░рдг рдореЗрдВ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдкреНрд░рд╕реНрддрд╛рд╡ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЕрдВрддрд┐рдо рдЖрдпрд╛рдо s ├Ч d = 26 ├Ч 200 рдерд╛ ред

 from keras.preprocessing.text import Tokenizer from keras.preprocessing.sequence import pad_sequences #   (    ) SENTENCE_LENGTH = 26 #   NUM = 100000 def get_sequences(tokenizer, x): sequences = tokenizer.texts_to_sequences(x) return pad_sequences(sequences, maxlen=SENTENCE_LENGTH) # C    tokenizer = Tokenizer(num_words=NUM) tokenizer.fit_on_texts(x_train) #        x_train_seq = get_sequences(tokenizer, x_train) x_test_seq = get_sequences(tokenizer, x_test) 

рд╕рдВрд╡рд╛рджреА рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ


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

 from keras.layers import Input from keras.layers.embeddings import Embedding tweet_input = Input(shape=(SENTENCE_LENGTH,), dtype='int32') tweet_encoder = Embedding(NUM, DIM, input_length=SENTENCE_LENGTH, weights=[embedding_matrix], trainable=False)(tweet_input) 

рд╡рд┐рдХрд╕рд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ, рд╣рд╛рдЗрдЯреНрд╕ рдПрдЪ = (2, 3, 4, 5) рдХреЗ рд╕рд╛рде рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдХреНрд░рдорд╢рдГ рдмреАрдЧреНрд░рд╛рдо, рдЯреНрд░рд┐рдЧреНрд░рд╛рдо, 4-рдЧреНрд░рд╛рдо рдФрд░ 5-рдЧреНрд░рд╛рдо рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдлрд┐рд▓реНрдЯрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ 10 рдкреНрд░реЗрд░рдХ рдкрд░рддреЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рд╕рдХреНрд░рд┐рдпрдг рд╕рдорд╛рд░реЛрд╣ ReLU рд╣реИред рдЗрд╖реНрдЯрддрдо рдКрдВрдЪрд╛рдИ рдФрд░ рдлрд┐рд▓реНрдЯрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ [2] рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВред

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

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

 from keras import optimizers from keras.layers import Dense, concatenate, Activation, Dropout from keras.models import Model from keras.layers.convolutional import Conv1D from keras.layers.pooling import GlobalMaxPooling1D branches = [] #  dropout- x = Dropout(0.2)(tweet_encoder) for size, filters_count in [(2, 10), (3, 10), (4, 10), (5, 10)]: for i in range(filters_count): #    branch = Conv1D(filters=1, kernel_size=size, padding='valid', activation='relu')(x) #    branch = GlobalMaxPooling1D()(branch) branches.append(branch) #    x = concatenate(branches, axis=1) #  dropout- x = Dropout(0.2)(x) x = Dense(30, activation='relu')(x) x = Dense(1)(x) output = Activation('sigmoid')(x) model = Model(inputs=[tweet_input], outputs=[output]) 

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

 model.compile(loss='binary_crossentropy', optimizer='adam', metrics=[precision, recall, f1]) model.summary() 

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

  • рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рдореВрд╣ рдХрд╛ рдЖрдХрд╛рд░ 32 рд╣реИред
  • рд╕рддреНрдпрд╛рдкрди рдХреЗ рдирдореВрдиреЗ рдХрд╛ рдЖрдХрд╛рд░: 25%ред

 from keras.callbacks import ModelCheckpoint checkpoint = ModelCheckpoint("models/cnn/cnn-frozen-embeddings-{epoch:02d}-{val_f1:.2f}.hdf5", monitor='val_f1', save_best_only=True, mode='max', period=1) history = model.fit(x_train_seq, y_train, batch_size=32, epochs=10, validation_split=0.25, callbacks = [checkpoint]) 


рд▓реЙрдЧ
Train on 134307 samples, validate on 44769 samples
Epoch 1/10
134307/134307 [==============================] - 221s 2ms/step - loss: 0.5703 - precision: 0.7006 - recall: 0.6854 - f1: 0.6839 - val_loss: 0.5014 - val_precision: 0.7538 - val_recall: 0.7493 - val_f1: 0.7452
Epoch 2/10
134307/134307 [==============================] - 218s 2ms/step - loss: 0.5157 - precision: 0.7422 - recall: 0.7258 - f1: 0.7263 - val_loss: 0.4911 - val_precision: 0.7413 - val_recall: 0.7924 - val_f1: 0.7602
Epoch 3/10
134307/134307 [==============================] - 213s 2ms/step - loss: 0.5023 - precision: 0.7502 - recall: 0.7337 - f1: 0.7346 - val_loss: 0.4825 - val_precision: 0.7750 - val_recall: 0.7411 - val_f1: 0.7512
Epoch 4/10
134307/134307 [==============================] - 215s 2ms/step - loss: 0.4956 - precision: 0.7545 - recall: 0.7412 - f1: 0.7407 - val_loss: 0.4747 - val_precision: 0.7696 - val_recall: 0.7590 - val_f1: 0.7584
Epoch 5/10
134307/134307 [==============================] - 229s 2ms/step - loss: 0.4891 - precision: 0.7587 - recall: 0.7492 - f1: 0.7473 - val_loss: 0.4781 - val_precision: 0.8014 - val_recall: 0.7004 - val_f1: 0.7409
Epoch 6/10
134307/134307 [==============================] - 217s 2ms/step - loss: 0.4830 - precision: 0.7620 - recall: 0.7566 - f1: 0.7525 - val_loss: 0.4749 - val_precision: 0.7877 - val_recall: 0.7411 - val_f1: 0.7576
Epoch 7/10
134307/134307 [==============================] - 219s 2ms/step - loss: 0.4802 - precision: 0.7632 - recall: 0.7568 - f1: 0.7532 - val_loss: 0.4730 - val_precision: 0.7969 - val_recall: 0.7241 - val_f1: 0.7522
Epoch 8/10
134307/134307 [==============================] - 215s 2ms/step - loss: 0.4769 - precision: 0.7644 - recall: 0.7605 - f1: 0.7558 - val_loss: 0.4680 - val_precision: 0.7829 - val_recall: 0.7542 - val_f1: 0.7619
Epoch 9/10
134307/134307 [==============================] - 227s 2ms/step - loss: 0.4741 - precision: 0.7657 - recall: 0.7663 - f1: 0.7598 - val_loss: 0.4672 - val_precision: 0.7695 - val_recall: 0.7784 - val_f1: 0.7682
Epoch 10/10
134307/134307 [==============================] - 221s 2ms/step - loss: 0.4727 - precision: 0.7670 - recall: 0.7647 - f1: 0.7590 - val_loss: 0.4673 - val_precision: 0.7833 - val_recall: 0.7561 - val_f1: 0.7636



рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рддреНрдпрд╛рдкрди рдбреЗрдЯрд╛ рд╕реЗрдЯ рдкрд░ рдЙрдЪреНрдЪрддрдо рдПрдл-рдЙрдкрд╛рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЙрдбрд▓ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рддреНред рд╢рд┐рдХреНрд╖рд╛ рдХреЗ рдЖрдард╡реЗрдВ рдпреБрдЧ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдореЙрдбрд▓ (рдПрдл 1 = 0.7791)ред рдореЙрдбрд▓ рдиреЗ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдкрд░рдд рдХреЛ рдкрд┐рдШрд▓рд╛рдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрд╕рдиреЗ рдкрд╛рдВрдЪ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдпреБрдЧ рд╢реБрд░реВ рдХрд┐рдПред

 from keras import optimizers #    model.load_weights('models/cnn/cnn-frozen-embeddings-09-0.77.hdf5') #  embedding     model.layers[1].trainable = True #  learning rate adam = optimizers.Adam(lr=0.0001) model.compile(loss='binary_crossentropy', optimizer=adam, metrics=[precision, recall, f1]) model.summary() checkpoint = ModelCheckpoint("models/cnn/cnn-trainable-{epoch:02d}-{val_f1:.2f}.hdf5", monitor='val_f1', save_best_only=True, mode='max', period=1) history_trainable = model.fit(x_train_seq, y_train, batch_size=32, epochs=5, validation_split=0.25, callbacks = [checkpoint]) 


рд▓реЙрдЧ
Train on 134307 samples, validate on 44769 samples
Epoch 1/5
134307/134307 [==============================] - 2042s 15ms/step - loss: 0.4495 - precision: 0.7806 - recall: 0.7797 - f1: 0.7743 - val_loss: 0.4560 - val_precision: 0.7858 - val_recall: 0.7671 - val_f1: 0.7705
Epoch 2/5
134307/134307 [==============================] - 2253s 17ms/step - loss: 0.4432 - precision: 0.7857 - recall: 0.7842 - f1: 0.7794 - val_loss: 0.4543 - val_precision: 0.7923 - val_recall: 0.7572 - val_f1: 0.7683
Epoch 3/5
134307/134307 [==============================] - 2018s 15ms/step - loss: 0.4372 - precision: 0.7899 - recall: 0.7879 - f1: 0.7832 - val_loss: 0.4519 - val_precision: 0.7805 - val_recall: 0.7838 - val_f1: 0.7767
Epoch 4/5
134307/134307 [==============================] - 1901s 14ms/step - loss: 0.4324 - precision: 0.7943 - recall: 0.7904 - f1: 0.7869 - val_loss: 0.4504 - val_precision: 0.7825 - val_recall: 0.7808 - val_f1: 0.7762
Epoch 5/5
134307/134307 [==============================] - 1924s 14ms/step - loss: 0.4256 - precision: 0.7986 - recall: 0.7947 - f1: 0.7913 - val_loss: 0.4497 - val_precision: 0.7989 - val_recall: 0.7549 - val_f1: 0.7703



рд╕рддреНрдпрд╛рдкрди рдХреЗ рдирдореВрдиреЗ рдореЗрдВ рдЙрдЪреНрдЪрддрдо рд╕рдВрдХреЗрддрдХ рдПрдл 1 = 76.80% рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рддреАрд╕рд░реЗ рдпреБрдЧ рдореЗрдВ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдПрдл 1 = 78.1% рдереА ред

рддрд╛рд▓рд┐рдХрд╛ 1. рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдкрд░ рднрд╛рд╡рдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЧреБрдгрд╡рддреНрддрд╛ред
рдХрдХреНрд╖рд╛ рд▓реЗрдмрд▓
рд╢реБрджреНрдзрддрд╛
рдкрд░рд┐рдкреВрд░реНрдгрддрд╛
рдПрдл 1
рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
рдирдХрд╛рд░рд╛рддреНрдордХ
.ренрео,резрепрек
.ренрео,реирекрей
.ренрео,реирезрео
22457
рд╕рдХрд╛рд░рд╛рддреНрдордХ
.ренрео,режреореп
.ренрео,режрекреж
.ренрео,режремрек
22313
рдФрд╕рдд / рдХреБрд▓
.ренрео,резрекреи
.ренрео,резрекреи
.ренрео,резрекреи
44,770

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


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

рддрд╛рд▓рд┐рдХрд╛ 2. рдЯреЙрдиреНрд╕рд┐рд▓рд┐рдЯреА рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рддреБрд▓рдирд╛ред
рд╡рд░реНрдЧреАрдХрд╛рд░рдХ
рд╢реБрджреНрдзрддрд╛
рдпрд╛рдж
рдПрдл 1
MNB
0.7577
0.7564
0.7560
рд╕реАрдПрдирдПрди
.ренрео,резрекреи
.ренрео,резрекреи
.ренрео,резрекреи

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

рд╕реЛрд░реНрд╕ рдХреЛрдб рдЬреАрдердм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ , рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд╕реАрдПрдирдПрди рдФрд░ рд╡рд░реНрдб 2 рд╡реАрдИрдХреЗ рдореЙрдбрд▓ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ


  1. рд╕реЗрдореАрд▓реЗрд╡ -2017 рдЯрд╛рд╕реНрдХ 4 рдореЗрдВ Cliche M. BB_twtr: CNNs рдФрд░ LSTMs рдХреЗ рд╕рд╛рде рдЯреНрд╡рд┐рдЯрд░ рд╕реЗрдВрдЯреАрдореЗрдВрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг // рд╕реЗрдореЗрдЯрд┐рдХ рдЗрд╡реИрд▓реНрдпреВрдПрд╢рди (SemEval-2017) рдкрд░ 11 рд╡реАрдВ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ рдХреА рдХрд╛рд░реНрдпрд╡рд╛рд╣реАред - 2017 ред-- рдПрд╕ 573-580ред
  2. рдЭрд╛рдВрдЧ рд╡рд╛рдИред, рд╡рд╛рд▓реЗрд╕ рдмреАред рдПрдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг (рдФрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╢рдирд░реНрд╕ рдЧрд╛рдЗрдб) рдХреЗ рд▓рд┐рдП рд╕рдВрд╡реЗрджреА рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ // arXiv рдкреНрд░рд┐рдкреНрд░рд┐рдВрдЯ arXiv: 1510.03820ред - 2015ред
  3. рд░реЛрд╕реЗрдиреНрдерд▓ рдПрд╕ред, рдлрд╝рд░рд╛ рдПрдиред, рдирдХреЛрд╡ рдкреАред рд╕реЗрдорд╡реЗрд▓ -2017 рдХрд╛рд░реНрдп рек: рдЯреНрд╡рд┐рдЯрд░ рдореЗрдВ рд╕реЗрдВрдЯреАрдореЗрдВрдЯ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ // тАЛтАЛрезрез рд╡реАрдВ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ рдХреА рдХрд╛рд░реНрдпрд╡рд╛рд╣реА рдХрд╛ рдЕрд░реНрде рдореВрд▓реНрдпрд╛рдВрдХрди (рд╕реЗрдореЗрд╡рд▓ -реирежрез Far)ред - 2017 ред-- рдПрд╕ 502-518ред
  4. рдпреВред рд╡реАред рд░реБрдмрддрд╕реЛрд╡рд╛ рдЯреЛрди рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ // рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рдж рдФрд░ рд╕рд┐рд╕реНрдЯрдо, 2015, рдирдВрдмрд░ 1 (109), тАФC.72-78 рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЧреНрд░рдВрдереЛрдВ рдХрд╛ рдПрдХ рдирд┐рдХрд╛рдп рдмрдирд╛рдирд╛ред
  5. рдорд┐рдХреЛрд▓реЛрд╡ рдЯреАред рдПрдЯ рдЕрд▓ред рд╡рд┐рддрд░рд┐рдд рд╢рдмреНрдж рдФрд░ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдФрд░ рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ // рддрдВрддреНрд░рд┐рдХрд╛ рд╕реВрдЪрдирд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдЕрдЧреНрд░рд┐рдоред - 2013 ред-- рдПрд╕ред 3111-3119ред

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


All Articles