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

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

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

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

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

Таблиця 1.

Оператор

Значення

<

Менше

<=

Менше або дорівнює

==

Дорівнює

!=

Не дорівнює

>

Більше

>=

Більше або дорівнює

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

>>> 3<5

True

>>> 5<3

False

>>> not 5<3

True

>>>

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

>>> word='sovereignty'

>>> 'sovereignty' in word

True

>>> 'gnt' in word

True

>>> 'pre' in word

False

>>> 'Hello' in ['Hello','World']

True

>>> 'Hell' in ['Hello','World']

False

>>>

Корпус nltk.Book

Для подальшої роботи нам будуть необхідні великі масиви текстів, тому скористаємося корпусами текстів Пітона.

>>> 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

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

>>> 'hello' in sent7

False

>>> 'hello' in text1

False

>>> 'he' in text1

True

>>>

2.2 Конструкція list comprehension

Загальною схемою роботи цих прикладів є конструкція типу

([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

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

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

б. Слова , які містять gnt

>>> 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

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