C/C++:
HGREN_STR sol_GenerateWordforms( HGREN hEngine, int EntryID, int npairs, const int * pairs )
C#:
System.Collections.ArrayList sol_GenerateWordformsFX( IntPtr hEngine, int EntryID, System.Collections.ArrayList CoordIDs, System.Collections.ArrayList StateIDs )
Аргументы:
hEngine - дескриптор экземпляра грамматического словаря.
EntryID - первичный ключ словарной статьи.
npairs - количество пар целых чисел, переданных как аргумент pairs.
pairs - указатель на вектор целых чисел, состоящий из пар (CoordID, StateID).
Вариант для .NET позволяет удобно задавать аргументы-списки и получать список строк в виде привычных объектов, а не низкоуровневых типов.
Возвращает:
Дескриптор для вектора строк, соответствующих найденным грамматическим формам слова.
Вектор пар значений (CoordID,StateID) определяет, какие именно грамматические формы нас интересуют. Первое значение в паре - это первичный ключ грамматической категории. К примеру, падеж CASE_ru, или род GENDER_ru, глагольное время TENSE_ru. Для указания на грамматическую категорию можно использовать либо символические константы, либо выполнить поиск с помощью функции sol_FindEnum. Второй элемент пары - это ID состояния категории, например винительный для падежа или прошедшее для времени. Найти первичный ключ состояния можно либо функцией sol_FindEnumState, либо использовать символическую константу типа LOCATIVE_CASE_ru.
Заданному набору грамматических признаков может соответствовать несколько альтернативных грамматических форм. Например, для некоторых русских существительных существуют поэтические формы творительного падежа с прохладою, не отличимые от обычного творительного падежа с прохладой грамматически. Программа Грамматический Словарь Русского Языка и веб-страница Лексикон позволяют проверить наличие таких грамматических форм. Поэтому данная функция возвращает дескриптор списка строк, иногда содержащий 2 или более элементов. Для работы с этим вектором следует использовать процедуры sol_CountString, sol_GetString, sol_GetStrings. После окончания работы с ним следует вызвать процедуру sol_DeleteString для освобождения занимаемой памяти.
Альтернативный путь получения грамматических форм для существительных, прилагательных, причастий и глаголов - это алгоритмы склонения и спряжения.
C++: получение форм творительного падежа для русского существительного
#include "solarix_grammar_engine.h"
...
HGREN hEngine = sol_CreateGrammarEngineW(L"..\\..\\bin-windows\\dictionary.xml");
...
int entry_id = sol_FindEntry( hEngine, L"ПРОХЛАДА", NOUN_ru, RUSSIAN_LANGUAGE );
const int pairs[4] = { NUMBER_ru, SINGULAR_NUMBER_ru, CASE_ru, INSTRUMENTAL_CASE_ru };
HGREN_STR hStr = sol_GenerateWordforms( hEngine, entry_id, 2, pairs );
int nstr = sol_CountStrings( hStr );
for( int i=0; i<nstr; i++ )
{
wchar_t word[MAX_WORDLEN];
sol_GetString( hStr, str_list, i, word );
...
}
sol_DeleteStrings( hStr );
// ...
Приобретение SDK грамматического словаря
API layer C++ source code: grammar_engine_api.cpp
Вернуться к списку функций API
© Elijah Koziev 2010
Поисковая система
SDK Поисковой системы
Экранный переводчик
|
|
изменено 23-Aug-11 | ||||||||||||||||||||||||||||||||||||||