NLTK и Python для работы с текстами
Transcript of NLTK и Python для работы с текстами
![Page 1: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/1.jpg)
Наталья Карлова-Бурбонус[email protected]
Университет имени Юстуса Либиха (г. Гиссен, Германия)
NLTK и Python для работы с текстами
![Page 2: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/2.jpg)
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
![Page 3: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/3.jpg)
Задачи, которые позволяет решить NLTK
Методы для вычисления базовой статистики текста Работа с корпусами и лексикографическими
ресурсами Обработка естественного языка (токенизация,
лемматизация, стемминг, pos-tagging, parsing) Классификация Машинный перевод Работа с XML-документами Представление знаний и др.
3
![Page 4: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/4.jpg)
Помощь при работе с NLTK
>>>help(nltk.FreqDist) Web-страница NLTK (примеры скриптов, обучающие
тексты и т.д.) Документация и книги: http://nltk.org/index.php/ Многочисленные форумы, напр.
http://stackoverflow.com/ (англ. и нем.)
4
![Page 5: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/5.jpg)
Оценка NLTK
Проста в использовании. NLTK отличная библиотека для работы с английским языком.
Неплохо подходит для работы и с другими языками, письменность которых основана на латинском алфавите. Но из-за специальных символов (напр., ü, ä, ö, ß в немецком) проблема/путаница с кодировкой. Эта проблема частично решена в Python 3 и NLTK 3.
Насколько подходит для работы с русским и белорусским языками? a. Доступен модуль pymorphy2 для морф. анализа русского языка. b. Нехватка или отсутствие качественных лекс. Ресурсов (искл. Russian WordNet). c. Специально для работы с русским языком в данное время готовится перевод книги Steven Bird.
5
![Page 6: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/6.jpg)
Основы работы с NLTK
Интерактивный модуль Скриптовый модуль:
– Python Shell File New Window– Запуск кода возможен и после сохранения– Код может быть исправлен и изменен
6
![Page 7: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/7.jpg)
Токенизация/Сегментация (1)
Деление текста на отдельные единицы (предложения, слова)
7
![Page 8: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/8.jpg)
Токенизация/Сегментация (2)
8
![Page 9: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/9.jpg)
Списки конкорданс
Слово в контексте
9
![Page 10: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/10.jpg)
Token vs. type
Token (слово) vs. Type (слово как вид) Nota Bene: знаки препинания, лемматизация
10
![Page 11: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/11.jpg)
Лемматизация
Процесс приведения словоформы к лемме
11
![Page 12: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/12.jpg)
Изменение строки символов
12
![Page 13: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/13.jpg)
Условия
13
![Page 14: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/14.jpg)
POS-tagging
Автоматическое определение частей речи
14
![Page 15: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/15.jpg)
Работа с частотой слов (1)
Lexical richness (словарное богатство): отношение общего числа tokens к общему числу types в тексте
15
![Page 16: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/16.jpg)
Работа с частотой слов (2)
Слова + частота их употребления в тексте
16
![Page 17: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/17.jpg)
Работа с частотой слов (3)
Слова, которые отвечают определенному условию + частота их употребления
17
![Page 18: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/18.jpg)
Упражнение 1 (1)
Работайте с текстом text6, который сохранен в модуле book*. text6 является типом list (список).
Найдите 10 слов, которые чаще всего встречаются в тексте (исключите stopwords* и знаки препинания). Не забудьте про лемматизацию.
Для самого частого слова в тексте выдайте его контекст.
***
18
![Page 19: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/19.jpg)
Упражнение 1(2)
19
![Page 20: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/20.jpg)
Работа с корпусом (1)
Готовые корпуса– Brown Corpus– Gutenberg Corpus– Reuters Corpus– Annotated Text Corpora– И др.
20
![Page 21: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/21.jpg)
Работа с корпусом (2)
21
![Page 22: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/22.jpg)
Работа с корпусом (3)
Собственный корпус– Документы с расширением .txt
22
![Page 23: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/23.jpg)
Доступ к документам
Документ на компьютере
Web-документ
23
![Page 24: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/24.jpg)
Упражнение 2
Работайте с корпусом news (Workshops_DataNLTK). Сколько предложений в этом корпусе? Сколько tokens и types в этом корпусе (не забудьте
про предварительную лемматизацию). Определите, с каким словом слово «president» чаще
всего употребляется в корпусе.
24
![Page 25: NLTK и Python для работы с текстами](https://reader033.fdocuments.in/reader033/viewer/2022061418/5870952b1a28ab412b8b6533/html5/thumbnails/25.jpg)
Источники и ссылки
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