Alexander Kukushkin
Alexander Kukushkin
Сообщение странное. В чем проблема понятно. And_ принимает только предикаты, вы передаете rule. Могу предложить завернуть NAMES в предикат dictionary
Да, сообщение об ошибке нужно исправить. Да, в or_ можно и rule и предикат. В and_ только предикаты. Использовать dictionary также как остальные предикаты. Посмотрите примеры грамматик в https://github.com/natasha/yargy-examples/blob/master/02_console/notes.ipynb https://github.com/natasha/yargy-examples/blob/master/01_resume/notes.ipynb...
Сообщение об ошибке надо поправить. Открываю чтобы было в списке задач
Не, такой функиональности нет. Приходится вручную анализировать контекст кусочка текста где сработало правило ``` for match in parse.findall(text): start, stop = match.span left_context = text[start-10:start] if re.search(..., left_context): continue ```
Я бы просто выписал все двузначные числа: ``` DAYS = { ... 'двадцать первый': 21, 'двадцать второй': 22, ... } DAY = morph_pipeline( DAYS.keys() ).interpretation(Date.day.normalized().custom(DAYS.get))
Можно так ``` Inn = fact( 'INN', ['value']) class IpInn(Inn): type = 'ip' class OooInn(Inn): type = 'ooo' ... INN12 = ....interpretation(IpInn) INN10 = ....interpretation(OooInn) ```
> В этом случае после разбора тип факта будет и значение не будет содержать доп. атрибутов: ``` class IpInn(fact('IpInn', ['value'])): type = 'ip' class OooInn(fact('OooInn', ['value'])): type = 'ooo' ```
``` Proxy = fact('Proxy', ['value']) INN = rule( rule('ИНН'), or_( INN12.interpretation(IpInn), INN10.interpretation(OooInn) ).interpretation(Proxy.value), ).interpretation(Proxy) ```
@insolor Fixed, now PR only for 3.11 Also turns out DAWG does not work fo 3.10, 3.11 https://github.com/pytries/DAWG/issues/49. So pymorpy2[fast] still broken for 3.11. But this is maybe for future...
Pymorphy currently also supports python 2, do not want to break with this PR