Токенизация текста, выделение отдельных слов

C/C++:

HGREN_STR sol_TokenizeW( HGREN hEngine, const wchar_t * Sentence, int LanguageID )

HGREN_STR sol_TokenizeA( HGREN hEngine, const char * Sentence, int LanguageID )

HGREN_STR sol_Tokenize8( HGREN hEngine, const char * SentenceUtf8, int LanguageID )

C#:

IntPtr sol_TokenizeW( IntPtr hEngine, string Sentence, int LanguageID )

string[] sol_TokenizeFX( IntPtr hEngine, string Sentence, int LanguageID )

Delphi:

function sol_TokenizeW( hEngine: PInteger; Sentence: PWideChar, LanguageID: Integer ): PInteger;

function sol_TokenizeA( hEngine: PInteger; Sentence: PAnsiChar, LanguageID: Integer ): PInteger;

function sol_Tokenize8( hEngine: PInteger; SentenceUtf8: PAnsiChar, LanguageID: Integer ): PInteger;

PHP:

sol_Tokenize8( $hEngine, $Sentence, $LanguageID )

Аргументы:

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

Sentence - указатель на строку, из которой будет извлечен список лексем. Для функций с суффиксом W это строка из широких символов, для A - из однобайтовых в текущей кодировки, для 8 - в кодировке utf-8.

LanguageID - ID языка, правила которого нужно применять для токенизации, либо -1 для автоматического определения языка.

Возвращает:

Дескриптор для вектора строк, соответствующих отдельным словам исходного предложения.

Примечания

Процедура выполняет разбивку текста на структурные элементы - лексемы. При этом алгоритм разбивки будет использовать набор правил для языка, чтобы корректно выделить слова и цепочки символов, содержащие в себе символы-разделители:

А.С.Пушкин и т.д.

Правила учитывают самые разные случаи, включая запись Ф.И.О. и даты в формате, обычно применяемом носителями языка.

Процедура возвращает дескриптор для вектора строк. После окончания работы с ним следует вызвать процедуру sol_DeleteString для освобождения занимаемой им памяти. Для работы с вектором строк следует использовать процедуры sol_CountStrings и sol_GetString[W,A,8].

Если при вызове процедуры не указать ID языка, то будет выполнен автоматический выбор языка на основе статистических критериев для заданного текста. Это потребует дополнительных вычислений и соответствующих накладных расходов, поэтому следует указывать язык текста, если это возможно.

Процедура sol_Tokenize[W,A,8] может также выполнять сегментацию текста для языков, в которых нет разбивки на слова с помощью обычных для европейских языков пробелов и пунктуаторов.

Функция sol_TokenizeFX на самом деле является удобной оберткой над sol_TokenizeW для платформы .NET. Вместо низкоуровневых манипуляций с дескрипторами списков строк она позволяет сразу получить массив строк в "родном" для данной платформы виде. В большинстве случаев удобно использовать именно её.

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

Примеры

C++:

#include "solarix_grammar_engine.h"
...
HGREN hEngine = sol_CreateGrammarEngineW(L"..\\..\\bin-windows\\dictionary.xml");
...
HGREN_STR hStr = sol_TokenizeW( hEngine, L"А.С.Пушкин и другие поэты", RUSSIAN_LANGUAGE );

int nstr = sol_CountStrings( hStr );
wchar_t ** str_list = new wchar_t*[nstr];
for( int i=0; i<nstr; i++ )
 str_list[i] = new wchar_t[ MAX_LEN+1 ];

sol_GetStrings( hStr, str_list );

for( int i=0; i<nstr; i++ )
 {
  // ...
 }
printf( "}\n\n" );

sol_DeleteStrings( hStr );
for( int i=0; i<nstr; i++ )
 delete[] str_list[i];

delete[] str_list;
// ...

C#:

string phrase = "Мама мыла раму";
string[] words = GrammarEngine.sol_TokenizeFX( hEngine, phrase, GrammarEngineAPI.RUSSIAN_LANGUAGE );
...

PHP:

$phrase = "Мама мыла раму";
$hTokens = sol_Tokenize8( $hEngine, $phrase, $RUSSIAN_LANGUAGE );
$token_count = sol_CountStrings( hTokens );
for( $i=0; $i<$token_count; $i++ )
 {
  $token = sol_GetString8( hTokens, $i );
  ...
 }

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

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

English version of this page

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 Мб


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



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