>>> import nltk
>>> nltk.download('stopwords', download_dir='/usr/local/share/nltk_data')
[nltk_data] Downloading package stopwords to /usr/local/share/nltk_data…
[nltk_data] Unzipping corpora/stopwords.zip.
True
Если вы не знаете название необходимого вам корпуса, можете запустить интерактивный загрузчик из интерпретатора Python, вызвав метод nltk.download() без передачи первого аргумента:
>>> import nltk
>>> nltk.download(download_dir='/usr/local/share/nltk_data')
Далее можно загрузить самую свежую версию набора данных и запустить ее в обработку. В этом фрагменте кода мы загружаем сохраненную копию «Дзена Питона»:
Корпуса загружаются медленно, поэтому нам нужно сделать это для того, чтобы действительно загрузить корпус stopwords.
Токенизатор требует наличия обученной модели — Punkt tokenizer (используемый по умолчанию) поставляется с моделью, обученной для английского языка (также выбран по умолчанию).
Биграмма — это пара соседних слов. Мы проходим по биграммам и считаем, сколько раз они встречаются.
Ключом для функции sorted() является количество элементов, они отсортированы в обратном порядке.
Конструкция '{:>25}' выравнивает справа строку с общей длиной, равной 25 символам.
Наиболее часто встречающейся биграммой «Дзена Питона» является фраза better than («лучше, чем»).
В этот раз для того, чтобы избежать большого количества слов the и is, мы удалим stopwords.
В версиях Python 3.1 и выше для подсчета можно использовать метод collections.Counter.
В этой библиотеке еще много интересного — выделите выходные и исследуйте ее!
SyntaxNet
Библиотека SyntaxNet от Google, созданная на основе TensorFlow, предоставляет обученный анализатор для английского языка (по имени Parsey McParseface) и фреймворк для сборки других моделей, даже для других языков, если у вас будут под рукой соответствующие данные. В настоящий момент библиотека доступна только для Python 2.7; подробные инстуркции по ее загрузке и использованию вы можете найти на странице https://github.com/tensorflow/models/tree/master/syntaxnet.
Работа с изображениями
Тремя наиболее популярными библиотеками для обработки изображений и выполнения действий с ними в Python являются Pillow (дружественная параллельная версия библиотеки Python Imaging Library (PIL), которая подходит для преобразования форматов и простой обработки изображений), cv2 (привязка к Python для библиотеки Open-Source Computer Vision (OpenCV), которую можно использовать для определения лиц в реальном времени, а также для реализации других продвинутых алгоритмов) и более новая Scikit-Image (предоставляет возможности по простой обработке изображений, а также примитивы вроде пятен и фигур и функциональность для обнаружения границ). В следующих разделах приведена более подробная информация о каждой из них.
Pillow
Python Imaging Library (PIL) (http://www.pythonware.com/products/pil/) — одна из основных библиотек для выполнения различных действий с изображениями в Python. Последняя ее версия выпущена в 2009 году, она не была портирована на Python 3. К счастью, активно разрабатывается параллельная версия, которая называется Pillow (http://python-pillow.github.io/) (ее проще устанавливать, она работает во всех операционных системах и поддерживает Python 3).
Перед установкой Pillow вам нужно установить ее зависимости. Более подробные инструкции для своей платформы вы можете найти по адресу https://pillow.readthedocs.org/en/3.0.0/installation.html (после этого все выглядит довольно понятно):
$ pip install Pillow
Рассмотрим пример использования Pillow (для команды import from применяется имя PIL, а не Pillow):
from PIL import Image, ImageFilter
# Считываем изображение
im = Image.open('image.jpg')
# Показываем изображение
im.show()
# Применяем фильтр к изображению
im_sharp = im.filter(ImageFilter.SHARPEN)
# Сохраняем отфильтрованное изображение в новый файл
im_sharp.save('image_sharpened.jpg', 'JPEG')
# Разбиваем изображение на соответствующие bands (то есть на красный, зеленый
# и синий для RGB)
r,g,b = im_sharp.split()