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] >>> butyavka Parse(word='бутявка', tag=OpencorporaTag('NOUN,inan,femn sing,nomn'), normal_form='бутявка', score=1.0, methods_stack=((<DictionaryAnalyzer>, 'явка', 8, 0), (<UnknownPrefixAnalyzer>, 'бут')))<p>После получения объекта Parse можно склонять слово. Для этого используется метод Parse.inflect():</p>
51
butyavka = morph.parse('бутявка')[0] >>> butyavka Parse(word='бутявка', tag=OpencorporaTag('NOUN,inan,femn sing,nomn'), normal_form='бутявка', score=1.0, methods_stack=((<DictionaryAnalyzer>, 'явка', 8, 0), (<UnknownPrefixAnalyzer>, 'бут')))<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=((<DictionaryAnalyzer>, 'явки', 8, 1), (<UnknownPrefixAnalyzer>, 'бут'))) >>> butyavka.inflect({'plur', 'gent'}) # кого много? Parse(word='бутявок', tag=OpencorporaTag('NOUN,inan,femn plur,gent'), normal_form='бутявка', score=1.0, methods_stack=((<DictionaryAnalyzer>, 'явок', 8, 8), (<UnknownPrefixAnalyzer>, 'бут')))<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=((<DictionaryAnalyzer>, 'явки', 8, 1), (<UnknownPrefixAnalyzer>, 'бут'))) >>> butyavka.inflect({'plur', 'gent'}) # кого много? Parse(word='бутявок', tag=OpencorporaTag('NOUN,inan,femn plur,gent'), normal_form='бутявка', score=1.0, methods_stack=((<DictionaryAnalyzer>, 'явок', 8, 8), (<UnknownPrefixAnalyzer>, 'бут')))<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