DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Вивчення бібліотеки прикладних програм NLTK для опрацювання текстів природною мовою

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерних та інформаційних технологій
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2016
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерна лінгвістика
Група:
ПРЛм
Коротко про документ

Про що ця робота

У звіті досліджено бібліотеку NLTK для опрацювання текстів природною мовою за допомогою мови Python. Розглянуто роботу з веб-ресурсами, юнікодом та виконання базових операцій із текстовими корпусами.

У роботі розглядаються

  • Комп'ютерна лінгвістика
  • Обробка текстів природною мовою
  • Бібліотека NLTK
  • Мова програмування Python
  • Юнікод
  • Токенізація
  • Робота з файлами та URL

Зміст і розділи

  1. Мета роботи
  2. Теоретичні відомості
  3. Тексти програм на мові Python
  4. Висновок
Для кого:Студенти технічних спеціальностей, які вивчають комп'ютерну лінгвістику та програмування на Python.
Викладачі:Не вказано

Ключові поняття

NLTKPythonЮнікодТокенізаціяСтемінгЛеманізаціяURLProject GutenbergList comprehensionКорпус текстів

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра САПР ЗВІТ до лабораторної роботи № 5 на тему: ВИВЧЕННЯ БІБЛІОТЕКИ ПРИКЛАДНИХ ПРОГРАМ NLTK, ДЛЯ ОПРАЦЮВАННЯ ТЕКСТІВ ПРИРОДНОЮ МОВОЮ. ПОЧАТКОВА ОБРОБКА ТЕКСТІВ ПРИРОДНОЮ МОВОЮ. з дисципліни “Комп’ютерна лінгвістика” Мета роботи: Вивчення основ програмування на мові Python. Вивчення методів роботи з файлами на локальних дисках та з Інтернету. Використання Юнікоду при обробці текстів. Нормалізація текстів, стемінг, лематизація та сегментація. Теоретичні відомості Частина електронних книжок з Project Gutenberg розповсюджується разом з NLTK у вигляді корпуса текстів. Для використання інших текстів з цього проекту можна переглянути каталог 25000 електронних книжок за адресою http://www.gutenberg.org/catalog/ та встановити адресу (URL) потрібного текстового файлу в ASCII кодуванні. 90% текстів в Project Gutenberg є англійською мовою, але він включає також тексти більше ніж 50-ма іншими мовами (каталонська, китайська, датська, фінська, французька, німецька, італійська, португальська, іспанська…). Юніко́д, (англ. Unicode) — це промисловий стандарт розроблений, щоб зробити можливим для текстів і символів (графічних знаків) всіх писемних систем світу узгоджене представлення (репрезентацію) і обробку комп’ютерами. Юнікод підтримує більш ніж мільйон символів. Кожному символу ставиться у відповідність число, яке називають кодовою точкою. В Python кодові точки записуються у вигляді \uXXXX , де XXXX - чотири символи шістнадцяткового числа. В межах програми обробка стрічок Unicode відбувається аналогічно до звичайних стрічок. Однак, коли Unicode символи зберігаються у файл або виводяться на екран, вони повинні бути закодовані, як потік байт. Деякі кодування (такі як ASCII та Latin-2) використовують один байт для представлення одної кодової точки і відповідно підтримують невеликий набір символів Unicode, достатній для одної мови. Інші кодування (такі як UTF-8) використовують послідовності байтів і можуть представити весь набір символів Unicode. Текст у файлах є в певному кодування і потрібен певний механізм для перетворення його до Unicode. Такий механізм називають — декодування. Навпаки записати Unicode символи у файл або вивести на екран можна тільки попередньо перетворивши їх у потрібне кодування. Таке перетворення називають кодуванням. ТЕКСТИ ПРОГРАМ НА МОВІ PYTHON ВАРІАНТ №2 1. Напишіть функцію, яка приймає адресу URL, як аргумент, і повертає те що міститься за цією адресою з видаленням HTML розмітки. Використовувати urllib.urlopen для доступу до контенту наступним чином raw_contents = urllib.urlopen('http://www.nltk.org/').read(). import urllib from urllib import urlopen def Clean (url): raw = urlopen(url).read() raw_contents = nltk.clean_html(raw) tokens = nltk.word_tokenize(raw_contents) return tokens url = "http://www.gutenberg.org/files/1342/1342.txt" s = Clean(url) print s[1000:1060] Результат: ['twenty', 'such', 'should', 'come', ',', 'since', 'you', 'will', 'not', 'visit', 'them.', "''", "''", 'Depend', 'upon', 'it', ',', 'my', 'dear', ',', 'that', 'when', 'there', 'are', 'twenty', ',', 'I', 'will', 'visit', 'them', 'all.', "''", 'Mr.', 'Bennet', 'was', 'so', 'odd', 'a', 'mixture', 'of', 'quick', 'parts', ',', 'sarcastic', 'humour', ',', 'reserve', ',', 'and', 'caprice', ',', 'that', 'the', 'experience', 'of', 'three-and-twenty', 'years', 'had', 'been', 'insufficient'] 2. Збережіть деякий текст у файлі corpus.txt. Визначити функцію load(f) для читання файлу, назва якого є її аргументом і повертає стрічку, яка містить текст з файлу.  Рис. 1. Текст програми №2. 3. Перепишіть наступний цикл як list comprehension: >>> sent = ['The', 'dog', 'gave', 'John', 'the', 'newspaper'] >>> result = [] >>> for word in sent: ... word_len = (word, len(word)) ... result.append(word_len) >>> result [('The', 3), ('dog', 3), ('gave', 4), ('John', 4), ('the', 3), ('newspaper', 9)]    Рис. 2. Текст програми №3. 4. Перевірити різницю між стрічками і цілим виконавши наступні дії: "3" * 7 та 3 * 7. Спробуйте здійснити конвертування між стрічками і цілими використавши int("3") та str(3).  Рис. 3. Текст програми №4. Після виконання даного прикладу можна побачити, що використовуючи int можна стрічку переконвертувати у число. Зворотня операція виконується за допомогою str. 5. Що станеться, коли стрічки форматування %6s та %-6s використовується для відображення стрічки довшої ніж 6 символів?  Рис. 4. Текст програми №5. 7. Створіть файл, який буде містити слова та їх частоту записані в окремих рядках через пробіл ( fuzzy 53). Прочитайте цей файл використовуючи open(filename).readlines(). Розділіть кожну стрічку на дві частини використовуючи split(), і перетворіть число в ціле значення використовуючи int(). Результат повинен бути у вигляді списку: [['fuzzy', 53], ...].  Рис. 5. Текст програми №7. 6. Прочитайте деякий текст з корпуса, здійсніть його токенізацію і збережіть у список всі wh-слова, які в ньому зустрічаються.  Рис. 6. Текст програми №6. 10. Модуль random включає функцію choice(), яка випадковим чином вибирає елементи послідовності. Наприклад, choice("aehh ") буде вибирати один з чотирьох символів. Напишіть програму генерації стрічки з 500 випадково вибраних символів "aehh ". Для поєднання елементів в стрічку використовуйте ''.join() . Нормалізуйте отриманий результат використовуючи split() та join().  Рис. 7. Текст програми №10. 15. Перепишіть наступний цикл, як list comprehension:   >>> words = ['attribution', 'confabulation', 'elocution', ... 'sequoia', 'tenacious', 'unidirectional'] >>> vsequences = set() >>> for word in words: ... vowels = [] ... for char in word: ... if char in 'aeiou': ... vowels.append(char) ... vsequences.add(''.join(vowels)) >>> sorted(vsequences) ['aiuio', 'eaiou', 'eouio', 'euoia', 'oauaio', 'uiieioa']   Рис. 8. Текст програми №15. ВИСНОВОК Під час виконання даної лабораторної роботи були вивчені основи програмування мови Python, а саме методи роботи з файлами на локальних дисках та з Інтернету. Також були ознайомлені з використанням Юнікоду при обробці тексту.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!