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

  • View
    5.249

  • Download
    18

  • Category

    Software

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