Analiza semantyczna — Semantic parsing

Parsowanie semantyczne to zadanie polegające na przekształceniu wypowiedzi w języku naturalnym w formę logiczną : zrozumiałą dla maszyny reprezentację jej znaczenia. Parsowanie semantyczne można zatem rozumieć jako wydobywanie dokładnego znaczenia wypowiedzi. Zastosowania analizy semantycznej obejmują tłumaczenie maszynowe , odpowiadanie na pytania , indukcję ontologii , automatyczne wnioskowanie i generowanie kodu . Fraza ta została po raz pierwszy użyta w latach siedemdziesiątych przez Yoricka Wilksa jako podstawa programów tłumaczenia maszynowego pracujących wyłącznie z reprezentacjami semantycznymi.

W wizji komputerowej parsowanie semantyczne to proces segmentacji obiektów 3D.

Rodzaje

Płytki

Płytkie parsowanie semantyczne dotyczy identyfikowania bytów w wypowiedzi i oznaczania ich rolami, które odgrywają. Płytkie parsowanie semantyczne jest czasami znane jako wypełnianie szczelin lub semantyczne parsowanie ramek, ponieważ jego teoretyczna podstawa pochodzi z semantyki ramek , w której słowo przywołuje ramę powiązanych pojęć i ról. Systemy wypełniania szczelin są szeroko stosowane w wirtualnych asystentach w połączeniu z klasyfikatorami intencji, które można postrzegać jako mechanizmy identyfikacji kadru wywołanego przez wypowiedź. Popularne architektury do wypełniania gniazd są w dużej mierze wariantami modelu kodera-dekodera, w którym dwie rekurencyjne sieci neuronowe (RNN) są wspólnie trenowane, aby kodować wypowiedź w wektor i dekodować ten wektor w sekwencję etykiet gniazd. Ten typ modelu jest używany w systemie rozumienia języka mówionego Amazon Alexa .

Głęboko

Głębokie parsowanie semantyczne, znane również jako kompozycyjne parsowanie semantyczne, polega na tworzeniu precyzyjnych reprezentacji znaczeniowych wypowiedzi, które mogą zawierać znaczącą kompozycyjność . Płytkie parsery semantyczne mogą analizować wypowiedzi, takie jak „pokaż mi loty z Bostonu do Dallas”, klasyfikując intencję jako „lista lotów” i wypełniając pola „źródło” i „cel” odpowiednio „Boston” i „Dallas”. Jednak płytkie parsowanie semantyczne nie może analizować arbitralnych wypowiedzi kompozycyjnych, takich jak „pokaż mi loty z Bostonu do dowolnego miejsca, w którym są loty do Juneau”. Głębokie parsowanie semantyczne próbuje przeanalizować takie wypowiedzi, zwykle poprzez przekształcenie ich w formalny język reprezentacji znaczeń.

Języki reprezentacji

Wczesne parsery semantyczne wykorzystywały wysoce specyficzne dla domeny języki reprezentacji znaczeń, a późniejsze systemy wykorzystywały bardziej rozszerzalne języki, takie jak Prolog , rachunek lambda , semantyka kompozycyjna oparta na zależnościach lambda (λ-DCS), SQL , Python , Java , język Alexa Meaning Representation Language i reprezentacja znaczenia abstrakcyjnego (AMR). W niektórych pracach wykorzystano bardziej egzotyczne reprezentacje znaczenia, takie jak wykresy zapytań, wykresy semantyczne lub reprezentacje wektorowe.

Modele

Większość nowoczesnych modeli głębokiego analizowania semantycznego opiera się albo na zdefiniowaniu formalnej gramatyki dla parsera wykresów, albo na wykorzystaniu RNN do bezpośredniego tłumaczenia z języka naturalnego na język reprezentacji znaczeń. Przykładami systemów zbudowanych na gramatykach formalnych są Cornell Semantic Parsing Framework, Semantic Parsing with Execution (SEMPRE) Uniwersytetu Stanforda oraz Word Alignment Semantic Parser (WASP).

Zbiory danych

Zestawy danych używane do trenowania statystycznych modeli analizowania semantycznego są podzielone na dwie główne klasy w zależności od aplikacji: te używane do odpowiadania na pytania za pośrednictwem zapytań bazy wiedzy i te używane do generowania kodu.

Odpowiadanie na pytania

Standardowym zestawem danych do odpowiadania na pytania za pomocą analizy semantycznej jest zestaw danych systemu informacji o podróżach lotniczych (ATIS), który zawiera pytania i polecenia dotyczące zbliżających się lotów, a także odpowiedni kod SQL. Innym zestawem danych porównawczych jest zestaw danych GeoQuery, który zawiera pytania dotyczące geografii Stanów Zjednoczonych w połączeniu z odpowiednim Prologiem. Zestaw danych Overnight służy do testowania, jak dobrze parsery semantyczne dostosowują się w wielu domenach; zawiera zapytania w języku naturalnym dotyczące 8 różnych domen sparowanych z odpowiednimi wyrażeniami λ-DCS.

Generowanie kodu

Popularne zestawy danych do generowania kodu obejmują dwa zestawy danych kart handlowych, które łączą tekst wyświetlany na kartach z kodem, który dokładnie reprezentuje te karty. Jedna została skonstruowana łącząc teksty kart Magic: The Gathering z fragmentami Javy; drugi, łącząc teksty kart Hearthstone z fragmentami kodu w Pythonie. IFTTT zbiór danych wykorzystuje specjalistyczny język dziedzinowy z krótkich poleceń warunkowych. Zestaw danych Django łączy fragmenty kodu Pythona z opisującym je pseudokodem w języku angielskim i japońskim. W RoboCup pary zestawu danych English rządzi ze swoich przedstawień w języku specyficzne dla domeny, które mogą być zrozumiane przez wirtualnych piłkarskich grających robotów.

Zobacz też

Bibliografia