int sol_GetCoordStateName( HGREN hEngine, int CategoryID, int AttrID, wchar_t * NameBuffer )
int sol_GetCoordStateName8( HGREN hEngine, int CategoryID, int AttrID, char * NameBufferUtf8 )
Аргументы:
hEngine - дескриптор созданного вызовом sol_CreateGrammarEngine экземпляра морфологического словаря.
CategoryID - ID грамматической категории.
AttrID - ID грамматического атрибута в категории.
NameBuffer - буфер, куда будет записано наименование грамматического атрибута.
Возвращает:
0 - наименование атрибута найдено и занесено в буфер.
число<0 - ошибка.
Функции sol_GetCoordStateName и sol_GetCoordStateName8 отличаются текстовой кодировкой наименования атрибута. Функция с суффиксом 8 - записывает наименование в кодировке utf-8.
Длина буфера должна быть достаточна для размещения там строки с конечным нулем. Для получения необходимого размера буфера следует использовать функции sol_MaxLexemLen и sol_MaxLexemLen8.
Грамматическую категорию, то есть параметр вызова CategoryID, можно задать либо с использованием символических констант, объявленных в _sg_api.*, либо вызвав sol_FindEnum для поиска ID по имени категории. Аналогично задается ID атрибута - через символическую константу или через значение, полученное от функции sol_FindEnumState.
В рамках SQL словаря наименования атрибутов хранятся в таблице SG_STATE.
Функции потокобезопасны.
Грамматические признаки, относящиеся к морфологии русского языка, имеют русскоязычные названия, например вин для категории падеж, жен для категории род, ед и мн для категории число. Для морфологии английского языка категории обычно именуются англоязычными терминами.
Пример на 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_GetCoordStateName( hEngine, CASE_ru, ACCUSATIVE_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_GetCoordStateName( gren, CASE_ru, ACCUSATIVE_CASE_ru, buffer );
// ...
Приобретение SDK грамматического словаря
Совершенный и несовершенный вид глагола
Степени сравнения прилагательных и наречий
Единственное и множественное число
Женский, мужской и средний род
класс Coordinate - грамматическая категория в ORM библиотеке
API layer C++ source code: grammar_engine_api.cpp
Вернуться к списку функций API
© Elijah Koziev 2010
Поисковая система
SDK Поисковой системы
Экранный переводчик
|
|
изменено 27-Mar-11 | ||||||||||||||||||||||||||||||||||||||