• User Attivo

    Quindi come minimo dobbiamo avere anche un DB di parole da eliminare (termini non significativi), un DB di sinonimi, e un sistema per fare stemming...

    Il primo possiamo farlo, il secondo possiamo trovarlo, l'ultimo dobbiamo pensarlo.


  • Super User

    Secondo me le prime cose da fare sono:

    1)Costruire un DB che contenga i documenti integrali e gli assegni un ID univoco.

    2)Costruire un DB (lista inversa) che contenga l'elenco dei termini estratti dal primo DB escludendo quelli meno significativi (le stop word, i più frequenti ed i meno frequenti) e memorizzi per ognuno di questi in quale documento siano contenuti, quante volte, in quali tag e con quale prominenza. Inoltre memorizzi quante volte il termine è presente nell'intero indice.

    3)Costruire un DB (database dei vettori di termini) che contenga l'elenco dei documenti e per ognuno di questi memorizzi il vettore degli x termini con maggior peso (TF/IDF) contenuti, il numero di volte in cui appaiono e la lunghezza del documento.

    Queste sono le tre strutture fondamentali che permettono di identificare i documenti rilevanti per una query (2) e di confrontarne i vettori di termini con quelli della query o della query espansa (3).


  • User Attivo

    ottimo beke...
    noto che dalle parole siamo passati ai fatti.

    il nodo principale è dare un peso alle parole nelle pagine, quindi detrarre al peso dei valori che definiscono la pagina "poco genuina" (es. spam).

    data la ricerca il termine ORDER BY nella query sql darà i suoi frutti.

    Per il peso Low fa riferimento al coseno...questa cosa è da chiarire (valore minimo=0, valore masimo=1).


  • Super User

    @Stealth said:

    il nodo principale è dare un peso alle parole nelle pagine, quindi detrarre al peso dei valori che definiscono la pagina "poco genuina" (es. spam). Data la ricerca il termine ORDER BY nella query sql darà i suoi frutti.Personalmente agli algoritmi antispam penserei dopo, mi sembra più importante iniziare da un buon modulo di ordinamento basato sul confronto fra i vettori di termini. In ogni caso a mio modo di vedere si tratta di assegnare diversi tipi di punteggi a ciascun documento, ognuno dei quali proveniente da moduli diversi (alcuni "query sensitive", altri no) e poi usarli per computare il punteggio finale che ordinerà le pagine.

    Per esempio PunteggioFinale= (M x PunteggioIR) + (N x PunteggioTrust) + (P x PunteggioLP) ecc.

    @Stealth said:

    Per il peso Low fa riferimento al coseno...questa cosa è da chiarire (valore minimo=0, valore masimo=1).Non c'è moltissimo da chiarire. Una volta che hai il vettore di termini di un documento, hai espanso la query e hai ottenuto il suo vettore di termini confronti gli angoli dei due vettori attraverso il loro coseno che, come hai fatto notare, ha la simpatica proprietà di avere sempre valori compresi fra 0 ed 1.

    L'espansione della query è importante perchè nel web le query sono spesso di uno, due o tre termini e sono quindi ambigue. Per poter fare un confronto efficiente fra i vettori di termini la query va espansa. Un sistema per farlo è quello di prendere i documenti "top ranked" per la query e sommarne i testi, scremandoli dai termini poco utili per ottenere la query espansa.


  • Bannato Super User

    Credo che per molti di voi ( me per primo ) ci siano dei problemi per tradurre dall'inglese la grossa mole d'informazioni trovate in rete riguardanti l'argomento che già difficile e ostico di "suo".

    Personalmente ho fatto una ricerca per ** tf*idf** richiedendo solo le pagine in italiano e ho trovato parecchio materiale.

    Vi consiglio di provare...

    🙂


  • User Attivo

    Consiglio mio:
    oltre che dare un id univoco alle pagine dategli un md5 e la data di spiderizzazione.

    Almeno è facile capire se è stata aggiornata ecc..


  • Super User

    indubbiamente ci sono una serie di proprietà (campi in tabella) da attribuire a un documento,

    valutiamo insieme 🙂


  • Bannato Super User

    Aggiornato ? Si ! in che modo ?

    C'è a mio avviso aggiornare e aggiornare... limitarsi al log dell'ftp non è corretto... anche se i motori sembrerebbero farlo.

    Sarebbe interessante trovare un valido sistema per verificare la qualità degli aggiornamenti, sgamare gli autoaggiornamenti e bla bla bla...

    🙂


  • User Attivo

    limitarsi al log dell'ftp non è corretto... anche se i motori sembrerebbero farlo.

    Non so chi ti abbia detto questa cosa ma è totalmente improponibile.
    I log dell'ftp NON sono accessibili da un motore di ricerca, come fa dunque a leggerli ?

    I motori di ricerca hanno le toolbar.

    Per quanto riguarda il discorso del vedere di che tipo di aggiornamento si tratta basta creare un algoritmo che analizza per mettiamo 15 giorni una pagina, vede le modifiche che sono state fatte ai testi, e se sono superiori ad una certa percentuale allora lo ritiene aggiornamento.

    Nel database poi si segna un numero (magari per facilitare le cose si normalizza tutto fra 0 e 1) che determina la periodicità degli aggiornamenti (cioè ogni quanto deve passare il bot).


  • Bannato Super User

    Chiedo venia per aver scritto senza pensare di ricercare la giusta terminologia per esprimere il concetto.

    Cerco di farlo utilizzando un linguaggio semplice... che più semplice non si può...

    Se tutti giorni ricarichi con ftp una pagina senza variare una virgola, questo semplice passaggio, fa sembrare la pagina aggiornata, anche se in realtà non lo è !

    🙂


  • User Attivo

    E' vero in parte, perchè aggiornando via ftp viene dato un status 2xx invece che 304 (not modified), però dal punto di vista delle risorse, in ambedue i casi la pagina ti viene spedita (quindi per analizzarla ci vuole qualche millisecondo..).

    Inoltre ho un sito che ha 35 pagine non modificate da decenni, che restituiscono un bel 304, e google prontamente le aggiorna di continuo.

    Immagino per via del loro valore, quindi non credo che sia vero quel che dici.

    Io presumo che sia più reale un controllo da parte della Google Toolbar, infatti casualmente mi è capitato con più di un sito che fa diversi accessi dai motori di ricerca, due giorni dopo che aggiornavo la pagina passava google bot che magari non passava da un mese.

    Quando hai un dubbio..


  • User Attivo

    ho trovato in rete questo documento:
    http://roquefort.di.unipi.it/~ferrax/Teach/Recdoc_IU/Lezione7e8_IU_2005.pdf

    sono diapositive riassuntive di ciò che noi dovremmo analizzare.


  • User Attivo

    Ho da fare una semplice osservazione però.

    Innanzitutto che è facile mettersi in bocca parole di cui non si conosca neanche lontanamente il significato.
    Per esempio lo stemming: facile a dirsi, ma a farsi ?

    Così come tanti altri sistemi che sono stati citati in questo thread.

    Quanti qui dentro han fatto un corso di algoritmi e strutture dati ?
    Quanti qui dentro hanno mai gestito una workstation ?
    Quanti qui dentro hanno mai gestito\configurato un cluster ?

    Io comincerei a partire con calma, partendo dal progettare una struttura intelligente, espandibile, versatile.

    E' troppo facile dopo aver letto 3 documenti postati sul forum pensare di padroneggiare certe tecniche di IR e così via.

    Già progettare e realizzare un crawler fatto bene, che non consumi tante risorse, è difficile.

    Figuriamoci tutto il resto..

    In questo post non voglio togliere niente a nessuno.
    Semplicemente a volte è facile pensare oltre i propri limiti.

    Infine credo che durante lo sviluppo, l'idea di mettere insieme troppa gente complichi le cose, contando che pochi qua dentro fanno i programmatori di mestiere.


  • Super User

    Io comincerei a partire con calma, partendo dal progettare una struttura intelligente, espandibile, versatile.
    E' troppo facile dopo aver letto 3 documenti postati sul forum pensare di padroneggiare certe tecniche di IR e così via.

    Già progettare e realizzare un crawler fatto bene, che non consumi tante risorse, è difficile.
    Figuriamoci tutto il resto..
    Mi sembra che hai centrato uno dei punti ora più importanti.
    Ben lungi dal pensare non solo di padroneggiare, ma anche di aver compreso IR ed il resto, vorrei evidenziare il target;[url=http://www.giorgiotave.it/forum/viewtopic.php?t=6145&sid=f6c956cdfaeb7ce709f6c276058b8e7c] iniziare a studiare l'IR. - E' importante. Ed acquisire la visione giusta. > Fate come più preferite: iniziate a progettare un semplice motore di ricerca, imparate le basi sui libri, approfondite le nozioni sulla documentazione esistente online, seguite le conferenze sull'IR.. basta che imparate le basi ed acquisite la visione giusta.
    L'obiettivo è quindi portare la parte più attiva del ForumGT ad imparare le basi dell' IR.

    In questo post non voglio togliere niente a nessuno.
    Semplicemente a volte è facile pensare oltre i propri limiti.
    Conosco molto bene i miei limiti e quelli della parte più attiva del Forum, [ geniacci a parte 😉 ] e credo sia possibile consentire a questa parte di* imparare le basi dell IR*.

    Infine credo che durante lo sviluppo, l'idea di mettere insieme troppa gente complichi le cose, contando che pochi qua dentro fanno i programmatori di mestiere.
    Condivido senz'altro.
    Mi sembra che [come da post iniziale :D] ci si stia muovendo in 2 direzioni;

    -** creare un piccolo Gruppo molto preparato** [ i Geniacci] e coordinato da un Responsabile [scelto praticamente solo in funzione del tempo che potrà dedicare a coordinare la **realizzazione **del Progetto].

    • coinvolgere la parte più attiva del ForumGT nella discussione e nell'approfondimento di ciò che il Gruppo stà creando e metterlo in condizioni di comprendere il Progetto.

    :ciauz:


  • Super User

    @uMoR said:

    Innanzitutto che è facile mettersi in bocca parole di cui non si conosca neanche lontanamente il significato.
    Per esempio lo stemming: facile a dirsi, ma a farsi ?

    A tal proposito ci sono degli algoritmi che hanno 20-30 anni rintracciabili su Internet (anche gia' codificati) per compiere tali operazioni. Si tratta di prenderli, analizzare cio' che fanno e adattarli alle nostre esigenze.
    Sono tecniche che a grandi linee sono costretti ad usare anche Google, Yahoo ed Msn...

    Esiste una versione adattata all'italiano dell'algoritmo di stemming di Porter (risalente agli anni 80) che si chiama [url=http://snowball.tartarus.org/algorithms/italian/stemmer.html]Snowball

    @uMoR said:

    Già progettare e realizzare un crawler fatto bene, che non consumi tante risorse, è difficile.
    Mica vogliamo fare concorrenza a google 🙂


  • Super User

    Io comincerei a partire con calma, partendo dal progettare una struttura intelligente, espandibile, versatile.

    E' troppo facile dopo aver letto 3 documenti postati sul forum pensare di padroneggiare certe tecniche di IR e così via.

    Già progettare e realizzare un crawler fatto bene, che non consumi tante risorse, è difficile.

    Hai perfettamente ragione

    questa è una discussione iniziale, ora si troverà il modo di creare e coordinare un Gruppo per iniziare un'analisi più approfondita e individuare come proseguire con il lavoro


  • User Attivo

    io l'ho sempre detto anche su html.it
    è inutile definirsi seo se non si sa programmare.

    cmq a parte questo rinzi ha ragione, spero che nei documenti del progetto ci siano spiegazioni per chi ne mastica di meno a riguardo di algoritmi, cluster e via dicendo.


  • User Attivo

    A tal proposito ci sono degli algoritmi che hanno 20-30 anni rintracciabili su Internet

    Chiaro, ci sono anche motori di ricerca interi già fatti.

    Il problema è prendere il codice, leggerlo capirlo smanettarci sistemarlo e così via.

    Ad ogni modo, buon lavoro ! :fumato:


  • User

    mi piacerebbe partecipare ma non sono così esperto, buon lavoro!

    cmq avete anche voi gli stessi [url=http://www.downloadblog.it/post/1058/il-giappone-contro-google-e-yahoo]finanziamenti del Giappone? 😄

    ok, me ne vado, buon natale! :ciauz:


  • Super User

    @resigua said:

    cmq avete anche voi gli stessi [url=http://www.downloadblog.it/post/1058/il-giappone-contro-google-e-yahoo]finanziamenti del Giappone? 😄

    fantasticare è bello ma l'obiettivo nn è quello di mettere il bastone tra le ruote a Google ne di emularlo

    vogliamo cercare di capire come funzionano i criteri di ranking

    poi chissà domani quali orizzonti vedremo...