10,000 предложений из моего эталонного корпуса дают погрешность ~1.7%, то есть очень неплохо.
Разметка выполняется так.
Предложение: очень застенчивый страж таинственной пещеры поспешно отвел свой внимательный взгляд от вошедшего человека.
То есть каждое предложение проходит полный синтаксический анализ, затем из parse tree генерируется разметка для chunking, по которой происходит обучение парсера. Для вышеуказанного предложения на входе алгоритма обучения получается такой фрагмент (features показаны не все):
O f[0]=126
очень B-NP f[0]=125
застенчивый I-NP f[0]=49
страж I-NP f[0]=19
таинственной B-NP f[0]=49
пещеры I-NP f[0]=19
поспешно B-VP f[0]=125
отвел I-VP f[0]=109
свой B-NP f[0]=49
внимательный I-NP f[0]=49
взгляд I-NP f[0]=19
от PN f[0]=121
вошедшего B-NP f[0]=49
человека I-NP f[0]=19
. O f[0]=18
O f[0]=127
В итоге 1) для токенов получаем метки о принадлежности к chunk'ам, которые можно использовать при полноценном парсинге как хинты 2) либо выполнять связывание в дерево уже на базе этих chunk'ов, уйдя от более мелкой пословной структуры исходного предложения.