Сегментация текста: получение текста извлеченного предложения

C/C++:

int sol_GetFetchedSentenceW( HGREN_SBROKER hSegmenter, const wchar_t * SentenceBuffer )

int sol_GetFetchedSentenceA( HGREN_SBROKER hSegmenter, const char * SentenceBuffer )

int sol_GetFetchedSentence8( HGREN_SBROKER hSegmenter, const char * SentenceBufferUtf8 )

C#:

int sol_GetFetchedSentenceW( IntPtr hSegmenter, StringBuilder SentenceBuffer )

string sol_GetFetchedSentenceFX( IntPtr hSegmenter )

Delphi:

function sol_GetFetchedSentenceW( hSegmenter: PInteger; SentenceBuffer: PWideChar ): Integer;

function sol_GetFetchedSentenceA( hSegmenter: PInteger; SentenceBuffer: PAnsiChar ): Integer;

function sol_GetFetchedSentence8( hSegmenter: PInteger; SentenceBufferUtf8: PAnsiChar ): Integer;

PHP:

sol_GetFetchedSentence8( $hSegmenter )

Аргументы:

hSegmenter - дескриптор перечислителя, который возвратила функция sol_CreateSentenceBrokerMem[W,A,8].

SentenceBuffer - указатель на область памяти, куда будет скопировано предложение.

Возвращает:

Количество символов в скопированном предложении для W и A функций, количество скопированных байтов для 8 функции. PHP-версия возвращает строку с предложением в кодировке utf-8. C#-функция sol_GetFetchedSentenceFX также возвращает строку.

Примечания

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

Для платформы .NET удобнее использовать специальную функцию-обертку sol_GetFetchedSentenceFX, которая возвращает строку с текстом предложения и избавляет от необходимости в манипуляциях с объектом .NET класса StringBuilder.

Функции могут вызываться одновременно из нескольких потоков, но нужно учитывать stateful характер всего комплекта функций сегментации, то есть вызов sol_FetchSentence из одного потока приведет к ошибке, если в это время выполняется вызов sol_GetFetchedSentenceXXX из других потоков.

В состав SDK грамматического словаря входит небольшой пример использования API сегментатора и токенизатора. Исходный текст этой программы также доступен по этой ссылке.

Смотрите подробное описание алгоритмов токенизации.

Примеры

C++:

const wchar_t Text[] = L"...";
while(true)
{
 int rc = sol_FetchSentence( hSegmenter );
 if( rc<0 )
  break;
  
 wchar_t *sentence_buf = new wchar_t[ rc+1 ];
 sol_GetFetchedSentenceW( hSegmenter, sentence_buf );
 // ...
 delete[] sentence_buf;
}

sol_DeleteSentenceBroker(hSegmenter);

C#:

IntPtr hSegmenter = GrammarEngine.sol_CreateSentenceBrokerMemW( hEngine, text, GrammarEngineAPI.RUSSIAN_LANGUAGE );

while( GrammarEngine.sol_FetchSentence( hSegmenter )>=0 )
 {
  string sentence = GrammarEngine.sol_GetFetchedSentenceFX( hSegmenter );
  // ...
 }

GrammarEngine.sol_DeleteSentenceBroker( hSegmenter );

PHP:

$Text = "А.С. Пушкин знал, что такое 3.141";
$hSegmenter = sol_CreateSentenceBrokerMem8( $hEngine, $Text, RUSSIAN_LANGUAGE );

while( sol_FetchSentence( $hSegmenter )>=0 )
 {
  $Sentence = sol_GetFetchedSentence8( $hSegmenter );
  echo "sentence=", $Sentence, "\n";
 }

sol_DeleteSentenceBroker($hSegmenter);

Навигация по 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 Мб


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



изменено 29-Oct-11