LINGUAGEM NATURAL EM JAVA Pedro Pinto e Alfredo Almeida Diagramas de Classes de Booch Car ____ void SetGas (floatg) void SetBrake (floatb) void SetWheel (floatw) 1 N Tire _____ float pressure StationWagon _____ float GetCargoSpace() Pedro Pinto e Alfredo Almeida Porquê Java? • • • • • • É grátis Orientada a Objectos Tem um “garbage collector” Suporta estruturas de dados complexas Suporta Threads Programação para a Internet Pedro Pinto e Alfredo Almeida Tipos de Sistemas de Processamento de Linguagem Natural (NLP) • Sistemas FSTNs - Redes de transição de estados finitos • Sistemas RTN - Redes de transição recursiva • Sistemas ATN - Redes de transição aumentada Pedro Pinto e Alfredo Almeida Processamento de Linguagem Natural (NLP) • Conhecer a Linguagem humana • Capturar o significado Teoria da Dependência Conceptual Pedro Pinto e Alfredo Almeida Teoria da Dependência Conceptual (DC) • • • • atrans - transferência de posse ptrans - mover fisicamente um objecto propel - aplicar uma força para impelir movimento mtrans - transferência de informação Pedro Pinto e Alfredo Almeida Teoria da Dependência Conceptual (DC) “Mark gave a book to Carol .” “Carol received a book from Mark .” Mark transferiu de posse, um livro, de si para Carol. Pedro Pinto e Alfredo Almeida Teoria da Dependência Conceptual (DC) “Mark gave a book to Carol .” “Carol received a book from Mark .” Parser ATN: Frase Sujeito 1 “Mark” 2 “Carol” Pedro Pinto e Alfredo Almeida Teoria da Dependência Conceptual (DC) • Léxicos complexos • Estruturas de dados com pares Slot / Valor Para os Verbos : actor - pessoa / entidade que executa uma acção; action - acção representada por uma primitiva DC; recipient - especifica quem é afectado por uma acção; location - onde a acção tem lugar; object - objecto (opcional) envolvido na acção; time - tempo (opcional) em que a acção ocorreu; tense - tempo do verbo: passado, presente ou futuro. Pedro Pinto e Alfredo Almeida Teoria da Dependência Conceptual (DC) “Mark gave a book to Carol .” Frases “Carol received a book from Mark .” Estrutura de dados actor : Mark action : atrans - transferência de posse recipient : Carol object : book tense : past Pedro Pinto e Alfredo Almeida Desenho da Semântica dum Sistema NLP Requisitos da Classe Parser: • Suporte de um pequeno nº de palavras e conceitos • Escalabilidade Pedro Pinto e Alfredo Almeida Implementação em Java Diagrama de Booch Parser ____ Parser() Parse(String sentence) _____ DoVerb() DoActor() DoObject() DoTime() 1 N AIframe _____ AIframe() ParseObject _____ ParseObject() int fitness() Pedro Pinto e Alfredo Almeida Implementação em Java •O Array do método ParseObject é público •As frases são processadas chamando o método Parser() •Em seguida são chamados os métodos DoVerb(), DoActor(),… que processam a frase. Pedro Pinto e Alfredo Almeida Implementação em Java Neste exemplo aqui apresentado a classe Parser contém um pequeno léxico (o qual esta codificado em cada um dos 4 métodos anteriores). Verbos: give, gave, receive, received objectos: ball, book Nomes Próprios: Mark, Carol tempo verbal: passado, presente e futuro Pedro Pinto e Alfredo Almeida Referências WATSON, Mark. - Intelligent Java Applications for the Internet and the Intranets Morgan Kaufmann Publ., 1997 Pedro Pinto e Alfredo Almeida