Low in un altro post ha citato un approfondimento che grazie all'aiuto di positano ho potuto studiare un pochino.
L'algoritmo è molto semplice (correggetemi se sbaglio):
1) prendiamo un testo abbastanza lungo
2) dividiamo questo testo in coppie di parole (o in triple o in quadruple, etc.. l'unico inconveniente è che più alziamo il numero più ci servirà un testo più grande..altrimenti rischieremo di non avere un output abbastanza ampio)
3) mettiamo le coppie di parole come indice di un database e abiniamo ad ogni coppia un vettore contenente l'elenco delle parole successive a tale coppia. Esempio:
Dario ha un cane bianco che tiene chiuso in un recinto. Il cane bianco di Dario non farebbe male ad una mosca. Anche io avevo un cane bianco che scodinzolava sempre.
Fingiamo di avere questo testo e di doverne fare un array (a 2 dimensioni)
Creiamo dunque un vettore (vettore1) che contenga tutte le coppie presenti nel testo (Dario ha | ha un | un cane | cane bianco | bianco che | ...). Dopo di che creiamo un nuovo array che abbia come indice le varie coppie del vettore1 e abiniamo ad ogni coppia un vettore contenente tutte le possibili parole successive a tale coppia. Es:
Array['cane bianco'] -> ('che', 'di', 'che')
4) Scegliamo una coppia di parole iniziale (tra quelle presenti nel testo) e facciamo la ricerca sull'array. Esempio:
Array['cane bianco'] -> ('che', 'di', 'che')
Nell'esempio abbiamo trovato che cane bianco può essere seguito dalle parole 'che', 'di', 'che'..scegliamo a caso una di esse e la scriviamo nel testo della doorway. Mettiamo che sia uscita la parola 'che' la nostra doorway conterrà il testo cane bianco che.
5) Prendiamo come nuova coppia la combinazione formata dalle ultime 2 parole del testo della doorway "bianco che" e cerchiamole nuovamente nell'array (4)..otterremo il seguente vettore:
Array['bianco che'] -> ('tiene', 'scodinzolava')
Scegliamo a caso una delle parole presenti nel vettore e l'aggiungiamo al testo della doorway e procediamo così finchè non otteniamo un vettore vuoto o non abbiamo raggiunto un limite massimo di parole preimpostato.
---------
Io sono pronto a partire con lo script php, ma prima gradirei aggiunte e consigli.
Vi faccio notare che la coppia "cane bianco" e la coppia "cane bianco." sono diverse. Questo perchè se fosse considerate uguali la parola successiva a cane bianco. verrebbe considerata come possibile continuazione di cane bianco. Inoltre grazie a questa decisione avremo una punteggiatura pulita.
P.S. purtroppo io non capisco l'inglese benissimo (certamente non tnto da leggermi una spiegazione del funzionamento di uno script), positano mi ha tradotto l'articolo. Quindi al 50% è merito suo
P.P.S. Se mi confermate la validità dell'algoritmo e se mi fate altre aggiunte io vi posso già confermare che tale algoritmo è stupidissimo da fare tramite php.
P.P.P.S. Scusate ho postato nella sezione sbagliata. Meglio laboratotio Seo. Chi mi sposta?

LinkBack URL
About LinkBacks



Rispondi Citando
vabene così o è troppo simile?