HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Определение</a></li>
1 <ul><li><a>Определение</a></li>
2 <li><a>Встроенные возможности</a></li>
2 <li><a>Встроенные возможности</a></li>
3 <li><a>Начало работы</a><ul><li><a>Морфологический анализ</a></li>
3 <li><a>Начало работы</a><ul><li><a>Морфологический анализ</a></li>
4 <li><a>Склонение</a></li>
4 <li><a>Склонение</a></li>
5 <li><a>Согласование с числительными</a></li>
5 <li><a>Согласование с числительными</a></li>
6 </ul></li>
6 </ul></li>
7 </ul><p>Python - простой и понятный для новичков в программировании язык. Он выступает как самостоятельным инструментом разработки небольших и средних проектов, так и дополнительным элементом в крупных программах. Является одним из лидеров по популярности среди всех существующих языков разработки. Поддерживает не только простой и понятный синтаксис, но и богатый выбор библиотек. С их помощью удается разрабатывать сервисы и проекты намного быстрее.</p>
7 </ul><p>Python - простой и понятный для новичков в программировании язык. Он выступает как самостоятельным инструментом разработки небольших и средних проектов, так и дополнительным элементом в крупных программах. Является одним из лидеров по популярности среди всех существующих языков разработки. Поддерживает не только простой и понятный синтаксис, но и богатый выбор библиотек. С их помощью удается разрабатывать сервисы и проекты намного быстрее.</p>
8 <p>Одной из самых полезных библиотек при работе с текстовыми данными в Python выступает Pymorphy. Именно об ней пойдет речь далее. Предстоит выяснить, что это за библиотека, для каких целей она используется. Также нужно разобраться в том, как установить ее для дальнейшей эксплуатации.</p>
8 <p>Одной из самых полезных библиотек при работе с текстовыми данными в Python выступает Pymorphy. Именно об ней пойдет речь далее. Предстоит выяснить, что это за библиотека, для каких целей она используется. Также нужно разобраться в том, как установить ее для дальнейшей эксплуатации.</p>
9 <h2>Определение</h2>
9 <h2>Определение</h2>
10 <p>Pymorphy2 - это морфологический анализатор. Он разработан на языке Питон и используется для программ и проектов, создаваемых на нем. Помогает выполнить лемматизацию слов и их дальнейший анализ. Умеет склонять слова по заданным грамматическим характеристикам. Данный проект работает со словарем OpenCorpora. Если то или иное слово ему незнакомо, система строит свои собственные гипотезы.</p>
10 <p>Pymorphy2 - это морфологический анализатор. Он разработан на языке Питон и используется для программ и проектов, создаваемых на нем. Помогает выполнить лемматизацию слов и их дальнейший анализ. Умеет склонять слова по заданным грамматическим характеристикам. Данный проект работает со словарем OpenCorpora. Если то или иное слово ему незнакомо, система строит свои собственные гипотезы.</p>
11 <p>Pymorphy распространяется по лицензии MIT - свободно. Это делает разработку доступной, а ее использование возможно в совершенно разных проектах: от небольших бесплатных до крупных коммерческих. Рассматриваемая библиотека используется для морфологического анализа и склонения слов. Она поддерживает несколько языков: украинский и русский.</p>
11 <p>Pymorphy распространяется по лицензии MIT - свободно. Это делает разработку доступной, а ее использование возможно в совершенно разных проектах: от небольших бесплатных до крупных коммерческих. Рассматриваемая библиотека используется для морфологического анализа и склонения слов. Она поддерживает несколько языков: украинский и русский.</p>
12 <h2>Встроенные возможности</h2>
12 <h2>Встроенные возможности</h2>
13 <p>Перед тем как будет выполнена установка Pymorphy2, необходимо побольше узнать о данной разработке. Она используется не слишком часто, но в некоторых ситуациях бывает очень полезна.</p>
13 <p>Перед тем как будет выполнена установка Pymorphy2, необходимо побольше узнать о данной разработке. Она используется не слишком часто, но в некоторых ситуациях бывает очень полезна.</p>
14 <p>К основным возможностям Pymorphy2 относят:</p>
14 <p>К основным возможностям Pymorphy2 относят:</p>
15 <ul><li>приведение слов к нормальной форме;</li>
15 <ul><li>приведение слов к нормальной форме;</li>
16 <li>постановка слова в нужной форме;</li>
16 <li>постановка слова в нужной форме;</li>
17 <li>поиск синонимов указанных слов;</li>
17 <li>поиск синонимов указанных слов;</li>
18 <li>определение части речи;</li>
18 <li>определение части речи;</li>
19 <li>поиск антонимов слов;</li>
19 <li>поиск антонимов слов;</li>
20 <li>генерация морфологических и синтаксических шаблонов для автоматической генерации текста;</li>
20 <li>генерация морфологических и синтаксических шаблонов для автоматической генерации текста;</li>
21 <li>синтаксический разбор предложений;</li>
21 <li>синтаксический разбор предложений;</li>
22 <li>возврат грамматической информации об имеющемся слове.</li>
22 <li>возврат грамматической информации об имеющемся слове.</li>
23 </ul><p>Также Pymorphy умеет работать со словарем OpenCorpora, который представляет собой проект по созданию открытого и свободного корпуса русского языка. А еще - обрабатывать слова, которые отсутствуют в упомянутом ранее словаре.</p>
23 </ul><p>Также Pymorphy умеет работать со словарем OpenCorpora, который представляет собой проект по созданию открытого и свободного корпуса русского языка. А еще - обрабатывать слова, которые отсутствуют в упомянутом ранее словаре.</p>
24 <p>Для Python Pymorphy2 имеет одно огромное преимущество - поддержку буквы "ё". Она нужна для обучения иностранцев русскому языку. Именно поэтому соответствующая библиотека выбирается разработчиками в качестве ключевого инструмента склонения слов в модуле контроля знаний.</p>
24 <p>Для Python Pymorphy2 имеет одно огромное преимущество - поддержку буквы "ё". Она нужна для обучения иностранцев русскому языку. Именно поэтому соответствующая библиотека выбирается разработчиками в качестве ключевого инструмента склонения слов в модуле контроля знаний.</p>
25 <h2>Начало работы</h2>
25 <h2>Начало работы</h2>
26 <p>Что собой представляет изучаемая библиотека, понятно. Теперь можно приступить к ее активному использованию. Для начала изучаемый "пакет" нужно установить. Это делается при помощи пакетного менеджера pip:</p>
26 <p>Что собой представляет изучаемая библиотека, понятно. Теперь можно приступить к ее активному использованию. Для начала изучаемый "пакет" нужно установить. Это делается при помощи пакетного менеджера pip:</p>
27 <p>pip install pymorphy2</p>
27 <p>pip install pymorphy2</p>
28 <p>Если планируется работать с оптимизированной версией, рекомендуется воспользоваться командой:</p>
28 <p>Если планируется работать с оптимизированной версией, рекомендуется воспользоваться командой:</p>
29 <p>pip install pimorphy2[fast]</p>
29 <p>pip install pimorphy2[fast]</p>
30 <p>При работе с оптимизированной версией программисту может потребоваться настроенное окружение для сборки (компилятор C/C++). Также необходимо помнить, что словари будут распространяться отдельными пакетами. А именно:</p>
30 <p>При работе с оптимизированной версией программисту может потребоваться настроенное окружение для сборки (компилятор C/C++). Также необходимо помнить, что словари будут распространяться отдельными пакетами. А именно:</p>
31 <ul><li>pymorphy2-dicts-ru - для русского языка;</li>
31 <ul><li>pymorphy2-dicts-ru - для русского языка;</li>
32 <li>pymorphy2-dicts-uk - для украинского языка (является экспериментальным).</li>
32 <li>pymorphy2-dicts-uk - для украинского языка (является экспериментальным).</li>
33 </ul><p>Время от времени эти "пакеты" обновляются. Их необходимо иногда обновлять. Для этого предстоит использовать команды:</p>
33 </ul><p>Время от времени эти "пакеты" обновляются. Их необходимо иногда обновлять. Для этого предстоит использовать команды:</p>
34 <p>При подготовке к работе с библиотекой рекомендуется использовать более-менее современные версии setuptools и pip. Иначе с установкой могут возникнуть некоторые трудности.</p>
34 <p>При подготовке к работе с библиотекой рекомендуется использовать более-менее современные версии setuptools и pip. Иначе с установкой могут возникнуть некоторые трудности.</p>
35 <h3>Морфологический анализ</h3>
35 <h3>Морфологический анализ</h3>
36 <p>Теперь можно перейти к изучению возможных способов применения рассматриваемой библиотеки. Она активно задействована при морфологическом анализе. Так называется определение характеристик слова на основе того, как оно пишется. Информация о соседних словах при его реализации не задействована.</p>
36 <p>Теперь можно перейти к изучению возможных способов применения рассматриваемой библиотеки. Она активно задействована при морфологическом анализе. Так называется определение характеристик слова на основе того, как оно пишется. Информация о соседних словах при его реализации не задействована.</p>
37 <p>В Pymorphy для морфологического анализа используется отдельный класс. Он называется MorphAnalyzer:</p>
37 <p>В Pymorphy для морфологического анализа используется отдельный класс. Он называется MorphAnalyzer:</p>
38 <p>По умолчанию здесь используется русский язык. Если по тем или иным причинам требуется использовать украинский, стоит установить соответствующий пакет-словарь и обработать такую команду:</p>
38 <p>По умолчанию здесь используется русский язык. Если по тем или иным причинам требуется использовать украинский, стоит установить соответствующий пакет-словарь и обработать такую команду:</p>
39 <p>При помощи метода MorpAnalyzer.parse() предлагается разобрать отдельное слово. Он возвращает один или несколько ответов типа Parse с информацией о том, как слово может быть разобрано.</p>
39 <p>При помощи метода MorpAnalyzer.parse() предлагается разобрать отдельное слово. Он возвращает один или несколько ответов типа Parse с информацией о том, как слово может быть разобрано.</p>
40 <p>Каждый разбор предусматривает тег. Он представляет собой набор граммем, которые характеризуют слово. В качестве примера можно взять тег "VERB, perf, intr, plur, past, indc". Тут слово:</p>
40 <p>Каждый разбор предусматривает тег. Он представляет собой набор граммем, которые характеризуют слово. В качестве примера можно взять тег "VERB, perf, intr, plur, past, indc". Тут слово:</p>
41 <ul><li>глагол - VERB;</li>
41 <ul><li>глагол - VERB;</li>
42 <li>совершенного вида - perf;</li>
42 <li>совершенного вида - perf;</li>
43 <li>непереходный - intr;</li>
43 <li>непереходный - intr;</li>
44 <li>множественного числа - plur;</li>
44 <li>множественного числа - plur;</li>
45 <li>прошедшего времени - past;</li>
45 <li>прошедшего времени - past;</li>
46 <li>изъявительного наклонения - indc.</li>
46 <li>изъявительного наклонения - indc.</li>
47 </ul><p>Каждое слово имеет нормальную форму. Ее можно получить при помощи атрибутов normal_form или normalized.</p>
47 </ul><p>Каждое слово имеет нормальную форму. Ее можно получить при помощи атрибутов normal_form или normalized.</p>
48 <h3>Склонение</h3>
48 <h3>Склонение</h3>
49 <p>Рассматриваемая библиотека умеет склонять имеющиеся слова. Для этого сначала нужно понять, в какой форме они стоят сейчас, какие лексемы имеют. Для этого нужно разобраться слово и выбрать из предложенных вариантов оптимальный (правильный).</p>
49 <p>Рассматриваемая библиотека умеет склонять имеющиеся слова. Для этого сначала нужно понять, в какой форме они стоят сейчас, какие лексемы имеют. Для этого нужно разобраться слово и выбрать из предложенных вариантов оптимальный (правильный).</p>
50 <p>Пусть для разбора используется слово "бутявка". Здесь берется первый вариант разбора:</p>
50 <p>Пусть для разбора используется слово "бутявка". Здесь берется первый вариант разбора:</p>
51 butyavka = morph.parse('бутявка')[0] &gt;&gt;&gt; butyavka Parse(word='бутявка', tag=OpencorporaTag('NOUN,inan,femn sing,nomn'), normal_form='бутявка', score=1.0, methods_stack=((&lt;DictionaryAnalyzer&gt;, 'явка', 8, 0), (&lt;UnknownPrefixAnalyzer&gt;, 'бут')))<p>После получения объекта Parse можно склонять слово. Для этого используется метод Parse.inflect():</p>
51 butyavka = morph.parse('бутявка')[0] &gt;&gt;&gt; butyavka Parse(word='бутявка', tag=OpencorporaTag('NOUN,inan,femn sing,nomn'), normal_form='бутявка', score=1.0, methods_stack=((&lt;DictionaryAnalyzer&gt;, 'явка', 8, 0), (&lt;UnknownPrefixAnalyzer&gt;, 'бут')))<p>После получения объекта Parse можно склонять слово. Для этого используется метод Parse.inflect():</p>
52 butyavka.inflect({'gent'}) # нет кого? (родительный падеж) Out[13]: Parse(word='бутявки', tag=OpencorporaTag('NOUN,inan,femn sing,gent'), normal_form='бутявка', score=1.0, methods_stack=((&lt;DictionaryAnalyzer&gt;, 'явки', 8, 1), (&lt;UnknownPrefixAnalyzer&gt;, 'бут'))) &gt;&gt;&gt; butyavka.inflect({'plur', 'gent'}) # кого много? Parse(word='бутявок', tag=OpencorporaTag('NOUN,inan,femn plur,gent'), normal_form='бутявка', score=1.0, methods_stack=((&lt;DictionaryAnalyzer&gt;, 'явок', 8, 8), (&lt;UnknownPrefixAnalyzer&gt;, 'бут')))<p>А при помощи атрибута Parse.lexeme можно извлечь лексему имеющегося слова.</p>
52 butyavka.inflect({'gent'}) # нет кого? (родительный падеж) Out[13]: Parse(word='бутявки', tag=OpencorporaTag('NOUN,inan,femn sing,gent'), normal_form='бутявка', score=1.0, methods_stack=((&lt;DictionaryAnalyzer&gt;, 'явки', 8, 1), (&lt;UnknownPrefixAnalyzer&gt;, 'бут'))) &gt;&gt;&gt; butyavka.inflect({'plur', 'gent'}) # кого много? Parse(word='бутявок', tag=OpencorporaTag('NOUN,inan,femn plur,gent'), normal_form='бутявка', score=1.0, methods_stack=((&lt;DictionaryAnalyzer&gt;, 'явок', 8, 8), (&lt;UnknownPrefixAnalyzer&gt;, 'бут')))<p>А при помощи атрибута Parse.lexeme можно извлечь лексему имеющегося слова.</p>
53 <h3>Согласование с числительными</h3>
53 <h3>Согласование с числительными</h3>
54 <p>Иногда нужно поставить тот или иной элемент предложения в форму, которая зависит от числительного. Для этого используется метод Parse.make_agree_with_number. Выглядит это так:</p>
54 <p>Иногда нужно поставить тот или иной элемент предложения в форму, которая зависит от числительного. Для этого используется метод Parse.make_agree_with_number. Выглядит это так:</p>
55 <p>Все это - только начало. Чтобы научиться пользоваться Pymorphy2 на профессиональном уровне, рекомендуется пройти дистанционные компьютерные курсы.</p>
55 <p>Все это - только начало. Чтобы научиться пользоваться Pymorphy2 на профессиональном уровне, рекомендуется пройти дистанционные компьютерные курсы.</p>
56 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
56 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
57  
57