CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 12 Dic 2017 20:50

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 3 mensajes ] 
Autor Mensaje
 Asunto: Extraer verbo
NotaPublicado: 10 Oct 2014 12:26 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
¡Buenas!

Dentro del método de conversas con PSI:

Código:
void onSayTo ( Mobile speaker , String text , Mobile hearer )


Necesitaría extraer el verbo contenido en text (si es que lo hay).

¿Existe alguna forma de poder extraerle el verbo (de entre los verbos que reconoce AGE) contenido en el String text?

Algo del tipo

Código:
String elVerbo;

elVerbo = extraerElVerboAGE ( text );


O en el caso de ser varios verbos

Código:
List listaDeVerbos = new ArrayList();

listaDeVerbos = extraerElVerboAGE (text);


¡Gracias!

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
NotaPublicado: 10 Oct 2014 17:05 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5274
Ubicación: Coruña
¿Lo que quieres es extraer el verbo suponiendo que aparece en posición de verbo (o sea, que lo que están diciendo es como si fuera un comando) o extraer cualquier palabra de la oración que sea un verbo?

O sea, si el jugador ha dicho "Te voy a matar", ¿el comportamiento que deseas es que se devuelvan "voy" y "matar", por ser verbos reconocidos por AGE, aunque la oración no sea una orden?

Si es así, puedes usar el método isVerb de la clase NaturalLanguage:

Código:
NaturalLanguage nl = world.getLanguage();
List verbs = new ArrayList();
StringTokenizer st = new StringTokenizer(text);
while ( st.hasMoreTokens() )
{
  String tok = st.nextToken();
  if ( nl.isVerb(tok) )
     verbs.add(tok); /*esto añade la forma que apareció tal cual. Si quieres el infinitivo, verbs.add(nl.toInfinitive(tok));*/
}


Si es otra cosa, es mejor que me detalles más lo que quieres. Porque por ejemplo, si es para hacer que un PNJ siga una orden (que el jugador le diga "coge la espada" y entonces ese personaje coja la espada), para eso hay métodos específicos que lo hacen automáticamente sin que tengas que parsear a mano nada.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 10 Oct 2014 21:55 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Lo has clavado, es justo lo que necesito.

¡Gracias!

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 3 mensajes ] 

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM