Версия 4.12
Функция с параметрами ToString(bool, …) у Referent и его производных класов переименована в ToStringEx, функция ToString() без параметров осталась без изменений.
Для Javascript раньше конвертер кода ошибочно генерировал имена методов в стиле Python с подчёркиванием
в качестве разделителя, в версии 4.12 это исправлено (например, теперь вместо process_on_server будет processOnServer).
Версия 4.10
Добавлен сервер под .NET Core (работает на любых платформах, где установлен движок dotnet). Добавлен статический класс ServerService с функцией ProcessOnServer, которая отправляет обрабатываемый текст на сервер, запущенный на локальном компьютере или в локальной сети, по протоколу http, получает результат и десериализует его в объекты AnalyzeResult так, что получается результат, идентичный обычному выполнению через Process(...). Для Python это даёт выигрыш скорости примерно в 20 раз, для JS - в 4-5 раз. Для C# и Java сервер может пригодиться, если по каким-либо причинам нужно вынести обработку вовне из основной программы.
Версия 4.9
Добавлено SDK Pullenti Address, выделяющее из текста адреса и привязывающее их к
объектам ГАР ФИАС. Это не API к внешнему сервису, а именно SDK, работающее с локальным индексом,
в который объекты ГАР ФИАС преобразуются из файлов формата XML.
Для SDK Address сделан отдельный сайт garfias.ru,
куда вынесена online-демонстрация.
В некоммерческую версию входит индекс с объектами 77-го региона (Москва), в коммерческую - полный индекс.
Планируем индекс обновлять ежемесячно. В коммерческую часть входит преобразователь из формата ГАР (xml)
в индекс, так что можно и самим делать это чаще.
Внимание! До версии 4.8 для C# при сравнении экземпляров MorphClass и MorphCase
использовалось переопределение оператора ==. Сейчас это заменено на функцию Equals,
а == теперь обычное сравнение экземпляров. В принципе, прямое сравнение редко встречается
(судя по моему коду) - в основном используются функции типа .IsNone, .IsNominative и пр.
Но тем не менее...
Описание изменений в более ранних версиях см. здесь
Конвертeр C#.NET => Java & Javascript & Python
Для преобразования проектов 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).
Документирование SDK
Использование документации - распаковать архив и запустить index.html в любом браузере. Конвертер, который использовался для конвертации кода из C#, доделан под генерацию документации в стиле MSDN. Опробованные doc-конвертеры не понравились, поэтому решили сделать свой. Причём даже удалось как бы объединить "Program Reference", получаемое из комментариев, с внешним документом типа "Program Guide", содержащим общее описание, с восстановлением гиперссылок. Возможно, такого ещё не было... Если такой вариант документации понравится, то могу выложить генератор и сделать описание.
Конвертер C#.NET => PHP
В принципе, конвертер в PHP сделан и Pullenti в него переведён: скорость обработки получилась пока удручающей - на порядок дольше, чем в Python. Вероятно, это связано с тем, что строки в PHP не юникодные, и для работы с ними и моделировании unicode приходится использовать функции mb_..., что негативно сказывается на производительность. Но мы ещё здесь поборемся! SDK пока не выкладываем.