Polygen per il web – Generatore di testo casuale.
Polygen è un software gratuito, che genera testo casuale basato su delle grammatiche programmabili con un metalinguaggio molto facile da apprendere.
Nel loro sito (tutto in italiano) è possibile scaricare molte grammatiche già pronte come ad esempio l’oroscopo o il divertentissimo Lettere a riviste per teenager.
I testi prodotti da polygen sono pseudo casuali e con una buona semantica, utilissimi per dei TEST, per riempire pagine web vuote e per dare quindi qualcosa in pasto ai motori di ricerca e che che non dia troppo nell’occhio anche ad quality rater rispetto al classico testo casuale realizzato con le markov chain.
Polygen però viene fornito in formato eseguibile e non è solitamente utilizzabile nelle pagine web, per cui ho pensato di integrare l’eseguibile di polygen, con codice php o asp.net.
Purtroppo l’unico requisito scomodo è che per utilizzare questo codice bisogna avere permessi di esecuzione sul file, quindi fruibile solo su un server vostro e non sui classici hosting gratuiti.
Procedura:
-scaricate l’eseguibile di polygen (download per linux o per windows) ed il file per la grammatica scelta o realizzata da voi in formato .grm.
-Copiate l’eseguibile di polygen ad esempio nella stessa cartella della pagina php o .aspx (se è sistema microsoft dovete copiare anche cygwin1.dll), copiate anche la grammatica di vostro interesse.
Di seguito le due versioni:
Codice PHP:
< ?php
$grammatica=”oroscopo.grm”; //qui mettete il nome del file di grammatica da voi scelto
echo system_o(realpath(“polygen.exe”) . ” ” . $grammatica); //eliminare “.exe” nel caso di sistema linux
function system_o($cmd)
{
global $ret;
exec(“$cmd”, $f);
foreach($f as $output) {
//$output = htmlentities($output); //decommentate questa al posto della successiva se volete strippare via tutto l’eventuale codice html
$ret .= “$output\n”;
}
return $ret;
}
?>
Codice ASP.NET
< %
Dim p As System.Diagnostics.Process = New System.Diagnostics.Process
’instanzio il processo eliminando la shell dos e redirezionando l’output.
With p.StartInfo
.FileName = Server.MapPath(“.”) + “\” + “polygen.exe”
.Arguments = Server.MapPath(“.”) + “\” + “oroscopo.grm”
.CreateNoWindow = True
.RedirectStandardInput = True
.RedirectStandardOutput = True
.RedirectStandardError = True
.UseShellExecute = False
End With
‘lancio il processo
p.Start()
Dim StdOut As System.IO.StreamReader = p.StandardOutput
Dim sTemp As String
sTemp += StdOut.ReadToEnd
’decommentare solo se volete leggere anche lo stderr
‘Dim StdErr As System.IO.StreamReader = p.StandardError
‘sTemp += StdErr.ReadToEnd
’stampa a video del testo generato
Response.Write(sTemp)
%>
Se avete problemi o domande, contattatemi pure.
Giuseppe Liguori










Ho provate a creare lo script ma non funziona…
Grande! Funziona benissimo, io ho un hosting Aruba su Linux.
Sia sul mio localhost linux sia su altervista non funziona… o forse sbaglio qualcosa.
Anche io ho un sito su aruba(linux) ma non riesco a farlo andare, come posso risolvere?
ciao …giusto…proverò anche io a generare testi così..grazie per il suggerimento….ma…funziona con qualsiasi argomento? io devo generare testi di spiegazione sui giochi d’azzardo…….http://www.casino-poker-online2010.com/