Pullenti

SDK Pullenti предназначено для разработчиков информационных систем, имеющих дело с неструктурированными данными - текстами на естественном языке. Это открытое программное обеспечение представлено в функционально эквивалентных исходных кодах на языках программирования C#, Java, Python и Javascript.
SDK состоит из двух независимых друг от друга частей: Lingvo - лингвистический анализ текстов, и Unitext - выделение текстов из файлов.

Лицензионная политика

Non-Commercial Freeware - система бесплатна для некоммерческого использования.
Commercial Software - для коммерческого использования можно приобрести бессрочную лицензию, она без ограничений количества инсталляций и включает техподдержку.

Pullenti Lingvo

SDK Pullenti Lingvo - лингвистический анализ неструктурированных текстов на русском и украинском языках. Включает морфологический анализ, выделение именованных сущностей NER (персоны, организации, даты, страны, указы и др.), семантический анализ, а также вспомогательные средства типа выделения именных групп, анализа концов предложений и кавычек, работы с различными числовыми представлениями и другие.
Все алгоритмы основаны на правилах, машинное обучение нигде не используется.

Pullenti Unitext

SDK Pullenti Unitext - выделение из файлов различных форматов текстовых данных и структурирующих их элементов типа таблицы, списки, сноски, примечания, надписи с фигур. Также извлекаются картинки. Поддерживаются такие форматы как docx, doc, pdf, rtf, odt, html и многие другие. Если файл не содержит текстов в явном виде, то они не будут выделены, так как OCR-задачу SDK не решает. Выделяемая информация представляется в универсальном структурно-текстовом представлении - Unitext. Данные о стилях, размерах, цвете, страницах и т.п. также входят в это представление, но поддержано не для всех форматов.

Реализация

Исходные коды для языков C# (Framework и Core), Java, Python3, Javascript (Node.js) и документация получены с помощью конвертера Unisharping. Конвертер генерирует функционально эквивалентный код, что подтверждается многочисленными автотестами, которые также конвертируются и корректно отрабатывают на конечных языках.
Скорость обработки на разных языках отличается: C# и Java примерно одинаковы по времени исполнения, Javascript медленнее в 5 раз, Python - в 20 раз.

Платформы

SDK Pullenti может использоваться на любых платформах, поддерживающих хотя бы один из перечисленных языков.
Каждая из частей SDK самодостаточна и для своего использования не требует сторонних библиотек или предустановленного ПО.

Качество

Разработка SDK Lingvo идёт по принципу: "приоритет качества над полнотой". Большое внимание уделяется корректности атрибутов выделяемых сущностей и их падежной нормализации, а также задаче кореференции - объединению сущностей из разных мест текста.
Качество поддерживается на должном уровне посредством полутора тысяч автотестов, содержащих разные тексты и правильные варианты анализа. Все доработки производятся на фоне этих автотестов, не дающих понижать качество.

Соревнование NER

В рамках конференции Диалог-2016 мы участвовали в соревновании FactRuEval по выделению именованных сущностей. Участие было анонимным, мы были под псевдонимом Pink на четырёх дорожках. На дорожках T1, T2 и T2_m Pullenti занял 1-е место, на T1_l - второе. Подробности здесь.
В 2021 году на соревновании RuNormAS по нормализации текстовых фрагментов на 1-й дорожке мы заняли 1-е место, на 2-й второе соответственно.