Морфологический разбор слова

Распознавание части речи, падежа, рода, числа, времени, степени и других грамматических параметров для одного слова без учета контекста.

C/C++:

HGREN_WCOORD sol_ProjectWord( HGREN hEngine, const wchar_t * Word, int Flags )

HGREN_WCOORD sol_ProjectWord8( HGREN hEngine, const char * WordUtf8, int Flags )

C#:

IntPtr sol_ProjectWord( IntPtr hEngine, string Word, int Flags )

Delphi:

function sol_ProjectWord( hEngine: PInteger; Word: PWideChar; Flags: Integer ): PInteger;

PHP:

sol_ProjectWord8( $hEngine, $Word, $Flags )

Аргументы:

hEngine - дескриптор экземпляра грамматического словаря.

Word - указатель на строку из широких символов с обрабатываемым словом. Для функции с суффиксом 8 строка должна быть в кодировке utf-8.

Flags - флаги, управляющие работой морфологического анализатора. Может иметь значение 0 для базового алгоритма морфологического разбора.

Возвращает:

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

Примечания

Данная функция сопоставляет заданное слово и информацию в лексиконе. Обычно результат распознавания позволяет определить, формой какого слова является проверяемая строка. Если найти однозначно сопоставимуе с заданной строкой словоформу не получается, то анализатор задействует насколько алгоритмов нечеткого распознавания, которые иногда позволяют распознать слово с ошибкой, а иногда позволяют только выявить грамматические характеристики слова.

После завершения работы с результатами анализа, следует освободить занятую оперативную память с помощью вызова sol_DeleteProjections.

Некоторые слова могут быть распознаны неоднозначно. Функция sol_CountProjections позволяет узнать количество вариантов распознавания. Показанный ниже пример использования этой функции хорошо демонстрирует, насколько неоднозначным может быть распознавание слов в отрыве от синтаксического контекста. Слово кошки дает два варианта существительного в именительном и родительном падежах. Для слова ели ситуация осложняется тем, что оно распознается и как форма прошедшего времени глагола есть, и несколько падежных форм существительного ель.

Результаты морфологического анализа содержат такие данные, как первичные ключи словарных статей и ссылки на грамматическую форму статьи. Добраться до соответствующих данных можно с помощью функций sol_GetIEntry и sol_GetProjCoordState.

Другая функция морфологического анализа sol_MorphologyAnalysis предлагает расширенные возможности, прежде всего учет контекста при распознавании грамматических признаков слов.

Примеры выполнения морфологического анализа из прикладного кода

C++:

#include <lem/solarix/solarix_grammar_engine.h>

int main( int argc, char *argv[] )
{
 HGREN hEngine = sol_CreateGrammarEngineEx8( "..\\..\\..\\..\\..\\bin-windows\\dictionary.xml", SOL_GREN_LAZY_LEXICON );
 char sentence[] = "Кошки ели мой корм"; // N.B.: file encoding=utf-8

 char * EntryName = new char[ sol_MaxLexemLen8(hEngine) ];
 char * PartOfSpeechName = new char[ sol_MaxLexemLen8(hEngine) ];
 char * Word = new char[ sol_MaxLexemLen8(hEngine) ];

 HGREN_STR hWords = sol_Tokenize8( hEngine, sentence, -1 );

 int nword = sol_CountStrings(hWords);
 for( int i=0; i<nword; ++i )
 {
  sol_GetString8( hWords, i, Word );

  HGREN_WCOORD hProjs = sol_ProjectWord8( hEngine, Word, 0 );

  int nprojs = sol_CountProjections(hProjs);
  
  for( int i=0; i<nprojs; ++i )
   {
    int id_entry = sol_GetIEntry(hProjs,i);
    int id_partofspeech = sol_GetEntryClass( hEngine, id_entry );

    sol_GetEntryName8( hEngine, id_entry, EntryName );
    sol_GetClassName8( hEngine, id_partofspeech, PartOfSpeechName );

    // ...
   }

  sol_DeleteProjections(hProjs);
 }

 sol_DeleteStrings(hWords);
 sol_DeleteGrammarEngine(hEngine);

 return 0;
}

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

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

API layer C++ source code: grammar_engine_api.cpp

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

  © Elijah Koziev 2010
прикладные проекты на основе грамматического словаря API грамматической машины компоненты для доступа к грамматическому словарю условия получения SDK токенизатор и сегментатор морфологический анализ и синтез лемматизатор база N-грамм синтаксический анализатор словоформы морфология и синтаксис русского языка падеж число род совершенный и несовершенный вид экспорт в SQL формат экспорт в XML формат скрипт SQL словаря структура SQL словаря структура XML словаря компоненты для доступа к грамматическому словарю ORM Persistent Dictionary Library лемматизация стемминг примеры использования грамматического словаря склонение существительных в русском языке склонение русских прилагательных спряжение глаголов в русском языке поиск текста с учетом морфологии OCR подсистема расширенные регулярные выражения генератор текста генератор случайного текста и имитатор рандомизатор синонимизатор перефразировщик Статистика буквенных паттернов

Грамматический словарь русского языка



Грамматический словарь
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
требования: 512 Mb свободной памяти, 300 Мб на диске
размер:         34 Мб

  скачать грамматический словарь купить грамматический словарь SDK грамматического словаря
грамматический словарь русского языка



SDK Грамматического словаря



SDK Грамматического Словаря
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
размер:         13 Мб

SQL словарь (демо):
sqlite mysql oracle firebird mssql

скачать демо-версию SDK купить SDK API грамматического словаря



Поисковая система



Integra
настольная и сетевая поисковая система 

платформа:  Windows XP ... Windows 7
требования: 512 Mb свободной памяти
размер:         21 Мб

Дополнительные компоненты:
MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать поисковую систему SDK поисковой системыописание поисковой системы



SDK Поисковой системы



SDK Поискового движка
API для настольной и сетевой поисковая система 

платформа:  Windows XP ... Windows 7
размер:         17 Мб

Дополнительные компоненты:

MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать SDK SDK поисковой системы



Экранный переводчик



Translator
экранный переводчик

платформа:  Windows XP ... Windows 7
требования: 256 Mb свободной памяти
размер:         4.4 Мб

Дополнительные компоненты:
расширенный англо-русский словарь 6.4 Мб


скачать экранный переводчикописание экранного переводчика



изменено 11-Dec-11