Получение дескриптора корневого узла в варианте синтаксического анализа

C/C++:

HGREN_TREENODE sol_GetRoot( HGREN_RESPACK hResults, int GrafSetNo, int RootNo )

C#:

HGREN_TREENODE sol_GetRoot( IntPtr hResults, int GrafSetNo, int RootNo )

Delphi:

function sol_GetRoot( hResults: PInteger; GrafSetNo: Integer; RootNo: Integer ): PInteger;

Аргументы:

hResults - дескриптор для результатов морфологического разбора предложения, возвращаемый функцией sol_MorphologyAnalysis.

GrafSetNo - номер альтернативного набора графов, отсчитываемый от 0.

RootNo - порядковый номер запрашиваемого корневого узла, отсчитываемый от 0.

Возвращает:

Дескриптор корневого узла.

Примечания

Первый и последний узлен в наборе графов всегда являются специальными маркерами границ.

Если синтаксический анализ завершен полностью, то для каждого слова в исходном предложении найдены его связи. В этом случае есть только 3 корня, учитывая маркеры границ. Однако в сложных случаях анализатор может не закончить построение графа, и получается более трех корней, каждый со своим графом. Количество корней можно узнать с помощью вызова sol_CountRoots.

В качестве иллюстрации рассмотрим следующий пример. Выполняется синтаксический разбор предложения блаблабла ленивые кошки ловят мышь траляля птички поют на рассвете. В нем присутствуют два слова, которых енет в лексиконе словаря. Если не разрешать морфологическому модулю нечеткое распознавание, то эти слова фактически разобьют исходное предложение на два фрагмента. Анализатор не сможет распознать синтаксическую конструкцию, сопоставимую со всем предложением, но два фрагмента он успешно распознает и построит для каждого свое синтаксическое дерево. В итоге мы будем иметь такой набор деревьев:

Функция sol_CountRoots вернет 6, что соответствует корням со словами блаблабла, ловят, траляля, поют, плюс два спциальных корня на границах предложения. В соответствии с таким разбиением будет работать и функция sol_GetRoot. Применяемый к таким результатам атрибут "неполный" подчеркивает, что анализатор не смог установить синтаксичские отношения для некоторых частей предложения.

Навигация по API грамматического словаря

Приобретение SDK грамматического словаря

API layer C++ source code: grammar_engine_api.cpp

Вернуться к списку функций API

  © Козиев Илья 2019
изменено 05-Dec-11