int sol_GetCoordName( HGREN hEngine, int CategoryID, wchar_t * NameBuffer )
int sol_GetCoordName8( HGREN hEngine, int CategoryID, char * NameBufferUtf8 )
Аргументы:
hEngine - дескриптор созданного вызовом sol_CreateGrammarEngine экземпляра морфологического словаря.
CategoryID - ID грамматической категории.
NameBuffer - буфер, куда будет записано наименование грамматической категории.
Возвращает:
0 - наименование категории найдено и занесено в буфер.
число<0 - ошибка.
Функции sol_GetCoordName и sol_GetCoordName8 отличаются текстовой кодировкой наименования категории. Функция с суффиксом 8 - записывает наименование в кодировке utf-8.
Длина буфера должна быть достаточна для размещения там строки с конечным нулем. Для получения необходимого размера буфера следует использовать функции sol_MaxLexemLen и sol_MaxLexemLen8.
Грамматическую категорию, то есть параметр вызова CategoryID, можно задать либо с использованием символических констант, объявленных в _sg_api.*, либо вызвав sol_FindEnum для поиска ID по имени категории.
В рамках SQL словаря наименования категорий хранятся в таблице SG_COORD.
Функции потокобезопасны.
Грамматические категории, относящиеся к морфологии русского языка, имеют русскоязычные названия, например падеж, род, число, вид, степень. Для морфологии английского языка категории именуются англоязычными терминами, например voice, case, tense, number, но могут встречаться и "композитные" наименования типа ENG_MODALITY.
Для получения наименования грамматического признака, входящего в категорию, следует воспользоваться функцией sol_GetCoordStateName.
Пример на C++:
#include "solarix_grammar_engine.h"
// ...
HGREN hEngine = sol_CreateGrammarEngineW(L"..\\..\\bin-windows\\dictionary.xml");
//...
int n = sol_MaxLexemLen(hEngine);
wchar *buffer = new wchar_t[n];
sol_GetCoordName( hEngine, CASE_ru, buffer );
// ...
delete [] buffer;
Пример на C#:
IntPtr gren = SolarixGrammarEngineNET.GrammarEngine.sol_CreateGrammarEngineW("..\\..\\bin-windows\\dictionary.xml");
// ...
StringBuilder buffer = new StringBuilder( SolarixGrammarEngineNET.GrammarEngine.sol_MaxLexemLen(gren) );
SolarixGrammarEngineNET.GrammarEngine.sol_GetCoordName( gren, CASE_ru, buffer );
// ...
Приобретение SDK грамматического словаря
Совершенный и несовершенный вид глагола
Степени сравнения прилагательных и наречий
Единственное и множественное число
Женский, мужской и средний род
Класс Coordinate - грамматическая категория в ORM библиотеке
API layer C++ source code: grammar_engine_api.cpp
Вернуться к списку функций API
© Elijah Koziev 2010
Поисковая система
SDK Поисковой системы
Экранный переводчик
|
|
изменено 27-Mar-11 | ||||||||||||||||||||||||||||||||||||||