LINGUAGEM NATURAL EM JAVA Pedro Pinto e Alfredo Almeida

Propaganda
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
Download