2009 рдореЗрдВ рд╡рд╛рдкрд╕,
рдкрд░реНрдореЙрд░реНрдлрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "
рдмрдЬрд╝рд┐рдВрдЧ рдмрдЯрдХреНрд╕ .. " рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдм рдкрд░ рдПрдХ рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдерд╛ - рдкрд╛рдпрдерди рдореЗрдВ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ (рдПрдХ
рдЙрд▓реНрд▓рдВрдШрди рдЬреЛ
рд╢рдмреНрджреЛрдВ рдХреЛ
рд╕рдВрдХреНрд░рдорд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рднрд╛рд╖рдг, рдорд╛рдорд▓реЗ, рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред
2012 рдореЗрдВ, рдореИрдВрдиреЗ рдзреАрд░реЗ-рдзреАрд░реЗ pymorphy2 (
github ,
bitbucket ) рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдпрд╣рд╛рдВ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ: pymorphy2 pymorphy рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рдЧреБрдирд╛ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдмрд┐рдирд╛ / C ++ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП) рдФрд░ рдЕрднреА рднреА рдХрдо рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдмреЗрд╣рддрд░ рд╢рдмреНрджрдХреЛрд╢, рдмреЗрд╣рддрд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЧреБрдгрд╡рддреНрддрд╛, рдкрддреНрд░ рдИ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕рдорд░реНрдерди, рдЖрд╕рд╛рди рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЕрдзрд┐рдХ "рдИрдорд╛рдирджрд╛рд░" рдПрдкреАрдЖрдИ рд╣реИрдВред рдирдХрд╛рд░рд╛рддреНрдордХ рд╕реЗ - рд╕рднреА pymorphy рдлреАрдЪрд░реНрд╕ рдЕрдм pymorphy2 рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдпрд╣ рдЖрд▓реЗрдЦ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ pymorphy2 рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдХрднреА-рдХрднреА рдЙрдмрд╛рдК рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде), рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдореИрдВрдиреЗ рдХрд┐рддрдирд╛ рдмрдХрд╡рд╛рд╕ рдХрд┐рдпрд╛; рдпрджрд┐ рдЖрдк рд╕рдм рдХреБрдЫ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
Pymorphy рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ:
- рдмрд▓реНрдХрд┐ рдзреАрдореА рдЧрддрд┐ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдХреБрдЫ рд╕реМ рд╢рдмреНрдж / рд╕реЗрдХрдВрдб);
- aot.ru рд╕реЗ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ / рддрдп рдХрд░рдирд╛ рд╣реИ;
- рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЭреБрдХрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЦреБрдж рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ;
- рдкрддреНрд░ all рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдерд╛ "рд╣рд░ рдЬрдЧрд╣ рдИ рдХреЗ рд╕рд╛рде рд╕рднреА рдЬрдЧрд╣";
- рдмрд▓реНрдХрд┐ рдЬрдЯрд┐рд▓ рд╕реНрдерд╛рдкрдирд╛ - рдЖрдкрдХреЛ рд╢рдмреНрджрдХреЛрд╢, рдХреБрдЫ рдЕрд▓рдЧ рдкреНрд░рд╛рд░реВрдк рдЖрджрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрд╛рдкрд╛рдиреА рдореЗрдВ рдХрд┐рд╕реА рдиреЗ рд╡реАрдбрд┐рдпреЛ рд╕рдмрдХ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдИ);
- рдкрд╛рдпрдерди 3.x рдХреЗрд╡рд▓ рдмрд┐рдЯрдмрдХреЗрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдерд╛, рдЬрд┐рд╕реЗ рдХрднреА рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
- рд╢рд┐рд╢реБ рдХреЛ рд░рд╛рдЬреА рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ: рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╢рд┐рд╢реБ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд - рдЕрдм рдирд╣реАрдВ;
- рд╣рд╛рдЗрдлрд╝рди рдХрд┐рдП рдЧрдП рд╢рдмреНрдж рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЭреБрдХреЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ;
- рдХреБрдЖрдБ, рдЖрджрд┐ред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореБрдЭреЗ рдкрд╛рдЗрдореЙрд░реНрдлреА рд╣реЛрддреА, рдореИрдВрдиреЗ рдкрд╛рдпрдерди рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛, рди рд╣реА рдореИрдВрдиреЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ (рдкрд╛рдЗрдореЛрд░реНрдлреА рджреЛрдиреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдерд╛) - рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдХреБрдЫ рдмреЗрд╣рддрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди pymorphy1 рдХрд╛ рдмрд╣реБрдд рдХреБрдЫ рд╕рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реВрд╕реА рдореЗрдВ рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдерд╛рдкрдирд╛ (рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдПрдХ рд╕рдВрдХрд▓рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛); рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛; рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛рдлреА рдЙрдЪреНрдЪ рдереАред Django рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ "рд╡рд┐рдкрдгрди" рдХрджрдо рдерд╛ - рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╡реИрдЪрд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ (рдЖрдк рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реАрдзреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдФрд░ рдпрд╣ рдПрдкреАрдЖрдИ рдореЗрдВ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред
рдЕрдкрдиреА рд╕рднреА рдХрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ) рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ Google рдерд╛ рдХрд┐ рдлреНрд░реЗрдВрдЪ
рдХреНрд╡реЗрд░реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдкреАрдЪ-рдЯреВ-рдЯреЗрдХреНрд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдкрд╛рдЗрдореЛрд░реНрдлреА рдХрд╛ рдереЛрдбрд╝рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХреБрдЫ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╢реИрдХреНрд╖рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреЛрдИ рдорд╣рд╛рди рдпреЛрдЧреНрдпрддрд╛ рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рд╕рд╣реА рд╕рдордп рдкрд░ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реБрдЖред
рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВ рдкрд┐рдЫрдбрд╝реА рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЛ рддреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЬреЛ рдХреБрдЫ рднреА рд╣реИ рдЙрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рд╣рд╛рд▓рд╛рдВрдХрд┐
рдмрд░рд┐рдпрд╛рд░ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдХрд╛рдВрдЯрд╛ рднреА рдерд╛, рдЬрд┐рд╕рдиреЗ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛)ред Pymorphy2 рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдгрд╛рдпрдХ рдкреНрд░реЛрддреНрд╕рд╛рд╣рди
OpenCorpora рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдерд╛ - рд╡рд╣рд╛рдВ рдХреЗ рд▓реЛрдЧ, рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рдФрд░ "рд╕рдм рдХреБрдЫ") рдмрд╣реБрдд рд╣реИрдВ, aot.ru рд╕реЗ рд╢рдмреНрджрдХреЛрд╢ рд▓рд┐рдпрд╛, рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рдФрд░ рдЕрдиреНрдп рд╕реБрдзрд╛рд░ рд╢реБрд░реВ рдХрд┐рдПред
рддреЛ, OpenCorpora рд╕реЗ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ред
Pymorphy рдиреЗ aot.ru рд╕реЗ рдРрд╕реЗ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдЗрдХреНрд▓рд╛рдЗрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдВрд░рдЪрдирд╛ рд╕рдорд╛рди рдереА)ред рдЕрд▓рдЧ-рдЕрд▓рдЧ, рд╢рдмреНрджреЛрдВ рдХреА "рдиреАрдВрд╡", рдЕрд▓рдЧ рд╕реЗ "рдЙрдкрд╕рд░реНрдЧ", рдЕрд▓рдЧ-рдЕрд▓рдЧ "рдЕрдВрдд" рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЧрдП рдереЗ, рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ - рдЗрди рднрд╛рдЧреЛрдВ рд╕реЗ рд╢рдмреНрджреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдирд┐рдпрдоред рдпрд╣ рддрд░реАрдХрд╛ рдЕрдЪреНрдЫрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдФрд░ рд╢реЛрдз рдХреЗ рдмрд┐рдирд╛ "рд╕рдкреНрддрд╛рд╣рд╛рдВрдд" рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдореЗрдВ рд░реВрдкрд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред
рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм - рдХрдИ рд░реИрдкрд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдФрд░ (рд╡рд┐рд╢реЗрд╖рдХрд░) рдЕрдЬрдЧрд░ рдХреЛрдб рдХреЗ рд╕рд╛рде рднрд╛рдЧреЛрдВ рд╕реЗ рд╢рдмреНрджреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ - рдХрд╛рдо рдХреА рдЧрддрд┐ рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ; рдореИрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЧрддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд╕рдорд╛рдзрд╛рди рдЬрдЯрд┐рд▓ рдереЗ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ (рдзреНрдпрд╛рди рджреЗрдВ: рд╡рд┐рдХрд▓реНрдк
"рдЬреИрд╕рд╛ рднреА рд╣реЛ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛, рд▓реЗрдХрд┐рди рд╕реА ++ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
" рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди pororphy2 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, pymorphy2 рдореЗрдВ рдореИрдВ рдХреБрдЫ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╢рдмреНрджрдХреЛрд╢ рдирдП рд╣реИрдВ, рдФрд░ рдЕрднреА рднреА рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╢рдмреНрджрдХреЛрд╢ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ pymorphy2 рдПрдХ рдЕрдЬрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛ рд░рд╣реЗ, рдФрд░ рди рдХреЗрд╡рд▓ C / C ++ рдХреЛрдб рдХреЗ рдвреЗрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг - рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдкрд╛рд░реНрд╕ рддрд░реНрдХ рддрд░реНрдХ рдЕрдЬрдЧрд░ рдкрд░ рдмрдиреЗ рд░рд╣реЗред рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рдереЗред
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдорд╢реАрдиреЗрдВ
рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдкрд░рд┐рдорд┐рдд рдСрдЯреЛрдореЗрдЯрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдерд╛ред
lightcaster рдиреЗ рдпрд╣рд╛рдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛:
habrahabr.ru/post/109736 ред рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реБрдВрджрд░ рд╣реИ, рдЕрд░реНрдерд╛рддреН рд╣реИред
рдореБрдЭреЗ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЙрд▓рдЭрди рд╣реИ:
a) OpenFST C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реЗрдЦ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╣ рдкрд░рд┐рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рддрд░реАрдХрд╛ рд▓рдЧрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ;
рдЦ) рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реА ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдкрд░рд┐рдгрд╛рдо, рд▓реЗрдЦ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ, рдмрд▓реНрдХрд┐ рдорд╛рдореВрд▓реА рдереЗ (2 рд╣рдЬрд╛рд░ рд╢рдмреНрдж / рд╕реЗрдХрдВрдб рдмрдирд╛рдо 100+ рд╣рдЬрд╛рд░ рд╢рдмреНрдж / рд╕реЗрдХрдВрдб рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рд▓реЗрдореЗрдЯрд╛рдЗрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП); рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЗрд╕ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░
рд▓рд╛рдЗрдЯрдХрд╛рд╕реНрдЯрд░ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рд╣реИ) - рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА;
рдЧ) рдпрд╣ рдЙрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ (рдореЗрд░реА рд░рд╛рдп рдореЗрдВ) рдкреНрд░рд╡реЗрд╢ рд╕реАрдорд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдЕрдВрдд рдореЗрдВ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА: рдХреЛрдб рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкрддрд╛ рдХрд░реЗрдВ рдФрд░ рдпрд╣ C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рднреА рдзреАрд░реЗ-рдзреАрд░реЗ рдХреНрдпреЛрдВ рдирд┐рдХрд▓реЗ; OpenFST рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд░реИрдкрд░ рд▓рд┐рдЦреЗрдВ (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп FST рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмрдирд╛рдПрдВ) + Python рдореЗрдВ OpenFST (рдпрд╛ рд╕рд┐рд░реНрдл FST рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░реЗрдВ (рддрд╛рдХрд┐ рдПрдХ рд╕рдВрдХрд▓рдХ рдХреЗ рдмрд┐рдирд╛ рдкрд╛рдпрд░реЛрдореА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ), рдареАрдХ рд╣реИ, рд╕рднреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рддреИрдпрд╛рд░ рдХрд░реЗрдВ рдкрд░рд┐рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрдиреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред
рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ,
lightcaster рдиреЗ рдореБрдЭреЗ рдкрд░рд┐рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрдиреЛрдВ рдкрд░ pymorphy рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХ рдФрд░ рд╕реНрдХреЗрдЪ рднреЗрдЬрд╛ рдерд╛ (рд╕реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмрд┐рдирд╛ рдкрд╛рдЗрдердирд┐рдпрдо, рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдерд╛ :) - рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдХреЗрдЪ рдиреЗ рд▓рдЧрднрдЧ 2 рд╣рдЬрд╝рд╛рд░ рд╢рдмреНрджреЛрдВ / рд╕реЗрдХрдВрдб рдХреА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рд▓рдЧрднрдЧ 300 рдПрдордмреА рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдпрд╣ рд╕рдм, рдПрдХ рддрд░рдл, рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рдкрд░, рдпрд╣ рд╡реИрд╕реЗ рднреА рдмрд╣реБрдд рдкреНрд░реЗрд░рдгрд╛рджрд╛рдпрдХ рдирд╣реАрдВ рдерд╛; рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рдпрджрд┐ рдЗрд╕ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ "рдорд╛рдереЗ рдкрд░" рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдФрд░ рдЖрдкрдХреЛ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╡рд┐рд╖рдп рдХреЛ рд╕рдордЭрддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдХрд╛рдо рдФрд░ рдПрдХ рдЕрдиреБрдЪрд┐рдд рдкрд░рд┐рдгрд╛рдо (+ рдЕрдиреНрдп рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд╡рд┐рдЪрд╛рд░, рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдХреЗ рдХрд░реАрдм) рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рд╢рд╛рдпрдж, рдпрд╣ рдЧрд▓рдд рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ - рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ, рдХреЗрд╡рд▓ рдмрд╣рд╛рдирд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдСрдЯреЛрдореЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдореИрдВ рдирд╣реАрдВ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ - рдпрд╣ рдХреИрд╕реЗ рдХрд╣рдирд╛ рд╣реИ, рдпрд╣ рд╕рдм рджреЗрдЦрдиреЗ рдХреЗ рдмрд┐рдВрджреБ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ :)
рдирдХрд▓ рдкреНрд░рдгрд╛рд▓реА
рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк
рд╡реНрдпрд╡рд╕реНрдерд╛ рдкрд░
рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд▓рдЧрднрдЧ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдерд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ mystem рдЕрдм рд╕рдорд╛рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХрд╛рдлреА рдЙрдЪрд┐рдд рд╣реИред рд╡реЗ mystem рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрдЪреНрдЫреА рдЪреАрдЬреЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рдореИрдВрдиреЗ pymorphy2 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред
рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╛рд░ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ)рдХ) рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП "рдШреЛрд╖рдгрд╛ рдореЙрдбрд▓" ("рдкреНрд░рддрд┐рдорд╛рди") рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рд╢рдмреНрдж рдХреЗ рдЕрдиреНрдп рд░реВрдкреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рд╕рдВрдЬреНрдЮрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд╛рдо рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╣реБрд╡рдЪрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрддреНрд░ "рдФрд░" рдЕрдВрдд рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ "рд╣реВрдБ" - рдирд╛рдордорд╛рддреНрд░ред рд░реВрд╕реА рдЖрдХрд╛рд░рд┐рдХреА рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрд╣рд╕рд╛рд╕ рдЗрд╕реА рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред
b) рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рднреА рдЙрд▓реНрдЯреЗ "рдЕрдВрдд" рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖ (trie) рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред "рд╕рдорд╛рдкреНрддрд┐" рдХреЛ рд▓рдЧрднрдЧ aot.ru рдХреЗ рд╕рдорд╛рди рд╣реА рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рджрд╛рдИрдВ рдУрд░ рд╢рдмреНрдж рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛, рдЬреЛ рдХрд┐ рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рдмреНрдж "рд╣реИрдореНрд╕реНрдЯрд░" рдореЗрдВ, рдпрд╣ "рдЕрдореА" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдЯреНрд░рд╛рдЗ рдореЗрдВ "рдЗрдорд╛" рдЬреЛрдбрд╝реЗрдВред
рдЧ) рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖ (рддреНрд░рд┐рдХ) рд╢рдмреНрдж рдХреЗ рд╕рднреА рдЙрд▓реНрдЯреЗ "рдиреАрдВрд╡" рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╣рдореНрд╕рдЯрд░" рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП рдпрд╣ "рдХрд╛рдореЛрдЦ" рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдШреЛрд╖рдгрд╛ рдореЙрдбрд▓ (рдкреНрд░рддрд┐рдорд╛рди) рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реВрдЪрдХрд╛рдВрдХ (рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) "рдиреАрдВрд╡" рдХреЗ рдЕрдВрдд рддрдХ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ "рд╣рдореНрд╕рдЯрд░" рдХреЛ рдкреНрд░рддрд┐рдорд╛рди A рдФрд░ B рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЭреБрдХрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рднрд╛рдЬрдХ $ рд╣реИ, рддреЛ рддреНрд░рд┐рдХреЛрдгреАрдп рдореЗрдВ рд╣рдо "kamokh $ A" рдФрд░ "kyamokh $ B" рдорд╛рди рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред Mystem рдкрд░ рд▓реЗрдЦ рдореЗрдВ, рдореВрд▓ рдмрд╛рддреЗрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЗрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрдИ (рдореЗрд░реА рд░рд╛рдп рдПрдХ рдЕрдиреБрдХреВрд▓рди рдЙрдкрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ) - рд▓реЗрдХрд┐рди рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рджреГрдврд╝рддрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреЗрдбрд╝ рдпрд╣рд╛рдВ рдПрдХ рд╣реИред
рдШ) рд╢рдмреНрдж рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг: рд╣рдо рдЕрдВрдд рд╕реЗ рд╢рдмреНрдж рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рддреНрд░рд┐рдХ рд╕реЗ рд╕рднреА рд╕рдВрднрд╡ "рдЕрдВрдд" рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ (рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖ рдореЗрдВ, рдпрд╣ рдСрдкрд░реЗрд╢рди рддреНрд░рд┐ рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдУ (1) рдФрд░ рд▓рдВрдмрд╛рдИ рдХреЗ рдУ (рдПрди) рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред "рд╣рдореНрд╕рдЯрд░" рдХреЗ рд▓рд┐рдП рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕реЗ рд╢рдмреНрдж рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╡рд┐рднрдХреНрддрд┐ рдЕрдВрдд "" (рдЦрд╛рд▓реА), "рдФрд░", "рдЕрдореА" рдпрд╛ "рдХрд╛рдореА" рд╣реИред рдпреЗ "рдЕрдВрдд" "рдореВрд▓ рдмрд╛рддреЗрдВ" рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ: рд╣реИрдореНрд╕реНрдЯрд░, рд╣реИрдореНрд╕реНрдЯрд░, рд╣рдореНрд╕рдЯрд░ рдФрд░ рд╣рдореНрд╕рдЯрд░ред
рдИ) рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдЖрдзрд╛рд░ рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рджреВрд╕рд░реА рддрд┐рдХрдбрд╝реА рдореЗрдВ рджреЗрдЦреЗрдВ ($ рд╡рд┐рднрд╛рдЬрдХ рдкрд░ рдЬрд╛рдПрдВ)ред рдпрджрд┐ рдЖрдк рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдзрд╛рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╢рдмреНрдж рдШреЛрд╖рдгрд╛ рдкреИрдЯрд░реНрди рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рддреБрд░рдВрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ (рд╡реЗ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рдкреАрдЫреЗ рд╣реИрдВ)ред рдкреНрд░рддреНрдпреЗрдХ рдШреЛрд╖рдгрд╛ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЕрдм рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд░реВрдк рд╣реИ (рдЪрд░рдг (рдбреА) рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛) - рдЕрдЧрд░ рд╡рд╣рд╛рдБ рд╣реИ, рддреЛ рд╣рдордиреЗ рд╢рдмреНрдж рдХреЛ рдЫрд╛рдБрдЯ рд▓рд┐рдпрд╛ред
рдЪ) рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдХрдо рдЖрдзрд╛рд░ рд╡рд╛рд▓рд╛ рдХреЛрдИ рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИ - рдЖрдк рдПрдХ рд▓рдВрдмреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ; рдЖрдк рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреА рднреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдХрд╛рдЧрдЬ рд╕реЗ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣ рдмрд┐рдВрджреБ рдирд╣реАрдВ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдЧрд▓реА рд▓рдВрдмреА рдиреАрдВрд╡ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдорд╛рди рд╢рдмреНрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) ред
рдкреЗрдкрд░ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдорд╛рдиреЛрдВ рдХрд╛ рднреА рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рд╕рдордЭ рд╕рдХрддрд╛ рдерд╛ рдпрд╛ рдЧрд▓рдд рд╕рдордЭ рд╕рдХрддрд╛ рдерд╛; рдпрджрд┐ рдпрд╣ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдореВрд▓ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред
Trie
рд╡рд┐рдзрд┐ рдЙрдкрд╕рд░реНрдЧ рдкреЗрдбрд╝ (рдЯреНрд░рд╛рдИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ - рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░рд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдЕрдЬрдЧрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ (рдореИрдВ рдореЗрдореЛрд░реА рд╕реЗ рдЧрддрд┐ рдФрд░ рд▓реЛрд▓реБрдкрддрд╛ рдХреЗ рд▓рд┐рдП рдбрд░рддрд╛ рдерд╛), рдФрд░ рдореИрдВрдиреЗ, рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, рдЯреНрд░рд╛рдЗ рдХреЗ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рд╕реА / рд╕реА ++ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЕрдЬрдЧрд░ рд░реИрдкрд░ рдХреЛ рдирд╣реАрдВ рдкрд╛рдпрд╛ред
рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдЕрдкрдиреЗ C / C ++ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд┐рдЦрдирд╛ рджреБрд░реНрд▓рдн рд╣реИ: C / C ++ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рд╣реИрдВ, рдФрд░ рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпреЛрдВ? рддреЛ рдПрдХ рдЖрджрдореА рдПрдХ рдЪрд╛рд▓рд╛рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛, рдПрдХ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкрддреНрд░рд┐рдХрд╛ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдерд╛ред рддрд╛рдХрд┐ рдкрд░рд┐рдгрд╛рдо рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рд▓реЗрдЦрдХ рдЕрдХреНрд╕рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ - рдпрд╣ рд╕реА рдпрд╛ рд╕реА ++ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╡рд╣ рдЗрд╕реЗ рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдкреЗрдкрд░ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрддрд╛ рд╣реИ - рд╕реА / рд╕реА ++ рдореЗрдВ рднреА (рдареАрдХ рд╣реИ, рдХрднреА-рдХрднреА рд╡реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдРрд╕реА рдЪреАрдЬреЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ)ред
рдФрд░ рдлрд┐рд░ рднреА pymorphy2 рдПрдХ рд╢реМрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛; рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЫреЛрдЯреЗ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рдерд╛ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЯреНрд░рд╛рдИ рдХреЗ рдПрдХ рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓реЗрдиреЗ рдФрд░ рд╕рд╛рдЗрдереЙрди рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдкрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдЬрд┐рд╕рдореЗрдВ pymorphy2 рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ)ред
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ 2 рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рд╣реИрдВ:
1) рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЦреБрдж рдХреЛ рд╕рд╣реА рдирд╣реАрдВ рдард╣рд░рд╛рддрд╛ рд╣реИ (рдмрд┐рдЧрд╛рдбрд╝рдиреЗ: рдпрд╣ рд╣реБрдЖ, рдпрд╣ рдЦреБрдж рдХреЛ рдФрдЪрд┐рддреНрдп рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ), рддреЛ рдкреНрд░рдпрд╛рд╕ рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рд╣реБрдП рд╣реЛрдВрдЧреЗ;
2) рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реА рдЬрдЯрд┐рд▓рддрд╛ рд░реВрдкрд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реЗ "рджреВрд░ рдЦреАрдВрдЪ" рд╣реИ; рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреНрд░рд╛рдИ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рд╢рдмреНрдж рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╕рд╛рде рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдХрд╛рдо рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдкреЗрдбрд╝ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмреБрдирд┐рдпрд╛рджреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЬрдЧрд╣ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЬрдЧрд░ рдХреЗ рд╕рд╛рде) рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ; рдореЙрд░реНрдл рдХреЗ рдмреАрдЪ рд╣рдорд╛рд░рд╛ рдПрдХ рдЕрд▓рдЧ рдмреЙрд░реНрдбрд░ (= рдЗрдВрдЯрд░рдлрд╝реЗрд╕) рд╣реИред рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рдФрд░ рднрдВрдбрд╛рд░ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ
рд▓рд┐рдмрдбрд╛рдЯреНрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд╕рдВрдж
рдЖрдИ , рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд░реИрдкрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд▓рд┐рдЦрд╛ :
habrahabr.ru/post/9797963 ред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХреБрдЫ рдЪреАрдЬреЗрдВ рддрдп рдХреА рдЬрд╛рдиреА рдереАрдВ (рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рддреА рд╣реИ - рдореИрдВрдиреЗ рд╕реА рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрд╛ рдерд╛, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рд╕рдм рдХреБрдЫ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдФрд░ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рд╕реА рдХреЛрдб рд▓рд┐рдЦрд╛ - рдФрд░ рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реА рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдерд╛ :); рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧреА рдЖрд╡рд░рдг рдорд┐рд▓рд╛ред
рдбреЗрдЯреНрд░реА рдФрд░ "рд╕рдм рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЪреЛрд░реА!" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдпрд╣ 20-60 рд╣рдЬрд╛рд░ рд╢рдмреНрдж / рд╕реЗрдХрдВрдб рдирд┐рдХрд▓рд╛ (рдПрдХ рднрд╡рд┐рд╖реНрдпрд╡рдХреНрддрд╛ рдХреЗ рд╕рд╛рде рдФрд░ рдПрдХ рдЕрдЬрдЧрд░ рдмрд╛рдВрдзрдиреЗ рдХреА рдиреНрдпреВрдирддрдо рдХреЗ рд╕рд╛рде; рдРрд╕рд╛ рдХреНрдпреЛрдВ рдлреИрд▓рддрд╛ рд╣реИ - рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╛рдж рдирд╣реАрдВ рд╣реИ, рдореМрд╕рдо, рд╢рд╛рдпрдж), рдФрд░ рдЗрд╕рдиреЗ рд▓рдЧрднрдЧ 30 рдПрдордмреА рдореЗрдореЛрд░реА рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ред
рдЧрддрд┐ рд╕реЗ, рдкреНрд▓рдЧ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд (рдореЗрд░реЗ рд▓рд┐рдП) рдЬрдЧрд╣ рдореЗрдВ рдерд╛: рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ, рд╢рдмреНрдж рдХреЗ "рдПрдВрдбрд┐рдВрдЧ" рдХреЗ рд▓рд┐рдП рдЕрдиреБрдореЗрдп рдкрд╛рд░реНрд╕рд┐рдВрдЧреНрд╕ рдХреА рддреБрд▓рдирд╛ рдФрд░ рд╢рдмреНрджреЛрдВ рдХреА "рд╢реБрд░реБрдЖрдд" рдХреЗ рд▓рд┐рдП рдЕрдиреБрдореЗрдп рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛ (рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ)ред рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдпрд╣ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА 2 рдХреНрд░рдордмрджреНрдз рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрдпрд╛ред рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ ("рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рджреЛрдиреЛрдВ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛") рдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ "рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛ рдФрд░ рдПрдХ рд▓рдВрдмреА рд╕рдВрдХреАрд░реНрдг рдмрд╛рдЗрдирд░реА рдЦреЛрдЬ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЦреЛрдЬ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдзреАрдорд╛ рдирд┐рдХрд▓рд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдЕрдбрд╝рдЪрди рдмрдирд╛ рд░рд╣рд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд╛рдЗрдерди рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ - рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рд╕рдВрднрд╡рддрдГ, рдЖрдк рдЗрд╕ рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдЕрднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рддрд░рдл 30 рдПрдордмреА рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рддрд░рдл aot.ru рдХрдо рд╣реИ (рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ 9 рдПрдордмреА, рдлрд┐рд░ 19 рдПрдордмреА - рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ 9, рдореЗрд░реЗ рд╣рд╛рдереЛрдВ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рд╣реБрдИ)ред рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ pymorphy рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рддреЛрдк рд╕реЗ рдЧреМрд░реИрдпреЛрдВ рдХреЛ рдЧреЛрд▓реА рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдкрд░ рд╢рдмреНрджреЛрдВ рдХрд╛ рддрдирд╛рд╡), рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рд░ рд╡реЗрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдареАрдХ рд╣реИ, рдпрд╛ рдпрджрд┐ рдЖрдк рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╕реНрдореГрддрд┐ рдПрдХ рджрдпрд╛ рд╣реИ), рддреЛ рдПрдХ рдЕрд▓рдЧ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдЧреАрдЪреЗ рдХреА рдмрд╛рдбрд╝ рд▓рдЧрд╛рдирд╛ (рдХреБрдЫ zeromq рдкрд░, рдпрд╛ http рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХрд░рдирд╛) - рдЬрд┐рд╕реЗ рдЖрдк рднреА рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдбреЗрдЯрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд┐рдВрджреБрдУрдВ рдкрд░ "рднреЛрд▓рд╛" рдирд╣реАрдВ рд╣реИ, рдПрдХ рдбреЗрдЯрд░реА рдХреЛ рдирд┐рдпрдорд┐рдд рдЙрдкрд╕рд░реНрдЧ рдкреЗрдбрд╝ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 2 рдЧреБрдирд╛ рдХрдо рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЗрд╕рд▓рд┐рдП 30Mb рдЕрднреА рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛; рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рдпрджрд┐ рдЖрдк рдЖрдЧреЗ (рднрд╡рд┐рд╖реНрдпрд╡рдХреНрддрд╛, рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░) рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдзреАрдорд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЧрдбрд╝рдмрдбрд╝ред
рдорд╛рд░рд┐рд╕рд╛-trie
рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╣рд╛рд░ рдирд╣реАрдВ рдорд╛рдирдиреЗ рдФрд░ "рдП рд▓рд╛ рдорд┐рд╕реНрдЯреА" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкрд░рд┐рддреНрдпрд╛рдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдбреЗрдЯреНрд░реА рдХреЛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рдЬреЛ рдмрд╣реБрдд рдмреЗрд╡рдХреВрдл рдереА, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рдереЗ)ред рдЪреБрдирд╛рд╡ C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
рдореЗрд░рд┐рд╕рд╛-рдЯреНрд░рд╛рдИ рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛, рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдЧреБрд░реБ рд╕реБрд╕реБрдорд╛ рдпрд╛рддрд╛ рдиреЗ рд▓рд┐рдЦрд╛ рдерд╛ред рдЙрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдбреЗрдЯреНрд░рд╛рдп рдХреЗ рд╕рдорд╛рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ
рдЕрдЬрдЧрд░ рдЖрд╡рд░рдг рднреА рдмрдирд╛рдпрд╛ред
рдЬрдм рдореИрдВрдиреЗ рдорд╛рд░рд┐рд╕рд╛-рдЯреНрд░рд╛рдИ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореЗрд░реЗ рдорд╛рдереЗ рдкрд░ рдореЗрд░реА рдирдЬрд╝рд░ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЪрдврд╝ рдЧрдИред рджреЗрдЦреЗрдВ:
- рдпрджрд┐ рдЖрдк рдЕрдЬрдЧрд░ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рд╕рднреА 3 рдорд┐рд▓рд┐рдпрди рд░реВрд╕реА рд╢рдмреНрджреЛрдВ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд▓рдЧрднрдЧ 600 рдПрдордмреА рд░реИрдо (рд╕реВрдЪреА рдореЗрдВ - рд▓рдЧрднрдЧ 300 рдПрдордмреА) рд▓реЗ рдЬрд╛рдПрдЧрд╛;
- рдпрджрд┐ рдЖрдк рдПрдХ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдбреЗрдЯреНрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ 70 рдПрдордмреА рд░реИрдо рд▓реЗрдЧрд╛ - рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ;
- рдФрд░ рдпрджрд┐ рдЖрдк рдЙрд╕реА рдбреЗрдЯрд╛ рдХреЛ MARISA-Trie рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ 10 рдЧреБрдирд╛ рдХрдо - 7 рдПрдордмреА рдореЗрдореЛрд░реА рд▓реЗрдЧрд╛ред
рд╡рд╣ рдХреИрд╕реЗ рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ MARISA-Trie рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Trie рдирд╣реАрдВ рд╣реИ :) рдпрд╣ рдХреНрдпрд╛ рд╣реИ - рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдпрд╛; рд╕реНрд░реЛрдд рдореЗрдВ "рдорд╛рдВрд╕" рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ
рдЧреНрд░рд┐рдореЛрдпрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ; рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд░реНрдгрди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд╛рдкрд╛рдиреА рдореЗрдВ рд╣реИред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдорд╛рд░рд┐рд╕рд╛-рдЯреНрд░рд╛рдИ рдкреЗрдЯреНрд░реАрд╕рд┐рдпрд╛-рдЯреНрд░рд╛рдИ (
рд╡рд┐рдХреА ) рдХрд╛ рдПрдХ "рд╕рдлрд▓" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рди рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдкрд╛рдареНрдп рд╕реВрдЪрдирд╛ рдХрд╛ рдорд┐рд▓рд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдХрд╛ рдорд╛рд░рд┐рд╕рд╛-рдЯреНрд░рд╛рдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред "рд╕рдХреБрдВрдЯ" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдПрдХ рдмрд┐рдЯрдореИрдк рдХреЗ рд╕рд╛рде рдПрдиреНрдХреЛрдбреЗрдб рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдмрд╣реБрдд рдХрдо рдореЗрдореЛрд░реА рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЦреИрд░, рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ: рдорд╛рд░рд┐рд╕рд╛ рдЯреНрд░рд╛рдп рднреА рддреБрд░рдВрдд рдПрдХ "рд╕рд╣реА рд╣реИрд╢" рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХреБрдВрдЬреА рдХреЛ 0 рд╕реЗ len (trie) -1 рддрдХ рдХреА рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрдЦреНрдпрд╛ рджреА рдЧрдИ рд╣реИ, рдФрд░ 0 рд╕реЗ len (trie) -1 рддрдХ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЦреНрдпрд╛ рдПрдХ рдПрдХрд▓ рдХреБрдВрдЬреА рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ; рдЖрдк рдХреБрдВрдЬреА рдХреЛ рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рдпрд╛ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЧрддрд┐ рдореЗрдВ - рдбреЗрдЯрд╛рд░реА 10 рдмрд╛рд░ рдорд╛рд░рд┐рд╕рд╛-рдЯреНрд░рд╛рдИ рд╕реЗ рддреЗрдЬ рд╣реИред
рд╡рд╛рдкрд╕ рдЭрд╛рдВрдХрдиреЗ рдХреЗ рд▓рд┐рдПред рдорд╛рд░рд┐рд╕рд╛-рдЯреНрд░рд╛рдИ рдХреЗ рд╕рд╛рде рдбреЗрдЯреНрд░реА рдХреЗ рдПрдХ рд╕рд░рд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреВрд░реЗ рдЦреЗрдд рдореЗрдВ 5 рдПрдордмреА рдореЗрдореЛрд░реА рд╣реИ, рдФрд░ 2-5 рд╣рдЬрд╛рд░ рд╢рдмреНрджреЛрдВ / рд╕реЗрдХрдВрдб (рдмрд┐рдирд╛ рдкреВрд░реНрд╡рд╕реВрдЪрдХ рдХреЗ) рдХреА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдПрдХ рддрд░рдл - 5Mb рд╢рд╛рдВрдд рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдм рддрдХ рдПрдХ рднрд╡рд┐рд╖реНрдпрд╡рдХреНрддрд╛ рдХреЗ рдмрд┐рдирд╛)ред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░ - 2-5 рд╣рдЬрд╛рд░ рд╢рдмреНрдж / рд╕реЗрдХрдВрдб - рдзреАрд░реЗ-рдзреАрд░реЗ 20-60 рд╣рдЬрд╛рд░ рд╢рдмреНрджреЛрдВ / рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, + рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рд░рд┐рд╕рд╛-рдЯреНрд░рд╛рдЗ рд╕реЗ рдХрд╕рдХрд░ рдмрдВрдзрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ pymorphy2 рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХрд▓рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдбреЗрдЯреНрд░реА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдФрд░ рдПрдХ рдЕрдЬрдЧрд░-рд╕рдВрдЧрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдорд░реАрд╕рд╛-рдЯреНрд░рд╛рдИ ... рдорд╛рд░рд┐рд╕рд╛-рдЯреНрд░рд╛рдИ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧреА - рдпрд╣ рд╕рд╡рд╛рд▓ рд╢рд╛рдпрдж "рд╕реНрдердЧрд┐рдд" рд╣реЛрдЧрд╛, рдФрд░ pymorphy2 рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдкреНрд░рдпрд╛рд╕ рд╕реНрд╡рдпрдВ рдПрдХ рдореГрдд рдЕрдВрдд рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рд╕рд╛рдордиреЗ рдЖрдИ: 5MB ("рд▓рдЧрднрдЧ рд╕рд┐рд╕реНрдЯрдо" + рдорд░реАрд╕рд╛-рдЯреНрд░рд╛рдЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо) рдФрд░ 7MB ("рд╣рдо рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ marisa-trie рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ") - рдЖрдВрдХрдбрд╝реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдВред рдЗрди рдЖрдВрдХрдбрд╝реЛрдВ рдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдореЗрд░реА рдЖрдВрдЦреЗрдВ рдЦреЛрд▓ рджреАрдВ рдХрд┐ рдпрд╣ рдЙрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЛ рддреНрдпрд╛рдЧрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ рдЬрд┐рдирдореЗрдВ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдФрд░ рдЙрдирдХреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдореЗрдВ (рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдореЗрдВ рдЯреВрдЯреЗ рдмрд┐рдирд╛) рд╕реНрдореГрддрд┐ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рд╣рдЬ рд░реВрдк рд╕реЗ: рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ "рдЬреИрд╕рд╛ рд╣реИ" рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрдо рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЖрдкрдХреЛ рдЯреБрдХрдбрд╝реЛрдВ рд╕реЗ рд╢рдмреНрдж рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА - рд╕рдм рдХреБрдЫ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреЛрдб рд╕рд░рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВрдиреЗ "рдХреЙрдкреА рд╕рд┐рд╕реНрдЯрдо" рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛; рдбреЗрдЯрд╛рдорд░реА рдФрд░ рдорд░реАрд╕рд╛-рдЯреНрд░рд╛рдИ рдХреЗ рд╕рд╛рде рдЕрдзреВрд░реЗ рд╡рд┐рдХрд▓реНрдк рд╢реБрд░реБрдЖрддреА pymorphy2 рдХрдорд┐рдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдореБрдЭреЗ рдпрд╣ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рд╡рд╣рд╛рдБ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рд╢рдмреНрджреЛрдВ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдЯреНрд░рд╛рдЗ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рд╡рд░реНрдгрди рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдирд┐рдпрдорд┐рдд рддрд┐рдХрдбрд╝реА рдХреЗ рд╕рд╛рде рдпрд╣ (рд╢рдмреНрдж + рдбреЗрдЯрд╛ рдЙрдирдХреЗ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛) 300-400 рдХреА рдореЗрдЧрд╛рдмрд╛рдЗрдЯреНрд╕, рдбреЗрдЯрд╛рд░реА рдХреЗ рд╕рд╛рде - 200 рдХреА рдореЗрдЧрд╛рдмрд╛рдЗрдЯреНрд╕, рд▓реЗрдХрд┐рди MARISA-Trie рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ 20 рдХреА рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдлрд┐рдЯ рдХрд░ рд╕рдХрддреА рд╣реИред рдХреБрдЫ "рдирд┐рдпрдорд┐рдд" рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред рдЬреИрд╕рд╛ рдХрд┐ mystem рдХреЗ рдкреЗрдкрд░ рдореЗрдВ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдЯреНрд░рд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ (рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ, "рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛ рд╕рд┐рд╕реНрдЯрдо" рдЕрдВрдд рддрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛) рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ "рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдЕрдзрд┐рдХ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ"ред
рд╡рд╛рдкрд╕ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП
рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ, рдореИрд░рд┐рд╕рд╛-рдЯреНрд░рд╛рдИ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рдЯ рдирд╣реАрдВ рдерд╛: рдпрд╣ рддреНрд╡рд░рд┐рдд рдирд╣реАрдВ рдерд╛ - рдЬреЛ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЧрддрд┐ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд▓рд╛рдн рдХреЛ рдСрдлрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╢рдмреНрджреЛрдВ рдХреЛ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, + рдПрдкреАрдЖрдИ рдореЗрдВ "рдХрджрдо рд╕реЗ рдХрджрдо" рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рдереА рдордирдорд╛рдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдкреЗрдбрд╝ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдордиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ - рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╛рдж рдирд╣реАрдВ рд╣реИ - рдХреНрдпрд╛, рд╢рд╛рдпрдж - рдкрддреНрд░ рдХреЗ рд╕рд╣реА рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП inред рддрдм рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рд╕реНрдорд░рдг рдЖрдпрд╛ рдХрд┐ anot.ru рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХрд┐рд╕реА рднреА рд╕рдордп рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ aot.ru рд╕реЗ рд░реВрдкрд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ , рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкреИрд░рд╛ "рдмрд╛рдЗрдирд░реА рд╢рдмреНрджрдХреЛрд╢ рдкреНрд░рддрд┐рдирд┐рдзрд┐"ред рд╡рд╣ рд▓реМрдЯ рдЖрдпрд╛, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдм рд╢реБрд░реВ рд╣реБрдЖредAot.ru рдкрд░ рд▓реЗрдЦ рдореЗрдВ рд╕рдм рдХреБрдЫ "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИредрдПрдХ "рдПрд▓рд┐рдпрдиреЗрдмрд▓" рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг (рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдПрдХ рдбреИрдЯреНрд░реА рдпрд╛ рдорд░реАрд╕рд╛-рдЯреНрд░рд╛рдИ рдХреА рддрд░рд╣) рдореБрдЭреЗ рдПрдХ рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реЗрд╖ рдСрдЯреЛрдореЛрдмрд╛рдЯрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ (рдФрд░ рдкрд╕рдВрдж рд╣реИ)ред рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЖрдЯреЛрдореИрдЯрди рдХреЛ pymorphy2 рдореЗрдВ "рджрдлрди" рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рд╡рд╣рд╛рдВ рд╕реЗ рдХреБрдЫ рднреА рдкреБрди: рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдкрд╛рдЗрдореЙрд░реНрдлреА рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдбреАрдмрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкреЗрдореНрдл рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рднреАрддрд░ рдЬрдЯрд┐рд▓рддрд╛ рдареАрдХ рд╕реЗ рдЬрдорд╛ рд╣реЛрдЧреАред рдореИрдВрдиреЗ рдЖрдорддреМрд░ рдкрд░ рдЙрд╕ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рдЕрдкрдиреА рдЖрдВрдЦреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдпрд╛, рд╕реЛрдЪрд╛ "рд╣рдореНрдо рд╣рдореНрдо, рдмреБрд░рд╛" рдФрд░ рдпрд╣ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИредрд▓реЗрдХрд┐рди рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрдгреЛрдВ рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрднрд╡рддрдГ, рдпрд╣ рд╢реБрд░реВ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ "рдХреНрд▓реЛрди рд╕рд┐рд╕реНрдЯрдо" рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЖрдЯреЛрдореЛрдЯ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдСрдЯреЛрдореЗрдЯреЛрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рдорд╛рди рд╣реИDAWG , рдЬрд┐рд╕рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреЛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдВрдд рдореЗрдВ рд╕реМрдВрдкреЗ рдЧрдП рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде)ред рдФрд░ рдпрд╣ рдХрд┐ рд╡рд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдСрдкрд░реЗрд╢рди рдЙрд╕реА рдПрдкреАрдЖрдИ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд┐рд░рддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрдЯреНрд░реА рдФрд░ рдорд░реАрд╕рд╛-рдЯреНрд░рд╛рдЗ рдореЗрдВ рдерд╛редрдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ "рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдХрдард┐рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ: рдХреИрд╢ рдЕрдорд╛рдиреНрдп рдФрд░ рдирд╛рдордХрд░рдг рдХреА рдЪреАрдЬреЗрдВред" рдореБрдЭреЗ "рдХреИрд╢ рдЕрдорд╛рдиреНрдп" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ "рдирд╛рдордХрд░рдг рдЪреАрдЬреЗрдВ" рдпрд╣рд╛рдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣реИрдВредрдЖрдк рдРрд╕реЗ рдХреНрд╖рдгреЛрдВ рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рдмреЗрд╡рдХреВрдл рд▓рдЧрддреЗ рд╣реИрдВ; рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдерд╛, рд╕рдм рдХреБрдЫ рдореЗрд░реА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реА рдЖрдБрдЦреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдерд╛, рдФрд░ рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рдмрд╛рд░ (рдорд╢реАрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ DAAG рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ) рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИредрддреЛ, рдирдИ рдпреЛрдЬрдирд╛ рдпрд╣ рдереА: рдкреАрдЯрд╛ рдЯреНрд░реИрдХ рдкрд░- C / C ++ рдореЗрдВ DAWG рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЦреЛрдЬреЗрдВ;
- рдбреЗрдЯрд╛рдкреА рдФрд░ рдорд░реАрд╕рд╛-рдЯреНрд░рд╛рдИ рдХреЗ рд╕рдорд╛рди рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рдмрдирд╛рдПрдВ;
- DAWG рдореЗрдВ рд╕рднреА рд╢рдмреНрдж рд▓рд┐рдЦреЗрдВ (рддреБрд░рдВрдд рдЙрдирдХреЗ рд╡реНрдпрд╛рдХрд░рдгрд┐рдХ рд░реВрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде)
- рдмреЛрдирд╕ - рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП DAWGs рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЬрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдПрдВред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╢рдмреНрджрд╛рд╡рд▓реА рд╢рдмреНрджреЛрдВ рдХрд╛ рд░реВрдкрд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд╡рд▓ DAWG рд╕реЗ рд╢рдмреНрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ; рд╕рд░рд▓рддрдо рдорд╛рдорд▓реЗ рдореЗрдВ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдХрд┐рд╕реА рд╢рдмреНрдж рдореЗрдВ рдХреЗрд╡рд▓ 1 рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдХреЗрд╡рд▓ рд╡реНрдпрд╛рдХрд░рдгрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) рдпрд╣ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИредDAWG ( dawgdic ) рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрд╕реА рд╕реБрд╕реБрдо рдпрд╛рддрд╛ рдореЗрдВ рдорд┐рд▓рд╛, рдЬрд┐рд╕реЗ marisa-trie рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛; рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЬрдЧрд░ рдЖрд╡рд░рдг рдмрдирд╛рдпрд╛: github.com/kmike/DAWG рдФрд░ рдПрдХ рдЕрдЬрдЧрд░ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХрд╛ "рдкрд╛рдардХ": github.com/kmike/DAWG-Python (рдЬрд┐рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)редрд╕рдВрдкреВрд░реНрдг рдбрд┐рдХреНрд╢рдирд░реА, рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдмрд┐рдирд╛, DAWG рдореЗрдВ рд▓рдЧрднрдЧ 3MB, рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ 7MB (= рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде) рд▓рд┐рдпрд╛ред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрдЬрдЧрд░ рдбреЗрдЯрд╛ рдХреЛ "рдЬреИрд╕рд╛ рд╣реИ" рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрдИ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдореЗрдореЛрд░реА рд▓реЗрддрд╛ рд╣реИредрд╡рд╣ рд╕рдм рдмрдирд╛ рд░рд╣рд╛ рдЬрд┐рд╕реЗ pymorphy2 рд▓рд┐рдЦрдирд╛ рдерд╛ :)рд▓реЗрдЦ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЕрдВрддрд╣реАрди рд╣реИ, рд▓реЗрдХрд┐рди pymorphy2 рдХреЛ рдЕрдм рдЕрдВрджрд░ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдм рддрдХ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдкрд╛рда рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛; рдХреИрд╕реЗ pymorphy2 рдХреЗ рдЕрдВрджрд░ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреА рдЬрд╛рддреА рд╣реИ рд╕реБрдВрджрд░ (рдирд┐рд░рд░реНрдердХ?) рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рд╣реИ , рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рднреАред рдореИрдВ рдЕрдм рднреА рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ рдХрд┐ pymorphy2 рдкрд╛рдпрдерди рд▓реЗрдореЗрдЯрд╛рдЗрдЬрд╝рд░ рдХреНрд▓реЛрди рдирд╣реАрдВ рд╣реИ, рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди aot.ru рдХреА рдЬрд╛рдирдХрд╛рд░реА , рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдмрд╣реБрдд рдорджрдж рдХрд░рддреА рд╣реИредрдпрд╣рд╛рдБ рджреЛ рдЕрдЬреАрдм рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╣реИрдВ (рд▓реИрдкрдЯреЙрдк рдкреНрд░реЛрд╕реЗрд╕рд░ 1.8 Ghz, рдкрд╛рдпрдерди 3.3 рдХреЗ рддрд╣рдд DAWG рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ PyPy 1.9 рдХреЗ рддрд╣рдд DAWG-Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ):Memory usage: 13.8M dictionary, 25.4M total (load time 0.14s) py33 runtests: commands[1] benchmarking MorphAnalyzer(): morph.parse(w) 29950 words/sec morph.parse(w) 47474 words/sec (considering word frequencies) morph.word_is_known(w) 244816 words/sec [p.normal_form for p in morph.parse(w)] 27807 words/sec [p.normalized for p in morph.parse(w)] 18231 words/sec [p.lexeme for p in morph.parse(w)] 3421 words/sec [{'NOUN'} in p.tag for p in morph.parse(w)] 23862 words/sec [p.tag.POS == 'NOUN' for p in morph.parse(w)] 22157 words/sec morph.tag(w): 96342 words/sec (considering word frequencies) morph.tag(w): 46767 words/sec morph.tag(w): 46935 words/sec (umlauts removed from input) morph.tag(w): 36331 words/sec (str(tag) called) benchmarking MorphAnalyzer(result_type=None): morph.parse(w) 35088 words/sec morph.parse(w) 62431 words/sec (considering word frequencies)
Memory usage: 40.5M dictionary, 84.8M total (load time 0.39s) pypy runtests: commands[1] benchmarking MorphAnalyzer(): morph.parse(w) 41360 words/sec morph.parse(w) 108858 words/sec (considering word frequencies) morph.word_is_known(w) 243742 words/sec [p.normal_form for p in morph.parse(w)] 51728 words/sec [p.normalized for p in morph.parse(w)] 37551 words/sec [p.lexeme for p in morph.parse(w)] 14612 words/sec [{'NOUN'} in p.tag for p in morph.parse(w)] 44878 words/sec [p.tag.POS == 'NOUN' for p in morph.parse(w)] 45129 words/sec morph.tag(w): 133086 words/sec (considering word frequencies) morph.tag(w): 60049 words/sec morph.tag(w): 62567 words/sec (umlauts removed from input) morph.tag(w): 52632 words/sec (str(tag) called) benchmarking MorphAnalyzer(result_type=None): morph.parse(w) 60777 words/sec morph.parse(w) 124226 words/sec (considering word frequencies)
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ (рдХ) рд╕рдВрдЦреНрдпрд╛ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ "рдЕрдВрджрд░" рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИрдВ (рд╕реА ++ рдЖрд╡рд░рдг + рджреБрднрд╛рд╖рд┐рдпрд╛ рдмрдирд╛рдо рдЬреЗрдЯ рд╕рдВрдХрд▓рдХ), рдФрд░ (рдЦ) рдХрд┐ PyPy рддреЗрдЬ рд╣реИред
C ++ рдореЗрдВ DAWG рдХрд╛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди (рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдЬрдЧрд░ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рд╛рдЗрдерди рд░реИрдкрд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП) PyPy рдХреЗ рддрд╣рдд DAWG-Python рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдЧреБрдирд╛ рддреЗрдЬ рд╣реИ, рдФрд░ pymorphot2 (рдЬреЛ рдХрд┐ рд╕рдмрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдерд╛) рдХреЗ рд╢реБрд░реБрдЖрддреА рд╕рдВрд╕реНрдХрд░рдг CPython рдХреЗ рддрд╣рдд рддреЗрдЬ рдереЗред рд╕рдордп рдХреЗ рд╕рд╛рде, рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдмрдбрд╝реА рд╣реЛ рдЧрдИрдВ, рдХреЛрдб рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛, pymorphy2 рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛ (рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ 200 + рд╣рдЬрд╛рд░ рд╢рдмреНрдж / рд╕реЗрдХрдВрдб disassembled рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдФрд░ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ); рддреЗрдЬреА рд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ "рдЖрдЙрдЯрд╡реЗ" рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ - рдФрд░ PyPy pymorphy2 рдХреЗ рддрд╣рдд рдЕрдм рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕реАрдкреАрдереЙрди рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХреИрд╕реЗ рддреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдП - рд╕рд╛рдЗрдерди рдореЗрдВ рдХреБрдЫ рдФрд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ (рд╡реИрд╕реЗ: рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ); PyPy рдХреЗ рд╕рд╛рде рдпрд╣ рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрд╕рд▓реА рдкрд╛рда рдореЗрдВ 100 рд╣рдЬрд╛рд░ рд╢рдмреНрдж / рд╕реЗрдХрдВрдб рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╛рдпрдерди 3.3 (рд╡реНрдпрд╛рдХрд░рдг рд╕рдВрдмрдВрдзреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛) рдФрд░ PyPy (рдкреВрд░реНрдг рдкрд╛рд░реНрд╕рд┐рдВрдЧ рджреЛрдиреЛрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реВрдк рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде) рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП: "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" mystem (рд▓рд┐рдЦрд┐рдд, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, C ++ рдореЗрдВ) рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ (рд╢реБрд░реБрдЖрддреА рдЪрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдХреЗрд╡рд▓ рдбреЗрдврд╝ рд╕реЗ рджреЛ рдЧреБрдирд╛ рддреЗрдЬ, рдФрд░ рдЙрд╕реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕реНрдореГрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА; рдЗрд╕рд╕реЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ - рд╢рд╛рдпрдж рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ - рдХрд┐ рддрдВрддреНрд░ рдлрд┐рд░ рднреА рдХрдИ рддреНрд░рд┐ рдХреЗ рд╕рд╛рде рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рдпрджрд┐ рд╢рдмреНрдж рдЕрдкрдиреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдереЗ, рддреЛ C ++ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдордЬрдмреВрддреА рд╕реЗ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рддрдВрддреНрд░ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдпрд╣ рдРрд╕рд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ рдЕрд╕рдВрддреБрд▓рд┐рдд рдмрдХрдмрдХ рдХреЗ рд╕рд╛рдеред
рдпрджрд┐ рдЖрдк DAWG рдХреЗ рдпрд╛ рддреЛ PyPy рдпрд╛ C ++ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ pymorphy2 рдЕрднреА рднреА рдХрдИ рддреНрд╡рд░рд┐рдд рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ (рдЕрдиреБрдорд╛рдиреЛрдВ рд╕реЗ - рдПрдХ рджрд░реНрдЬрди рдмрд╛рд░) pymorphy1 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рднреА рддреНрд╡рд░рдг рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде - рдареАрдХ рд╣реИ, рдЗрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдореИрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рдмрдирд╛ рд╣реБрдЖ рд╣реИ - pymorphy1 рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рдЕрдм рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реИрдВ рдЬреЛ pymorphy2 рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, django рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╢рдмреНрдж рдФрд░ рдЙрдкрдирд╛рдореЛрдВ рдХреА рдШреЛрд╖рдгрд╛), рд▓реЗрдХрд┐рди рдмрд┐рдЯрдмрдХреЗрдЯ рдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореИрдВрдиреЗ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ред рдПрдХ рдЕрдиреНрдп рдкрд┐рдЫрдбрд╝реЗ рдЕрд╕рдВрдЧрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЬрд╛рд░реА рдХрд░рдирд╛, рдХрд┐рд╕реА рддрд░рд╣ рдмреЗрд╡рдХреВрдлреА рд╣реИ :) рдЗрд╕рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдЕрдзрд░ рдореЗрдВ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╣рд░ рдЪреАрдЬ рдкрд░ рдХреЛрдИ рд╣рд╛рде рдирд╣реАрдВ рд╣реИред
- рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ pymorphy1 рд╕реЗ рд▓рд╛рдкрддрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА;
- OpenCorpora рд╕реЗ рдХреЛрдИ рднреА рдорджрдж рдФрд░ pymorphy2 рднреА рдорджрдж;
- рдЯреНрд░реИрдХрд░ рдореЗрдВ рдХрдИ рдЦреБрд▓реЗ рдмрдЧ (рдХрдЯреНрдЯрд░ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рдЧреНрд░реА) рд╣реИрдВ;
- pymorphy2 рдореЗрдВ рдЕрдм рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрджрд┐рдо рдЯреЛрдХрди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЖрдк рдПрдХ рдмреЗрд╣рддрд░ рдЯреЛрдХрдирд░ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рд╡рд╣рд╛рдВ рдпрд╣ рд╕рдордЭрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ pymorphy2.units.by_shape.py рд╕реЗ рдХрдХреНрд╖рд╛рдПрдВ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рд╕рд╣рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддреА рд╣реИрдВ;
- рд╕реАрдПрд▓рдЖрдИ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ pymorphy2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реНрдг рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ;
- рдЖрдк pymorphy2 рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпрд╛рдБ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рджреЗрдЦреЗрдВ рдХрд┐ pymorphy2.units рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдХреИрд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ) - рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрдЪреНрдЫрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ (+ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдФрд░ рдорд╛рдирдХ рд╡рд┐рддрд░рдг рдореЗрдВ рдХреБрдЫ рдирдпрд╛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ);
- рдареАрдХ рд╣реИ, рдЖрдк рдмрд╕ pymorphy2 рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдиреЗ рднрд╛рдЧ рд▓рд┐рдпрд╛ pymorphy рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрдВрднреАрд░ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛, рдФрд░ рдЗрд╕ рд╕рдм рд╕реЗ рдмрд╣реБрдд рджреВрд░ pymorphy2 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛; рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХрд╛рдо рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдП (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред рдЗрд╕рдХреА рдорджрдж рдХреЗ рдмрд┐рдирд╛, рдореБрдЭреЗ рдХрднреА рднреА рдкреНрдпреЛрд░рдореЛрдлреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреА, рдпрд╛ рд╕рдм рдХреБрдЫ pymorphy2 рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рд╣реЛрдЧреАред
рдФрд░ pymorphy2 рдореЗрдВ рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЧрдВрднреАрд░ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛ рд╣реИ, рд╡реИрд╕реЗ :)
рд╕рдВрджрд░реНрдн