Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011-kl-lab4.doc
Скачиваний:
8
Добавлен:
12.11.2019
Размер:
1.54 Mб
Скачать

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

Колокація (collocation) позначає стійку фразеологічну одиницю, тобто це словосполучення, яке зустрічається набагато частіше, ніж його складові по окремості. Наприклад, 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

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

2. Доступ до корпусів текстів

Корпус текстів це великий набір текстів. Багато корпусів розроблені їз збереженням балансу між текстами різних жанрів, або авторів. В попередній лабораторній роботі ми працювали з промовами президентів США, які є частиною корпуса US Presidential Inaugural Addresses. З промовами ми працювали, як з одним текстом не зважаючи на те, що кожна промова має окремого автора. Обробку ми здійснювали . При роботі з корпусами важливо мати засоби доступу як до окремих тексті так і до окремих частин цих тексів а також і до окремих слів.

Для того щоб доступитися до корпусів перед початком роботи слід їх імпортувати

>>> import nltk

>>> from nltk.corpus import *

2.1. Корпус Гутенберга

В NLTK входить невелика частина текстів з електронного архіву текстів Project Gutenberg , який містить 25000 безкоштовних електронних книжок різних авторів (http://www.gutenberg.org/). Тексти творів в окремих файлах. Для одержання назв файлів (ідентифікаторів файлів) в яких зберігаються текстів потрібно використати наступну функцію:

fileids() – назви файлів у корпусі

>>> gutenberg.fileids()

['austen-emma.txt', 'austen-persuasion.txt', 'austen-sense.txt', 'bible-kjv.txt', 'blake-poems.txt', 'bryant-stories.txt', 'burgess-busterbrown.txt', 'carroll-alice.txt', 'chesterton-ball.txt', 'chesterton-brown.txt', 'chesterton-thursday.txt', 'edgeworth-parents.txt', 'melville-moby_dick.txt', 'milton-paradise.txt', 'shakespeare-caesar.txt', 'shakespeare-hamlet.txt', 'shakespeare-macbeth.txt', 'whitman-leaves.txt']

Для роботи з першим текстом цього корпусу (роман Емма, автор Джейн Остін) створюємо змінну emma і можемо знайти скільки слів має цей текст.

>>> emma = nltk.corpus.gutenberg.words('austen-emma.txt')

>>> len(emma)

192427

При створенні змінної emma було використано функцію words() об’єкта gutenberg пакета corpus бібліотеки NLTK. Аналогічний результат можна досягнути використавши більш компактний запис конструкцій Python.

>>> from nltk.corpus import gutenberg

>>> gutenberg.fileids()

['austen-emma.txt', 'austen-persuasion.txt', 'austen-sense.txt', ...]

>>> emma = gutenberg.words('austen-emma.txt')

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]