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

C/C++:

void sol_GetNodeContents( HGREN_TREENODE hNode, wchar_t * Buffer )

void sol_GetNodeContents8( HGREN_TREENODE hNode, char * BufferUtf8 )

C#:

string sol_GetNodeContentsFX( HGREN_TREENODE hNode )

void sol_GetNodeContents( HGREN_TREENODE hNode, StringBuilder Buffer )

Delphi:

procedure sol_GetNodeContents( hNode: PInteger; NameBuffer: PWideChar )

procedure sol_GetNodeContents8( hNode: PInteger; NameBufferUtf8: PAnsiChar )

PHP:

sol_GetNodeContents8( $hNode )

Аргументы:

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

NameBuffer - буфер, куда будет записано текстовое содержимое узла.

Возвращает:

Для PHP версии и .NET обертки sol_GetNodeContentsFX возвращается строка.

Примечания

Длина буфера должна быть достаточна для размещения там строки с конечным нулем. Для получения необходимого размера буфера следует использовать функции sol_MaxLexemLen и sol_MaxLexemLen8.

Функции позволяют получить только текст слова, которое непосредственно соответствует узлу синтаксического графа. Для получения текста дочерних узлов, то есть синтаксически связанных с данным словом фрагментов текста, следует рекурсивно пройти по веткам, используя функции sol_CountLeafs и sol_GetLeaf. Позицию слова можно определить с помощью sol_GetNodePosition.

Разбивкой исходного текста на предложения и слова занимается отдельный модуль - сегментатор и токенизатор. Токенизатор при распознавании границ слов использует набор правил, учитывающий особенности языка и контекст. Из-за этого слова, возвращаемые sol_GetNodeContents, могут содержать внутри себя пробелы и знаки препинания.

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

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

API layer C++ source code: grammar_engine_api.cpp

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

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