рдЙрд╕реЗ рдпрдХреАрди рд╣реА рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЙрд╕рдиреЗ рд╕рд╣реА рд╕реБрдирд╛ рд╣реИред рдмрд╣реБрдд рдХреБрдЫ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдерд╛! рд▓реЗрдХрд┐рди рдлрд┐рд░ рдордд рдкреВрдЫреЛ? (c) рдмреЛрд░рд┐рд╕ рдЕрдХреБрдирд┐рдиред рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдПрдХ рдерд┐рдПрдЯрд░ рд╣реИред
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдмрддрд╛рдП рдЧрдП рд╡реЙрдпрд╕ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп , рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рд╕рд┐рд░реНрдл рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рд╕рд╛рде рд╕реБрдВрджрд░ рдлрд╝рдЬрд╝реАрд╡реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ редрд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреАрдбрд╝рд╛ рдХреЗ рдПрдХ рдлрдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ редрдкрд╣рд▓рд╛ рдЪрд░рдг
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛ рдЪрд░рдг рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:/ рдорд╣рддреНрд╡рдкреВрд░реНрдг! рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг 2.7 рдФрд░ рдЙрдЪреНрдЪрддрд░ /рдЪрд░рдг 1. рд╕реНрдерд╛рдкрдирд╛редрдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЦреЛрд▓реЗрдВ рдФрд░ рджрд░реНрдЬ рдХрд░реЗрдВ:pip install fuzzywuzzy
рдПрдВрдЯрд░ рджрдмрд╛рдПредрдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрд╕реА рддрд░рд╣ рд╕реЗ 3-10 рдмрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд┐рд▓рд╛рди рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░-рд▓реЗрд╡реЗрдВрд╢реЗрдЯрд┐рди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ редpip install python-Levenshtein
рд╕реНрдерд╛рдкрдирд╛ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИредрдЪрд░рдг 2. рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛редfrom fuzzywuzzy import fuzz
from fuzzywuzzy import process
рдХрд╛рд░реНрдпрд╛рддреНрдордХ
1. рд╕рдмрд╕реЗ рдЖрдо рддреБрд▓рдирд╛:a = fuzz.ratio(' ', ' ')
print(a)
рдпрджрд┐ рд╣рдо рдХреБрдЫ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕рдВрдЦреНрдпрд╛ рдорд┐рд▓реЗрдЧреАредa = fuzz.ratio(' ', ' ')
print(a)
2. рдЖрдВрд╢рд┐рдХ рддреБрд▓рдирд╛редрдкреВрд░реА рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдПрдХ рдореИрдЪ рдХреЗ рд╕рд╛рде рджрд┐рдЦрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:a = fuzz.partial_ratio(' ', ' !')
print(a)
рдпрд╛a = fuzz.partial_ratio(' ', ' , ')
print(a)
рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐a = fuzz.partial_ratio(' ', ' , ')
print(a)
3.рдЯреЛрдХрди рддреБрд▓рдирд╛ 1) рдЯреЛрдХрди рд╕реЙрд░реНрдЯ рд░реЗрд╢реНрдпреЛрд╢рдмреНрдж рдХреА рддреБрд▓рдирд╛ рдорд╛рдорд▓реЗ рдпрд╛ рдЖрджреЗрд╢ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИa = fuzz.token_sort_ratio(' ', ' ')
print(a)
a = fuzz.token_sort_ratio(' ', ' ')
print(a)
a = fuzz.token_sort_ratio('1 2 ', '1 2 ')
print(a)
2) рдЯреЛрдХрди рд╕реЗрдЯ рдЕрдиреБрдкрд╛рддрдпрд╣ рддреБрд▓рдирд╛, рдЕрддреАрдд рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдорд╛рди рдХрд░рддреА рд╣реИ, рдпрджрд┐ рдЙрдирдХрд╛ рдЕрдВрддрд░ рд╢рдмреНрджреЛрдВ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реИредa = fuzz.token_set_ratio(' ', ' ')
print(a)
4. рдЙрдиреНрдирдд рдирд┐рдпрдорд┐рдд рддреБрд▓рдирд╛рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ WRatio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╕-рд╕рдВрд╡реЗрджреА рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рд╣реИ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛)a = fuzz.WRatio(' ', '! !')
print(a)
a = fuzz.WRatio(' ', '!, !')
print(a)
5. рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реВрдЪреАрд╕реЗ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИcity = ["", "-", "", "", "", "", "", "", "", "", ""]
a = process.extract("", city, limit=2)
print(a)
рдпрджрд┐ рд╕реВрдЪреА рдореЗрдВ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдПрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдПрдХреНрд╕реНрдЯреНрд░реЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИcity = ["", "-", "", "", "", "", "", "", "", "", ""]
a = process.extractOne("", city)
print(a)
рдЖрд╡реЗрджрди
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рдХреИрд╕реЗ рдФрд░ рдХрд╣рд╛рдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореЗрд░реЗ рдЯрд░реНрдо рдкреЗрдкрд░ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :
try:
files = os.listdir('C:\\Users\\hartp\\Desktop\\')
filestart = process.extractOne(namerec, files)
if filestart[1] >= 80:
os.startfile('C:\\Users\\hartp\\Desktop\\' + filestart[0])
else:
speak(' ')
except FileNotFoundError:
speak(' ')
рдЖрдЗрдП рдХреЛрдб рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╕рдордЭреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реИред Os.listdirрдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде , рд╣рдореЗрдВ рдЙрди рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рдХреЗ рдЕрдВрдд рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░)редfiles = os.listdir('C:\\Users\\hartp\\Desktop\\')
print(files)
рдЕрдЧрд▓рд╛ рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪреА рдХреЗ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдирд╛рдо рджрд┐рдпрд╛ рд╣реИ (рд╡реИрд░рд┐рдПрдмрд▓ рдирд╛рдорд░реЗрдХ )ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ extractOne рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рд╕рдВрдЦреНрдпрд╛ (рд╕рдорд╛рдирддрд╛ рд╕реВрдЪрдХрд╛рдВрдХ) рдХрд╛ рдПрдХ рдЯрдкрд▓ рд╣реИрдкрд┐рдЫрд▓реЗ рдЕрдзреНрдпрд╛рдп рд╕реЗ рдЙрджрд╛рд╣рд░рдгcity = ["", "-", "", "", "", "", "", "", "", "", ""]
a = process.extractOne("", city)
print(a)
ред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рд╕рдорд╛рдирддрд╛ рдЗрдВрдбреЗрдХреНрд╕ рдлрд╛рдЗрд▓рд╕реНрдЯрд╛рд░реНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ [1]> 80 ([1], рдХреНрдпреЛрдВрдХрд┐ рдЯрдкрд▓ 0 рд╕реЗ рдХреНрд░рдорд╛рдВрдХрд┐рдд рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд╣реИ) рдФрд░, рдпрджрд┐ рдпрд╣ рд╢рд░реНрдд рд╕рд╣реА рд╣реИ, рддреЛ рдлрд╛рдЗрд▓рд╕реНрдЯрд╛рд░реНрдЯ [0] рдирд╛рдордХ рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде os.startfit рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЪрд▓рд╛рдПрдВред ]ред рдЕрдиреНрдпрдерд╛, рдпрджрд┐ рд╕рдорд╛рдирддрд╛ рд╕реВрдЪрдХрд╛рдВрдХ 80 рд╕реЗ рдХрдо рд╣реИ рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓реА, рддреЛ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реНрдкреАрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ редрд╕рднреА рд╕рдбрд╝рдХреЗрдВ рдорд╛рддрди рдХреА рдУрд░ рдЬрд╛рддреА рд╣реИрдВ
рдЧрдгрд┐рдд рд╕реЗ рдбрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ, , ().
, .
( , ) тАФ , .
S1 i S2 j
S1=vrhk
S2=rhgr
3 :
- : r тЖТ v
- : -r
- : rVhgr
:

0 1? ( тАФ ┬л0┬╗), r , r ( , тАФ ┬л1┬╗). v .
rh h, r ( ), , :

v r ( ).
, тАФ v.
1. ? r , v. r , v, rv. , v v.
v rh

тАФ v h r .
.

vr r , , , , .

vrh r h ( vr r), 2

vr r vrh rh, , .

, vrh rhg , , , - ( ).
, , ( ) тАФ vrhk rhgr.
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж! рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред