View
5.249
Download
18
Category
Preview:
Citation preview
Наталья Карлова-Бурбонусnatali.karlova-bourbonus@zmi.uni-giessen.de
Университет имени Юстуса Либиха (г. Гиссен, Германия)
NLTK и Python для работы с текстами
NLTK и Python
Natural Language Toolkit (NLTK) это open source библиотека методов для машинной обработки естественного языка
Методы написаны в Python Разработчики Steven Bird (University of Melbourne),
Edward Loper (University of Pennsylvania), Ewan Klein (University of Edinburgh)
Доступна подробная документация и онлайн-книга– Он-лайн-книга для NLTK 3 (Python 3)– Он-лайн-книга для NLTK 2 (Python 2)
Библиотека NLTK постоянно пополняется новыми методами – большая community
2
Задачи, которые позволяет решить NLTK
Методы для вычисления базовой статистики текста Работа с корпусами и лексикографическими
ресурсами Обработка естественного языка (токенизация,
лемматизация, стемминг, pos-tagging, parsing) Классификация Машинный перевод Работа с XML-документами Представление знаний и др.
3
Помощь при работе с NLTK
>>>help(nltk.FreqDist) Web-страница NLTK (примеры скриптов, обучающие
тексты и т.д.) Документация и книги: http://nltk.org/index.php/ Многочисленные форумы, напр.
http://stackoverflow.com/ (англ. и нем.)
4
Оценка NLTK
Проста в использовании. NLTK отличная библиотека для работы с английским языком.
Неплохо подходит для работы и с другими языками, письменность которых основана на латинском алфавите. Но из-за специальных символов (напр., ü, ä, ö, ß в немецком) проблема/путаница с кодировкой. Эта проблема частично решена в Python 3 и NLTK 3.
Насколько подходит для работы с русским и белорусским языками? a. Доступен модуль pymorphy2 для морф. анализа русского языка. b. Нехватка или отсутствие качественных лекс. Ресурсов (искл. Russian WordNet). c. Специально для работы с русским языком в данное время готовится перевод книги Steven Bird.
5
Основы работы с NLTK
Интерактивный модуль Скриптовый модуль:
– Python Shell File New Window– Запуск кода возможен и после сохранения– Код может быть исправлен и изменен
6
Токенизация/Сегментация (1)
Деление текста на отдельные единицы (предложения, слова)
7
Токенизация/Сегментация (2)
8
Списки конкорданс
Слово в контексте
9
Token vs. type
Token (слово) vs. Type (слово как вид) Nota Bene: знаки препинания, лемматизация
10
Лемматизация
Процесс приведения словоформы к лемме
11
Изменение строки символов
12
Условия
13
POS-tagging
Автоматическое определение частей речи
14
Работа с частотой слов (1)
Lexical richness (словарное богатство): отношение общего числа tokens к общему числу types в тексте
15
Работа с частотой слов (2)
Слова + частота их употребления в тексте
16
Работа с частотой слов (3)
Слова, которые отвечают определенному условию + частота их употребления
17
Упражнение 1 (1)
Работайте с текстом text6, который сохранен в модуле book*. text6 является типом list (список).
Найдите 10 слов, которые чаще всего встречаются в тексте (исключите stopwords* и знаки препинания). Не забудьте про лемматизацию.
Для самого частого слова в тексте выдайте его контекст.
***
18
Упражнение 1(2)
19
Работа с корпусом (1)
Готовые корпуса– Brown Corpus– Gutenberg Corpus– Reuters Corpus– Annotated Text Corpora– И др.
20
Работа с корпусом (2)
21
Работа с корпусом (3)
Собственный корпус– Документы с расширением .txt
22
Доступ к документам
Документ на компьютере
Web-документ
23
Упражнение 2
Работайте с корпусом news (Workshops_DataNLTK). Сколько предложений в этом корпусе? Сколько tokens и types в этом корпусе (не забудьте
про предварительную лемматизацию). Определите, с каким словом слово «president» чаще
всего употребляется в корпусе.
24
Источники и ссылки
Bird, Steven et al. (2009). Natural Language Processing with Python. Analyzing Text with the Natural Language Toolkit. O´Reilly Media. Онлайн-книга: http://nltk.org/book/
25
Recommended