View Single Post
Old 13-01-2013, 12:57   #1
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
[Vari] Contest 19: Full Text Search(e non solo).

Scaricate i file di input da qui:

https://github.com/hwupgradecontest/...ree/master/All

Si tratta di una serie di opere letterarie che ho preso da qui:

http://www.liberliber.it/

Grazie a Msangi e The_Ouroboros, il link su github dove potete mettere i vostri sorgenti:
https://github.com/hwupgradecontest/contest19

Per aggiungere il proprio codice du github:

The_Ouroboros:
http://www.hwupgrade.it/forum/showpo...&postcount=784

Vicius:
https://github.com/hwupgradecontest/README



Punto A:
Il programma dovrà leggere i file .txt fondendoli e creandone uno solo delle dimensioni specificate dall'utente. Il file di output sarà poi utilizzato per il Punto B: algoritmi di Full Text Seach.
La fusione dei vari file txt va effettuata prendendo le singole righe di ogni file di input e mescolandole, in modo casuale, con quelle di tutti gli altri file.
Vanno escluse, nel file di output, le righe vuote. Vanno inoltre eliminati gli spazi superflui. Due o più spazi consecutivi andranno sostituiti con uno spazio solo. Le tabulazioni vanno sostituite con uno spazio.
Per il punto B utilizzeremo il programma che si rivelerà il migliore dal punto di vista delle prestazioni ma soprattutto dalla qualità dell'output.
Il programma, CUI o GUI, a vostra scelta, dovrà dunque permettere all'utente di specificare il nome del file di output e la dimensione. Nel caso l'utente scelga una dimensione maggiore di quella del totale dei file di input, si ricominci dal primo file e via via con tutti gli altri, mescolando sempre in modo casuale le righe.

Esempio(CUI):


Punto B:
Da definire più in la. Ci occuperemo degli algoritmi per la Full Text Seach e confronteremo le prestazioni(e la qualità dei risultati) con alcuni programmi che vanno per la maggiore nel settore: Lucene, Zettair, Indri.
Punto B.1:
Quote:
B.1:
Si realizzi un programmino che, data in input una stringa di ricerca, indichi l'esatta posizione (riga e colonna) nel file creato al punto A.

Si prendano separatamente i tempi per la creazione dell'indice e quelli per la ricerca.

Se volete utilizzare un algoritmo brute force, senza creare l'indice, siete liberi di farlo.
L'esempio qui: http://www.hwupgrade.it/forum/showpo...&postcount=180


Punto B.2:
Quote:
Si scriva un programmino simile a quello presente nella distribuzioni Linux per contare i caratteri, le parole, le righe, la riga più lunga e la parola più lunga(quest'ultima cosa il comando wc non la fa):


Le parole dovranno essere parole di senso compiuto. "---------" o "........" o "£$%*/*&&&" non sono parole di senso compiuto.
"parola", "ciao", "hello" invece si, sono parole di senso compiuto.
Si veda, inoltre, questo post(grazie a msangi): http://www.hwupgrade.it/forum/showpo...&postcount=618.
E questo(grazie a clockover): http://www.hwupgrade.it/forum/showpo...&postcount=645

Punto B.3
Si modifichi il programmino di cui al punto B.2 in modo da fargli accettare due argomenti dalla riga di comando(oltre al nome del file):

1) Il parametro "-L=d" dove d sta per la dimensione minima delle parole che l'utente desidera per il conteggio. Per esempio, -L=5 significa che l'utente desidera che vengano conteggiate le parole con lunghezza >= 5.

2) Il parametro "-F=file" dove file sta per il nome di un file specificato dall'utente dove sono listati, una parola per riga, le parole che l'utente desidera escludere dalla ricerca. Per esempio:
Codice:
il
lo
la
i
gli
le
Col suddetto file passato come argomento, il programmino dovrà escludere dal conteggio le parole "il", "lo", "la", "i", "gli", "le".

------------------------------------------------------------------------------------------------------------------------------------------------------

E, a cura dell'utente Marco.r:
Punto C:
Catene Markoviane. In preparazione.

Ultima modifica di Vincenzo1968 : 20-02-2013 alle 18:25. Motivo: Aggiornato link file input
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso