libmorph: морфологический анализ на C++

1 300 000 слов в секунду на одном ядре Intel Core Ultra 7 155H @ 4.5 GHz

libmorph — семейство высокопроизводительных библиотек морфологического анализа на C++

  • Изящная модель описания словоизменения
  • Радиксные деревья для поиска
  • Выверенные словари для проверки орфографии
  • Пятнадцать лет индексирования и поиска в Rambler
  • Единый COM-подобный API
  • Нативная поддержка UTF-16 и популярных кодировок кириллицы
  • Лемматизация, синтез словоформ, поиск по шаблону
  • Фиксированные числовые идентификаторы лексем!

Пример использования (C++)

// Лемматизация слова (multibyte-версия)
  IMlmaMbXX*  pmorph;
  SLemmInfoA  lemmas[32];
  char        fmbuff[256];
  SGramInfo   grbuff[32];

  mlmaruGetAPI( "utf-8", (void**)&pmorph );

  nlemma = pmorph->Lemmatize( "стали", lemmas, fmbuff, grbuff );

  for ( int i = 0; i < nlemma; ++i )
    printf( "%s\tIDL:%u\n", lemmas[i].plemma, lemmas[i].nlexid );