Comments (8)
- Неоднообразно. Например, человек пишет код с | & ~, тогда, например, из Наташи ему будет скопировать код неудобно
- Неудобно форматировать.
NAME = (
FIRST_LAST
| LAST_FIRST
| TITLE_FIRST_LAST
| TITLE_LAST_FIRST
...
)
Также неоднообразное форматирование
NAME = FIRST_LAST \
| LAST_FIRST \
| TITLE_FIRST_LAST
...
- Ошибки из-за отсутствуя скобочек. Например
IS_FIRST | MAYBE_FIRST & is_title()
не равноand(or_(IS_FIRST, MAYBE_FIRST), is_title())
- Дополнительные усилия по разворачиванию. Предикат
a & b & c
этоand_(and_(a, b), c)
, нужно написать код, который разворачивает это вand_(a, b, c)
from yargy.
/cc @alexanderkuk
from yargy.
Ну, речь ведь не идет о полной замене - я предлагаю добавить ещё один вариант написания грамматик, который (иногда) позволит убрать многословность.
Проблема с копированием кода, на мой взгляд, немного притянута - вся суть библиотеки как-раз в том, что не нужно ничего писать вручную и копировать, т.е. можно просто сделать pip install ...
и начать использовать готовые грамматики. А как (и через что :) они написаны - это дело десятое.
В остальном, я согласен, это добавит некоторые сложности.
from yargy.
Ну, речь ведь не идет о полной замене - я предлагаю добавить ещё один вариант написания грамматик, который (иногда) позволит убрать многословность.
Я считаю, что это введёт неоднообразность
Проблема с копированием кода, на мой взгляд, немного притянута - вся суть библиотеки как-раз в том, что не нужно ничего писать вручную и копировать
Ок, пример с Наташей не очень. Замени код Наташи на код из документации и код из примеров, которые я планирую опубликовать, код других людей.
Короче, я против.
from yargy.
Тогда давай сделаем так: в первом сообщении голосовалка, которая будет доступна ~месяц.
01.10.2017 посмотрим на результаты, ну и там уже решим, ок?
from yargy.
Я написал 4 аргумента против. Сколько аргументов за? Я вижу 1: краткость записи.
from yargy.
Хорошо.
- Неоднообразность можно убрать своим code style guide - например, писать на питоне можно как угодно, но обычно все придерживаются PEP-8. Если PEP-8 чем-то не устраивает, то используют свой вариант (например у Google есть свои рекомендации по стилю)
Т.е. если кому-то не нравятся магические методы - их можно просто запретить использовать в коде (и обозначить это в своей документации, например). - В аналогичных проектах, например в Томита-парсере (или NLTK, да в любой грамматике, даже в той, что описывает питон), используется похожая нотация. Т.е. вариант с магическими методами может быть понятен для людей, которые раньше использовали какой-то другой парсер.
- Ошибки из-за отсутствия скобочек могут быть и с вариантом без магических методов.
- Если в некоторых грамматиках неудобно использовать магические методы, можно не использовать их. Пример с несколькими элементами внутри
or_
действительно выглядит так себе с магическими методами (вот в данном случае можно и не использовать их или использовать, но страдать - это осознанный выбор).
Для меня большинство приведенных проблем выглядит как вкусовщина (кроме той, что придется писать код) и тут можно долго спорить.
from yargy.
Не, мне хотелось бы увидеть не критику моих минусов, а список плюсов. Я сейчас вижу два плюса:
- Меньше кода
- Синтаксис знакомый пользователям Томиты, NLTK
from yargy.
Related Issues (20)
- Добавить документацию к функциях HOT 1
- Ограничения предикатов не действуют при интерпретации
- Как задать rule с ограничением все кроме... HOT 5
- Написать 2 правила: для даты и для времени. Извлекать обе сущности, для "06.12.2018" сработает правило для даты потому что у него выше покрытие (метч длиннее). Дальше метчи для даты игнорировать
- использовать normalized с большим количеством слов HOT 2
- Ошибка при визуализации дерева match.tree.as_dot HOT 2
- Mixed types error - why? HOT 5
- Проблемы с применением normalized() в интерпретации
- Будет ли полная доккументация? HOT 1
- 'maximum recursion depth exceeded while calling a Python object' while Parser constructor call with rule defined via 'forward'
- Packages from natasha project aren't on Anaconda channels
- Вопрос по использованию парсера HOT 2
- Использование natasha в правилах yargy
- Реализация BFS в yargy.rule.constructors использует список как очередь
- FileNotFoundError: [WinError 2] Не удается найти указанный файл HOT 1
- Реализация lookahead/lookbehind assertion HOT 1
- AttributeError: 'MorphPipelineScheme' object has no attribute 'keys'
- Как установить несколько атрибутов факта? HOT 6
- Проблема даты прописью HOT 2
- Как прописать "Жадность" токену/правилу? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yargy.