NLP библиотеки для Python

22.09.2018
By

Библиотеки обработки человеческого языка (Natural Language Processing) – одни из наиболее востребованных ресурсов для разработки систем искусственного интеллекта (ИИ).

Статья в DataScienceLerner натолкнула на мысль написать о библиотеках, которые наиболее (ИМХО) удобны для работы. Кроме того, в статье не упомянута DeepPavlov коллег из Физтеха, что достаточно обидно, так как библиотека становится все более «готовой к употреблению» и вокруг нее создается рабочее сообщество.

Итак:

1. NLTK – одна из наиболее часто используемых библиотек, содержащая в себе готовы механизмы работы более чем с 100 датасетов на различных языках. NLTK имеет все стандартные возможности для классификации, токенизации, нахождения основы слова (stemming), парсинга, индексирования, установления семантических связей. Библиотека имеет большое сообщество и форум, на котором достаточно просто найти решение сложных вопросов

2. DeepPavlov - Проект, активно развивающийся с 2017 года и даже более, чем NLP. Это платформа для глубокого обучения (в основе Tensorflow) и построения готовых приложений ( чатботов и языковых помошников и модулей). Содержит в себе распознавание кроме стандартных классификаций еще и распознавание наименований, интентов. Есть сообщество и форум ( пока не очень глобальный но растущий и развивающийся).

3.Stanford CoreNLP - можно использовать с различными языками, в частности PHP. Английский, арабский, китайский, испанский, немецкий, французский. Можно запускать, как вебсервис.

4.TextBlob - просто и очень удобно. Python 2 и 3. Множество инструментов работы с языком, возможность сочетать с NLTK и Pattern. Отличная возможность выделения полярности и объективности фразы. Разбивка на слова и фразы. Выделение леммы. Возможность получить определение слова. Формирование множественного и единственного числа. Определение языка и перевод. Работа со строками в стиле Python. Формирование n-грамм. Формирование собственных классификаторов – что позволяет удобно работать со сленгами и профессиональными жаргонами. Использовать очень приятно и просто. В стилистике Python. Повторюсь еще раз !:)

5.Spacy - библиотек для индустриальных приложений и embedded платформ. В основе разработки использовался Cython для оптимизации затрат памяти.

6.Pattern - это также немного больше, чем просто библиотека для работы с языком – скорее, это инструмент для работы с текстом в интернете для Python. Отличный парсинг страниц (HTML DOM парсер). ML функционал.

К сожалению, за исключением DeepPavlov и NLTK, все эти отличные ресурсы не работают с русским. Для выбора пакетов работы с русским языком обратите внимание на ссылки ниже – NLpub содержит много информации о пакетах и их функционале.

 

Полезные ресурсы:

NlPub - много информации по работе с естественными языками

NLTK4RUSSIAN - NLTK + Pymorphy для русского

 

Добавить комментарий