рдЗрд╕реЗ рддреЗрдЬрд╝реА рд╕реЗ рд▓реЗрдЯрдорд╛рдЗрдЬрд╝ рдХрд░реЗрдВ (PyMorphy2, PyMystem3 рдФрд░ рдХреБрдЫ рдЬрд╛рджреВ)

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

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



Pymorphy2


рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдореЗрдВ рд╕реЗ рдПрдХ PyMorphy2 рд╣реИ - рдпрд╣ рд▓рдЧрднрдЧ рд╣рд░ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рдиреЗ рдЦреБрдж рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрд╛рдпрд╛, рдЬрдм рддрдХ рдХрд┐ рдЗрд╕реЗ рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд▓реЗрдореЗрдЯреЗрдЯрд╛рдЗрдЬреЗрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ, рдпреЗ 100 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЫреЛрдЯреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИрдВ)ред рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рдЗрддрдиреА рдорд╛рддреНрд░рд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PyMorphy2 рдореЗрдВ рд▓рдЧрднрдЧ 10 рдШрдВрдЯреЗ рд▓рдЧреЗрдВрдЧреЗ, рдЬрдмрдХрд┐ рдЗрд╕ рд╕рдордп рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб рдФрд╕рддрди рд▓рдЧрднрдЧ 30% (Intel Core i7 7740X) рд╣реЛрдЧрд╛ред

Pymystem3


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

рдХреБрдЫ рдЬрд╛рджреВ


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

рдкрд╛рдпрдерди рд╕рдорд╛рдзрд╛рди рдХреЛрдб:

def checkExecTimeMystemOneText(texts):
    lol = lambda lst, sz: [lst[i:i+sz] for i in range(0, len(lst), sz)]
    txtpart = lol(texts, 1000)
    res = []
    for txtp in txtpart:
        alltexts = ' '.join([txt + ' br ' for txt in txtp])

        words = mystem.lemmatize(alltexts)
        doc = []
        for txt in words:
            if txt != '\n' and txt.strip() != '':
                if txt == 'br':
                    res.append(doc)
                    doc = []
                else:
                    doc.append(txt)

рд╣рдордиреЗ рд╕рдВрдШ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╕реЗ 1000 рджрд╕реНрддрд╛рд╡реЗрдЬ рд▓рд┐рдП, рдЙрдирдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрдХ "br" рдерд╛ (рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд░реВрд╕реА рдореЗрдВ рдЧреНрд░рдВрдереЛрдВ, рдФрд░ рд▓реИрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдерд╛)ред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдиреЗ рд▓реЗрдореЗрдЯреЗрдЯрд╛рдЗрдЬреЗрд╢рди рдХреЛ рдХрд╛рдлреА рддреЗрдЬ рдХрд░ рджрд┐рдпрд╛: рдФрд╕рддрди, рдпрд╣ рд╕рднреА 100 рд╣рдЬрд╛рд░ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 25 рдорд┐рдирдЯ рдирд┐рдХрд▓рд╛, рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб 20-40% рдерд╛ред рд╕рдЪ рд╣реИ, рдпрд╣ рд╕рдорд╛рдзрд╛рди рд░реИрдо рдХреЛ рдЕрдзрд┐рдХ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ: рдФрд╕рддрди, рдпрд╣ рд▓рдЧрднрдЧ 3-7 рдЬреАрдмреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдпрджрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рд╕рдВрдпреБрдХреНрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрдЧрд╛, рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдкрд╛рда рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рднреА рддреЗрдЬреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдерд╛рдиреАрдп рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рджрд┐рдЦрд╛рддреА рд╣реИ (Intel Core i7 7740X, 32 GB RAM):
рддрд░реАрдХрд╛рд╕рдордпRAM (Mb)рдкреНрд░рддрд┐рд╢рдд
Pymorphy2~ реп .рел рдШрдВрдЯреЗ500 - 600 рд░реБ25 - 30%
PyMystem3 1 рд╡рд╛рдХреНрдп рджреНрд╡рд╛рд░рд╛~ 16 рдШрдВрдЯреЗрелрежреж - 700режреж0 - 1%
1000 рдСрдлрд░ рдХреЗ рд╕рд╛рде PyMystem326 рдорд┐рдирдЯ2000 - 700025 - 40%

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

рдорд┐рдЦрд╛рдЗрд▓ рдХрдмрдХреЛрд╡, рд╡рд░рд┐рд╖реНрда рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░,
рдЕрдиреНрдирд╛ рдорд┐рдЦрд╛рдЗрд▓реЛрд╡рд╛, рдбреЗрдЯрд╛
рдЦрдирди рдХреЗ рдкреНрд░рдореБрдЦ , рдХреЛрдбреЗрдХреНрд╕ рдХрдВрд╕реЛрд░реНрдЯрд┐рдпрдо

All Articles