yargy
1.0.0
Yargy utilise des règles et des dictionnaires pour extraire des informations structurées à partir de textes russes. Yargy est similaire à Tomita Parser.
Yargy prend en charge Python 3.7+, PyPy 3, ne dépend que de Pymorphy2.
$ pip install yargy 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 = 'Ульянов'
)
)Tous les documents sont en russe:
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-yargyTester + peluche
make testMettre à jour les documents
make exec-docs
# Manually check git diff docs/, commitLibérer
# 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