рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╢рд░реНрддреЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ: рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реЗрдЯрд┐рдВрдЧ рд╡рд╛рд▓рд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ:
рдЖрд▓реЛрдЪрдХ = { 'рд▓рд┐рд╕рд╛ рд░реЛрдЬрд╝' : { 'рд╕реБрдкрд░рдореИрди рд░рд┐рдЯрд░реНрдиреНрд╕' : 3.5 , 'рдпреВ, рдореА рдФрд░ рдбреБрдкреНрд░реА' : 2.5 , 'рдж рдирд╛рдЗрдЯ рд▓рд┐рд╕рдирд░' : 3.0 }
'рдЬреАрди рд╕реАрдореЛрд░' : { 'рд╕реБрдкрд░рдореИрди рд░рд┐рдЯрд░реНрдиреНрд╕' : 5.0 , 'рдж рдирд╛рдЗрдЯ рд▓рд┐рд╕рдирд░' : 3.5 , 'рдпреВ, рдореА рдФрд░ рдбреБрдкреНрд░реА' : 3.5 } }
рдЬрд┐рддрдирд╛ рдЬреНрдпрд╛рджрд╛ рд╕реНрдХреЛрд░ рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рд╣реА рдЬреНрдпрд╛рджрд╛ рдЖрдкрдХреЛ рдлрд┐рд▓реНрдо рдкрд╕рдВрдж рдЖрдПрдЧреАред
рдпрд╣ рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ: рдХреНрд░рдо рдореЗрдВ рдЖрд▓реЛрдЪрдХреЛрдВ рдХреЗ рд╣рд┐рдд рдХрд┐рддрдиреЗ рд╕рдорд╛рди рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреВрд╕рд░реЗ рдХреЛ рдлрд┐рд▓реНрдореЛрдВ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП?
рдЧреБрдгрд╛рдВрдХ рддрдиреАрдореЛрддреЛ - рджреЛ рд╕реЗрдЯреЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рдХреА рдбрд┐рдЧреНрд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рдореБрдЭреЗ рдЗрд╕рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд╕реВрддреНрд░ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓реЗред рдФрд░ рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд╛:
рдЬрд╣рд╛рдБ k рддрдиреАрдореЛрддреЛ рдЧреБрдгрд╛рдВрдХ рд╣реИ (0 рд╕реЗ 1 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛), рдпрд╣ 1 рдХреЗ рдХрд░реАрдм рд╣реИ, рд╕реЗрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИ;
рдП рдкрд╣рд▓реЗ рд╕реЗрдЯ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ;
b рджреВрд╕рд░реЗ рд╕реЗрдЯ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ;
рд╕реА рджреЛ рд╕реЗрдЯреЛрдВ рдореЗрдВ рдЖрдо рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ;
рдЕрдм рд╣рдореЗрдВ рджреЛ рдЖрд▓реЛрдЪрдХреЛрдВ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдмрд╕ рдПрдХ рдмрд┐рдВрджреБ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рдорд╛рд░реЗ рджреЛ рд╕реЗрдЯреЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддрддреНрд╡ рдХреНрдпрд╛ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЛ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╛рди рд╣рд┐рддреЛрдВ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рд╕рд╣реА рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рд╣реЛрдЧреАред рджрд░рдЕрд╕рд▓, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓рд┐рдП 3.5 рдФрд░ 4.0 рдХреА рд╕рдорд╛рди рд░реЗрдЯрд┐рдВрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЯреИрдирд┐рдореЛрдЯреЛ рдЧреБрдгрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рд░реЗрдЯрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 2-3 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдЖрдпрд╛, рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛," рдпрд╛ "рдореИрдВ рдпрд╣ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛, рдореИрдВ рдЗрд╕рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ") рдореИрдВрдиреЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛: рдпрджрд┐ рд░реЗрдЯрд┐рдВрдЧ 3 рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдлрд┐рд▓реНрдо рдкрд╕рдВрдж рдирд╣реАрдВ рдХреА рдЧрдИ рдереА (рд░реЗрдЯрд┐рдВрдЧ рдмрди рдЬрд╛рддреА рд╣реИ - 0), рдЕрдиреНрдпрдерд╛ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ (рд░реЗрдЯрд┐рдВрдЧ рдмрди рдЬрд╛рддреА рд╣реИ - 1)ред рдЗрд╕ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рд╣рдорд╛рд░реЗ рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред
def_for_tanimoto рдХреЛ рд╣рд░рд╛рдпрд╛ ( рдЖрд▓реЛрдЪрдХ_рдЫреВрдЯ ) :
arr = critics_arrред рдХреЙрдкреА ( )
рдЧрд┐рд░рдлреНрддрд╛рд░реА рдореЗрдВ рдЖрд▓реЛрдЪрдХ рдХреЗ рд▓рд┐рдП :
рдЧрд┐рд░рдлреНрддрд╛рд░реА рдореЗрдВ рдлрд┐рд▓реНрдо рдХреЗ рд▓рд┐рдП [ рд╕рдореАрдХреНрд╖рдХ ] :
рдЕрдЧрд░ рдЧрд┐рд░рдлреНрддрд╛рд░ [ рдЖрд▓реЛрдЪрдХ ] [ рдлрд┐рд▓реНрдо ] < 3 :
рдЧрд┐рд░рдлреНрддрд╛рд░ [ рдЖрд▓реЛрдЪрдХ ] [ рдлрд┐рд▓реНрдо ] = реж
рдФрд░ :
рдЧрд┐рд░рдлреНрддрд╛рд░ [ рдЖрд▓реЛрдЪрдХ ] [ рдлрд┐рд▓реНрдо ] = рез
рд╡рд╛рдкрд╕реА рдЧрд┐рд░рдлреНрддрд╛рд░
рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рдмреНрджрдХреЛрд╢ рдорд┐рд▓рддрд╛ рд╣реИ:
рдЖрд▓реЛрдЪрдХ = { 'рд▓рд┐рд╕рд╛ рд░реЛрдЬрд╝' : { 'рд╕реБрдкрд░рдореИрди рд░рд┐рдЯрд░реНрдиреНрд╕' : 1 , 'рдпреВ, рдореА рдФрд░ рдбреБрдкреНрд░реА' : 0 , 'рдж рдирд╛рдЗрдЯ рд▓рд┐рд╕рдирд░' : 1 }
'рдЬреАрди рд╕реАрдореЛрд░' : { 'рд╕реБрдкрд░рдореИрди рд░рд┐рдЯрд░реНрдиреНрд╕' : 1 , 'рдж рдирд╛рдЗрдЯ рд▓рд┐рд╕рдирд░' : 1 , 'рдпреВ, рдореА рдФрд░ рдбреБрдкреНрд░реА' : 1 } }
рдФрд░ рдлрд┐рд░ рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рджреЛ рдЖрд▓реЛрдЪрдХреЛрдВ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рдорд╛рдирддрд╛ рдЧреБрдгрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред
рдбреА рдЯреА рдЯрд╛рдиреНрдореЛрдЯреЛ ( рдХреНрд░рд┐рдЯрд┐рдХреНрд╕_рд░рд┐рдпрд░, рдЖрд▓реЛрдЪрдХ 1, рдЖрд▓реЛрдЪрдХ 2 ) :
рдЧрд┐рд░рдлреНрддрд╛рд░реА = ready_for_tanimoto ( рдЖрд▓реЛрдЪрдХ_рдХрд╛рд░реНрдп )
a = len ( рдЧрд┐рд░рдлреНрддрд╛рд░ [ рдЖрд▓реЛрдЪрдХ ]] )
рдмреА = рд▓реЗрди ( рдЧрд┐рд░рдлреНрддрд╛рд░ [ рдЖрд▓реЛрдЪрдХ 2 ] )
рд╕реА = 0.0
рдЧрд┐рд░рдлреНрддрд╛рд░реА рдореЗрдВ рдлрд┐рд▓реНрдо рдХреЗ рд▓рд┐рдП [ рд╕рдореАрдХреНрд╖рдХ 1 ] :
рдЕрдЧрд░ рдЧрд┐рд░рдлреНрддрд╛рд░реА [ рд╕рдореАрдХреНрд╖рдХ ] [ рдлрд┐рд▓реНрдо ] == рдЧрд┐рд░рдлреНрддрд╛рд░ [ рдЖрд▓реЛрдЪрдХ 2 ] [ рдлрд┐рд▓реНрдо ] :
c = c + 1
koef = c / ( a + b - c )
рд╡рд╛рдкрд╕реА koef
Tanimoto рдлрд╝рдВрдХреНрд╢рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
>>> рдкреНрд░рд┐рдВрдЯ рдЯреЗрдВрдореЛрддреЛ (рдЖрд▓реЛрдЪрдХ, 'рдЬреАрди рд╕реАрдореЛрд░', 'рд▓рд┐рд╕рд╛ рд░реЛрдЬ')
>>> 0.5
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЖрд▓реЛрдЪрдХ рдХреЗ рд▓рд┐рдП рд░реЗрдЯрд┐рдВрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рд╕рдорд╛рдирддрд╛ рдЧреБрдгрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рд╕рдЯреАрдХрддрд╛ рдмрдврд╝ рдЬрд╛рдПрдЧреАред
рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдХрд▓рди рдХрд╛ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд▓реЛрдЧреЛрдВ рдХреЗ рд╣рд┐рддреЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рдХреЗ рдЧреБрдгрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдФрд░ рдЯреИрдирд┐рдореЛрдЯреЛ рд╡рд┐рдзрд┐ рдкрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдЖрдк рдпрд╣рд╛рдВ рдЙрджрд╛рд╣рд░рдг рдкрд╛рда рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред
рдЖрдк рд▓реЗрдЦрдХ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреБрд╕реНрддрдХ рд╕реЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдкреВрд░рд╛ рдкрд╛рда рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣рд╛рдБ рдЖрдк рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рд╕рд░рдгреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред