Przetwarzanie języka naturalnego
Przetwarzanie języka naturalnego (ang. Natural Language Processing) jest dziedziną sztucznej inteligencji, zajmującą się analizą i tworzeniem tekstów w języku naturalnym (takim jak polski, czy angielski).
Neurosoft prowadzi badania podstawowe w tym zakresie już od ponad 10-ciu lat. Nasze prace koncentrujemy przede wszystkim na tworzeniu metod gramatycznej analizy tekstów napisanych w języku polskim. Wynikiem tychże prac była premiera w styczniu 2000 r. systemu NeuroGram – unikatowego w skali światowej komercyjnego systemu do analizy morfoskładniowej tekstów pisanych w języku polskim.
Głównym atutem technologii Neurosoftu są:
- pełny słownik haseł bazowych w języku polskim (blisko 135 000 haseł) zawierający bardzo dokładną klasyfikację gramatyczną każdego słowa (podział na części mowy, kategorie gramatyczne, wzajemne relacje między słowami, itd.),
- w pełni automatyczny moduł generowania wszystkich form fleksyjnych dla wszystkich haseł bazowych (w oparciu o słownik opisany powyżej generowane jest ponad 2 100 000 form) uwzględniający wszelkie nieregularności języka polskiego,
- wysoka wydajność wszystkich algorytmów, niezbędna w zastosowaniach, w których do przetworzenia są wielkie ilości tekstu (np. serwis WWW dający dostęp do milionów dokumentów),
- elastyczność – dopasowanie do różnych systemów operacyjnych (Linux, UNIX, MS Windows Server).
W aktualnej wersji Gram używany jest między innymi do automatycznego tworzenia indeksów w pełnotekstowych systemach wyszukiwania informacji dedykowanych dla języka polskiego (ang. full text search), co ze względu na specyfikę języka pozwala na znaczne zmniejszenie liczby przechowywanych słów kluczowych radykalnie podnosząc skuteczność i precyzję wyszukiwania.
Obecnie trwają prace badawcze w zakresie analizy gramatycznej (rozwijany jest zarówno parsing powierzchniowy, parsing zależności, jak i metody łączące te dwa podejścia). Praktycznym efektem tych prac jest nowa funkcjonalność, zaimplementowana w nowej wersji NeuroGrama 3, umożliwiająca generowanie automatycznego rozkładu zdania na jego części składowe. Taka funkcjonalność ułatwi w sposób zasadniczy generowanie streszczeń, czy też automatyczne przygotowania tłumaczeń z języka polskiego lub na język polski.
Wykorzystanie tej technologii polepszy w sposób zasadniczy jakość rozwiązań z zakresu syntezy i analizy mowy. Nowa jakość analizy gramatycznej ma również istotnie wspierać algorytmy normalizacji i korekcji tekstu. Powinna pozwolić również na wykrywanie błędów gramatycznych (np. błędów w odmianie) oraz poprawić jakość generowanych form podstawowych, jakość korekcji np. tzw. tekstów „polskawych” (pisanych po polsku, ale bez polskich znaków) itd.
Kolejnym rozszerzeniem będzie rozbudowanie mechanizmu wykrywania i interpretacji wyrażeń regularnych (zarówno na poziomie pojedynczych słów składających się ze znaków, jak i na poziomie zdań składających się ze słów). Mechanizm ten będzie współpracował z parserami i umożliwiał odwoływanie się do ich wyników. Możliwość definiowania własnych wyrażeń regularnych oraz metod ich interpretacji pozwoli użytkownikowi np. na samodzielną implementację wielu zadań związanych z przetwarzaniem języka naturalnego, np. analizy zapytań w języku naturalnym w odwołaniach do różnego typu baz danych.
Przewidujemy również możliwość zastosowanie słowników związków frazeologicznych, które podobnie jak analiza gramatyczna, powinny podnieść jakość działania wszystkich algorytmów wysokopoziomowych Grama. Słowniki związków frazeologicznych są szczególnie przydatne przy rozwikływaniu niejednoznaczności na etapie generowania form podstawowych na podstawie form fleksyjnych. Planujemy także integrację naszej wiedzy o relacjach międzysłowowych z relacjami semantycznymi pochodzącymi z WordNeta.
Wraz z implementacją nowej analizy gramatycznej w Gramie przewidziano możliwość analizy zapytań w języku naturalnym.