The more sentences that you provide to it, the more "inspired" that it will be
llml.prg
- Code: Select all Expand view
- #include "FiveWin.ch"
static hTokens := {=>}
function Main()
Tokenizer( "el gato subió al arbol y maulló hasta que llegó el bombero" )
Tokenizer( "Me gusta aprender cosas nuevas todos los días" )
Tokenizer( "El cielo es azul y el sol brilla" )
Tokenizer( "La música es una forma de expresión artística" )
Tokenizer( "El chocolate es un dulce que se hace con cacao" )
Tokenizer( "La Tierra es el tercer planeta del sistema solar y tiene una luna" )
Tokenizer( "El agua es un líquido transparente e inodoro que se compone de hidrógeno y oxígeno" )
Tokenizer( "Los gatos son animales domésticos muy populares" )
? Generate( "el" )
return nil
function Tokenizer( cSentence )
local aTokens := hb_ATokens( cSentence )
local n
hb_HCaseMatch( hTokens, .F. )
for n = 1 to Len( aTokens ) - 1
if ! hb_HHasKey( hTokens, aTokens[ n ] )
hTokens[ aTokens[ n ] ] = { aTokens[ n + 1 ] }
else
AAdd( hTokens[ aTokens[ n ] ], aTokens[ n + 1 ] )
endif
next
return nil
function Generate( cToken )
local cSentence := cToken, n := 1
while hb_hHasKey( hTokens, cToken ) .and. ! Empty( hTokens[ cToken ] ) .and. n++ < 20
cSentence += " " + hTokens[ cToken ][ hb_RandomInt( 1, Len( hTokens[ cToken ] ) ) ]
cToken = hTokens[ cToken ][ hb_RandomInt( 1, Len( hTokens[ cToken ] ) ) ]
end
return cSentence
Some funny results:
"el chocolate es un líquido que llegó compone de expresión artística"
"el agua brilla"
"el gato planeta del sistema solar y el agua"
"el tercer es el y maulló"
"el sol es un y el hasta que se hace de hidrogeno artística"
"el sol planeta del sistema solar y el hasta que se el sol es azul dulce que se el chocolate"