Поиск по базе сайта:
Методичні вказівки до лабораторної роботи №2 з дисципліни «Комп’ютерна лінгвістика» для магістрів за фахом 02030303 «Прикладна лінгвістика» icon

Методичні вказівки до лабораторної роботи №2 з дисципліни «Комп’ютерна лінгвістика» для магістрів за фахом 02030303 «Прикладна лінгвістика»




Скачати 240.28 Kb.
НазваМетодичні вказівки до лабораторної роботи №2 з дисципліни «Комп’ютерна лінгвістика» для магістрів за фахом 02030303 «Прикладна лінгвістика»
Дата конвертації06.01.2013
Розмір240.28 Kb.
ТипМетодичні вказівки


МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

НУ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

іНСТИТУТ КОМП’ютерних НАУК та ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ


Кафедра систем автоматизованого проектування





ВИВЧЕННЯ БІБЛІОТЕКИ ПРИКЛАДНИХ ПРОГРАМ NLTK, ДЛЯ ОПРАЦЮВАННЯ ТЕКСТІВ ПРИРОДНОЮ МОВОЮ.

ОСНОВИ ПРОГРАМУВАННЯ НА МОВІ PYTHON(частина 2).


Методичні вказівки до лабораторної роботи № 2

з дисципліни «Комп’ютерна лінгвістика»

для магістрів за фахом 8. 02030303 «Прикладна лінгвістика»
денної та заочної форм навчання


Затверджено на засіданні кафедри

«Системи автоматизованого проектування»

Протокол № 16 від 17.05.2011 р.


Затверджено на засіданні методичної ради ІКНІ

Протокол № 9-10/11 від 18.05.2011 р.


Зареєстровано в НМУ НУ «ЛП»

№ 3507 від 2.06.2011


Львів-2011

^ ВИВЧЕННЯ БІБЛІОТЕКИ ПРИКЛАДНИХ ПРОГРАМ NLTK, ДЛЯ ОПРАЦЮ­ВАННЯ ТЕКСТІВ ПРИРОДНОЮ МОВОЮ. ОСНОВИ ПРОГРАМУВАННЯ НА МОВІ PYTHON(частина 2). Методичні вказівки до лабораторної роботи № 2 з дисципліни «Комп’ютерна лінгвістика» для магістрів за фахом 8.02030303 «Прикладна лінгвістика» денної та заочної форм навчання/Укл. А.Б.Романюк, І.Ю Юрчак. - Львів: Національний університет «Львівська політехніка», 2011. - 16с.



Укладачі:

Романюк А. Б., канд. техн. наук, доцент

Юрчак І.Ю., канд. техн. наук, доцент



Відповідальна за випуск:

Юрчак І.Ю., канд. техн. наук, доцент



Рецензент:

Теслюк В.М., д.т.н., професор кафедри САПР

^ МЕТА РОБОТА


  • Вивчення основ програмування на мові Python.

  • Ознайомлення з контрольними структурами та класом FreqDist.


КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ


Виконання лабораторних робіт починаємо з:

import nltk

from nltk.book import *


1.1 Засоби керування логікою.

Програми, які згадувалися в лабораторній роботі №1, доволі прості, але дозволяють працювати з мовою та полегшити роботу людини шляхом її автоматизації. Основна особливість програмування – це спосібність програми приймати рішення від імені людини, виконуючи інструкції коли справджуються певні умови або послідовно обробляти текстові дані до тих пір поки не задоволена певна умова. Таким засобом керування поведінкою програми є контрольні структури.


1.1.1 Умовні вирази

Python підтримує широкий набір операторів для встановлення взаємозв’язків між змінними (значеннями). Повний набір цих операторів наведений у таблиці 1.

Таблиця 1.



Можна використовувати ці оператори безпосередньо:



В результаті ми отримали вирази із булевими значеннями True, False. In, not - це булеві оператори. Стрічки і списки також підтримують умовні вирази.





Можна перевірити наявність певних слів як в окремих реченнях так і в усьому тексті:

>>> 'hello' in sent7

False

>>> 'hello' in text1

False

>>> 'he' in text1

True

>>>

Загальна схема роботи цих прикладів ([w for w in text if condition ]), де condition умова, яка справджується або ні (приймає значення True або False ).

Звичайно ми використовуємо умовні оператори, як частину If операторів. Для перевірки властивостей окремих слів існує набір наступних функцій (Таблиця2.).


Функція

Пояснення

s.startswith(t)

чи починається s з t

s.endswith(t)

чи закінчується s на t

t in s

Чи t міститься в s

s.islower()

Чи всі символи в s є малі

s.isupper()

Чи всі символи в s є великі

s.isalpha()

Чи всі символи в s є букви

s.isalnum()

Чи всі символи в s є букви і цифри

s.isdigit()

Чи всі символи в s є цифри

s.istitle()

Чи всі слова в s є з великої літери


Розглянемо наступні приклади використання цих операторів для вибору окремих слів з тексту: слова з закінченням –ableness; слова , які містять gnt ; слова ,які починаються з великої літери ; та слова, які повність складаються з цифр.

>>> sorted([w for w in set(text1) if w.endswith('ableness')])

['comfortableness', 'honourableness', 'immutableness', 'indispensableness', ...]

>>> sorted([term for term in set(text4) if 'gnt' in term])

['Sovereignty', 'sovereignties', 'sovereignty']

>>> sorted([item for item in set(text6) if item.istitle()])

['A', 'Aaaaaaaaah', 'Aaaaaaaah', 'Aaaaaah', 'Aaaah', 'Aaaaugh', 'Aaagh', ...]

>>> sorted([item for item in set(sent7) if item.isdigit()])

['29', '61']

>>>

Можна ставити і складніші умови. Якщо С це умова, то not C це також умова. Якщо є дві умови С1 та С2, то побудувати нову умову використовуючи оператори диз’юнкції та кон’юнкції: c1 and c2, c1 or c2

Виконати самостійно: Виконайте наступні приклади і спробуйте пояснити, що відбувається в кожному з них:

>>> sorted([w for w in set(text7) if '-' in w and 'index' in w])

>>> sorted([wd for wd in set(text3) if wd.istitle() and len(wd) > 10])

>>> sorted([w for w in set(sent7) if not w.islower()])

>>> sorted([t for t in set(text2) if 'cie' in t or 'cei' in t])


Обробка кожного елемента: Розглянемо наступні приклади:

>>> [len(w) for w in text1]

[1, 4, 4, 2, 6, 8, 4, 1, 9, 1, 1, 8, 2, 1, 4, 11, 5, 2, 1, 7, 6, 1, 3, 4, 5, 2, ...]

>>> [w.upper() for w in text1]

['[', 'MOBY', 'DICK', 'BY', 'HERMAN', 'MELVILLE', '1851', ']', 'ETYMOLOGY', '.', ...]

>>>

В даних прикладах наступні вирази: [f(w) for ...] or [w.f() for ...], де f це функція, яка або визначає довжину слова або перетворює малі літери на великі. В кожному з цих прикладів здійснюється обробка кожного елемента списку. Змінній W послідовно присвоююся значення слів з текста і над цією змінною виконуються передбачені програмою дії. Такий запис [f(w) for ...] називається "list comprehension." (включення списків або спискові висловлювання) і є важливим для написання та розуміння програм на Python.

Застосуємо включення списків для підрахунку слів в тексті:

>>> len(text1)

260819

>>> len(set(text1))

19317

>>> len(set([word.lower() for word in text1]))

17231

>>>

В даному прикладі ми уникнули подвійного підрахунку слів з великої літери (This and this), що зменшило кількість приблизно на 2000 слів. Подібним способом можна уникнути підрахунку розділових знаків та чисел.

>>> len(set([word.lower() for word in text1 if word.isalpha()]))

16948

>>>


Цілі, стрічки і списки є типами даних в Python. Кожне значення (змінна) має свій тип. Цей тип визначає, які операції ви можете виконувати зі змінною. Наприклад, ми можемо індексувати стрічки і списки, але не можемо індексувати цілі.



Можна використовувати функцію Python type() для перевірки типу об’єкту, з яким ми працюємо.




1.1.2 Засоби здійснення простого керування.

Більшість мов програмування дозволяють виконання окремих блоків програми, коли використовуються умовні вирази або if оператори. В наступній програмі ми створили змінну word, яка містить значення ‘cat’ типу стрічка. If- оператор перевіряє умову чи довжина слова <5, чи ні. Якщо умова виразу справджується, то виконується тіло if оператора і виконується оператор print .



Якщо змінити умови виразу (довжина слова більша або рівна 5), вираз не справджується і оператор print не виконується.



If оператор, - це керуюча (управляюча) структура, тому що вона керує виконанням програми, вона вибирає, яка частина коду в програмі буде виконуватися. Іншою контрольную структурою є for оператор циклу. В наступному прикладі ми бачимо його використання:

>>> for word in ['Call', 'me', 'Ishmael', '.']:

... print word

...

Call

me

Ishmael

.

>>>

Стрічка з операторами If та For повинна завершуватися двокрапкою.


1.1.3.Організація циклів з умовними виразами.


При написанні програм можна поєднувати оператори if та for. В наступному прикладі в циклі обробляються всі елементи списка і друкуються тільки ті, які мають останню літеру l:

>>> sent1 = ['Call', 'me', 'Ishmael', '.']

>>> for xyzzy in sent1:

... if xyzzy.endswith('l'):

... print xyzzy

...

Call

Ishmael

>>>

Якщо потрібно, щоб щось відбувалося, коли умовний вираз не справджується, використовується оператор else в If – твердженні.



Наступний приклад містить ще складнішу комбінацію з операторів If, else, elif.

>>> for token in sent1:

... if token.islower():

... print token, 'is a lowercase word'

... elif token.istitle():

... print token, 'is a titlecase word'

... else:

... print token, 'is punctuation'

...

Call is a titlecase word

me is a lowercase word

Ishmael is a titlecase word

. is punctuation

>>>


Якщо залишити частину умов if твердження пустою, то не пуста стрічка або список буде оброблятися як true а пуста стрічка чи список, як false.



В даному прикладі if твердження тотожне до if len(element) > 0

Для встановлення відмінності в використанні if...elif роглянемо наступний приклад:



У випадку, коли if. вираз твердження задовольняється, elif вираз не виконується і програма ніколи не виведе на екран 2. elif вираз надає більше інформації ніж if вираз. Якщо elif вираз справджується то це означає, що не тільки одна умова справджується але і означає, що умова if виразу не справдилася.


1.1.4 Ітерації і If твердження.

Нехай маємо стрічку і необхідно написати програму, яка виведе на екран всі слова, які мають закінчення «ow». Програма буде складатися з наступних частин. Спочатку розділимо стрічку на список слів.



Тепер потрібно послідовно перебрати всі слова у списку . Напишемо такий цикл , за допомогою якого виводимо на екран всі слова .



Далі треба вивести на екран тільки необхідні нам слова із закінченням «ow». Попередньо можна перевірити, які саме слова необхідно вивести на екран.



Тепер все готове для написання ^ If твердження у For циклі.




На завершення розглянемо наступний приклад:

>>> tricky = sorted([w for w in set(text2) if 'cie' in w or 'cei' in w])

>>> for word in tricky:

... print word,

ancient ceiling conceit conceited conceive conscience

conscientious conscientiously deceitful deceive ...

>>>

Спочатку був створений список куди увійшли слова з буквосполученнями «cie» та «cei». Елементи цього списку оброблялися в циклі і роздруковувалися. Зауважимо, що кома в кінці оператора print вказує на те щоб результати виводилися в стрічку.


1.2 Клас FreqDist для простих статистичних досліджень

Для автоматичного визначення слів, які є найбільш інформативними для текстів певного жанру або певної тематики спочатку інтуітивно виникає думка побудувати частотний список або частотний розподіл. Частотний розподіл вказує на частоту з якою в тексті зустрічається кожне зі слів. Такий частотний список називають розподілом тому, що він вказує яким чином загальна кількість слів розподіляється між словниковими статями (оригінальні слова) в тексті. Враховуючи що побудова частотних розподілів часто необхідна при обробці природної мови в NLTK реалізовано окремий клас FreqDist в модулі nltk.probability . Застосуємо цей клас для знаходження 50 найчастотніших слів в тексті Moby Dick.

>>> fdist1 = FreqDist(text1) #1

>>> fdist1 #2



>>> vocabulary1 = fdist1.keys() #3

>>> vocabulary1[:50] #4

[',', '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']

>>> fdist1['whale']

906

>>>


При першому виклику FreqDist назва текста вказується як аргумент класа #1. Можна дізнатися загальну кількість слів, які були підраховані #2. Вираз keys() дозволяє встановити список оригінальних слів текста #3 і можна переглянути перші 50 з них #4. Серед цих 50 слів тільки одне дає певну інформацію про текст (whale) і це слово зустрічається в тексті 906 раз. Всі інші слова є не інформативними, або службовими. Для визначення, яку частину тексту займають ці службові слова знайдемо їх сумарну частоту побудувавши графік (Рис.1.) за допомогою fdist1.plot(50, cumulative=True)



Рис.1. Частотний розподіл (з накопиченням ) 50 слів тексту Moby Dick.

Якщо найбільш частотні слова не дають уяви про текст то спробуємо за допомогою fdist1.hapaxes() побудувати список слів які зустрічаються тільки один раз. В даному тексті таких 9002 слова і серед них є такі слова як: exicographer, cetological, contraband, expostulations . Деякі слова без контексту тяжко зрозуміти і вони також не дають уяву про текст.


1.2.1.Вибір слів з текста.

Спробуємо знайти найдовші слова сподіваючись що вони є більш інформативними:

>>> V = set(text1)

>>> long_words = [w for w in V if len(w) > 15]

>>> sorted(long_words)

['CIRCUMNAVIGATION', 'Physiognomically', 'apprehensiveness', 'cannibalistically',

'characteristically', 'circumnavigating', 'circumnavigation', 'circumnavigations',

'comprehensiveness', 'hermaphroditical', 'indiscriminately', 'indispensableness',

'irresistibleness', 'physiognomically', 'preternaturalness', 'responsibilities',

'simultaneousness', 'subterraneousness', 'supernaturalness', 'superstitiousness',

'uncomfortableness', 'uncompromisedness', 'undiscriminating', 'uninterpenetratingly']

>>>

Для кожного слова зі списку V здійснюється перевірка чи його довжина є більша ніж 15 символів, всі інні слова ігноруються.

Виконати самостійно: Виконати попередній приклад для інших текстів зміннючи довжину слів. Результати порівняти і пояснити.

Повертаючись до задачі пошуку характерних для текста слів зазначимо, що довгі слова в тексті№4 constitutionally, transcontinental вказують на його державницький характер а довгі слова тексту№5 boooooooooooglyyyyyy and yuuuuuuuuuuuummmmmmmmmmmm вказують на його неформальний характер. Але довгі слова часто зустрічаються в тексті тільки один раз і тому потрібно знайти ті довгі слова які зустрічаються в тексті з певною частотою. Одночасно ми уникаємо врахування коротких не нформативних слів а також уникаємо врахування довгих але рідкісних слів. В наступному прикладі показано, як з текста №5 вибираються слова які мають довжину більше ніж 7 символів і зустрічаються в тесті більше ніж 7 разів.

>>> fdist5 = FreqDist(text5)

>>> sorted([w for w in set(text5) if len(w) > 7 and fdist5[w] > 7])

['#14-19teens', '#talkcity_adults', '((((((((((', '........', 'Question',

'actually', 'anything', 'computer', 'cute.-ass', 'everyone', 'football',

'innocent', 'listening', 'remember', 'seriously', 'something', 'together',

'tomorrow', 'watching']

>>>


1.2.2.Колокації та біграми.

Колокація це словосполучення яке зустрічається дуже часто. red wine –це колокація а the wine – ні . Характерною рисою колокацій є те що вони є стійкі до заміни одного зі слів на інше подібне за змістом (maroon wine). Для того щоб побудувати колокації спочатку потрібно побудувати на основі тексту пари слів, або біграми. Для цього можна використати функцію bigrams():

>>> bigrams(['more', 'is', 'said', 'than', 'done'])

[('more', 'is'), ('is', 'said'), ('said', 'than'), ('than', 'done')]

>>>

Так як колокації це частотні біграми з врахуванням випадків рідкісних слів, то нам потрібно знайти такі біграми частота яких вища ніж частоти слів з яких він складається. Функція collocations() реалізує такі дії.

>>> text4.collocations()

Building collocations list

United States; fellow citizens; years ago; Federal Government; General

Government; American people; Vice President; Almighty God; Fellow

citizens; Chief Magistrate; Chief Justice; God bless; Indian tribes;

public debt; foreign nations; political parties; State governments;

National Government; United Nations; public money

>>> text8.collocations()

Building collocations list

medium build; social drinker; quiet nights; long term; age open;

financially secure; fun times; similar interests; Age open; poss

rship; single mum; permanent relationship; slim build; seeks lady;

Late 30s; Photo pls; Vibrant personality; European background; ASIAN

LADY; country drives

>>>

Колокації є характерними для текстів різних тематик та жанрів.

Крім підрахунку окремих слів цікаво також здійснити підрахунок довжин слів в тексті використовуючи FreqDist.

>>> [len(w) for w in text1] #1

[1, 4, 4, 2, 6, 8, 4, 1, 9, 1, 1, 8, 2, 1, 4, 11, 5, 2, 1, 7, 6, 1, 3, 4, 5, 2, ...]

>>> fdist = FreqDist([len(w) for w in text1]) #2

>>> fdist #3



>>> fdist.keys()

[3, 1, 4, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20]

>>>

Спочатку будуємо список довжин слів в тексті №1 #1. FreqDist здійснює підрахунок кількості вживань слів різної довжини #2. В результаті #3 отримуємо розподіл в якому довжині слова відповідає кількість таких слів в тексті. Бачимо, що в тексті зустрічаються слова різної довжини від 1 до 20 символів. Частоту різних довжин слів можна переглянути:

>>> fdist.items()

[(3, 50223), (1, 47933), (4, 42345), (2, 38513), (5, 26597), (6, 17111), (7, 14399),

(8, 9966), (9, 6428), (10, 3528), (11, 1873), (12, 1053), (13, 567), (14, 177),

(15, 70), (16, 22), (17, 12), (18, 1), (20, 1)]

>>> fdist.max()

3

>>> fdist[3]

50223

>>> fdist.freq(3)

0.19255882431878046

>>>

Найчастіше зустрічаються слова з довжиною 3 символа і такі слова становлять близько 20% всього тексту. Можна здійснити аналіз довжин слів для текстів різних жанрів, авторів та мов.


^ ПОРЯДОК ВИКОНАННЯ РОБОТИ


  1. Ознайомитися з теоретичними відомостями.

  2. Виконати приклади, які використовуються в теоретичних відомостях.

  3. Виконати наступні вправи.

    1. Створіть змінну sentence і присвойте їй значення ‘she sells sea shells by the sea shore’ та напишіть фрагмент програми для виведення на екран всіх слів які починаються з ‘sh’.

    2. Створіть змінну sentence і присвойте їй значення ‘she sells sea shells by the sea shore’ та напишіть фрагмент програми для виведення на екран всіх сліва, довжина яких більша ніж 4 символи.

    3. Створіть змінну sentence і присвойте їй значення ‘she sells sea shells by the sea shore’ та напишіть фрагмент програми, яка генерує нову стрічку додаючи ‘like’ перед кожним зі слів , яке починається з ‘se’.

    4. Напишіть програму, яка видаляє всі голосні зі стрічки, яка відповідає імені, по батькові та прізвищу студента. Програма повинна здійснювати наступну послідовність дій: створення початкової стрічки; створення стрічки, у якій буде зберігатися результат; for цикл для обробки стрічки символ за символом і запису неголосних символів в результуючу стрічку.

    5. Пуста стрічка і пустий список в частині умов if виразу призводить до помилки. Напишіть програму для демонстрації таких випадків при використанні if тверджень.

    6. Перегляньте результати виконання умовних виразів: ’row’ in ’brown’ та ’row’ in [’ brown’, ’cow’]. Напишіть програму для перевірки наявності в стрічці sent=’ ’colorless green ideas sleep furiously’ окремих слів та підстрічок.

    7. Виконати настіпні приклади і пояснити чому отримані різні результати (різні значення змінних)

sorted(set([w.lower() for w in text1]))

sorted([w.lower() for w in set(text1)])

    1. Виконати наступні приклади і пояснити різницю між ними

w.isupper()

not w.islower()

    1. Знайдіть в тексті № 5 всі слова довжина яких дорівнює 4 і побудуйте для них частотний розподіл.

    2. Використовуючи оператори if та for виведіть на екран всі слова з тексту № 6 які написані з великої літери.

    3. Напишіть вираз для знаходження в тексті №6 всіх слів які відповідають наступним вимогам: закінчуються на ize; містять літеру z; містять послідовність літер pt; написані з великої літери . Результат представити, як список слів.

    4. Використайте вираз sum([len(w) for w in text1]) для знаходження середньої довжини слів в тексті.

    5. Перевірте виконання виразу set(sent3) < set(text1). Змініть аргументи функції. Результати поясніть.

    6. Побудуйте колокації для текстів №1 та №2. Результати порівняйте.

    7. Побудуйте колокації для текстів №1 та №4. Результати порівняйте.

    8. Побудуйте колокації для текстів №1 та №5. Результати порівняйте.

    9. Побудуйте колокації для текстів №1 та №6. Результати порівняйте.

    10. Побудуйте колокації для текстів №1 та №7. Результати порівняйте.

    11. Побудуйте колокації для текстів №1 та №9. Результати порівняйте.

    12. Побудуйте колокації для текстів №2 та №4. Результати порівняйте.

    13. Побудуйте колокації для текстів №2 та №5. Результати порівняйте.

    14. Побудуйте колокації для текстів №2 та №6. Результати порівняйте.

    15. Побудуйте колокації для текстів №2 та №7. Результати порівняйте.

    16. Побудуйте колокації для текстів №2 та №9. Результати порівняйте.


4. Підготувати і оформити звіт.


Варіант

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Номери завдань

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

4

6

5

5

4

6

4

6

5

5

4

6

4

6

5

8

7

8

8

7

7

8

8

7

7

8

8

7

7

8

9

13

9

13

9

13

9

13

9

13

9

13

13

9

9

11

12

11

12

11

12

11

12

11

12

11

12

11

12

12

14

15

16

17

18

19

20

21

22

23

24

14

15

16

17






























































































Варіант

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

Номери завдань

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

4

6

5

5

4

6

4

6

5

5

4

6

5

4

6

7

8

8

7

7

8

8

7

7

8

8

7

7

8

7

9

13

9

13

9

13

9

13

9

13

9

13

13

9

13

11

12

11

12

11

12

11

12

11

12

11

12

11

12

11

15

16

17

18

19

20

21

22

23

24

14

15

16

14

22





























































































^ ЗМІСТ ЗВІТУ


5.1 Титульний аркуш.

5.2 Мета роботи.

5.3 Короткі теоретичні відомості.

5.4 Тексти програм на мові Python.

5.5 Висновок.


ЛІТЕРАТУРА


  1. Steven Bird, Ewan Klein, Edward Loper Introduction to Natural Language Processing. 2001-2007 University of Pennsylvania.

  2. Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач, М. Задка, М. Левис, С.Монтаро, Э.С.Реймонд, А.М.Кучлинг, М.-А.Лембург, К.-П.Йи, Д.Ксиллаг, Х.Г. Петрилли, Б.А.Варсав, Дж.К.Ахлстром, Дж.Рокинд, Н.Шеменон, С.Мулендер. Язык программирования Python./ 2001 – 452c.

  3. Сузи Р. А. Язык программирования Python.- 206с.

  4. David Mertz Text Processing in Python Addison WesleyBiber, 2003 - 544.
^

ІНТЕРНЕТ ПОСИЛАННЯ


http://www.nltk.org

http://python.org


ДОДАТОК А


Сьогодні ми вивчили:

Використання операторів if та for.

Побудову контрольних структур та умовних виразів.


Функції класу FreqDist

Приклад

Пояснення

fdist = FreqDist(samples)

Побудувати частотний розподіл на основі даних samples

fdist.inc(sample)

Збільшити значення для даного випадку sample

fdist['monstrous']

Скільки разів зустрічається даний прикладsample

fdist.freq('monstrous')

Частота для даного прикладу sample

fdist.N()

Загальна кількість врахованих випадків

fdist.keys()

Приклади відсортовані за частотою по спаданню

for sample in fdist:

Перебір всіх прикладів за частотою по спаданню

fdist.max()

Приклад з максимальною кількістю

fdist.tabulate()

Представити частотний розбоділ у вигляді таблиці

fdist.plot()

Побудувати графічне зображення частотного розподілу

fdist.plot(cumulative=True)

Побудувати графічне зображення частотного розподілу з накопиченням

fdist1 < fdist2

Перевірка чи приклади fdist1 зустрічаються з меншою частотою ніж в fdist2



Функції для роботи зі списками

s.lower()

Перетворення всіх символів в s на малі

s.upper()

Перетворення всіх символів в s на великі

s.title()

Перетворення всіх перших символів в s на великі



Романюк Андрій Богданович, Юрчак Ірина Юріївна


МЕТОДИЧНІ ВКАЗІВКИ


до лабораторної роботи № 2

з дисципліни «Комп’ютерна лінгвістика»

для магістрів за фахом 8.02030303 «Прикладна лінгвістика»

денної та заочної форм навчання




Схожі:




База даних захищена авторським правом ©lib.exdat.com
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації