Главная
Онлайн-демонстрация
Проекты
Другие системы
Скачать
Бесплатная версия для некоммерческого использования
Текущая версия SDK Pullenti:
Демонстрационный стенд: zip
Документация: Overview   ProgramGuide
SDK для .NET 4.0 (solution for Visual Studio 2010): zip
SDK для .NET Core 2.0 (solution for Visual Studio 2017): zip
SDK для Java (генерируется из исходников .NET): zip
SDK для Python 3 (генерируется из исходников .NET): zip
SDK для JavaScript (Node.js) (генерируется из исходников .NET): zip
SDK для PHP (генерируется из исходников .NET): планируется
Сотрудничество
Приглашаем программистов на C# и группы программистов для реализации проектов по обработке текстов на базе технологии Pullenti. Оплата договорная.
Изменения
Внимание, с версии 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. Если вдруг кому нужно, обращайтесь напрямую - откомпилируем.
Ошибки и доработки
Мы неустанно боремся с ошибками, которые бывают 3-х видов:
  1. Ложная тревога - выделение сущности там, где её нет;
  2. Некорректные атрибуты - сущность выделена, но все или часть атрибутов определились некорректно;
  3. Пропуск цели - сущность не выделена;
Вы можете помочь делу совершенствования продукта, если поделитесь некорректно обрабатываемыми текстами.
Просьба пока отправлять замечания на почту. Спасибо!
Контакты
Почта: k.smith@mail.ru
Скайп: konstantin.smith
Телеграм: @ksmith
Чат в Телеграме: t.me/Pullenti
Конверт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).
ВНИМАНИЕ! Для Python и Javascript в результате сбоя конвертера в предыдущих нескольких версиях составные имена методов генерировались в java-стиле, с версии 3.17 опять в нужном стиле (вместо "createProcessor" опять "create_processor").
Конвертер 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.