Самый эффективный парсер в NLTK?
Я не могу найти алгоритм синтаксического анализа в NLTK, который анализирует предложение в течение разумного промежутка времени при создании экземпляра с большой грамматикой (при обучении более чем 20 или более файловым файлам в Penn Treebank результаты анализа занимают несколько минут или дольше, в зависимости от синтаксического анализа алгоритм). Я использую весь банк деревьев для обучения - всего ~2400 файловых файлов - поэтому такое количество времени на предложение неосуществимо, так как я пытаюсь проанализировать весь набор тестов этого дерева (файловые файлы 2300 - 2399).
Алгоритмы, которые я пробовал до сих пор, включают в себя:
ViterbiParser
Все алгоритмы ChartParser
RecursiveDescentParser (фактически завершается с RecursionError сразу после запуска)
Если есть какой-либо алгоритм, который можно быстро анализировать при обучении большой грамматике (даже если он не содержится в библиотеке NLTK), я был бы благодарен за указание в этом направлении.
Мне известен модуль CoreNLPParser, однако, насколько мне известно, его можно вызывать только с уже загруженной грамматикой, которая не соответствует моему требованию, так как я ищу алгоритм для оценки по тестовому набору Penn Treebank и, следовательно, должен способность определять грамматику, которая будет использоваться алгоритмом.
0 ответов
Вы можете попробовать Benepar (нейронный парсер Беркли)
Он имеет лицензию MIT и интегрируется с NLTK или spaCy. Языковая поддержка: английский, китайский, немецкий, баскский, французский, иврит, венгерский, корейский, польский, шведский