-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mixed types error - why? #72
Comments
Сообщение странное. В чем проблема понятно. And_ принимает только предикаты, вы передаете rule. Могу предложить завернуть NAMES в предикат dictionary |
Спасибо. Я думала, что and_. аналогичен or_. А на семинаре (https://www.youtube.com/watch?v=NQxzx0qYgK8) вы говорили про or_, что там должны быть или только предикаты, или только правила. И сама ошибка смутила, там сказано именно про mixed, а не про недопустимые типы. Можно ли где-то посмотреть, как использовать dictionary? Я ориентируюсь на пример вот тут: https://nbviewer.jupyter.org/github/natasha/yargy/blob/master/docs/ref.ipynb Но не срабатывает activate (NameError: name 'activate' is not defined). |
Да, сообщение об ошибке нужно исправить. Да, в 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 https://github.com/natasha/yargy-examples/blob/master/04_food/notes.ipynb. В целом yargy сложная библиотека, методом тыка не освоишь. Нужно понимать примерно как работает внутри. Список всех материалов https://github.com/natasha/yargy#documentation |
Ок, спасибо за быстрые ответы! |
Сообщение об ошибке надо поправить. Открываю чтобы было в списке задач |
Добрый день! Использую Yargy, чтобы вытащить имена собственные из текста. Код ниже выдает ошибку:
mixed types: [<class 'yargy.rule.constructors.Rule'>, <class 'yargy.rule.constructors.Rule'>]
Почему она появляется здесь? Ведь в and_ подаются два правила и даже в самой ошибке классы указаны одинаковые. Спасибо!
Код:
NM = rule(NAMES) #список имен, пропущенный через morph_pipeline
CAP = rule(is_capitalized()) # без этого уточнения тащит лишнее
PERSON = rule(and_(NM, CAP)) # ошибка mixed types
parser1 = Parser(PERSON)
list(parser1.findall(text))
The text was updated successfully, but these errors were encountered: