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

1.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 символів, всі інші слова ігноруються.

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

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

>>> fdist = FreqDist([len(w) for w in text1]) # підрахунок кількості вживань слів різної довжини

>>> fdist # розподіл в якому довжині слова відповідає кількість таких слів в тексті

<FreqDist with 260819 outcomes>

>>> fdist.keys()

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

Бачимо, що в тексті зустрічаються слова різної довжини від 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% всього тексту. Можна здійснити аналіз довжин слів для текстів різних жанрів, авторів та мов.

Виконати самостійно:

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

Повертаючись до задачі пошуку характерних для тексту слів зазначимо, що довгі слова в тексті№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']

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