Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Lingwistyka

NLP: Natural Language Processing

Zadania inżynierii lingwistycznej:

  • Zautomatyzowanie przetwarzania danych wyrażonych w języku naturalnym
  • Wyszukiwanie, klasyfikacja, selekcja informacji
  • Wiedza o języku: morfologia, składnia, semantyka, pragmatyka wypowiedzi
  • Tłumaczenia, streszczenia, analiza mowy

Dziedziny wiedzy lingwistycznej:

  • fonetyka (dźwięki),
  • fonologia (dźwięki należące do języka),
  • ortografia (zasady pisowni),
  • morfologia (struktura i opis form wyrazów),
  • składnia (zależności strukturalne między słowami – budowa fraz),
  • semantyka (znaczenie fraz i zdań),
  • pragmatyka (relacja do świata),
  • reprezentacja dyskursu (zależności międzyzdaniowe).

Dwie zasadnicze klasy analizy danych językowych:

  • metody formalne – zbiór reguł pozwalający otrzymać rozbiór gramatyczny zdania zgodny z wybraną teorią (jak do tej pory brak implementacji wydajnej i dającej jednoznaczne rozbiory),
  • metody statystyczne – gromadzenie rzeczywistych danych językowych (korpusy) i szukanie praw ilościowych (przykładowe zastosowania: OCR, poprawianie błędów pisowni, rozpoznawanie mowy, tłumaczenie maszynowe).

Językami programowania często wybieranymi przez lingwistyków komputerowych są Prolog (Europa), Lisp (USA) i Perl.

Elementy tekstu:

  • segment (token): podstawowy element tekstu oddzielony najczęściej odstępami lub znakami interpunkcyjnymi; może to być słowo, ale też np. PESEL, kod pocztowy, nr telefonu, data, godzina, adres e-mail,
  • słowo: ciąg liter od spacji do spacji,
  • zdanie

Problemem są wyrażenia typu po prostu – czasami traktuje się je jako jeden atom.

Wyraz – napis słowa niosący określone znaczenie bądź pełniące funkcję składniową.
Fleksemy – są różnymi formami fleksyjnymi należącymi do tej samej klasy gramatycznej np. kot, kotem to różne formy fleksyjne.
Leksem – jest zbiorem fleksemów np. biegnąć, bieganie, biegnie. Wyrazy zawierają wspólne elementy, lecz pełnią różną funkcje w zdaniu. Należą do jednego leksemu biec.

Jedną z efektywnych metod stosowanych do reprezentacji komputerowych słowników form fleksyjnych są automaty skończone.

Morfologia – nauka o budowie słów, zajmuje się dwiema dziedzinami:

  • fleksja – opisuje różne formy tego samego fleksemu np. kotkotem
  • słowotwórstwo – definiuje zasady tworzenia wyrazów pochodnych np. zebraćzebranie.

Analiza morfologiczna – znajdowanie możliwych opisów morfoskładniowych dla słów, czyli ich interpretacja jako form wyrazowych. Polega na przypisywaniu słowom ich interpretacji – znaczników morfologicznych (tagów).
np. bez:

<bez>, <przyimek>
<bez>, <rzeczownik, rodzaj męski, mianownik, liczba pojedyncza>
<beza>, <rzeczownik, rodzaj żeński, dopełniacz, liczba mnoga>

Lematyzacja: to analiza morfologiczna ograniczona do znalezienia podstawowej formy wyrazu (identyfikacja leksemu).

Stemming: znajdowanie tematów słów lub tych ich fragmentów, które są niezmienne dla wszystkich form. np. krzesłemkrzesł.

Tagowanie: wybór opisu morfoskładniowego, który jest właściwy w konkretnym kontekście użycia danej formy (ujednoznacznianie morfologiczne) np. sportowiec bez formy: bezprzyimek. Wykorzystuje się metody statystyczne lub zbiór reguł. Swobodny szyk wyrazów języka polskiego sprawia, że reguły ujednoznaczniania muszą być skomplikowane i odnosić się do szerokiego kontekstu, a i tak w wielu (jednoznacznych) przypadkach nie dadzą jednoznacznych wyników.

Synteza morfologiczna – znajdowanie formy wyrazu na podstawie jego opisu morfologicznego. np. <bez, rzeczownik, rodzaj męski, dopełniacz, liczba pojedyncza> bzu

Klasy gramatyczne (części mowy) i ich kategorie gramatyczne (morfoskładniowe)

  • czasowniki: liczba, osoba, czas, rodzaj, tryb, aspekt,
  • rzeczowniki: przypadek, liczba, rodzaj,
  • przymiotniki: przypadek, rodzaj, liczba, stopień,
  • przysłówki: stopień

Tagset – lista etykiet wybrana do oznaczenia form wyrazów danego języka

Tag (znacznik) – element tagsetu. Najbardziej znane tagsety: Brown, Penn, CLAWS, Multext[-East] (język angielski).

  • system skrótów – każda cecha gramatyczna ma określoną nazwę (skrót)
  • system pozycyjny – poszczególnym cechom gramatycznym przypisane są konkretne pozycje w znaczniku

Opis składniowy (syntaktyczny) zdania to reprezentacja struktury zdania w postaci drzewka pokazującego kolejność słów i związki strukturalne między elementami fraz (np. typu podmiot-orzeczenie). Wywód zdania w gramatyce bezkontekstowej odpowiada drzewu rozbioru syntaktycznego.

Dla niektórych języków naturalnych (angielski, niemiecki, francuski, japoński) istnieje wiele gramatyk, ale ich wykorzystanie napotyka spore trudności:

  • język naturalny jest bardzo skomplikowany i żadna z gramatyk nie opisuje go w całości, w praktyce oznacza to, że jeżeli weźmiemy np. codzienną gazetę, to prawie na pewno już na pierwszej stronie znajdziemy zdania, które nie będą analizowane przez żadną z istniejących gramatyk danego języka, to znaczy, że zdania te nie uznane zostaną za poprawne,
  • gramatyki komputerowe dają wiele alternatywnych rozbiorów i zazwyczaj żadnych wskazówek, który z nich jest w danym kontekście właściwy; oznacza to, że zdania, które posiadają rozbiory, na ogół posiadają ich wiele, przy czym zwykle tylko niektóre z nich mają poprawną interpretację semantyczną,
  • analiza syntaktyczna jest dość kosztowna, nie jest więc możliwa analiza dużej liczby zdań w krótkim czasie (choć powoli czasy analizy syntaktycznej stają się akceptowalne).

Najważniejszą przeszkodą w praktycznym wykorzystaniu dokładnych analiz syntaktycznych jest brak metod pozwalających na zapis znaczenia zdań w języku naturalnym, nawet jeśli posiadamy ich bardzo dokładną analizę syntaktyczną. Sam rozbiór gramatyczny zdania nie jest zwykle celem samym w sobie. To, co rzeczywiście chcemy poznać, to znaczenie zdania.

Próby komputerowej analizy składniowej zdań języka polskiego podejmowane są od wielu lat, wciąż jednak są dość wyrywkowe, a efekty tych prac mało dostępne poza grupami bezpośrednio się nimi zajmującymi.

Do wielu zastosowań (np. indeksowanie tekstu, wyszukiwanie nazw własnych) nie opłaca się dokonywać dokładnej analizy składniowej.

Parsowanie płytkie – rozpoznawanie podstawowych typów fraz (łączenie wyrazów zdania w grupy wyrazów strukturalnie powiązanych, często odmieniających się jednakowo)

Semantyka. Rozpoznawanie słów i konstrukcji składniowych jest tylko wstępem do zasadniczej operacji, jakiej należy dokonać, by móc posługiwać się językiem naturalnym – zrozumienia znaczenia. Niestety, żaden z istniejących obecnie formalizmów nie jest w stanie oddać całej różnorodności procesów związanych z rozumieniem języka naturalnego, a więc żadna z zaproponowanych metod reprezentacji semantyki zdań języka naturalnego nie pozwala na pełne reprezentowanie tego, co dla człowieka jest znaczeniem tekstu.

Słowosieć (WordNet) rozbudowana baza wiedzy o powiązaniach semantycznych słów konkretnego języka naturalnego.

Niektóre relacje między słowami:

  • homonimia – jednakowy kształt słowa, różne znaczenia, np. pokój – pomieszczenie i pokój – przeciwieństwo wojny
  • homofonia – jednakowe brzmienie słów, a różne znaczenie (czasem zakłada się różnice w pisowni, czasem uznaje się za homofony także homonimy), np. może i morze
  • polisemia – wielość powiązanych znaczeń jednego słowa, np. góra (wzniesienie terenu, piętro domu, część ubrania…)
  • synonimia – różne leksemy o tym samym (prawie) znaczeniu (mogące się nawzajem zastąpić w pewnym kontekście), np. samochód i auto
  • antonimia – przeciwieństwo (dobryzły, góradół)
  • hiponimia – słowo o węższym znaczeniu jest hiponimem słowa o szerszym znaczeniu, np. końssak
  • hiperonimia (hipernimia) – słowo o szerszym znaczeniu jest hipernimem słowa o węższym znaczeniu, np. uczuciezłość
  • holonimia – słowo oznaczające całość jest holonimem słowa oznaczającego część, np. kapeluszrondo
  • meronimia – słowo określające część jest meronimem słowa określającego całość, np. kciukdłoń.

Prawo Zipfa: w przeciętnym zbiorze tekstów około połowy słów pojawia się tylko raz.

Korpus lingwistyczny – zbiór tekstów w języku naturalnym, opatrzonych tagami morfosyntaktycznymi lub nawet semantycznymi. Reprezentatywność (zbalansowanie) korpusu ogólnego polega na umieszczeniu w nim możliwie wszystkich rodzajów tekstów (bądź wypowiedzi) w proporcjach odpowiadających w przybliżeniu rzeczywistym proporcjom użycia ich w praktyce.

  • korpusy ogólne – w miarę zrównoważona reprezentacja różnych form wykorzystania języka,
  • korpusy specjalistyczne – dla dialektu bądź okresu czasu, dla języka z jakiejś dziedziny specjalistycznej,
  • korpusy równoległe – zawierające te same teksty w różnych językach naturalnych (na potrzeby np. uczenia algorytmów tłumaczących). Historycznie najbardziej znanym takim dokumentem jest kamień z Rosetty zawierający ten sam tekst w trzech wersjach: po egipsku pismem hieroglificznym i demotycznym oraz po grecku. Dzięki niemu możliwe było odczytanie egipskich hieroglifów.

Konkordancje – zbiór wszystkich wystąpień danego słowa w danym zbiorze tekstów

Kolokacja – najbardziej typowe połączenia danego słowa z innymi (wąskie znaczenie tego słowa obejmuje tylko takie związki wyrazów, w których znaczenie całości nie jest sumą znaczeń składników, na przykład biały kruk w znaczeniu rzadki okaz, ale na ogół przyjmuje się szersze znaczenie kolokacji jako dowolnego utartego/często powtarzanego zestawienia słów)

Przeszukiwanie dokumentów

  • Dokładność – stosunek liczby podanych właściwych dokumentów do liczby wszystkich dokumentów w odpowiedzi, czyli ocena siły selektywnej metody.
  • Pełność to stosunek liczby podanych właściwych dokumentów do wszystkich właściwych dokumentów w zbiorze, czyli ocena kompletności zwracanych wyników.
  • Model wektorowy (VSM, ang. Vector Space Model) – dokumenty i pytania przedstawiane są w postaci wektorów cech reprezentujących poszczególne obiekty (dokładniej wartość i-tej współrzędnej określa, czy obiekt i-ty występuje czy nie w danym dokumencie). Dla dokumentów tekstowych obiektami są zazwyczaj występujące w nich słowa – zwykle dokonuje się wstępnego wyboru podzbioru słów istotnych dla separacji tekstów.

Numeryczne metody wyszukiwania interesujących nas dokumentów muszą uwzględnić fakt, że zarówno słów, jak i dokumentów jest bardzo wiele, tak więc przestrzeń przeszukiwania jest wielowymiarowa. Niejawna (ukryta) analiza semantyczna (LSA Latent Semantic Analysis, lub LSI Latent Semantic Indexing) jest jedną z bardziej popularnych metod obniżenia złożoności tego problemu.

Zbiór dokumentów reprezentowany jest na ogół jako macierz X, której kolumny opisują dokumenty w postaci wektorów częstości występowania poszczególnych słów. Jeżeli założymy, że baza zawiera m dokumentów i n słów, to odpowiednia macierz ma rozmiar nxm. Ideą podstawową LSA jest redukcja liczby ocenianych zmiennych, przy jednoczesnym zapewnieniu warunku, by wykorzystywana do nich macierz była najbliższą (dla wybranego rzędu) macierzy oryginalnej. W konsekwencji obniżania wymiaru wiele pojęć łączonych jest w jedno (uzyskujemy liniowe kombinacje ich wag). Jeżeli łączone są pojęcia pokrewne, to dzięki tej operacji uzyskujemy metodę reprezentowania synonimii. O ile zatem oryginalna macierz reprezentująca dokument zawiera tylko informacje o słowach, które rzeczywiście się w nim znalazły, to macierz uzyskana w wyniku przekształceń zawiera także informacje o wyrazach bliskoznacznych, czyli takich, które czytelnik bez trudu z nim skojarzy (wiemy, że tekst o świerkach jest tekstem o roślinach, nawet jeśli słowo roślina w nim się nie znajduje).

Automatyczne streszczenia

  • Wyselekcjonowanie części zdań i utworzenie z nich krótszej wersji, w której z dużym prawdopodobieństwem zawarte będą kluczowe informacje
  • Ocena systemów streszczających nie jest łatwa, gdyż trudno jest znaleźć obiektywny punkt odniesienia
  • Człowiek zazwyczaj parafrazuje streszczany tekstu, rzadziej wybiera jego fragmenty

Cechy brane pod uwagę podczas tworzenia streszczenia

  • Słowa, które pojawiają się w tytule i pierwszych paru zdaniach mają wyższą wagę
  • Słowa z klas otwartych (o zmiennej w czasie częstości występowania) występujące często w tekście są ważniejsze od słów pojawiających się sporadycznie
  • Typ tekstu wyznacza pozycje, które zawierają najistotniejsze informacje
  • Długość zdania może być skorelowana z jego istotnością
  • Zdanie, które ma więcej elementów wspólnych z innymi zdaniami, może być istotniejsze
  • Istotne są zdania zawierające: liczby, nazwy własne, nazwy dni tygodnia itp.
  • Istotne są zdania zawierające przymiotniki i zaimki
  • Pierwsze zdanie akapitu jest najbardziej istotne

Systemy dialogowe (Question Answering, QA) – systemy udzielające odpowiedzi na pytania zadane w języku naturalnym.

  • uwzględniają typ pytania, odpowiedzią powinno być poprawne gramatycznie zdanie lub fragment dokumentu zawierający odpowiedź,
  • często wykorzystuje się encyklopedie internetowe, np. Wikipedię,

Tłumaczenie maszynowe

  • Na świecie jest obecnie ok. 4500 opisanych języków, z czego ok. 2200 języków ma wersję pisaną.
  • Jeżeli bierzemy pod uwagę język ojczysty, to nie język angielski jest najbardziej popularny, ale chiński, a dopiero dość daleko po nim jest angielski, hiszpański, hindi i arabski.
  • Jeśli rozpatrujemy liczbę mieszkańców krajów, w których dany język jest językiem urzędowym (lub jednym z takowych), to kolejność jest odmienna: angielski, chiński, hindi, hiszpański i francuski.
  • Tłumaczenie powinno wiernie zachować znaczenie oryginału (faithfulnes) i być poprawne (fluency). Osiągnięcie obu tych celów jest jednak często nierealne – trzeba wybierać odejście od oryginału na rzecz płynności wypowiedzi.

Próby rozwiązania problemu automatycznego tłumaczenia można podzielić na dwie grupy:

  • tłumaczenie „zgrubne”, do poprawiania przez człowieka (czyli raczej wspomaganie tłumaczenia, a nie samo tłumaczenie),
  • tłumaczenie ograniczone do wąskiego podzbioru języka (np. prognozy pogody, raporty giełdowe, instrukcje obsługi urządzeń).

Metody automatycznego tłumaczenia (w praktyce łączy się kilka z nich):

  • transfer z jednego języka na drugi – przejście od drzewa rozbioru syntaktycznego w jednym języku na drzewo rozbioru syntaktycznego w języku docelowym, np. Systran – system tłumaczenia dokumentów stworzony na potrzeby Komisji Europejskiej
  • tłumaczenie poprzez reprezentację znaczenia (interlingua) – tłumaczenie z użyciem języka pośredniego; opracowana jest wewnętrzna, niezależna od języka reprezentacja semantyki wypowiedzi
  • tłumaczenie bezpośrednie – oparte na regułach opisujących zależności zachodzące bezpośrednio między fragmentami zdań obu języków; często użytkownik zamiast odpowiedzi typu „nie rozumiem zdania” użytkownik woli dostać wynik częściowy, nawet jeśli wymaga on sporych poprawek.
  • tłumaczenie za pomocą metod statystycznych – wykorzystuje się korpusy równoległe,
  • metody mieszane (łączenie elementów różnych metod jest najczęściej spotykane w praktyce).

Podejmowane są próby opracowania programów tłumaczących teksty na język polski i teksty polskie na inne języki. Główne obecnie na rynku komercyjne systemy automatycznego tłumaczenia to English Translator firmy Techland oraz Translatica wydawana przez PWN.

System Translatica jest owocem współpracy poznańskiego środowiska akademickiego, w którym od wielu lat prowadzone były prace nad systemem tłumaczącym teksty polskie na angielskie oraz uznanego polskiego wydawcy słowników (zarówno języka polskiego, jak i słowników dwujęzycznych). Historia prac nad Translaticą sięga roku 1995. W pierwszej wersji systemu pod nazwą PolEng tłumaczenie dokonywane było na drodze interpretacji klauzul Prologowych. W kolejnej wersji jądro systemu zaimplementowano w C++, a zstępujący mechanizm parsowania zastąpiono wstępującym, dzięki czemu znacznie wzrosła szybkość tłumaczenia, a ponadto możliwe stało się tłumaczenie zdań, dla których system nie umiał znaleźć rozbioru syntaktycznego. W roku 2003 w wyniku współpracy z PWN włączono do systemu Wielki Słownik Angielsko-Polski PWN-Oxford i zrealizowano drugi, bardziej komercyjnie interesujący, kierunek tłumaczenia (z angielskiego na polski). Opracowano też dostosowaną do potrzeb tłumaczenia bazę powiązań semantycznych słów.

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • LinkedIn
  • MySpace
  • Wykop

Zostaw komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>