Jakie są dobre punkty wyjścia dla kogoś, kto interesuje się przetwarzaniem języka naturalnego? [zamknięte]

Pytanie

Więc niedawno wymyśliłem kilka nowych możliwych projektów, które będą musiały poradzić sobie z wyprowadzaniem "znaczenia" z tekstu przesłanego i wygenerowanego przez użytkowników.

Przetwarzanie języka naturalnego jest dziedziną, która zajmuje się tego typu problemami, i po wstępnych badaniach znalazłem OpenNLP Hub i współpracę uniwersytecką, taką jakattempto project . A stackoverflow ma to .

Gdyby ktoś mógł połączyć mnie z jakimś dobrym zasoby, od referatów i tekstów wprowadzających do API, byłbym szczęśliwszy niż 6-letnie dziecko otwierające prezenty świąteczne!

Update

Dzięki jednej z Twoich rekomendacji znalazłem opencyc ('największa na świecie i najbardziej kompletna baza wiedzy ogólnej i rozsądny silnik rozumowania" ). Jeszcze bardziej zdumiewający jest projekt, który jest wydestylowaną wersją opencyc o nazwie UMBEL. Zawiera dane semantyczne w rdf/owl / skos n3 składnia.

Natknąłem się również na antlr, generator parserów dla 'konstruowanie rozpoznawaczy, tłumaczy, kompilatorów i tłumaczy z opisów gramatycznych'.

I mam tu pytanie, które wymienia Tony wolnych i otwartych danych .

Dzięki społeczności stackoverflow!

 41
Author: Community, 2008-10-17

10 answers

Trudna decyzja, NLP to znacznie szersza dziedzina niż większość ludzi myśli. Zasadniczo język można podzielić na kilka kategorii, co będzie wymagało nauczenia się zupełnie innych rzeczy.

Zanim zacznę, powiem ci, że wątpię, że osiągniesz jakikolwiek znaczący sukces (przynajmniej jako profesjonalista) bez uzyskania dyplomu w jakiejś (ściśle związanej) dziedzinie. Istnieje wiele teorii zaangażowanych, większość z nich jest suche rzeczy i trudne do nauczenia. Będziesz potrzebował dużo wytrzymałości, a przede wszystkim: czas.

Jeśli interesuje Cię znaczenie tekstu, cóż, to kolejna wielka rzecz. Semantyczne wyszukiwarki są przewidywane jako inicjujące Web 3.0, ale jesteśmy daleko od " tam " jeszcze. Wydobywanie logiki z tekstu zależy od kilku kroków:

  • Tokenizacja, Chunking
  • [7]}Disambiguation na poziomie leksykalnym (czas leci jak strzała, ale owoc leci jak banan.)
  • Analiza Składniowa
  • Analiza morfologiczna (czas, aspekt, przypadek, liczba, whatnot)

Mała lista, z czubka mojej głowy. Jest więcej : -) i wiele więcej szczegółów w każdym punkcie. Na przykład, Kiedy mówię" parsowanie", co to jest? Istnieje wiele różnych algorytmów parsowania i jest tak samo wiele formalizmów parsowania. Wśród najpotężniejszych są gramatyka stykająca się z drzewem i Gramatyka struktury fraz napędzanych głową. Ale oba z nich są prawie nie używane w terenie (na razie). Zazwyczaj będziesz miał do czynienia z jakimś na wpół upieczonym generatywne podejście i będzie musiał samodzielnie przeprowadzić analizę morfologiczną.

Przejście stamtąd do semantyki to duży krok. Interfejs składni / semantyki jest zależny zarówno od zastosowanego frameworka semantycznego , jak i. Po stronie semantycznej istnieje klasyczna semantyka generatywna, a następnie teoria reprezentacji dyskursu, semantyka dynamiczna i wiele innych. Nawet logiczny formalizm wszystko jest na podstawie wciąż nie jest dobrze zdefiniowana. Niektórzy mówią, że należy używać logiki pierwszego rzędu, ale to nie wydaje się wystarczające; następnie jest logika Intensive, jak używany przez Montague, ale to wydaje się zbyt skomplikowane i obliczeniowo niewykonalne. Istnieje również dynamiczna logika (Groenendijk i Stokhof są pionierami tego typu rzeczy. Świetny towar! niedawno, tego lata, Jeroen Groenendijk zaprezentował nowy formalizm, dociekliwy semantyka , również bardzo interesujące.

Jeśli chcesz zacząć od bardzo prostego poziomu, przeczytaj Blackburn and Bos (2005) , To świetna rzecz, i de facto wprowadzenie do semantyki obliczeniowej! Niedawno rozszerzyłem ich system o partycję-teoria pytań (odpowiedzi na pytania to bestia!), jak zaproponowali Groenendijk i Stokhof (1982), ale niestety, teoria ma złożoność O (n2) nad domeną jednostek. Robiąc to, stwierdziłem, że realizacja B&B jest trochę, erhm ... hackish, w miejscach. Mimo to, to naprawdę pomoże Ci zanurzyć się w semantyce obliczeniowej i nadal jest bardzo imponującą wizytówką tego, co można zrobić. Ponadto zasługują na dodatkowe fajne punkty za zaimplementowanie gramatyki, która jest osadzona w Pulp Fiction (The movie).

A skoro już o tym mowa, to weź Prologa. Wiele badań w dziedzinie semantyki obliczeniowej opiera się na prologu. Naucz Się Prologu Już Teraz!To dobre intro. Mogę też polecić "sztukę prologu" i Covingtona "Prolog Programming in Depth" i "Natural Language Processing for Prolog Programmers", z których pierwszy jest dostępny za darmo online.

 28
Author: Aleksandar Dimitrov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-18 14:00:44

Chomsky jest całkowicie złym źródłem do szukania NLP (i powiedziałby to samo sam, dobitnie) -- zobacz:" Metody statystyczne i Lingwistyka " Abneya.

Jurafsky i Martin, o których mowa powyżej, to standardowe odniesienie, ale ja sam wolę Manning i Schütze . Jeśli poważnie myślisz o NLP, prawdopodobnie będziesz chciał przeczytać oba. Dostępne są filmy z jednego z kursów Manninga online.

 10
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-16 04:05:56

Jeśli przejdziesz przez Prolog aż do rozdziału DCG w Learn Prolog teraz! wspomniany wyżej przez Pana Dimitrowa, będziesz miał dobry początek w wprowadzaniu semantyki do swojego systemu, ponieważ Prolog daje bardzo prosty sposób na utrzymywanie bazy wiedzy i przekonań, którą można aktualizować poprzez odpowiadanie na pytania.

Jeśli chodzi o literaturę, mam dla ciebie jedną ważną rekomendację: run out and buy Speech and Language Processing by Jurafsky & Martin. To jest prawie książka o NLP( pierwszy rozdział jest dostępny online); używana w milionach kursów uniwersyteckich, ale również bardzo czytelna dla osób nie-lingwistycznych i praktycznie zorientowanych, a jednocześnie wchodząca dość głęboko w problemy lingwistyczne. Naprawdę nie mogę go wystarczająco polecić. Rozdziały 17, 18 i 21 wydają się być tym, czego szukasz( 14, 15 i 18 w pierwszym wydaniu); pokazują one prostą notację lambda, która przekłada się całkiem dobrze na prolog DCG z funkcjami.

Oh, btw, jeśli semantyka NL jest tym, co Cię interesuje, raczej zalecam wzięcie udziału w wszystkich kursach związanych z AI, które możesz znaleźć (chociaż wszystkie kursy na "zwykłą" semantykę językową, logikę, semantykę logiczną, DRT, LFG / HPSG / CCG, NL parsing, formalna teoria lingwistyczna itp. nie zaszkodzi...)

Czytanie oryginalnej literatury Chomsky ' ego nie jest naprawdę przydatne; z tego co wiem, nie ma aktualnych implementacji, które bezpośrednio odpowiadają jego teorie, wszystkie jego przydatne rzeczy są w zasadzie podszyte innymi teoriami (i każdy, kto pozostanie w pobliżu lingwistów na dowolną sprawę czasu, wchłonie wiedzę Chomsky ' ego przez osmozę).

 4
Author: unhammer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-23 09:48:34

Gorąco polecam pobawić się NLTK i przeczytać nltk Książki. Nltk jest bardzo potężny i łatwy do opanowania.

 3
Author: theycallmemorty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-14 02:23:01

Możesz spróbować poczytać trochę o phrase structured grammers , która jest w zasadzie matematyką stojącą za przetwarzaniem wielu języków. W rzeczywistości nie jest aż tak ciężki, bazując głównie na teorii zbiorów i grafów. Studiowałem go wiele miesięcy temu w ramach kursu matematyki dyskretnej i myślę, że na tym etapie jest wiele dobrych referencji.

Edit: nie tyle, czego oczekiwałem w google, chociaż Ten wygląda na dobre źródło nauki.

 2
Author: Shane MacLaughlin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-17 14:00:28

Jednym z pierwszych odkrywców NLP jest Noam Chomsky; napisał małe książki na ten temat w latach 50. do 70. może się okazać, że wciągająca lektura.

 2
Author: Paul Nathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-17 14:01:11

Cycorp mają krótki opis jak ich Baza Wiedzy Cycorp czerpie znaczenie ze zdań.

Korzystając z ogromnej bazy wiedzy o powszechnych faktach, system może określić najbardziej logiczny parse zdania.

 2
Author: Richard Poole,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-17 14:20:19

Prostszym miejscem na początek jest spojrzenie na dokumentację pakietu, który próbuje to zrobić. Polecam Python [Natural Language Toolkit (NLTK)1, szczególnie ze względu na ich dobrze napisaną, darmową książkę , która jest wypełniona przykładami. Nie doprowadzi cię to do tego, czego chcesz (co jest trudnym problemem AI), ale da Ci dobrą podstawę. NLTK ma parsery,chunkery, gramatyki bez kontekstu i wiele innych.

 1
Author: Gregg Lind,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-20 14:33:54

To jest Naprawdę ciężka sprawa. Zaczynałbym od zdobycia co najmniej magisterium z lingwistyki, a następnie pracy nad doktoratem z informatyki, koncentrując się na NLP.

Problem polega na tym, że większość z nas nie rozumie, czym jest język. I bez tego zrozumienia, cholernie trudno jest wdrożyć rozwiązanie.

Inne komentarze dają pewne odczyty, które są prawdopodobnie w porządku, jeśli chcesz zacząć bawić się z małym podzbiorem problemu, ale aby wymyślić naprawdę solidne rozwiązanie, nie ma żadnych skrótów. Potrzebujesz wykształcenia w obu dyscyplinach.

 1
Author: Chris Cudmore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-20 14:50:11

Bardzo przyjemnym i czytelnym wstępem jest the Language Instinct autorstwa Stevena Pinkera. To idzie do rzeczy Chomsky, a także opowiada ciekawe historie z punktu widzenia biologii ewolucyjnej. Może warto zacząć od czegoś takiego, zanim zagłębisz się w prace Chomsky ' ego i pokrewne prace, jeśli jesteś nowy w tym temacie.

 0
Author: Daniel Earwicker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-20 14:44:47