Skip to main content

CI

Yargy uses rules and dictionaries to extract structured information from Russian texts. Yargy is similar to Tomita parser.

Install

Yargy supports Python 3.7+, PyPy 3, depends only on Pymorphy2.

$ pip install yargy

Usage

from yargy import Parser, rule, and_, not_
from yargy.interpretation import fact
from yargy.predicates import gram
from yargy.relations import gnc_relation
from yargy.pipelines import morph_pipeline


Name = fact(
    'Name',
    ['first', 'last'],
)
Person = fact(
    'Person',
    ['position', 'name']
)

LAST = and_(
    gram('Surn'),
    not_(gram('Abbr')),
)
FIRST = and_(
    gram('Name'),
    not_(gram('Abbr')),
)

POSITION = morph_pipeline([
    'управляющий директор',
    'вице-мэр'
])

gnc = gnc_relation()
NAME = rule(
    FIRST.interpretation(
        Name.first
    ).match(gnc),
    LAST.interpretation(
        Name.last
    ).match(gnc)
).interpretation(
    Name
)

PERSON = rule(
    POSITION.interpretation(
        Person.position
    ).match(gnc),
    NAME.interpretation(
        Person.name
    )
).interpretation(
    Person
)

parser = Parser(PERSON)

match = parser.match('управляющий директор Иван Ульянов')
print(match)

Person(
    position='управляющий директор',
    name=Name(
        first='Иван',
        last='Ульянов'
    )
)

Documentation

All materials are in Russian:

Support

Development

Dev env

brew install graphviz

python -m venv ~/.venvs/natasha-yargy
source ~/.venvs/natasha-yargy/bin/activate

pip install -r requirements/dev.txt
pip install -e .

python -m ipykernel install --user --name natasha-yargy

Test + lint

make test

Update docs

make exec-docs

# Manually check git diff docs/, commit

Release

# Update setup.py version

git commit -am 'Up version'
git tag v0.16.0

git push
git push --tags

# Github Action builds dist and publishes to PyPi

Release files for yargy 0.16.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yargy 0.16.0
File Size Uploaded
yargy-0.16.0.tar.gz 68.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yargy 0.16.0
File Interpreter ABI Platform
yargy-0.16.0-py3-none-any.whl Python 3 none any Details

Total release size: 102.2 kB

Release files / yargy-0.16.0.tar.gz

Download URL yargy-0.16.0.tar.gz
Size 68.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c917eefb32a40c23c46b6ca88d68927072dd00ab94e90fd5dc6ab0a62b59b593
BLAKE2b-256 checksum
How to use checksums
87ff0ac3b2ae6aca6026e1acc872c1c371182662e94b1c1ab0b9c68854472670
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release files / yargy-0.16.0-py3-none-any.whl

Download URL yargy-0.16.0-py3-none-any.whl
Size 34.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ca469fa47b336367fab49e8f33ccc195584f69ab758e8196f2fdaa7492adf22
BLAKE2b-256 checksum
How to use checksums
b755d065a9812c619889fbe01a1863743ee45f7c60c462fc95b19576972ee9e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.16.0 This release

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.12.0

1 release file

0.10.0

1 release file

0.9.0

1 release file

0.8.0

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.3

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page