C/C++:
int sol_AddPhrase( HGREN hEngine, const wchar_t * Phrase, int LanguageID, int ClassID, int Flags )
int sol_AddPhrase8( HGREN hEngine, const char * PhraseUtf8, int LanguageID, int ClassID, int Flags )
C#:
int sol_AddPhrase( IntPtr hEngine, string Phrase, int LanguageID, int ClassID, int Flags )
Delphi:
function sol_AddPhrase( hEngine: PInteger; Phrase: PWideChar; LanguageID: integer; ClassID: integer; Flags: integer ): integer;
Аргументы:
hEngine - дескриптор экземпляра грамматического словаря.
Phrase - текст фразовой статьи.
LanguageID - id (первичный ключ) языка, либо -1.
ClassID - id (первичный ключ) части речи, либо -1 .
Flags - дополнительные флаги, управляющие добавлением статьи, следует указывать 0.
Возвращает:
Первичный ключ добавленной статьи.
число<=0 - при добавлении произошла ошибка.
Функции sol_AddPhrase и sol_AddPhrase8 отличаются текстовой кодировкой, в которой задан текст фразы. Функция с суффиксом 8 - получает строку в кодировке utf-8.
В отличие от словарных статей, длина текста для фразовой статьи теоретически не ограничена, а на практике лимитируется только особенностями применяемой в качестве хранилища лексикона СУБД.
Для получения дескриптора грамматического словаря можно использовать функции sol_CreateGrammarEngine и sol_LoadDictionary[A,W,8].
Возвращаемый функцией первичный ключ созданной фразовой статьи можно использовать в функциях sol_DeletePhrase или sol_GetPhraseLanguage.
Указываемый среди параметров создаваемый фразовой статьи id части речи характеризует синтаксическую роль фразы в предложении. Во многих случаях фразы, хранящиеся в лексиконе, представляют собой словосочетания, в которых одно слово является главным. Например, фраза 'грамматический словарь' синтаксически подобна неодушевленному существительному мужского рода. Если данный признак фразы не потребуется, то можно указать -1.
В ORM библиотеке фразовые статьи представляются объектами класса Phrase.
C++:
#include "solarix_grammar_engine.h"
...
HGREN hEngine = sol_CreateGrammarEngineW(L"..\\..\\bin-windows\\dictionary.xml");
//...
int phrase_id = sol_AddPhrase( hEngine, L"dirt road", ENGLISH_LANGUAGE, ENG_NOUN, 0 );
// ...
C#:
IntPtr gren = SolarixGrammarEngineNET.GrammarEngine.sol_CreateGrammarEngineW("..\\..\\bin-windows\\dictionary.xml");
// ...
int phrase_id = SolarixGrammarEngineNET.GrammarEngine.sol_AddPhrase( hEngine, "dirt road", -1, -1, 0 );
Delphi:
uses SysUtils, Windows,
_sg_api in '..\..\..\..\..\include\lem\solarix\_sg_api.pas',
GrammarEngineApi in '..\..\..\..\..\include\lem\solarix\GrammarEngineApi.pas';
var hEngine: PInteger;
var id_phrase1, id_phrase2, id_phrase3: integer;
var phrase_text: WideString;
begin
hEngine := sol_CreateGrammarEngineA( '..\..\..\..\..\bin-windows\dictionary.xml' );
id_phrase1 := sol_FindPhrase( hEngine, WideString('грамматический словарь русского языка'), 0 );
id_phrase2 := sol_AddPhrase( hEngine, WideString('проверяем добавление фразы'), -1, -1, 0 );
id_phrase3 := sol_FindPhrase( hEngine, WideString('проверяем добавление фразы'), 0 );
phrase_text := sol_GetPhraseTextPAS( hEngine, id_phrase3 );
sol_DeletePhrase( hEngine, id_phrase3 );
sol_DeleteGrammarEngine(hEngine);
end.
Приобретение SDK грамматического словаря
Класс Phrase - представление фразовой статьи в ORM библиотеке
API layer C++ source code: grammar_engine_api.cpp
Вернуться к списку функций API
© Козиев Илья 2019
![]() |
|
изменено 27-Mar-11 |