Przetwarzanie języka naturalnego () – 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.
NLP pokrywa się również w znacznej mierze z działem lingwistyki komputerowej i często uważany jest za poddział sztucznej inteligencji. Natomiast termin język naturalny używany jest, by odróżnić języki ludzkie (takie jak hiszpański, szwedzki czy polski) 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 (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.
Oznaczanie części mowy
Jednoznaczność słów
Wiele wyrazów ma więcej niż jedno znaczenie, trzeba więc 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 znaczeniowym (semantyce) poszczególnych wyrazów zdania.
Także problem określenia znaczenia tekstu zawiera problem określenia granice poszczególnych zdań, co nie zawsze jest jednoznaczne.
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 Markowa. Statystyczne NLP posiada wszystkie możliwe sposoby do zautomatyzowania analizy językowej włączając modele prawdopodobieństwa (np. model -gramowy), 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. – program pomagający w czytaniu języka obcego. – program pomagający w pisaniu w języku obcym. () – program analizujący niestrukturyzowany tekst w celu wydobycia z niego informacji; wydobywa z dokumentów fakty, a użytkownik je analizuje. () – 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 (np. redukcji). Niektóre ze współczesnych badań starają się wypełnić przepaść pomiędzy a . znajduje zbiór dokumentów, a użytkownik je analizuje. Tłumaczenie automatyczne – automatyczne tłumaczenie tekstu z jednego języka na drugi. () – jest jednym z zadań . 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. () – zadanie polegające na tłumaczeniu danych z języka komputerowego na język naturalny. – poddział zajmujący się rozumieniem języka naturalnego przez komputer. – oprogramowanie służące do rozpoznawania znaków graficznych np. z zeskanowanego tekstu. – program, który wyszukuje do czego odnosi się dana anafora w tekście. – 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 na mowę, syntezy mowy). – system, który rozpoznaje mowę i posiada moduł syntezy mowy. – 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 „”, 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 „” w języku angielskim oznacza także muchy, a rzeczownik „” może być również czasownikiem, znaczenie powyższego wyrażenia może być odczytane jako: „”, 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 do znaczenia wyrazów „” oraz „” analizowane stwierdzenie może także być zrozumiane jako „”, 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: „”, co znaczy „Mierz prędkość tych much, które są jak strzała”. „” 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 „”, które może oznaczać, że owoc lata jak banan lub, że muszki owocówki lubią banana). „” 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 morfologii fleksyjnej, pomagającej odróżnić od siebie części mowy.
W języku angielskim oraz w kilku innych językach nie znajdziemy wskazówki odnośnie do tego, którego słowa dotyczy dany przymiotnik. Przykładem może być tu wyrażenie „”. Czy „” (mała) odnosi się do „”(szkoły)? Czy „”(małe) odnosi się do „”(dziewczynek)? Czy „”(ładne) odnosi się do „”(dziewczynek)? Czy „”(ładna) odnosi się do „”(szkoły)?
W języku mówionym często sugerujemy dodatkowe informacje poprzez akcentowanie poszczególnych wyrazów. Zdanie „”, 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ń: „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 Celem oceny NLP jest zmierzenie jednej lub większej ilości cech algorytmu lub systemu tak, aby ustalić, czy (lub w 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