| Lemmatizer.org | Лемматизатор европейских языков |
|
English
Описания библиотек |
Использование из C++Cоздаем экземпляр класса tl:lemmatizer, загружаем. Понимаем, что если загрузка не удается, то кидается exception, с полной диагностикой ошибки:
#include <turglem/lemmatizer.hpp>
// ...
tl:lemmatizer lem;
try
{
lem.load_lemmatizer("/usr/local/share/turglem/russian/dict_russian.auto",
"/usr/local/share/turglem/russian/paradigms_russian.bin",
"/usr/local/share/turglem/russian/prediction_russian.auto"
);
}
catch (const std::exception &e)
{
printf("EXCEPTION: %s\n", e.what());
return -1;
}
// ...
Для того, чтобы лемматизировать некоторое слово s (const char *), например, заданное в кодировке UTF8, нужно вызвать единственную функцию, параметризовав её соответствующим адаптером:
tl::lem_result lr;
size_t sz_lem = lem.lemmatizei<russian_utf8_adapteri>(s, lr);
Слово лемматизировано. sz_lem это сколько вариантов лемматизации получилось. Перечисляются все варианты. Например, слово «перед» может быть как существительным, там и предлогом, слово «окна» может быть словом «окно» в разных падежах.
Чаще всего нужно просто получать начальную форму слова, это делается так (в данном коде перечисляются все возможные варианты, с повторами):
for (size_t i = 0; i < sz_lem; i++)
{
std::string nform = lem.get_text
В следующий раз я расскажу как просто получить начальные формы без повторений. А также как получать шрамматические признаки исходного слова. Contact e-mail: lemmatizer@mail.ru (spammers are welcome, I always order your products nowhere. :) ) |