Главная
Онлайн-демонстрация
Проекты
Другие системы
Скачать
Бесплатная версия для некоммерческого использования, для коммерческого - платная
Текущая версия SDK Pullenti:
Обзор  doc
SDK для C# code html
SDK для Java code html
SDK для Python 3 code html
SDK для JavaScript (Node.js) code html
SDK для PHP планируется  
Демо-стенд под Windows app  
Изменения
Внимание, с версии 4.0 для C# нет больше сборок, а SDK распространяется в виде исходных кодов. Соответственно namespace EP теперь называется Pullenti, а структура файлов с классами такая же, как для других языков. Сделана документация для каждого языка в виде html-страниц стиля MSDN. Описание нескольких переименований см. здесь

С версии 3.23 у метода GetNormalCaseText второй параметр с bool стал MorphNumber, а также DateExToken упразднён, и функционал выделения относительных дат реализован в рамках обычных дат для DateReferent и DateRangeReferent. Описание изменения см. здесь
С версии 3.16 у NumberToken теперь Value имеет тип string, а не long. Также NumberExHelper удалён, все функции теперь в NumberToken. Подробности см. здесь
С версии 3.0 произошли существенные изменения, несовместимые с предыдущими версиями. Описание изменения см. здесь
С версии 2.51 расширена документация, в которой описаны способы работы с различными лингвистическими конструкциями на уровне токенов (именные группы, кавычки и скобки, словари и пр.). В связи с этим произведены небольшие переименования внутри пространства имён EP.Semantix. В основном это касается ранее неописанных возможностей, но в любом случае имейте это в виду при обновлении очередной версии.
С версии 2.63 удален проект под .NET20. Если вдруг кому нужно, обращайтесь напрямую - откомпилируем.
Сотрудничество
Приглашаем программистов на C# и группы программистов для реализации проектов по обработке текстов на базе технологии Pullenti. Оплата договорная.
Ошибки и доработки
Мы неустанно боремся с ошибками, которые бывают 3-х видов:
  1. Ложная тревога - выделение сущности там, где её нет;
  2. Некорректные атрибуты - сущность выделена, но все или часть атрибутов определились некорректно;
  3. Пропуск цели - сущность не выделена;
Вы можете помочь делу совершенствования продукта, если поделитесь некорректно обрабатываемыми текстами.
Просьба пока отправлять замечания на почту. Спасибо!
Контакты
Почта: k.smith@mail.ru
Скайп: konstantin.smith
Телеграм: @ksmith
Чат в Телеграме: t.me/Pullenti
Документирование SDK
Использование документации - распаковать архив и запустить index.html в любом браузере.
Конвертер, который использовался для конвертации кода из C#, доделан под генерацию документации в стиле MSDN. Опробованные doc-конвертеры не понравились, поэтому решили сделать свой. Причём даже удалось как бы объединить "Program Reference", получаемое из комментариев, с внешним документом типа "Program Guide", содержащим общее описание, с восстановлением гиперссылок. Возможно, такого ещё не было... Если такой вариант документации понравится, то могу выложить генератор и сделать описание.
Конверт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).
Конвертер C#.NET => PHP
В принципе, конвертер в PHP сделан и Pullenti в него переведён: скорость обработки получилась пока удручающей - на порядок дольше, чем в Python. Вероятно, это связано с тем, что строки в PHP не юникодные, и для работы с ними и моделировании unicode приходится использовать функции mb_..., что негативно сказывается на производительность. Но мы ещё здесь поборемся! SDK пока не выкладываем.
Семантический анализ
Семантический анализ, который сейчас на сайте, давно не развивается (с 2014 года), но удалить рука не поднимается. В прошлом году была предпринята попытка реализации новой семантики под прицелом на однин проект, который не то, чтобы не сложился, а просто там оказалось, что задача решается более простым и надёжным способом. Опять проект подвис... Тем не менее по просьбам трудящихся выкладываю текущую версию семантики. Она встроена в SDK, но явно не инициализируется. Для .NET это сборка EP.Semantic.dll, для .NET Core - EP.Semantic.Core.dll, для Java в пакете org.pullenti.semantic, для Python и Javascript это pullenti.semantic. В стенд EP.TestDesk.exe семантика встроена на последнюю вкладку. Вот документ с описанием модели: Pullenti Semantic, он для C#, но для остальных языков всё аналогично с точностью до небольших корректировок наименований.
Внимание! Сразу скажу про качество: оно относительно неплохое на несложных предложениях, но когда идут сложные обороты, вложенные иерархии однородных членов и прочие прелести (чем изобилуют, например, нормативные акты), то всё не так радужно. Так что пока "as is".
© Кузнецов К.И., 2013. All rights reserved.