- •Мета робота
- •Виконання лабораторних робіт починаємо з:
- •Короткі теоретичні відомості
- •1. Клас FreqDist для простих статистичних досліджень
- •1.1.Вибір слів з тексту
- •Виконати самостійно:
- •1.2. Колокації та біграми
- •2. Доступ до корпусів текстів
- •2.1. Корпус Гутенберга
- •2.1.1. Конкорданс
- •2.1.2. Статистичні дані про текст
- •2.2. Текст з Інтернету
- •2.3. Корпус Brown
- •Приклади текстів для кожного з жанрів корпуса Brown.
- •Виконати самостійно!
- •2.4. Корпус інформаційного агентства Рейтер.
- •2.5. Корпус інаугураційних примов президентів сша.
- •2.6. Анотовані (розмічені) корпуси текстів.
- •2.7. Корпуси іншомовних текстів.
- •3. Структура корпусів текстів.
- •3.1. Засоби nltk
- •Основні функції nltk для роботи з корпусами.
- •3.2. Доступ до власних корпусів текстів.
- •4. Умовний частотний розподіл. Клас ConditionalFreqDist.
- •4.1 Умови і події.
- •4.2 Підрахунок слів для окремих жанрів.
- •Функції побудови та відображення умовних частотних розподілів.
- •Додаток в Перелік корпусів тексті, які розповсюджуються разом з nltk.
- •Порядок виконання роботи
- •Варіанти завдань
- •Література
- •Інтернет посилання
- •Методичні вказівки
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
іНСТИТУТ КОМП’ютерних НАУК та ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Кафедра систем автоматизованого проектування
ВИВЧЕННЯ БІБЛІОТЕКИ ПРИКЛАДНИХ ПРОГРАМ NLTK, ДЛЯ ОПРАЦЮВАННЯ ТЕКСТІВ ПРИРОДНОЮ МОВОЮ
ЗАСОБИ ДЛЯ РОБОТИ З КОРПУСАМИ ТЕКСТІВ.
Методичні вказівки до лабораторної роботи № 4
з дисципліни «Комп’ютерна лінгвістика»
для студентів спеціальності 7.02030303 «Прикладна лінгвістика»
денної та заочної форм навчання
Затверджено на засіданні кафедри
«Системи автоматизованого проектування»
Протокол № 16 від 17.05.2011 р.
Затверджено на засіданні методичної ради ІКНІ
Протокол № 9-10/11 від 18.05.2011 р.
Зареєстровано в НМУ НУ «ЛП»
№ 3520 від 2.06.2011
Львів-2011
ВИВЧЕННЯ БІБЛІОТЕКИ ПРИКЛАДНИХ ПРОГРАМ NLTK, ДЛЯ ОПРАЦЮВАННЯ ТЕКСТІВ ПРИРОДНОЮ МОВОЮ. ЗАСОБИ ДЛЯ РОБОТИ З КОРПУСАМИ ТЕКСТІВ. Методичні вказівки до лабораторної роботи № 4 з дисципліни «Комп’ютерна лінгвістика» для студентів спеціальності 7.02030303 денної та заочної форм навчання/Укл. А.Б.Романюк, І.Ю Юрчак. - Львів: Національний університет «Львівська політехніка», 2011. – 28 с.
-
Укладачі:
Романюк А. Б., канд. техн. наук, доцент
Юрчак І.Ю., канд. техн. наук, доцент
Відповідальна за випуск:
Юрчак І.Ю., канд. техн. наук, доцент
Рецензент:
Теслюк В.М., д.т.н., професор кафедри САПР
Мета робота
Вивчення основ програмування на мові Python.
Вивчення методів доступу до корпусів текстів.
Вивчення класу ConditionalFreqDist.
Виконання лабораторних робіт починаємо з:
import nltk
from nltk.book import *
Короткі теоретичні відомості
Вирішення задач обробки текстів природною мовою передбачає використання великих об’ємів лінгвістичних даних, або іншими словами передбачає роботу з корпусами текстів. Виконання даної лабораторної роботи допоможе знайти відповідь на наступні питання: які є відомі корпуси текстів та лексичні ресурси і як отримати до них доступ використовуючи Python; які корисні конструкції має Python для виконання цієї роботи.
1. Клас FreqDist для простих статистичних досліджень
>>> import nltk
>>> from nltk.book import *
*** Introductory Examples for the NLTK Book ***
Loading text1, ..., text9 and sent1, ..., sent9
Type the name of the text or sentence to view it.
Type: 'texts()' or 'sents()' to list the materials.
text1: Moby Dick by Herman Melville 1851
text2: Sense and Sensibility by Jane Austen 1811
text3: The Book of Genesis
text4: Inaugural Address Corpus
text5: Chat Corpus
text6: Monty Python and the Holy Grail
text7: Wall Street Journal
text8: Personals Corpus
text9: The Man Who Was Thursday by G . K . Chesterton 1908
Для автоматичного визначення слів, які є найбільш інформативними для текстів певного жанру або певної тематики спочатку інтуїтивно виникає думка побудувати частотний список або частотний розподіл.
Частотний розподіл вказує на частоту з якою в тексті зустрічається кожне зі слів. Такий частотний список називають розподілом тому, що він вказує яким чином загальна кількість слів розподіляється між словниковими статями (оригінальні слова) в тексті.
Враховуючи, що побудова частотних розподілів часто необхідна при обробці природної мови в NLTK реалізовано окремий клас FreqDist в модулі nltk.probability.
Застосуємо цей клас для знаходження 50 найчастотніших слів в тексті Moby Dick.
>>> fdist=FreqDist(text1) #назва тексту вказується як аргумент класу
>>> fdist #підрахунок загальної кількості слів
<FreqDist with 260819 outcomes>
>>> vocab=fdist.keys()# встановлення списку оригінальних слів тексту і сортування їх за кількістю у тексті
>>> vocab[:50] #перегляд перших 50 найуживаніших слів
[',', 'the', '.', 'of', 'and', 'a', 'to', ';', 'in', 'that', "'", '-', 'his', 'it', 'I', 's', 'is', 'he', 'with', 'was', 'as', '"', 'all', 'for', 'this', '!', 'at', 'by', 'but', 'not', '--', 'him', 'from', 'be', 'on', 'so', 'whale', 'one', 'you', 'had', 'have', 'there', 'But', 'or', 'were', 'now', 'which', '?', 'me', 'like']
>>>
>>> fdist['the']
13721
>>> fdist['of']
6536
>>> fdist['with']
1659
>>> fdist['whale']
906
Серед цих 50 слів тільки одне дає певну інформацію про текст (whale) і це слово зустрічається в тексті 906 раз. Всі інші слова є не інформативними, або службовими.
Для визначення, яку частину тексту займають службові слова знайдемо їх сумарну частоту побудувавши графік (Рис.1.) за допомогою fdist.plot(50)
Рис.1. Частотний розподіл 50 слів тексту Moby Dick.
Якщо найбільш частотні слова не дають уяви про текст то спробуємо за допомогою fdist1.hapaxes() побудувати список слів які зустрічаються тільки один раз.
>>> word_1=fdist.hapaxes()
>>> len(word_1)
9002
>>> word_1[:50]
['funereal', 'unscientific', 'prefix', 'plaudits', 'woody', 'disobeying', 'Westers', 'DRYDEN', 'Untried', 'superficially', 'Western', 'Spurn', 'treasuries', 'invasion', 'powders', 'tinkerings', 'bolting', 'stabbed', 'elevations', 'ferreting', 'wooded', 'songster', 'Saco', 'clings', 'Winding', 'Sands', 'ornamental', 'charter', 'puissant', 'miller', 'cordially', 'railing', 'mail', 'Hecla', 'compliance', 'haughtily', 'relieving', 'BERMUDAS', 'contributed', 'shamble', 'fossil', 'sneering', 'artificialness', 'avers', 'intellects', 'Plate', 'gayer', 'Fiery', 'primogenitures', 'gaffs']
В даному тексті таких 9002 слова і серед них є такі слова як: exicographer, cetological, contraband, expostulations . Деякі слова без контексту тяжко зрозуміти і вони також не дають уяву про текст.