yargy
1.0.0
Ярги использует правила и словари для извлечения структурированной информации из российских текстов. Ярги похожа на Томита Парсер.
Yargy поддерживает Python 3.7+, Pypy 3, зависит только от 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 = 'Ульянов'
)
)Все материалы на русском языке:
Дев Энг
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Тест + Линт
make testОбновить документы
make exec-docs
# Manually check git diff docs/, commitВыпускать
# 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