Библиотека для поиска текста с учетом морфологии

Назначение библиотеки

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

Библиотека реализована на языке C# для платформы .NET. При ее разработке одним из главных требований было использование как в настольных приложениях, так и для ASP.NET-сайтов.

Лемматизатор и стеммер

Для эффективного сопоставления ключевого слова запроса и слов в обрабатываемом тексте используются два морфологических модуля - стеммер и лемматизатор.

Примет поиска текста для русского языка

Выполнять поиск очень просто. Фрагмент кода на C#:

   string text = "Вижу кошку и собаку, кошке надо погулять. "+
                 "В кошелку положи пирожок, пусть лежит в лукошке. "+
                 "Птички порхают, с кошками не играют."; 
   foreach( StringLib.WordHit hit in StringLib.LexemeMatcher.Match(text,"кошка") )
    {
     Console.WriteLine( "Hit: {0}", text.Substring( hit.Pos, hit.Length ) );
    }

Класс LexemeMatcher имеет ряд методов, среди которых для демонстрации выбран Match. Он позволяет перечислить все вхождения ключевого слова кошка, возвращая для каждого сопоставления номер позиции и длину совпадения. Это позволяет распечатать список найденных в тексте словоформ:

поиск текста с учетом морфологии

Почти такой же код работает в ASP.NET приложении:

поиск текста в ASP.NET

Исходный текст обоих примеров вместе с проектами для MS VisualStudio включены в состав SDK Грамматического Словаря.

Дополнительные материалы

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

Лемматизатор

Стеммер

  © Козиев Илья 2019
изменено 16-Aug-11