nltk и python для работы с текстами

25
Наталья Карлова-Бурбонус [email protected]. de Университет имени Юстуса Либиха (г. Гиссен, Германия) NLTK и Python для работы с текстами

Upload: nlprocby

Post on 16-Apr-2017

5.249 views

Category:

Software


18 download

TRANSCRIPT

Page 1: NLTK и Python для работы с текстами

Наталья Карлова-Бурбонус[email protected]

Университет имени Юстуса Либиха (г. Гиссен, Германия)

NLTK и Python для работы с текстами

Page 2: 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

Page 3: NLTK и Python для работы с текстами

Задачи, которые позволяет решить NLTK

Методы для вычисления базовой статистики текста Работа с корпусами и лексикографическими

ресурсами Обработка естественного языка (токенизация,

лемматизация, стемминг, pos-tagging, parsing) Классификация Машинный перевод Работа с XML-документами Представление знаний и др.

3

Page 4: NLTK и Python для работы с текстами

Помощь при работе с NLTK

>>>help(nltk.FreqDist) Web-страница NLTK (примеры скриптов, обучающие

тексты и т.д.) Документация и книги: http://nltk.org/index.php/ Многочисленные форумы, напр.

http://stackoverflow.com/ (англ. и нем.)

4

Page 5: NLTK и Python для работы с текстами

Оценка NLTK

Проста в использовании. NLTK отличная библиотека для работы с английским языком.

Неплохо подходит для работы и с другими языками, письменность которых основана на латинском алфавите. Но из-за специальных символов (напр., ü, ä, ö, ß в немецком) проблема/путаница с кодировкой. Эта проблема частично решена в Python 3 и NLTK 3.

Насколько подходит для работы с русским и белорусским языками? a. Доступен модуль pymorphy2 для морф. анализа русского языка. b. Нехватка или отсутствие качественных лекс. Ресурсов (искл. Russian WordNet). c. Специально для работы с русским языком в данное время готовится перевод книги Steven Bird.

5

Page 6: NLTK и Python для работы с текстами

Основы работы с NLTK

Интерактивный модуль Скриптовый модуль:

– Python Shell File New Window– Запуск кода возможен и после сохранения– Код может быть исправлен и изменен

6

Page 7: NLTK и Python для работы с текстами

Токенизация/Сегментация (1)

Деление текста на отдельные единицы (предложения, слова)

7

Page 8: NLTK и Python для работы с текстами

Токенизация/Сегментация (2)

8

Page 9: NLTK и Python для работы с текстами

Списки конкорданс

Слово в контексте

9

Page 10: NLTK и Python для работы с текстами

Token vs. type

Token (слово) vs. Type (слово как вид) Nota Bene: знаки препинания, лемматизация

10

Page 11: NLTK и Python для работы с текстами

Лемматизация

Процесс приведения словоформы к лемме

11

Page 12: NLTK и Python для работы с текстами

Изменение строки символов

12

Page 13: NLTK и Python для работы с текстами

Условия

13

Page 14: NLTK и Python для работы с текстами

POS-tagging

Автоматическое определение частей речи

14

Page 15: NLTK и Python для работы с текстами

Работа с частотой слов (1)

Lexical richness (словарное богатство): отношение общего числа tokens к общему числу types в тексте

15

Page 16: NLTK и Python для работы с текстами

Работа с частотой слов (2)

Слова + частота их употребления в тексте

16

Page 17: NLTK и Python для работы с текстами

Работа с частотой слов (3)

Слова, которые отвечают определенному условию + частота их употребления

17

Page 18: NLTK и Python для работы с текстами

Упражнение 1 (1)

Работайте с текстом text6, который сохранен в модуле book*. text6 является типом list (список).

Найдите 10 слов, которые чаще всего встречаются в тексте (исключите stopwords* и знаки препинания). Не забудьте про лемматизацию.

Для самого частого слова в тексте выдайте его контекст.

***

18

Page 19: NLTK и Python для работы с текстами

Упражнение 1(2)

19

Page 20: NLTK и Python для работы с текстами

Работа с корпусом (1)

Готовые корпуса– Brown Corpus– Gutenberg Corpus– Reuters Corpus– Annotated Text Corpora– И др.

20

Page 21: NLTK и Python для работы с текстами

Работа с корпусом (2)

21

Page 22: NLTK и Python для работы с текстами

Работа с корпусом (3)

Собственный корпус– Документы с расширением .txt

22

Page 23: NLTK и Python для работы с текстами

Доступ к документам

Документ на компьютере

Web-документ

23

Page 24: NLTK и Python для работы с текстами

Упражнение 2

Работайте с корпусом news (Workshops_DataNLTK). Сколько предложений в этом корпусе? Сколько tokens и types в этом корпусе (не забудьте

про предварительную лемматизацию). Определите, с каким словом слово «president» чаще

всего употребляется в корпусе.

24

Page 25: NLTK и Python для работы с текстами

Источники и ссылки

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