Gå til innhold

Anbefalte innlegg

Hei

 

Noen som har erfaring med, eller kan vise til ressurser om språkgjenkjenning og hvordan best programmere dette?

 

Tenker for eksempel på om input er: "Hvor ligger Malaga?"

 

Da må programmet hente ut substantiv, verb og objekt og lese at det skal dreie seg om Malaga, og at det finne ut HVOR malaga ligger/befinner seg (og ikke HVA malaga er, Hvordan malaga er...etc)

 

Tenker da ikke på logikken der programmet må finne ut denne informasjonen, men mer på hvordan programmet skal forstå hvilken informasjon man er ute etter.

 

Leter etter god litteratur om emnet, helst på nett...

Lenke til kommentar
Videoannonse
Annonse

PAIP inneholder litt om dette: http://www.norvig.com/paip.html (kildekoden er tilgjengelig).

 

Tipper denne også har litt om det http://aima.cs.berkeley.edu/ .. uten at jeg har lest denne.

 

En fri bok: http://www.gelbukh.com/clbook/

Stuff: http://www.cs.technion.ac.il/~gabr/resources/resources.html

Blog-ting: http://nlpers.blogspot.com/

Mer stuff: http://opinlab.wordpress.com/

 

Gjør også et søk på "NLP" eller "natural language processing" @ Google - det finnes ferdigskrevne biblioteker/verktøy for disse tingene.

Endret av lnostdal
Lenke til kommentar
Sjekk litt om parsere på Wikipedia. En parser vil hjelpe deg med å forstå setningen.

http://en.wikipedia.org/wiki/Parsing

 

Her er utgangspunktet tatt ut ifra parsing av tokens, ord som spesifiserer lovlige ord i et programmeringsspråk. Men det har samme prinsippet som du er etter, å forstå en setning.

6605118[/snapback]

 

En parser vil hjelpe deg med å opprette et AST (abstrakt syntakstre), men ikke til å "forstå" en setning i et naturlig språk.

Lenke til kommentar
Det vet jeg da godt, men en parser har jo samme nytten. Hva skal du ellers kalle det? Du må jo på en måte "forstå" teksten, og da vil det samme prinsippet gå ut på det samme som under parsing av programmeringsspråk.

En parser bygger en intern representasjon fra en tekst (som oftest et tre). Det er fortsatt bare et tre. Det har ingen mening i seg selv. Poenget mitt er at det skal mer til for å gjøre nytte av et naturlig språl.

 

Dessuten er det ikke regler for at en parser skal generere et abstrakt syntaks-tre. Det finnes jo flere typer parsere.

LL(1), Recursive Decent, etc. Så dine begreper på hva som bestemmer hva en parser er, hjelper ingen ting.

De typene du snakker om har ingen ting med om en parser generer en AST eller ikke. LL(1) er betyr at grammatikken som underligger parseren ikke krever mer enn 1 token lookahead. Recusive descent er en måte å implementere en LL(K) parser på.

 

En parser sett under en kompilator vil jo evaluere ord og symboler (tokens), parseren vil da prøve sette sammen disse ordene til lovlige setninger i et eventuelt programmeringsspråk. Og generere et AST, eller en annen form for midlertidig representasjon. Dette kan man kalle det å forstå kildekoden.

Ikke på samme måte som man kan "forstå" et naturlig språk. Det blir noe helt annet, fordi man trenger en form for intelligens for å forstå naturlig språk (altså AI).

 

Så denne typen parser kan være nyttig i samme type program som hpfarstad søker etter. Om det trenger et AST eller ei, kan det fortsatt kalles en parser.

6637835[/snapback]

Det har jeg heller ikke sagt noe på.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...