Розмічування частин мови
У корпусній лінгвістиці, розмічування частин мови (англ. part-of-speech tagging, POS tagging, POST), також називається граматичним позначенням або розбором на частини мови, це процес позначення слова в тексті (корпусі) належним до певної частини мови,[1] заснований як на його визначенні, так і на його контексті — тобто, на його зв'язку з суміжними і спорідненими словами у фразі, реченні, або абзаці. Спрощена форма корпусної лінгвістики зазвичай викладається дітям шкільного віку, у вигляді визначення слів як іменник, дієслово, прикметник, прислівник тощо.
Зумівши виконати визначення частин мови вручну, це почали робити в контексті обчислювальної лінгвістики, використовуючи алгоритми, які асоціюють дискретні терміни, а також приховані частини мови, відповідно до набору описових позначень. Алгоритми розбору на частини мови поділяються на дві відмінні групи: на основі правил і на стохастичні. Розбірник Е. Брілла[en], один з перших і найбільш широко використовуваних англійських розбірників, використовує алгоритми на основі правил.
Процес позначання частин мови відбувається складніше, ніж просте створення списку слів і їх частин мови, оскільки, деякі слова можуть представляти більш ніж одну частину мови в різний час, і тому, що деякі частини мови складні або невисловлені. Це не рідкість — в природних мовах (на відміну від багатьох штучних мов), великий відсоток форм слова неоднозначний. Наприклад, в англійській мові навіть слово «dogs» (укр. собаки), яке зазвичай вважається іменником множини, може також бути дієсловом:
- The sailor dogs the hatch.
Правильне граматичне позначення покаже, що «dogs» тут використовується як дієслово, а не як іменник множини. Граматичний контекст — один із способів це визначити. Семантичний аналіз також може бути використаний для висновку, що «sailor» (укр. матрос) і «hatch» (укр. люк) втягують «dogs» у 1) морський контекст 2) дії, що застосовуються до об'єкта «hatch» (в даному контексті «dogs» є мореплавальним терміном, що означає «міцно закріплювати [водонепроникні двері]»).
У школі зазвичай навчають, що існує 9 частин мови в англійській: іменник (англ. noun), дієслово (англ. verb), артикль (англ. article), прикметник (англ. adjective), прийменник та післяйменник (англ. preposition, postposition), займенник (англ. pronoun), прислівник (англ. adverb), сполучник (англ. conjunction), та вигук (англ. interjection). Однак, очевидно, є ще багато категорій і підкатегорій. Для іменників можна виділити множину, однину та присвійну форми. У багатьох мовах слова також позначені згідно з їхніми «відмінками» (роллю як предмет, об'єкт тощо), родом, і так далі; в той час, як дієслова мають позначення для часів, видів, та інших речей. Лінгвісти розрізняють частини мови до різних точних ступенів, відображаючи обрану «систему розмітки».
У позначенні частин мови за допомогою комп'ютера типово виділяють від 50 до 150 окремих позначень частин мови для англійської. Наприклад, NN для загальних іменників однини, NNS для загальних іменників множини, NP для окремих власних іменників (див. позначення частин мови які використовувались у збірнику Brown Corpus). Праця над стохастичними методами розмітки Койне (DeRose 1990) використовувала більше 1000 позначень частин мови, і виявила, що приблизно стільки ж слів було багатозначними, що й в англійській. Морфосинтактичний дескриптор у випадку морфологічно багатих мов зазвичай виражається з використанням дуже короткої мнемоніки, наприклад, Ncmsan Частина мови = іменник (noun), Тип = загальний (common), Рід = чоловічий (male), Число = однина (single), Відмінок = знахідний (accusative), Істотність = не живий (no).
Дослідження з розбору на частини мови були тісно пов'язані з корпусною лінгвістикою. Першим великим збірником англійської мови для комп'ютерного аналізу був Браун Корпус який був розроблений у Браунському університеті Генрі Кучерою та Нельсоном Францисом, в середині 1960-х. Він складається з близько 1 000 000 слів суцільного тексту англійської прози, виробленого з 500 зразків випадково вибраних публікацій. Кожен зразок становить 2000 або більше слів (закінчується на першому кінці речення після 2000 слів, так що збірник містить лише повні речення).
Протягом багатьох років Браун Корпус ретельно «розбирався» на частини мови. Перше наближення було зроблено за допомогою програми Гріна і Рубіна, яка складалася з величезного списку ручної роботи, на тему того, які категорії можуть взагалі зустрічатися. Наприклад, артикль потім іменник можливо зустріти, але артикль дієслово (можливо) ні. Програма набула близько 70 % коректності. Її результати неодноразово переглядалися і виправлялися вручну, а пізніше користувачі надсилали повідомлення про помилки, так що наприкінці 70-х років позначення частин мови було майже ідеальним (враховуючи деякі випадки, коли навіть люди не мають єдиної точки зору).
Цей збірник був використаний для незліченних досліджень частотності слів і частин мови, і надихнув на розвиток подібних «позначень» на багатьох інших мовах. Статистичні дані, отримані в результаті аналізу, послужили основою для найбільш розвинутих систем позначення частин мови, таких як CLAWS[en] та VOLSUNGA. Однак до цього часу (2005 р.) він був замінений великими збірниками, такими як Британський Національний Збірник зі 100 мільйонами слів.
Протягом деякого часу, позначення частин мови вважалося невіддільною частиною обробки природної мови, тому що є певні випадки, коли правильну частину мови не можна вирішити без розуміння семантики або навіть прагматики контексту. Це надзвичайно дорого, особливо тому, що аналіз вищих рівнів набагато складніший, коли для кожного слова необхідно враховувати декілька можливих частин мови.
У середині 1980-х років дослідники в Європі почали використовувати приховані марковські моделі (ПММ) для розбору на частини мови під час роботи з розбору збірника Ланкасткер-Осло-Берген (ЛОБ) Британської Англійської. ПММ включають підрахунок випадків (наприклад, на основі Brown Corpus) і складання таблиці ймовірностей певних послідовностей. Наприклад, коли ви бачите артикль, наприклад, «the», можливо, наступне слово — це іменник часу 40 %, прикметник 40 % і число 20 %. Знаючи це, програма може вирішити, що «can» у випадку «the can» має набагато більше шансів бути іменником, ніж дієсловом або модальним. Один і той же метод, звичайно, може бути використаний для отримання користі від знань про наступні слова.
Більш розвинуті («вищі порядки») ПММ вивчають ймовірності не тільки пар, але трійок або навіть більших послідовностей. Так, наприклад, якщо ви тільки що бачили іменник, за яким слідує дієслово, наступний пункт, дуже ймовірно, може бути прийменником, артиклем або іменником, але набагато менш ймовірно іншим дієсловом.
Коли зустрічаються кілька неоднозначних слів, можливості множать. Проте легко перерахувати кожну комбінацію і присвоїти кожній з них відносну ймовірність, помноживши своєю чергою ймовірності кожного вибору. Потім вибирається комбінація з найвищою ймовірністю. Європейська група розробила CLAWS, програму позначення, яка зробила саме це, і досягла точності в діапазоні 93–95 %.
Варто згадати, що Євген Чарняк[en] відмічає у статті «Статистичні методи аналізу природної мови» (1997),[2] що призначення найпоширенішого позначення кожному відомому слову і позначення «власної назви» для всіх невідомих буде наближати до 90 % точності, оскільки багато слів є однозначними, і багато інших рідко представляють їх менш поширені частини мови.
CLAWS проклала шлях в позначенні частин мови на основі ПММ, але була досить дорогою, оскільки вона перерахувала всі можливості. Іноді доводилося вдаватися до методів резервного копіювання, коли було просто занадто багато варіантів (The Brown Corpus містить випадок з 17 неоднозначними словами в рядку, а є слова, такі як «still» (укр. досі), які можуть представляти до 7 різних частин мови (DeRose 1990, p. 82)).
ПММ лежать в основі функціонування стохастичних позначень і використовуються в різних алгоритмах, одним з найбільш широко використовуваних алгоритмів є алгоритм двонапрямного виводу.[3]
У 1987, Стівен ДеРоуз[en][4] та Кен Чорч[5], незалежно один від одного, розробили алгоритми динамічного програмування для вирішення однієї і тієї ж проблеми за значно менший час. Їх методи були аналогічні алгоритму Вітербі, який вже був відомим в інших областях протягом деякого часу. ДеРоуз використовував таблицю пар, тоді як Чорч використовував таблицю трійок і метод оцінки значень для трійок, які були рідкісними або відсутніми в Brown Corpus (фактичне вимірювання потрійних ймовірностей вимагало б набагато більшого збірника). Обидва способи досягли точності понад 95 %. 1990 р. Дисертація ДеРоуз у Браунському університеті включала аналіз специфічних типів помилок, ймовірностей та інших відповідних даних, і продублювала його роботу для грецької мови, де цей аналіз виявився таким же ефективним.
Ці висновки були несподівано руйнівними для області обробки природних мов. Точність повідомлень була вищою, ніж типова точність дуже складних алгоритмів, які інтегрували вибрану частину мовлення з багатьма вищими рівнями лінгвістичного аналізу: синтаксис, морфологія, семантика тощо. Методи CLAWS, DeRose і Church помилялися у деяких відомих випадках, коли потрібна семантика, але вони виявилися незначно рідкісними. Це переконало багатьох у цій галузі, що розбір на частини мови може бути корисно відокремлений від інших рівнів обробки; це, своєю чергою, спростило теорію і практику комп'ютерного мовного аналізу, а також заохотило дослідників до пошуку шляхів виділення інших частин. Моделі Маркова тепер є стандартним методом розбору на частини мови.
Розглянуті методи передбачають роботу з вже наявним збірником для вивчення ймовірностей позначень. Однак це також можливо «завантажити»[en] використовуючи «безконтрольні» позначення. Техніка безконтрольного позначення використовує нерозібрані збірники для своїх тренувальних даних і виробляють набір позначань за індукцією. Тобто вони спостерігають за шаблоном у використанні слова і самі виводять позначення для частини мови. Наприклад, статистика легко виявляє, що «the», «а» і «an» з'являються в аналогічних контекстах, тоді як «eats» з'являється в дуже різних. З достатньою ітерацією з'являються класи подібності слів, які є надзвичайно подібними до тих, яких очікують люди-лінгвісти; і самі відмінності іноді пропонують нові, цінні уявлення.
Ці дві категорії можуть бути додатково поділені на: основані на правилах, стохастичні та нейронні підходи.
Деякі сучасні основні алгоритми для розмічування частин мови включають Алгоритм Вітербі, розбірник Брілла[en], обмеження граматики[en], та алгоритм Баума-Уелча (також відомий як алгоритм прямого-зворотнього ходу). Розбірники, які використовують приховані Марковські моделі і неприховані Марковські моделі можуть бути реалізовані за допомогою алгоритму Вітербі. Оснований на правилах розбірник Brill незвичайний тим, що вивчає набір шаблонів правил, а потім застосовує ці моделі, а не оптимізує статистичну кількість. На відміну від розбірника Brill, де правила впорядковані послідовно, інструментарій для позначення частин мови та морфологічного розбору RDRPOSTagger [Архівовано 8 вересня 2019 у Wayback Machine.] зберігає правила у вигляді пульсуючого[en] дерева.
Багато методів машинного навчання також були застосовані для розв'язання проблеми позначення частин мови. Такі методи, як метод опорних векторів, мультиномна логістична регресія[en], перцептрон, та метод k-найближчих сусідів були випробувані, і більшість може домогтися точності вище 95 %.
Пряме порівняння декількох методів можна знайти (з посиланнями) на ACL Wiki.[6] Це порівняння використовує позначення Penn, встановлений на деяких даних Penn Treebank, тому результати можна безпосередньо порівняти.
Проте, багато значних розбірників не включені (можливо, через трудомісткість, пов'язану з їх реконфігурацією для цього конкретного набору даних). Таким чином, не слід вважати, що результати, про які повідомляється, є найкращими, які можна досягти за допомогою даного підходу. Також не є найкращими поміж тих, що вже були досягнуті за допомогою даного підходу.
Найсучасніша розробка використовує метод регуляризації структури для позначання частин мови, досягаючи 97,36 % на стандартному наборі тестів.[7]
Хоча існує загальна згода щодо основних категорій, ряд крайніх випадків ускладнює розв'язання питання про єдиний «правильний» набір позначень, навіть у певній мові, наприклад, англійській. Наприклад, важко сказати, чи є «fire» (укр. вогонь) прикметником чи іменником
the big green fire truck
Другий важливий зразок використання–згадування відмінності[en], як у наступному прикладі, де «blue» (укр. синій) міг бути замінений словом будь-якою частиною мови (збірник позначень Brown Corpus додає суфікс «-NC» у таких випадках):
the word "blue" has 4 letters.
Слова у мові, які відрізняються від тих, що в «основному» тексті, зазвичай позначаються як «іноземні», як правило, на додаток до позначення ролі, яку іноземне слово фактично відтворює в контексті.
В англійській є також багато випадків, коли частини мови та «слова» не мають однозначної відповідності, наприклад:
as far as David's gonna don't vice versa first-cut cannot pre- and post-secondary look (a word) up
В останньому прикладі, «look» і «up», можливо, функціюють як єдине вербальна одиниця, попри можливість виникнення між ними інших слів. Деякі набори позначень (наприклад, Penn) розбивають переносні слова, скорочення і присвійні на окремі позначення, таким чином уникаючи деяких, але далеко не усіх таких проблем.
Багато наборів трактують слова «be», «have», та «do» як самостійні (як у Brown Corpus), тоді як деякі вважають їх усі просто дієсловами (наприклад, LOB Corpus та Penn Treebank[en]). Оскільки ці конкретні слова мають більше форм, ніж інші англійські дієслова, і зустрічаються в зовсім різних граматичних контекстах, трактування їх просто як «дієслова» означає, що розмітник буде мати набагато менше інформації. Наприклад, позначення, засноване на ПММ, буде поєднувати кілька рядків і стовпців, які в іншому випадку будуть не тільки окремими, але і зовсім несумісними. Складніший алгоритм може також враховувати конкретне слово в кожному випадку; але з різними позначеннями, сама ПММ часто може передбачити правильне найточніше позначення навіть для нових варіантів написання, і таким чином забезпечити кращу допомогу для подальшої обробки.
Найбільш популярний «набір позначень» для розбору на частини мови для американської англійської — ймовірно, набір позначень Penn, розроблений в проєкті Penn Treebank. Він значною мірою схоже на попередні набори Brown Corpus і LOB Corpus, хоча і набагато менший. У Європі набори з Eagles Guidelines[en]) широко використовуються і включають версії для декількох мов.
Робота з розбору виконується для різних мов, а набір позначень залежить від самої мови. Позначення, як правило, розроблені таким чином, щоб включати явні морфологічні відмінності, хоча це призводить до таких невідповідностей, як наявність позначень для займенників, але відсутність для іменників в англійській, і набагато більшим міжмовним відмінностям. Набір позначень для мов з великим змістом, таких як Грецька та Латинь може бути дуже великим; віртуальний розбір слів у аглютинативних мовах таких як інуїтська може бути зовсім неможливим. З іншого боку, Петров[8] запропонував «універсальний» набір позначень, з 12 категоріями (наприклад, ніяких підтипів іменників, дієслів, пунктуації і т. д.; немає відмінності від «to» як інфінітивного позначення проти прийменника (навряд чи «універсального» збігу) тощо). Який набір вибрати, чи дуже малий набір дуже широких міток, чи набагато більший набір більш точних, залежить від конкретної мети. Автоматичне позначання легше на менших наборах тегів.
Інша проблема полягає в тому, що деякі випадки фактично неоднозначні. Беатріс Санторіні надає приклади у «Part-of-speech Tagging Guidelines for the Penn Treebank Project», (3rd rev, June 1990 [2]), включаючи наступний (с. 32) випадок в якому entertaining (укр. розважальний) може бути або прикметником, або дієсловом, і не існує синтаксичного способу вирішення:
The Duchess was entertaining last night.
- Семантична мережа
- Ковзне візуальне розмічування частин мови[en]
- Trigram tagger[en]
- Неоднозначність слова[en]
- ↑ Розмічування частин мови. Sketch Engine. Лексичні обчислення. 27 березня 2018. Архів оригіналу за 2 квітня 2019. Процитовано 6 квітня 2018.
- ↑ Євген Чарняк. Архів оригіналу за 11 липня 2017. Процитовано 2 квітня 2019.
- ↑ CLL позначальник частин. Архів оригіналу за 2 квітня 2019. Процитовано 2 квітня 2019.
- ↑ DeRose, Steven J. 1988. «Неоднозначність граматичної категорії шляхом статистичної оптимізації.» Computational Linguistics 14(1): 31–39. [1]
- ↑ Kenneth Ward Church (1988). Програма стохастичних частин і синтаксичний аналізатор для необмеженого тексту. ANLC '88: Матеріали другої конференції з прикладної обробки природної мови. Асоціація обчислювальної лінгвістики Stroudsburg, PA. doi:10.3115/974235.974260.
- ↑ Позначення частин мови (Витвір мистецтва). Архів оригіналу за 2 квітня 2019. Процитовано 2 квітня 2019.
- ↑ Xu Sun (2014). Структурна регуляризація для структурованого прогнозування (PDF). Системи обробки нейронної інформації (СОНІ). с. 2402—2410. Архів оригіналу (PDF) за 3 квітня 2016. Процитовано 2 квітня 2019.
- ↑ Петров, Слав; Дас, Діпанджан; Макдоналд, Райан (11 квітня 2011). Універсальний набір позначень частин мови. arXiv:1104.2086.
- Charniak, Eugene. 1997. «Статистичні методи розпізнавання природних мов [Архівовано 14 вересня 2008 у Wayback Machine.]». AI Magazine 18(4):33–44.
- Ганс ван Галтерен, Якуб заврел, Волтер Даелеманс[en]. 2001. Підвищення точності в NLP шляхом поєднання систем машинного навчання. Computational Linguistics. 27(2): 199–229. PDF
- DeRose, Steven J. 1990. «Стохастичні методи розв'язування неоднозначності граматичних категорій на мовах, що відхиляються і відбиваються.» Ph.D. Dissertation. Providence, RI: Brown University Department of Cognitive and Linguistic Sciences. Electronic Edition available at [3] [Архівовано 19 серпня 2018 у Wayback Machine.]
- D.Q. Nguyen, D.Q. Nguyen, D.D. Pham and S.B. Pham (2016). «Надійний підхід до навчання, що базується на трансформації, використовуючи правила пульсації для часткового мовлення.» AI Communications, vol. 29, no. 3, pages 409—422. [.pdf] [Архівовано 2 квітня 2019 у Wayback Machine.]
- jPTDP [Архівовано 6 квітня 2019 у Wayback Machine.] надає попередньо підготовлені моделі для спільного розпізнавання та аналізу залежностей для 40 мов.
- RDRPOSTagger [Архівовано 8 вересня 2019 у Wayback Machine.] — надійний набір інструментів для розбору на частини мови і морфологічних міток (Python & Java). RDRPOSTagger підтримує попередньо підготовлені моделі тегування POS для 40 + мов.
- SMILE POS tagger [Архівовано 22 березня 2021 у Wayback Machine.] — безплатний онлайн-сервіс, містить розбірник на основі ПММ (Java API)
- Огляд доступних позначальників [Архівовано 16 грудня 2008 у Wayback Machine.]
- Ресурси для вивчення англійської синтаксису онлайн [Архівовано 14 липня 2019 у Wayback Machine.]
- CLAWS [Архівовано 2 квітня 2019 у Wayback Machine.]
- LingPipe [Архівовано 2 квітня 2019 у Wayback Machine.] Комерційне програмне забезпечення мовою Java для обробки мови природної мови, включаючи теги з частиною мови, які можна підготувати, з першим кращим, вихідним значенням n-best та per-tag.
- Apache OpenNLP [Архівовано 13 квітня 2012 у Wayback Machine.] AL 2.0, містить розбірники на основі класифікаторів перцептрону
- CRFTagger [Архівовано 5 квітня 2008 у Wayback Machine.] Умовні випадкові поля (УВП) розбірник на частини мови для англійської.
- JTextPro [Архівовано 19 серпня 2018 у Wayback Machine.] Інструментарій для обробки тексту на основі Java
- Citar [Архівовано 7 квітня 2019 у Wayback Machine.] LGPL C++ розбірник на частини мови, на основі прихованих марковських моделей, для Java Jitar [Архівовано 6 квітня 2019 у Wayback Machine.] також у доступі
- Ninja-PoST [Архівовано 6 квітня 2019 у Wayback Machine.] PHP версія GPoSTTL, заснований на розбірнику Еріка Бріла
- ComplexityIntelligence, LLC Безкоштовні та комерційні NLP вебсервіси для розбору на частини мови (і розпізнавання названих об'єктів)
- Розбір на частини мови оснований на особливостях Soundex [Архівовано 2 квітня 2019 у Wayback Machine.]
- FastTag — LGPL Java розбірник на частини мови, заснований на розбірнику Еріка Бріла [Архівовано 2 квітня 2019 у Wayback Machine.]
- jspos — LGPL Javascript версія FastTag [Архівовано 11 квітня 2010 у Wayback Machine.]
- Topia TermExtractor — Python implementation of the UPenn BioIE parts-of-speech algorithm [Архівовано 1 лютого 2018 у Wayback Machine.]
- Stanford Log-linear Розбірник на частини мови [Архівовано 2 квітня 2019 у Wayback Machine.]
- Northwestern MorphAdorner Розбірник на частини мови [Архівовано 18 березня 2012 у Wayback Machine.]
- Розбірник на частини мови для іспанської [Архівовано 13 квітня 2019 у Wayback Machine.]
- Stagger — The Stockholm Tagger, для Шведів
- TnT — Статистичне розмічування частин мови з моделлю для німецької та англійської мов [Архівовано 2 квітня 2019 у Wayback Machine.]
- petraTAG Part-of-speech tagger [Архівовано 19 серпня 2018 у Wayback Machine.] Open-source Розбірник на частини мови написаний на Java зі спеціальними функціями для позначення перекладених текстів.
- Rosette linguistics platform [Архівовано 2 квітня 2019 у Wayback Machine.] Комерційний розбірник на частини мови, лематизатор, визначальник основної фрази та інший морфологічний аналіз на Java та C++
- spaCy [Архівовано 25 березня 2022 у Wayback Machine.] Open-source (MIT) Python NLP бібліотека, що містить розбірник частин мови, який можна навчати
- [4] Аналізатор частин мови для української мови на основі словника ВЕСУМ. Має модуль зняття омонімії на основі статистики корпусу БрУК.