MystemHandler 1.0.2
dotnet add package MystemHandler --version 1.0.2
NuGet\Install-Package MystemHandler -Version 1.0.2
<PackageReference Include="MystemHandler" Version="1.0.2" />
<PackageVersion Include="MystemHandler" Version="1.0.2" />
<PackageReference Include="MystemHandler" />
paket add MystemHandler --version 1.0.2
#r "nuget: MystemHandler, 1.0.2"
#:package MystemHandler@1.0.2
#addin nuget:?package=MystemHandler&version=1.0.2
#tool nuget:?package=MystemHandler&version=1.0.2
MystemHandler
Библиотека-обертка для морфологического анализатора Yandex Mystem с поддержкой многопоточности и асинхронной обработки текста.
Поддерижвает .NET версий от 6 до 9 включительно.
Описание
MystemHandler позволяет легко встроить функциональность морфологического анализа и лемматизации в ваши .NET приложения. Библиотека:
- Извлекает базовые формы слов (леммы) из текста
- Поддерживает многопоточный режим обработки
- Предоставляет асинхронное API
- Позволяет управлять процессом обработки (очистка текста, сортировка, фильтрация служебных слов)
- Обеспечивает безопасную работу с ресурсами и корректную обработку исключений
Установка
dotnet add package MystemHandler
или через NuGet Package Manager:
Install-Package MystemHandler
Предварительные требования
- Вам необходимо скачать исполняемый файл Yandex Mystem для вашей операционной системы.
- Убедитесь, что файл имеет права на выполнение.
Использование
Простой пример
using MystemHandler;
// Путь к исполняемому файлу mystem
string mystemPath = @"C:\Path\To\mystem.exe";
// Создание обработчика с одним потоком
using var handler = new MystemMultiThread(1, mystemPath);
// Лемматизация предложения
string sentence = "Красивые яблоки падают с деревьев";
string? result = await handler.StemSentenceAsync(sentence, cleanSource: true);
Console.WriteLine(result); // красивый яблоко падать с дерево
Многопоточная обработка
// Создание обработчика с 4 потоками
using var handler = new MystemMultiThread(4, mystemPath);
// Обработка множества предложений параллельно
var tasks = new List<Task<string?>>();
foreach (var sentence in sentences)
{
tasks.Add(handler.StemSentenceAsync(sentence));
}
await Task.WhenAll(tasks);
Дополнительные параметры
// Лемматизация с очисткой текста, сортировкой и удалением служебных слов
string? result = await handler.StemSentenceAsync(
sentence,
cleanSource: true, // Очистить текст от лишних символов
sort: true, // Сортировать леммы по алфавиту
removeSlug: true // Удалить предлоги, союзы и другие служебные слова
);
Обработка с отменой
using var cts = new CancellationTokenSource();
cts.CancelAfter(TimeSpan.FromSeconds(5)); // Установка тайм-аута 5 секунд
try
{
string? result = await handler.StemSentenceAsync(
longText,
cancellationToken: cts.Token
);
}
catch (OperationCanceledException)
{
Console.WriteLine("Операция была отменена из-за тайм-аута");
}
Основные типы
MystemMultiThread- многопоточный обработчик, предоставляющий API для обработки текстаMystemLemma- содержит результаты лемматизации для отдельного словаMystemException- исключения, возникающие в процессе работы библиотеки
Обработка ошибок
try
{
string? result = await handler.StemSentenceAsync(sentence);
// Работа с результатом
}
catch (MystemException ex)
{
Console.WriteLine($"Ошибка при обработке текста: {ex.Message}");
}
catch (TimeoutException ex)
{
Console.WriteLine($"Превышено время ожидания: {ex.Message}");
}
Лицензия
Библиотека MystemHandler распространяется под лицензией MIT.
Примечание: Сам Yandex Mystem имеет собственную лицензию, пожалуйста, ознакомьтесь с ней перед использованием.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.