- •ДніпропетровсьКий університет імені альфреда нобеля Кафедра прикладної лінгвістики та методики навчання іноземних мов автоматичний морфологічний аналіз
- •Дніпропетровськ-2015
- •Короткі теоретичні відомості до робіт №1-№3 Практична робота № 1. Поняття автоматичного морфологічного аналізатора
- •Практична робота №2. Морфологічно розмічені корпуси
- •2.1 Представлення промаркованих слів
- •2.2 Доступ до морфологічно розміченого корпусу
- •2.3 Спрощений набір тегів для маркування морфологічних характеристик
- •2.4 Іменники
- •2.5 Дієслова
- •2.6 Повний набір тегів
- •2.7 Дослідження морфологічно розміченого корпусу
- •3.1 Порівняння проіндексованих списків та словників
- •3.2 Тип даних словник в Python
- •3.3 Визначення (створення) словників
- •3.4 Словники по замовчуванню
- •3.5 Проведення обчислень з використанням словника
- •3.6 Комплексні ключі та значення
- •3.7 Інвертування словника
- •Порядок виконання практичних робіт №1-№3
- •Зміст звіту по практичним роботам №1-№3
- •Інтернет посилання
- •Короткі теоретичні відомості
- •4.2.The Lookup Tagger Пошуковий морфологічний аналізатор
- •Практична робота №5. Використання n-грамів в автоматичному морфологічному аналізі
- •5.1.Уніграм аналізатор
- •5.2. Розділення даних для тренування та тестування аналізаторів
- •5.3. Морфологічний аналіз на основі n-грамів
- •5.4. Поєднання (комбінування) аналізаторів
- •5.5. Морфологічний аналіз невідомих слів
- •5.6. Збереження результатів тренування аналізаторів
- •Практична робота №6. Transformation-Based Tagging
- •6.1. Категорії слів англійської мови
- •Порядок виконання робіт №5-№6.
- •Зміст звіту
- •Методичні вказівки
4.2.The Lookup Tagger Пошуковий морфологічний аналізатор
Слова, які мають високу частоту (часто зустрічаються в текстах), необов’язково мають тег nn.Спробуємо знайти найчастотніші слова та відповідні до них теги. Таку інформацію можна буде в подальшому використати, як модель для пошукового аналізатора "lookuptagger" вNLTKUnigramTagger.
Наступна програма обробляє послідовність речень, підраховує частоту слів і виводить на екран 100 слів, які найчастіше зустрічаються :
|
Далі переглянемо відповідні до цих слів теги. Це можна зробити наступним способом, але він має низьку ефективність.
>>> [(w,t) for (w,t) in nltk.corpus.brown.tagged_words(categories='news')
... if w in most_freq_words]
[('The', 'AT'), ('said', 'VBD'), ('an', 'AT'), ('of', 'IN'), ('``', '``'), ('no', 'AT'), ("''", "''"), ('that', 'CS'), ('any', 'DTI'), ('.', '.'), ..., ("''", "''")]
Набагато кращий підхід полягає в тому, щоб побудувати словник, в якому встановлюється відповідність між цими словами і їх найвірогіднішими тегами. Це можна зробити налаштувавши функцію умовного частотного розподілу cfdдля кожного промаркованого слова, тобто отримати частоту різних тегів, які зустрічаються з кожним словом. Тепер для будь-якого слова з цієї частини корпуса можна визначити найбільш вірогідний тег.
|
Отже, можна створити та оцінити точність роботи простого аналізатора, який встановлює відповідні словам теги на основі даних отриманих у попередньому прикладі.
|
Результати роботи аналізатора дуже добрі. Знаючи теги тільки 100 найчастотніших слів, аналізатор промаркував правильно близько половини слів. Переглянемо результати роботи аналізатора на деякому нерозміченому тексті:
|
В результатах роботи аналізатора бачимо, що багатьом словам у відповідність поставлено тег None. Тобто ці слова відсутні у списку найчастотніших і в такому випадку логічно поставити їм у відповідність тегnn. Такийпроцес називають багатопрохідним аналізом (backoff).
У випадку, коли спочатку потрібно використати пошуковий аналізатор на основі підстановок, а потім, якщо він не зміг встановити відповідного тега, використати аналізатор по замовчуванню, необхідно поєднати ці два аналізатори. Для цього потрібно визначити аналізатор по замовчуванню, як аргумент в аналізаторі на основі підстановок і який буде викликати його кожен раз коли не зможе встановити самостійно відповідний тег.
|
Для оцінки точності роботи такого аналізатора в залежності від кількості найчастотніших слів використовується наступна програма.
| ||
| ||
|
Рис. 1.: Продуктивність роботи аналізатора на основі підстановок.
На рисунку 1 показано залежність продуктивності роботи такого аналізатора від розміру списку найчастотніших слів. Продуктивність роботи спочатку зростає швидко при збільшенні розміру списку, а потім переходить в стан насичення, коли значне збільшення розміру списку приводить до незначного збільшення продуктивності (графік більш плаский).