Przetwarzanie języka naturalnego
1
Przetwarzanie języka naturalnego
Przetwarzanie języka naturalnego (ang. natural language processing, NLP) to interdyscyplinarna dziedzina,
łącząca zagadnienia sztucznej inteligencji i językoznawstwa, zajmująca się automatyzacją analizy, rozumienia,
tłumaczenia i generowania języka naturalnego przez komputer. System generujący język naturalny przekształca
informacje zapisane w bazie danych komputera na język łatwy do odczytania i zrozumienia przez człowieka. Zaś
system rozumiejący język naturalny przekształca próbki języka naturalnego na bardziej formalne symbole, łatwiejsze
do przetworzenia dla programów komputerowych. Wiele problemów NLP wiąże się zarówno z generacją, jak i
rozumieniem języka np. model morfologiczny zdania (struktura słów), który komputer powinien zbudować, jest
potrzebny zarazem do tego by zdanie było zrozumiałe, jak i gramatycznie poprawne.
sztucznej inteligencji. Natomiast termin język naturalny używany jest, by odróżnić języki ludzkie (takie jak
hiszpański czy szwedzki) od języka formalnego czy komputerowego (jak C++, Java lub LISP) . Choć analiza języka
naturalnego może zajmować się i tekstem, i mową, prace nad syntezą mowy rozwinęły się jako oddzielny dział.
Zadania i bariery
Analiza języka naturalnego jest, teoretycznie, bardzo atrakcyjną metodą porozumiewania się z komputerem. Jeden z
pierwszych tego typu systemów SHRDLU, wzbudził ogromny entuzjazm naukowców, pracując zaskakująco dobrze
na ograniczonych blokach słów i w obrębie ograniczonego języka. Entuzjazm szybko jednak wygasł, gdy system
zderzył się z bardziej realnymi sytuacjami i prawdziwą złożonością oraz dwuznacznością słów.
Sama definicja rozumienia jest dużym problemem analizy języka naturalnego. Wydaje się, że rozpoznanie języka
naturalnego wymaga szerokiej wiedzy o świecie zewnętrznym i zdolności do przekształcania go. Z tego powodu
rozumienie języka naturalnego nazywane jest często problemem AI-complete (problemem sztucznej inteligencji),
który polega na tym, żeby dobrze rozumieć nasz świat i język, sztuczna inteligencja musiałaby postrzegać go tak
samo jak my.
Inne problemy
Segmentacja sygnału mowy
W większości języków mówionych, dźwięki przedstawiane są jako następujące po sobie i przemieszane ze sobą
litery. Dlatego przekształcenie sygnału analogowego w niestałe symbole może być bardzo trudnym procesem. W
mowie naturalnej pomiędzy kolejnymi wyrazami występuje również mało pauz. To, gdzie dana pauza się znajduje
zależy zazwyczaj od semantyki i gramatyki, jak również od kontekstu zdania.
Segmentacja tekstu
Niektóre języki, takie jak chiński, japoński czy tajski, nie posiadają określonych granic wyrazów w języku pisanym.
Zazwyczaj każda poważna analiza składniowa wymaga oznaczenia takich granic, co często bywa niełatwym
zadaniem.
Jednoznaczność słów
Wiele wyrazów ma więcej niż jedno znaczenie, trzeba wiec wybrać słowo najlepiej pasujące do kontekstu.
Syntaktyczna niejednoznaczność
Gramatyka języka naturalnego jest dwuznaczna i zazwyczaj istnieje wiele możliwości analizy składniowej jednego
zdania. Wybór najlepszej z nich wymaga najczęściej informacji o kontekście i semantyce. Ważnym czynnikiem
problemu syntaktycznej niejednoznaczności są niejasne granice zdań.
Przetwarzanie języka naturalnego
2
Nieprawidłowe, bądź nieregularne dane
Z jednej strony przeszkodą może być również zagraniczny bądź regionalny akcent, jak również wada wymowy, a z
drugiej błędy w tekście takie jak literówki i zła gramatyka bądź OCR.
Akt mowy i plan
Rozmówca może często uważać zdanie za pewnego rodzaju akcję. Struktura zdania, sama w sobie, może nie
zawierać wystarczających informacji do zidentyfikowania tej akcji. Pytanie na przykład jest prośbą mówiącego o
odpowiedź słuchacza. Odpowiedź ta może być wyrażona werbalnie, przez aktywność fizyczną lub pewnego rodzaju
mieszankę obydwu. Przykładowe pytanie: „Czy możesz podać mi swoje imię?”, wymaga prostej odpowiedzi.
Zakładając oczywiście, że je pamiętamy. Kiedy pytanie: „Czy możesz podać mi sól?” jest właśnie prośbą o
aktywność fizyczną. Odpowiedź „Tak mogę”, bez towarzyszącej jej czynności nie jest właściwą (choć „Nie” czy „Nie
mogę jej dosięgnąć” wytłumaczy brak jakiejkolwiek czynności).
Statystyczne NLP
Kiedy zaczniemy rozpatrywać dłuższe zdania w ramach realnej gramatyki większość z nich będzie niejednoznaczna
i będzie mogła być analizowana na dziesiątki różnych sposobów. By rozwiązać takie trudności, jak i inne zapisane
powyżej, statystyczna analiza języka naturalnego używa metody stochastycznej, prawdopodobieństwa i
statystycznej. W metody zwalczania niejednoznaczności często zaangażowane są także korpusy języka i Łańcuch
modele prawdopodobieństwa, teorie informacji i algebry liniowej. Technologia ta wywodzi się przede wszystkim z
uczenia maszynowego i szybkiej analizy danych, z których obydwie są działami sztucznej inteligencji.
Główne zadania NLP
• Automatyczna sumaryzacja – program komputerowy, który automatycznie streszcza tekst, zawierające w
streszczeniu najważniejsze informacje.
• Foreign language reading aid - program pomagający w czytaniu języka obcego.
• Foreign language writing aid - program pomagający w pisaniu w języku obcym.
• Information Extraction (IE) - program analizujący niestrukturyzowany tekst w celu wydobycia z niego
informacji; wydobywa z dokumentów fakty, a użytkownik je analizuje.
• Information Retrieval (IR) – program zajmujący się gromadzeniem, wyszukiwaniem i odzyskiwaniem informacji.
Jest to oddzielny dział w informatyce (bardziej zbliżony bazom danych) zależny jednak od metod NLP ( np.
redukcji). Niektóre ze współczesnych badań starają się wypełnić przepaść pomiędzy IR a NLP. IR znajduje zbiór
dokumentów, a użytkownik je analizuje.
• Tłumaczenie automatyczne – automatyczne tłumaczenie tekstu z jednego języka na drugi.
• Named Entity Recognition (NER) – jest jednym z zadań IE. Wskazuje, które ze słów w tekście są nazwami
własnymi. W niektórych językach nazwy własne nie są pisane wielkimi literami.
• Natural language generation (NLG) – zadanie polegające na tłumaczeniu danych z języka komputerowego na
język naturalny.
• Natural language understanding – poddział NLP zajmujący się rozumieniem języka naturalnego przez komputer.
• OCR – oprogramowanie służące do rozpoznawania znaków graficznych np. z zeskanowanego tekstu.
• Anaphora Resolution – program, który wyszukuje do czego odnosi się dana anafora w tekście.
• Question answering – program, który odpowiada używając języka naturalnego na pytania zadawane w tym
języku. Mogą to być pytania z jedną odpowiedzią (jak na przykład „Jakie miasto jest stolicą Kanady?”), lub z
wieloma (np. „Jaki jest sens życia?”).
• Rozpoznawanie mowy – potrafi zapisać tekst rozmowy z pliku dźwiękowego. (Odwrotność przetwarzania tekstu
• Spoken dialogue system – system, który rozpoznaje mowę i posiada moduł syntezy mowy.
Przetwarzanie języka naturalnego
3
• Text simplification – operacja upraszczająca gramatykę i strukturę tekstu.
• Synteza mowy – operacja polegająca na przetwarzaniu tekstu na mowę.
• Korekta tekstu – zadanie polegające na zaznaczaniu błędów w tekście pisanym.
Problemy
Niektóre problemy systemu rozumienia języka naturalnego:
• Zdania: „Daliśmy małpom banany, bo były głodne” i „Daliśmy małpom banany, bo były przejrzałe” mają tę samą
strukturę gramatyczną. Jednak czasownik „były" odnosi się w jednym zdaniu do małp, a w drugim do bananów.
Bez wiedzy o charakterystyce małp i bananów nie sposób odgadnąć, w którym przypadku czasownik ten odnosi
się do jakiego rzeczownika.
• Ciąg słów może zostać różnie zinterpretowany. Na przykład, angielskie stwierdzenie „Time flies like an arrow”,
co w dosłownym tłumaczeniu na język polski oznacza „Czas leci jak strzała”, może zostać zrozumiane na wiele
sposobów:
• Po pierwsze może być to typowe porównanie: Czas leci tak szybko, jak strzała.
• Poza tym, ponieważ wyraz „flies” w języku angielskim oznacza także muchy, a rzeczownik „time” może być
również czasownikiem, znaczenie powyższego wyrażenia może być odczytane jako: „(You should) time flies
as you would (time) an arrow.”, co w języku polskim oznacza „Mierz prędkość much tak, jak mierzyłbyś
prędkość strzały” (wyrażenie odczytywane jest w tym przypadku w trybie rozkazującym).
• Przy powyższym założeniu odnośnie znaczenia wyrazów „time” oraz „flies” analizowane stwierdzenie może
także być zrozumiane jako „Time flies in the same way that an arrow would (time them)”, co znaczy „Mierz
prędkość much tak, jak robiłaby to strzała”.
• Następne znaczenie odnosi się do porównania much oraz strzały: „Time those flies that are like arrows”, co
znaczy „Mierz prędkość tych much, które są jak strzała".
• „time-flies” może być również odczytane jako rodzaje latających owadów, co w powyższym zdaniu
znaczyłoby, że wszystkie owady tego rodzaju lubią pojedyncza strzałę. (można to porównać z wyrażeniem
„Fruit flies like a banana”, które może oznaczać, że owoc lata jak banan lub, że muszki owocówki lubią
banana).
• „time-flies” w powyższym rozumieniu może również znaczyć, że każdy rodzaj latającego owada oddzielnie
lubi inną strzałę.(w tym przypadku można również zastosować porównanie podobne do powyższego).
• Kolejne znaczenie może być takie, że konkretny przedmiot taki jak np. magazyn „Time” leci w powietrzu w
sposób podobny do strzały.
Szczególnie wymagające w tej materii są języki analityczne, np. współczesny język angielski, który praktycznie nie
posiada pomagającej odróżnić od siebie części mowy morfologii fleksyjnej.
• W języku angielskim oraz w kilku innych językach nie znajdziemy wskazówki odnośnie tego, którego słowa
dotyczy dany przymiotnik. Przykładem może być tu wyrażenie „pretty little girls’ school” .
• Czy „little” (mała) odnosi się do „school”(szkoły)?
• Czy „little”(małe) odnosi się do „girls”(dziewczynek)?
• Czy „pretty”(ładne) odnosi się do „girls”(dziewczynek)?
• Czy „pretty”(ładna) odnosi się do „school”(szkoły)?
• W języku mówionym często sugerujemy dodatkowe informacje poprzez akcentowanie poszczególnych wyrazów.
Zdanie „I never said she stole my money”, co po polsku znaczy dosłownie „Ja nigdy nie powiedziałem, że ona
ukradła moje pieniądze.”, ukazuje jak ważną rolę odgrywa akcent w zdaniu i z jak znaczącym i nieodłącznym
problemem musi poradzić sobie analizator języka naturalnego przy przeprowadzaniu analizy składniowej. W
zależności od tego jakie słowo jest akcentowane przez mówiącego, zarówno w języku angielskim, jak i polskim
zdanie to może mieć kilka odrębnych znaczeń:
Przetwarzanie języka naturalnego
4
• „Ja nigdy nie powiedziałem, że ona ukradła moje pieniądze.” – ktoś inny to powiedział, ale nie ja.
• „Ja nigdy nie powiedziałem, że ona ukradła moje pieniądze.” – ja po prostu nie powiedziałem tego.
• „Ja nigdy nie powiedziałem, że ona ukradła moje pieniądze.” – mogłem zasugerować to w inny sposób, ale
nigdy nie powiedziałem tego wprost.
• „Ja nigdy nie powiedziałem, że ona ukradła moje pieniądze.” – powiedziałem, że ktoś wziął te pieniądze, ale
nie powiedziałem, że to była ona.
• „Ja nigdy nie powiedziałem, że ona ukradła moje pieniądze.” – powiedziałem tylko, że prawdopodobnie ona
tylko pożyczyła te pieniądze.
• „Ja nigdy nie powiedziałem, że ona ukradła moje pieniądze.” – powiedziałem, że ona ukradła czyjeś pieniądze.
• „Ja nigdy nie powiedziałem, że ona ukradła moje pieniądze.” – powiedziałem, że ona coś ukradła, ale nie moje
pieniądze.
Ocena NLP
Cele
jakim stopniu) system spełnia założenia twórców oraz czy zaspokaja potrzeby jego użytkowników. Badania
dotyczące oceny NLP cieszą się znaczącym zainteresowaniem, ponieważ określenie właściwego kryterium oceny
jest jedyną drogą by precyzyjnie zdefiniować problem NLP wychodzący poza ogólnikowość zadań zdefiniowanych
jako zrozumienie oraz wygenerowanie języka. Dokładny zbiór kryteriów oceny, który zawiera głównie jej dane oraz
metryki, umożliwia kilku drużynom porównanie ich rozwiązań dla danego problemu analizy NLP.
Krótka historia oceny w NLP
Pierwszą kampanią ocen tekstów pisanych wydaje się być kampania z 1987 roku dedykowana zrozumieniu
komunikatu (Pallet 1998). Następnie, projekt Parseval/GEIG porównywał gramatyki o strukturze frazowej (Black
1991). W projekcie Tipster realizowane były serie kampanii koncentrujących się na zadaniach takich jak
sumaryzacja, tłumaczenie i wyszukiwanie (Hirshman 1998). W roku 1994, w Niemczech, w „Morpholympics”
porównane zostały niemieckie znaczniki. Następnie, przeprowadzono kampanie Sensevala i Romansevala mające na
różnych językach (angielskim, francuskim, niemieckim i włoskim). W 1997 roku, we Francji, projekt Grace
porównał zbiory 21 znaczników dla języka francuskiego (Adda 1999). W 2004 roku, podczas projektu
Technolangue/Easy porównano 13 analizatorów składniowych dla języka francuskiego. Ocena zależnych
analizatorów składniowych na dużą skalę miała miejsce w latach 2006 oraz 2007 przy okazji wspólnych zadań na
konferencji na temat Komputerowej Nauki Języka Naturalnego (CoNLL). W roku 2007, przeprowadzono we
We Francji natomiast, podczas projektu ANR-Passage (koniec roku 2007), porównanych zostało na
) 10 analizatorów składniowych dla języka francuskiego.
Adda G., Mariani J., Paroubek P., Rajman M. 1999 L'action GRACE d'évaluation de l'assignation des parties du
discours pour le français. Langues vol-2 Black E., Abney S., Flickinger D., Gdaniec C., Grishman R., Harrison P.,
Hindle D., Ingria R., Jelinek F., Klavans J., Liberman M., Marcus M., Reukos S., Santoni B., Strzalkowski T. 1991
A procedure for quantitatively comparing the syntactic coverage of English grammars. DARPA Speech and Natural
Language Workshop Hirshman L. 1998 Language understanding evaluation: lessons learned from MUC and ATIS.
LREC Granada Pallet D.S. 1998 The NIST role in automatic speech recognition benchmark tests. LREC Granada
Przetwarzanie języka naturalnego
5
Różne rodzaje ocen
W zależności od procedur oceny, wykonuje się kilka rodzajów rozróżnień odnośnie oceny NLP.
• Ocena wewnętrzna, a ocena zewnętrzna
Ocena wewnętrzna sprawdza pojedynczy system NLP i określa jego pracę głównie w oparciu o wynik złotego
standardu, który to jest uprzednio zdefiniowany przez oceniających. Ocena zewnętrzna, znana również jako ocena w
czasie użycia, sprawdza system NLP przy bardziej złożonych ustawieniach, jako system wbudowany lub służący do
wykonania określonych funkcji dla użytkownika. Zewnętrzne działanie systemu jest następnie określone w oparciu o
użyteczność z uwzględnieniem całości zadania zleconego przez złożony systemu lub użytkownika. Weźmy pod
uwagę na przykład analizator składniowy, który oparty jest o wyniki znaczników nowej części mowy. Przy ocenie
wewnętrznej zostałby uruchomiony znacznik części mowy odnośnie jakiś określonych danych i porównałby dane
systemu uzyskane przez znacznik do (poprawnych) danych złotego standardu. Przy ocenie zewnętrznej zostałby
uruchomiony analizator z innym znacznikiem części mowy, następnie z nowym znacznikiem, po czym nastąpiłoby
porównanie dokładności analizy.
• Czarne pudełko, a szklane pudełko
Ocena oparta o czarne pudełko polega na uruchomieniu systemu NLP na określonej bazie danych i zmierzeniu
parametrów związanych z jakością procesu (prędkość, niezawodność, użycie zasobów) oraz, co najważniejsze, z
jakością wyniku (np. trafność określania danych oraz wierność tłumaczenia). Ocena oparta o szklane pudełko polega
na sprawdzeniu projektu systemu, wprowadzonych algorytmów, używanych zasobów językowych (np. wielkość
zasobu słów), itp. Biorąc pod uwagę złożoność problemów związanych z NLP, często trudno jest przewidzieć
działanie systemu bazując jedynie na ocenie opartej o szklane pudełko. Jednak ten rodzaj oceny dostarcza więcej
informacji odnośnie analizy błędów lub przyszłego rozwoju systemu.
• Automatyczna, a manualna
W wielu przypadkach określone mogą zostać automatyczne procedury oceniające system NLP poprzez porównanie
wyników ze złotym (pożądanym) standardem. Mimo, że koszty związane ze stworzeniem złotego standardu mogą
być dosyć wysokie, to automatyczna ocena może być powtarzana tak często, jak tylko potrzeba, bez znaczących
dodatkowych kosztów (przy takich samych wprowadzonych danych). Jednakże dla wielu problemów związanych z
NLP utworzenie złotego środka stanowi trudne zadanie i może okazać się niewykonalne, gdy uzgodnienie
wewnętrznego znacznika jest niewystarczające. Ocena manualna wykonywana jest przez osoby oceniające, które
mają za zadanie określić w oparciu o ustalone kryteria jakość systemu lub najczęściej jakość wyników
generowanych przez system. Mimo, że osoby oceniające mogą być dzięki kompetencji językowej uważane za źródło
informacji odnośnie wielu zadań dotyczących analizy językowej, wśród ich ocen również zdarzają się rozbieżności.
Dlatego właśnie ocena automatyczne często uznawana jest za ocenę obiektywną, podczas gdy ludzie wydają się być
bardziej subiektywni.
Wspólne zadania (kampanie)
• BioCreative
• Message Understanding Conference
• Technolangue/Easy
• Text Retrieval Conference
Standaryzacja w NLP
Podkomisja Międzinarodowej Organizacji Normalizacyjnej (ISO) pracuje nad ułatwieniem wzajemnego
współdziałania zasobów leksykalnych z programami NLP. Podkomisja jest częścią ISO/TC 37 i jest nazywana
tworzenia; głownie te dotyczące przedstawienia słownictwa, oznaczania i rejestrowania kategorii danych.
Przetwarzanie języka naturalnego
6
Czasopisma
• Computational Linguistics
• Language Resources and Evaluation
• Linguistic Issues in Language Technology
Organizacje i konferencje
Stowarzyszenia
• Stowarzyszenie Lingwistyki Komputerowej
• Association for Machine Translation in the Americas
• AFNLP - Asian Federation of Natural Language Processing Associations
• Australasian Language Technology Association (ALTA)
Konferencje
• Language Resources and Evaluation
Narzędzia programowe
• General Architecture for Text Engineering (GATE)
• Modular Audio Recognition Framework
• Natural Language Toolkit (NLTK): a Python library suite
• NLP Software Packages ([1]) - darmowe oprogramowanie do badania NLP.
• OpenNLP
Źródła
• Charniak, Eugene:Introduction to artificial intelligence, str. 2. Addison-Wesley, 1984.
• Christopher D. Manning, Hinrich Schutze Foundations of Statistical Natural Language Processing, MIT Press
(1999), ISBN 978-0-262-13360-9, str. xxxi
Artykuły
Bates, M. (1995). Models of natural language understanding. Proceedings of the National Academy of Sciences of
the United States of America, Vol. 92, Nr. 22 (24.10.1995), str. 9977-9982.
Przetwarzanie języka naturalnego
7
Linki zewnętrzne
• http:/
• http:/
• http:/
• http:/
Organizacje
• The Stanford Natural Language Processing Group
• The Cognitive Computation Group
• NLP group of CIC-IPN
• CLaC - Computational Linguistics at Concordia
Przypisy
[1] http:/
Źródła i autorzy artykułu
8
Źródła i autorzy artykułu
Przetwarzanie języka naturalnego Źródło: http://pl.wikipedia.org/w/index.php?oldid=23864679 Autorzy: BeataDobrzynska, Beau, Buldożer, Enethien, Jrmo, Lahcim nitup, Leinad, Lk80,
Lolek01, Lorn, Malarz pl, MarGr, Mfaber1, Michalgarbowski, Mokhov, Pjahr, Qurqa, Rafalstu, Roo72, Teceha, WTM, 10 anonimowych edycji
Licencja
Creative Commons Attribution-Share Alike 3.0 Unported
http:/