Proyecto Batch- Cleverbot

Iniciado por VicInFlames, 12 Enero 2014, 16:44 PM

0 Miembros y 1 Visitante están viendo este tema.

VicInFlames

Veamos compañeros,estoy intentando hacer una idea similar,al Cleverbot,el famoso "robot", se trataba de un programa que creaba una conversación a partir de frases de varias personas,enlazadas.. :huh:



Mi idea era Introducir frases al bat,que estas se guardarían en un .txt aparte,del que luego se consultan.

Para tener una conversación con sentido,las frases introducidas se guardan en líneas,según su relación,es decir,en el .txt quedaría así:


Hola ~ Que tal? ~ muy bien,y tú? ~ pues genial,no hay novedades ~
Adiós ~ hasta pronto ~ Nos vemos! ~ ;)


Estoy interesado en cómo puedo buscar desde el bat,partes de estas líneas,según sea necesario..
[ Yo digo "Hola" y el bat,lo relaciona con otra relación de la misma línea
(Hola ~ que tal?) por lo que me responderá " que tal?" o "bien y tú? ]

Como utilizo un "find" / "findstr" o "for" para conseguir buscar cierto segmento delimitado por un signo de puntuación,de la misma línea?



Muchas gracias :laugh:

fary

Hola, mi recomendación es que uses un lenguaje como Perl o Python para este tipo de cosas en vez de batch pero si estás interesado en hacerlo en batch mira información sobre for /f y delims.

un saludo.
Un byte a la izquierda.

Eleкtro

#2
Batch es (muy) limitado en comparación con el resto de lenguajes (lenguajes de verdad), sobretodo por las escasas (inexistentes) herramientas de trabajo del lenguaje y la pobre velocidad.
Si reálmente quieres llevar una idea de estas proporciones entonces lo primero que debes hacer es olvidarte del retrasado Batch y aprender un lenguaje.

Por otro lado entiendo que lo que pretendes hacer es una "IA" muy básica sin algoritmos complejos, pero de todas formas el hecho de intentar hacer esto en Batch es una completa pérdida de tiempo, no te va a servir para nada reálmente, ni para aprender.

Segúramente habrán "buenos" ejemplos por Google, pero cualquier cosa parecida hecha en Batch es una pérdida de tiempo.

PD: Empecé a escribir un código para mostrarte un ejemplo hecho en Batch, pero me ví tan limitado en cada acción sin nisiquiera un triste Array o expresiones regulares (actuales) para poder calcular la frase con más coincidencias, que al final no terminé el código ...es una completa pérdida de tiempo pudiendo disponer de la capacidad de cualquier otro lenguaje.

Cita de: VicInFlames en 12 Enero 2014, 16:44 PMComo utilizo un "find" / "findstr" o "for" para conseguir buscar cierto segmento delimitado por un signo de puntuación,de la misma línea?

FINDSTR soporta Expresiones regulares limitadas, leete la ayuda del comando en la consola, es el único commando que te puede servir de alguna manera dentro de lo poco que te va a servir (junto a un FOR para hacerle un split a la cadena).

Ejemplo de uso:

Código (dos) [Seleccionar]
@Echo OFF

Set "String=Probando 123"

Echo "%String%" | FINDSTR "Probando.[0-9][0-9][0-9]" 1>NUL && (
Set "Match=True"
) || (
Set "Match=False"
)

Echo Coincide: %Match%

Pause&Exit


Saludos









AdeLax

Hola!!,

Yo tambien estuve una temporada interesado en las IA o chatbots, te puedo decir te que te olvides de Batch, Python para mi es lo que mejor me vino, te recomiendo que aprendas un poco python y luego te mires un modulo llamado AIML para trabajar con aiml's, (son archivos con preguntas y respuestas) encontraras a patadas aiml's por Internet echos por otros. Luego puedes añadirle una interfaz con Tkinter o otro modulo.
Si te lo curras le dará mil vueltas a Cleverbot!!  :D
y no es difícil...
     
Saludos!!!


daryo

esos proyectos grandes en batch terminan siendo una pesadilla , recuerdo cuando hice un troyano de miles de lineas en batch y nno servia nada es muy caotico lento y limitado.

si mejor usa python o cualquier lenguaje de verdad
buenas