Для преобразования проектов C# в исходные коды Java, Javascript и Python использовался конвертер
UniSharping,
статья с кратким описанием здесь.
Скорость работы .NET и Java примерно одинаковая (Java на 15-20% медленнее под Windows, но на других
платформах соотношением может быть другим).
Скорость работы Python в 20 раз медленнее, чем на .NET. Подозреваю, что основной причиной является
неэффективная работа в этих языках с элементами строк (элемент string[i] имеет не тип char, а тоже string
из одного элемента со всеми вытекающими накладными расходами, да и вообще примитивные типы valuetype отсутствуют - все являются объектами).
Если производительность критична, что можно оформить Pullenti как web-сервер и использовать его из Python.
Для Python написана обёртка для облегчения использования SDK Pullenti:
Pullenti-Wrapper.
Отметим, что в неё обёрнуты только NER-возможности, но многое ещё находится на нижнем уровне, что может быть
полезным при анализе (морфология с нормализацией, выделение именных групп, работа с разными числовыми представлениями и пр.).
Версия SDK там может быть устаревшая, актуальная только здесь.
Скорость работы Javascript в 5 раз медленнее, чем на .NET (в прошлой версии было в 30 раз, но на счёт оптимизации конвертера и
корректировки исходного алгоритма в плане уменьшения циклических зависимостей удалось сильно ускорить обработку, для Python
тоже стало получше - с 30 опустились до 20).
ВНИМАНИЕ! Для Python и Javascript в результате сбоя конвертера в предыдущих нескольких версиях составные имена
методов генерировались в java-стиле, с версии 3.17 опять в нужном стиле (вместо "createProcessor" опять "create_processor").
|