- •ДніпропетровсьКий університет імені альфреда нобеля Кафедра прикладної лінгвістики та методики навчання іноземних мов автоматичний морфологічний аналіз
- •Дніпропетровськ-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.
- •Зміст звіту
- •Методичні вказівки
5.3. Морфологічний аналіз на основі n-грамів
В одному з попередніх пунктів розглядався уніграм аналізатор, який встановлює тег на основі тотожності цього слова до слова, яке зустрічається в корпусі на якому тренувався аналізатор. В такому випадку, кожне слово розглядається окремо без врахування контексту і наприклад, слово windбуде промарковане однаковим тегом незалежно від контексту чиthe wind чи to wind. В цьому пункті розглянемо аналізатор, який використовує відомості про контекст слова при визначенні відповідного тега.N – грам аналізатор це більш загальний випадок уніграм аналізатора, коли для встановлення тега для поточного слова використовуються тегиn-1 попередніх слів (рис.2.). Тег, який встановлюється –Tn, а контекст затоновано.
Рис. 2.: Контекстне вікноN – грам аналізатора.
В прикладі, який показаний на рис.2. n=3 , тобто розглядаються теги двох попередніх слів.N-грам аналізатор вибирає тег, який має більшу ймовірність появи в даному контексті.
В NLTKNgramTagger- аналізатор реалізовано, як клас який використовує розмічений корпус для визначення найбільш ймовірного тега (тег, який відповідає частині мови) для кожного з контекстів. Наступний приклад демонструє використання одного з варіантівN-грам аналізатора – Біграм аналізатор. Спочатку проводиться його тренування, а далі створений аналізатор використовується для маркування довільного тексту.
|
Як і інші аналізатори N-грам аналізатор ставить у відповідність всім словам, які не зустрічались при тренування тегNone.
При аналізі речення з даних для тренування аналізатор промаркував кожне зі слів, але при аналізі невідомого тексту більшість слів не промарковано. Як тільки в тексті зустрілося нове слово(наприклад, 13.5), аналізатор не може для нього встановити тег. Так само аналізатор не маркує наступне слово (наприклад, million) навіть , якщо воно зустрічалося при тренувані, оскільки це слово в даних для тренування ніколи не зустрічалося після слова тег якогоNone . Це приводить до того що і всі наступні слова в реченні не маркуються і точність роботи аналізатора надзвичайно низька:
|
При збільшенні nкількість окремих контекстних вікон зменшується і вони можуть бути не представлені в даних, на основі яких, проводиться тренування. Такі випадки називають – розрідження даних.N- грам аналізатор не розглядає контекст, який перетинає межі речення. Відповідно, аналізатори вNLTKрозробляються для роботи зі послідовностями речень де кожне речення є списком слів. Першому слову речення завжди ставиться у відповідність тегNone.