SkillAgentSearch skills...

Pyphrasy

Inflection russian collocations based on pymorphy2

Install / Use

/learn @summerisgone/Pyphrasy
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

pyphrasy - Склонение по падежам русских словосочетаний.

Мы долго искали способ, как просклонять сложные названия в проекте. Нашли платную библиотеку, но тем интереснее стало написать своё открытое решение.

Всё просто: устанавливаете пакет pyphrasy и:

import pymorphy2
from pyphrasy.inflect import PhraseInflector

morph = pymorphy2.MorphAnalyzer()
inflector = PhraseInflector(morph)
form = 'gent'
print inflector.inflect(phrase, form)

Вся работа основана на библиотеке pymorpy2, которая, в свою очередь, активно использует словари OpenCorpora.

Если вам нравится проделанная работа и вы хотите внести свою лепту - помогите проекту OpenCorpora, это совсем не сложно.

Веб-сервис

Проект запущен на Heroku, и имеет API на http://pyphrasy.herokuapp.com/inflect. Ожидаю запрос с двумя параметрами:

  • phrase - что склонять
  • forms - один элемент или список падежей или/и чисел по сокращениям в pymorphy2, разделённые запятой

Например: http://pyphrasy.herokuapp.com/inflect?phrase=склонятор%20словосочетаний&forms=gent,plur&forms=datv

Как запустить на своем хостинге

Веб-сервис написан на python и испольузет фреймворк Flask. Для работы потребуется установка пакетов, указаных в requirements.txt.

По желанию можно использовать virtualenv.

Инструкция для чайников:

  1. Скопировать исходный код с github

1.1. Создать и активировать окружение virtualenv (необязательно)

$ virtualenv .env
$ source .env/bin/activate

2. Установить зависимости

    $ pip install -r requirements.txt

3. Запустить сервис через gunicorn

    $ gunicorn app:app

4. Проверить работоспособность

    $ curl "http://localhost:8000/inflect?phrase=%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B0%D1%8F%20%D0%BA%D0%BE%D0%BF%D0%B8%D1%8F&cases=accs&cases=datv"

Changelog

0.1

начальный релиз

0.2.0

  • исправлен pip install
  • настроен CI
  • обновлены зависимости
View on GitHub
GitHub Stars72
CategoryDevelopment
Updated9mo ago
Forks16

Languages

Python

Security Score

72/100

Audited on Jun 3, 2025

No findings