Найти - Пользователи
Полная версия: Парсер текста
Начало » Python для экспертов » Парсер текста
1 2 3 4
shiza
попробовал http://construct.wikispaces.com/ - в 4 раза медленнее регулярок.
asv13
shiza
mxTextTools - все никак не найду как подступиться - ужасные конуструкции, но видимо придется. %)
Из документации я нашел только официальную доку и еще мануал по прасингу от Гвидо. Есть еще что-нибудь?
да головоломка для меня до сих пор и регулярно забываю что там откуда. Как поменять что-то надо так ступор и читаю официальные доки снова и отладку делаю с выводом всего что хватает оператор на экран. Напоминает ассемблер - одни условия и переходы.
Есть к это либе еще якобы облегчающая процесс либа-надстройка которая пишется с регулярками, но я её не пробовал.

Действительно тоже хочу найти гибкий и удобный парсер текста.
Ferroman
Гибче и удобнее регулярок? Слабо себе представляю.
На базе регулярок можно быстро написать парсер любой степени гибкости и удобства.
Но скорость - как получится.
shiza
asv13
есть обертка к mxTextTools
называется simpleparse
( http://simpleparse.sourceforge.net/ )

В нем все описывается в стнадарте EBNF. Он проще гораздо, но тоже незнакомый. И тоже нет доки на русском.
asv13
про simpleparse я помню, мне он показался даже сложнее :)

здесь http://nedbatchelder.com/text/python-parsers.html дано перечисление парсеров с краткой аннотацией и моему mxTextTools досталось - “An unusual table-based parser. There is no generation step, the parser is hand-coded using primitives provided by the package.”

пока буду смотреть в сторону PLY, pyparsing и ANTLR
shiza
pyparsing пробовал. В чистом виде тормознее регулярок раз в 5.
Эту страчнику видел… но парсеров там…. пробовать неперепробовать.
Как говорит ZAN - большую скорсоть дают детерменированные конечные автоматы, т.е. DFA.
shiza
Разобрался с simpleparse (надстройка над mxTextTools).
Синтакиси даже проще, чем у регулярок.
Скорость примерно равна им.

asv13 Могу рекомендовать, если тебя скорость mxTextTools устраивает. Лично мне - маловато. =)
Александр Кошелев
А может просто железку помощнее и писать на том что нравится и удобно?:)
shiza
Если ничего не найдется, то придется так поступить.

Но все дело в том (см. самый верхний пост), что у меня на чистом питоне получался прасер по крайней мере в 40 раз быстрее регулярок. Но он сильно неуниверсальный - чтоб чего-нибудь поменять, надо много всего переписывать.
Поэтому, у меня пока есть надежда, что наверняка есть модуль на С например, с более удобным интерфейсом и сходной скоростью.
izekia
а если генератор кода написать? по решение в первом посте?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB