+ Rispondi alla Discussione
Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 50 di 85

Progettare e fare un semplice motore di ricerca -Discussione

Ultimo Messaggio di paocavo il:
  1. #1
    Esperta L'avatar di Mamilu
    Data Registrazione
    Jan 2005
    Località
    Krabi Thailand - VE member
    Messaggi
    1,625

    Progettare e fare un semplice motore di ricerca -Discussione

    In questo thread Low ci invita a tentare di iniziate a progettare un semplice motore di ricerca.

    Per la verità il suo è un discorso più ampio ed articolato che va ben oltre il progettare un semplice motore di ricerca.

    Low ci parla di IR e dice che siamo messi proprio male e che però qui abbiamo le condizioni per emanciparci.

    Certo c'è gente in questo ForumGT che non penso proprio debba avere problemi a creare un semplice motore di ricerca.

    Altri invece, come me, che non saprebbero nemmeno da dove partire

    Ecco, questa può essere la grande scommessa, una delle tante sfide alle quali oramai il ForumGT ci ha abituati; creiamolo assieme!

    Nominiamo un bel Gruppo di Esperti che sappia come e cosa fare ed a questi deleghiamo il compito di muovere un folto manipolo di ignari volontari, il più possibile ampio, che realizzi la cosa.

    Che ne dite?

    Si parlava ad esempio in questi giorni di realizzare un qualcosa, un robottino da mettere sul ForumGT col quale fosse possibile dialogare, capace insomma di rispondere a query dirette degli utenti con il nostro FAQ-Glossario già esistente e debitamente sviluppato.

    Certo che bisognerebbe essere capaci di fargli riconoscere l'argomento della domanda e quindi compreso semanticamente quello, saper individuare la risposta giusta.

    Che ne dite?

  2. #2
    Banned
    Data Registrazione
    Apr 2005
    Messaggi
    2,073
    Trovo l'idea ottima, mi candido volentieri per dare una mano come "ignaro volontario".

    A disposizione.

  3. #3
    Utente Premium L'avatar di Salatti.NET
    Data Registrazione
    Sep 2005
    Località
    Livorno
    Messaggi
    354
    Se posso aiutare lato codice, contate su di me: esperienza in C++ (non tantissimo), ASP.NET e C# (molta di più).
    Salatti.NET - Il mio Blog e i miei progetti

  4. #4
    User L'avatar di GrazieMamma
    Data Registrazione
    Jan 2005
    Località
    Roma
    Messaggi
    414
    Io posso fare il tifo, penso di essere uno dei più ignoranti del forum in quanto a programmazione (me la gioco a dadi con Mamilu).

    Vorrei imparare però

  5. #5
    Banned
    Data Registrazione
    Dec 2004
    Località
    Sesto Calende (VA)
    Messaggi
    1,192

    !

    E' molto interessante la proposta di Elena...

    Da parte mia sia a livello di programmazione che di analisi c'è una forte esperienza, però per linguaggi strutturati e orientati allo sviluppo di applicazioni gestionali/aziendali... contabilità - gestione delle produzione...

    Ritengo cmq che in questo forum ci siano dei ragazzi della nuova generazione (io ho 44 anni), in grado di portare avanti questo studio, ne cito alcuni e non me ne vogliano gli altri che dimentico.

    Keruoac Claudioweb Beke --- tre di cui ricordo interventi e di cui ho visto script che fanno pensare ad una ottima esperienza, anche Massimo (Tuono Rosso ) è preparatissimo... ma ce ne sono parecchi... lo stesso Simone (Rinzi).


  6. #6
    Esperto L'avatar di Rinzi
    Data Registrazione
    Feb 2005
    Località
    Roma
    Messaggi
    5,448
    l'idea è buona...

    mi candito per collaborare...

    avevo in mente in passato di svilupare uno spider in java e relative elaborazioni di valutazione delle pagine...ma una di quelle idee che ti prende la sera e poi ....

    con un gruppo però si può fare


  7. #7
    User Attivo L'avatar di kerouac3001
    Data Registrazione
    Apr 2005
    Località
    Roma (ma Palermitano sugnu)
    Messaggi
    1,524
    Io purtroppo conosco solo il php e faccio sempre tutto solo col php è un grande problema, perchè mi mancano le conoscenze su come interaggire tra vari linguaggi.

    Inoltre ultimamente sono sempre molto impegnato e non so se riuscirò a seguire tutto, ma cerco di dare una mano come possibile.

    Qualche giorno fa mi sono fatto una chiacchierata con Low su questo argomento e trovo molto interessante questo modo di imparare tecniche di posizionamento tramite lo studio degli algoritmi che regolano i motori di ricerca.

    Ho inoltre (come credo anche claudioweb) delle buone basi matematiche (mi sono appena licenziato dalla "prestigiosa" carica di studente universitario della facoltà di Matematica ) e posso esservi d'aiuto anche da quel punto di vista.

    Intanto chiediamoci esattamente che informazioni deve prelevare lo spider dalle singole pagine web..io direi che le informazioni di base sono semplicemente il testo e l'url della pagina, anche se certamente google preleva altri dati utili, ma noi partiamo dalla base.

    Un altro dato utile può essere il tempo di generazione della pagina.
    Inoltre sarebbe utile prelevare anche il file robots.txt e analizzarlo.

  8. #8
    Esperto L'avatar di beke
    Data Registrazione
    Mar 2005
    Località
    Firenze
    Messaggi
    1,316
    Citazione Originariamente Scritto da kerouac3001
    Intanto chiediamoci esattamente che informazioni deve prelevare lo spider dalle singole pagine web..io direi che le informazioni di base sono semplicemente il testo e l'url della pagina, anche se certamente google preleva altri dati utili, ma noi partiamo dalla base.
    Io preleverei e memorizzerei tutto il contenuto della pagina in un db, da questo poi vanno creati due altri database di vettori di termini, uno "diretto" ed uno "inverso".

    Quello inverso (chiedi un termine e vengono serviti i documenti che lo contengono) serve a identificare velocemente i documenti da ordinare in risposta ad una query.

    Quello diretto (chiedi un documento e viene restituito il vettore dei termini contenuti) serve a fare confronti per stabilirne il grado di similarità fra i documenti o fra questi e le query, le query espanse o dei vettori di argomento.
    http://www.posizionamento-web.com/da...ri-termini.asp

  9. #9
    Utente Premium L'avatar di KING_Hack
    Data Registrazione
    Mar 2005
    Località
    Aquileia
    Messaggi
    1,719
    Bella nuova scommessa per il forum GT
    Me la cavicchio poco poco col php e di programmazione in generale ne conosco solo dei concetti puramente teorici... e a graaandi linee anche un po sfumate.

    Vorrei far notare però l'esistenza del progetto ht://Dig - http://www.htdig.org/ che potrebbe essere un punto di riferimento per estrapolare del codice o capire come implementarne altro sul nuovo progetto GT.

    Magari sono andato completamente fuori strada consigliando sta cosa, ma mi sembrava giusto dirvela

  10. #10
    Esperto L'avatar di beke
    Data Registrazione
    Mar 2005
    Località
    Firenze
    Messaggi
    1,316
    Consiglio la lettura di questo documento che dà una buona vista d'insieme sul tipo di strutture di dati e di algoritmi con i quali avremo a che fare.

    http://www.di.unipi.it/~grossi/AIW/SurveyGulli.pdf

  11. #11
    Moderatore L'avatar di claudioweb
    Data Registrazione
    Jul 2005
    Località
    Salento
    Messaggi
    3,703
    La mia disponibilita' c'e', ahime' nei limiti di tempo dettati dai 10 esami che mi mancano per la laurea.

    Tuonorosso, vista la tesi, su questo argomento e' sicuramente uno dei piu' preparati nel forum.

    Mettiamoci un po' tutti alla prova

    Si avvicina la Festa della Mamma.

  12. #12
    L'avatar di LowLevel
    Data Registrazione
    Mar 2005
    Località
    Milano
    Messaggi
    1,542
    Se posso dare un consiglio: iniziate a progettare le parti del motore che possono sin dall'inizio aiutarvi ad estrapolare delle regole per posizionare meglio le pagine.

    Un piccolo motore che usa i term vector, il calcolo della similarità col coseno ed una semplice attribuzione di pesi con un generico tf*idf, sarebbe un buon punto di partenza.

    Il crawling può attendere, all'inizio i documenti da indicizzare magari glieli fate trovare in una directory o in un database.

  13. #13
    Utente Premium L'avatar di Tuonorosso
    Data Registrazione
    Mar 2005
    Località
    Lecco
    Messaggi
    1,997
    Ragazzi, mi spiace ma io non ho abbastanza tempo da dedicare al progetto vista la tesi, il mio lavoro (10 ore al giorno) e i miei siti da portare avanti.

    Di sicuro seguirò l'evolversi e se potrò darò una mano.

    In culo al lupo (o si dice in bocca alla balena? )

    Ciao ciao!

  14. #14
    L'avatar di Giorgiotave
    Data Registrazione
    Oct 2004
    Località
    Monasterace
    Messaggi
    40,156
    Visita il canale Youtube di Giorgiotave
    Citazione Originariamente Scritto da LowLevel
    Il crawling può attendere, all'inizio i documenti da indicizzare magari glieli fate trovare in una directory o in un database.
    Si, credo sia la soluzione migliore.

    Per database di documenti usiamo pure tutti i documenti di Gt.it, poi possiamo farci cosa ci pare. Lo mettiamo anche a disposizione degli utenti per vedere come si comportano.

    Citazione Originariamente Scritto da LowLevel
    Un piccolo motore che usa i term vector, il calcolo della similarità col coseno ed una semplice attribuzione di pesi con un generico tf*idf, sarebbe un buon punto di partenza.
    Premetto che devo studiare molto e sto già leggendo moltissimo, dobbiamo identificare delle zone dei documenti da dividere in più parti?

    La prima cosa da studiare non è come è melgio organizzare i dati nel nostro database?

    Citazione Originariamente Scritto da Mamilu
    Si parlava ad esempio in questi giorni di realizzare un qualcosa, un robottino da mettere sul ForumGT col quale fosse possibile dialogare, capace insomma di rispondere a query dirette degli utenti con il nostro FAQ-Glossario già esistente e debitamente sviluppato.
    Questo è un bellissimo progetto, il robotino semanticamente "intelligente".
    Con il Vector model non dovrebbe essere difficile da creare ed inoltre poi possiamo riempirlo di domande e immagazzinare i passi dell'utente per fornire risposte sempre migliori.

    Si, credo che questi due progetti ci possano aiutare a capire meglio i motori di ricerca.

    Che il nostro obiettivo è quello
    Giorgio Taverniti Blog. FastForward: su YouTube ogni Martedì!

    Tutta la SEO in 23 ore: 9 diversi moduli tematici, 34 lezioni, questo è il Videocorso SEO del 2017!


  15. #15
    User
    Data Registrazione
    Sep 2005
    Messaggi
    451
    Per fare un crawler che analizza i file di una directory o uno che li prende dal web dal punto di vista della programmazione i tempi sono gli stessi, quindi io partirei direttamente ad usare i socket !

  16. #16
    Esperto L'avatar di Rinzi
    Data Registrazione
    Feb 2005
    Località
    Roma
    Messaggi
    5,448
    Citazione Originariamente Scritto da Giorgiotave
    La prima cosa da studiare non è come è melgio organizzare i dati nel nostro database?
    la prima cosa è progettare un DB adeguato e preparare un minimo di analisi per giustificare/confermare le scelte della progettazione del DB

    l'analisi del progetto è fondamentale, partire in fretta o con il piede sbagliato moltiplica le fatiche di sviluppo successivamente

  17. #17
    Utente Premium L'avatar di Salatti.NET
    Data Registrazione
    Sep 2005
    Località
    Livorno
    Messaggi
    354
    Io stavo già facendo delle prove per conto mio con OpenWebSpider...qualche tempo fa poi ho smesso, ma ora riprendo più che volentieri...
    Stavo pensando di lanciarlo su GT e poi postare qui un dump del db (MySQL). Può essere utile come base su cui lavorare?
    Essendo OpenSource è anche modificabile a piacimento...
    Salatti.NET - Il mio Blog e i miei progetti

  18. #18
    Esperto
    Data Registrazione
    Mar 2005
    Località
    Genova
    Messaggi
    533
    mh...chi ha 5 minuti dovrebbe stilare una serie di regole antispam.
    questo permette di detrarre dal peso di una pagina il punteggio....

  19. #19
    User
    Data Registrazione
    Sep 2005
    Messaggi
    451
    Beh su quello non è difficile, io ho 1000 parametri da consigliare !

  20. #20
    Moderatore L'avatar di claudioweb
    Data Registrazione
    Jul 2005
    Località
    Salento
    Messaggi
    3,703
    Io come suggerito, ma era gia' quello che volevo fare, parto dalla fine

    Analisi del testo:

    - rimozioni dei termini non significativi confrontandoli con una lista:

    - rimozione dei suffissi o stemming: permette di risalire alla radice di una parola. Permettendo di analizzare in maniera più semplice, attribuendo un significato comune, molti termini ottenuti dalla stessa radice, ad esempio elimina la distinzione tra singolari e plurali.

    - consultazione di un database di sinonimi

    - individuazione dei termini significativi: la tecnica più usata e' quella basata sulla frequenza con cui una key compare.
    A tal proposito si indica con TF (term frequency) la frequenza di tali parole nel testo. Si stabilisce un numero massimo di volte che puo' essere ripetuta una key. Le key ripetute più volte rispetto a tale valore limite tendono ad assumere significati diversi.
    Con IDF si indica del raporto il numero tatale di documenti e il numero di documenti contenenti la key (espresso in logaritmo). I termini comuni a molti documenti hanno un IDF basso.

    - assegnazione di un peso a questi termini in base a dei criteri da stabilire.

    - rappresentazione delle informazioni mediate opportune corrispondenze
    ----------

    Ora ci poniamo il problema di confrontare una query di un utente e restituire un risultato valido.
    Cioe' la query deve essere rappresentata in maniera omogenea a quella usata per immagazinare le informazioni e confrontata con in dati disponibili.

    Definiamo alcuni concetti:
    Recall e' il rapporto tra il numero di documenti rilevanti individuati e il numero totale di quelli rilevanti effettivi.
    Precision e' il rapporto tra il numero di documenti rilevanti individuati e il numero totale di documente individuati.

    Un buon sistema di IR (detto anche IRS) deve massimizzare Recall e Precision.

    Ci sono diversi modi per effettuare il confronto tra la query e il documento e vederne il grado di similitudine:
    - Booleano
    - Fuzzy
    - Vettoriale
    - Cluster

    Nel modello spazio vettoriale sia la query che il
    documento sono rappresentati come vettori in uno
    spazio n-dimensionale:
    Di = (di1 di2 ... din)
    Qj = (q j1 qj2 ... qjn)

    dove dik e qjk: i valori del termine k nel
    documento Di e nella query Qj.
    I valori di un termine possono essere semplicemente
    0 o 1 per indicare la sua presenza/assenza nel
    documento/query
    Oppure possono rappresentare il peso del termine nel
    documento o la query.

    Ora si pone il problema di confrontare i due vettori.

    [alla prossima puntata... ]

    Si avvicina la Festa della Mamma.

  21. #21
    Utente Premium L'avatar di Salatti.NET
    Data Registrazione
    Sep 2005
    Località
    Livorno
    Messaggi
    354
    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.
    Salatti.NET - Il mio Blog e i miei progetti

  22. #22
    Esperto L'avatar di beke
    Data Registrazione
    Mar 2005
    Località
    Firenze
    Messaggi
    1,316
    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).

  23. #23
    Esperto
    Data Registrazione
    Mar 2005
    Località
    Genova
    Messaggi
    533
    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).

  24. #24
    Esperto L'avatar di beke
    Data Registrazione
    Mar 2005
    Località
    Firenze
    Messaggi
    1,316
    Citazione Originariamente Scritto da Stealth
    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.

    Citazione Originariamente Scritto da Stealth
    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.

  25. #25
    Banned
    Data Registrazione
    Dec 2004
    Località
    Sesto Calende (VA)
    Messaggi
    1,192

    !

    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...


  26. #26
    User
    Data Registrazione
    Sep 2005
    Messaggi
    451
    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..

  27. #27
    Esperto L'avatar di Rinzi
    Data Registrazione
    Feb 2005
    Località
    Roma
    Messaggi
    5,448
    indubbiamente ci sono una serie di proprietà (campi in tabella) da attribuire a un documento,

    valutiamo insieme

  28. #28
    Banned
    Data Registrazione
    Dec 2004
    Località
    Sesto Calende (VA)
    Messaggi
    1,192

    !

    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...


  29. #29
    User
    Data Registrazione
    Sep 2005
    Messaggi
    451
    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).

  30. #30
    Banned
    Data Registrazione
    Dec 2004
    Località
    Sesto Calende (VA)
    Messaggi
    1,192

    !

    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 è !


  31. #31
    User
    Data Registrazione
    Sep 2005
    Messaggi
    451
    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..

  32. #32
    Esperto
    Data Registrazione
    Mar 2005
    Località
    Genova
    Messaggi
    533
    ho trovato in rete questo documento:
    http://roquefort.di.unipi.it/~ferrax...e8_IU_2005.pdf

    sono diapositive riassuntive di ciò che noi dovremmo analizzare.

  33. #33
    User
    Data Registrazione
    Sep 2005
    Messaggi
    451
    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.

  34. #34
    Esperta L'avatar di Mamilu
    Data Registrazione
    Jan 2005
    Località
    Krabi Thailand - VE member
    Messaggi
    1,625
    Io comincerei a partire con calma, partendo dal progettare una struttura intelligente, espandibile, http://www.giorgiotave.it/wikigt/os/Versatile" title="Anticamente usato come sinonimo di girevole, che può ruotare.

    In senso figurato, instabile o incostante." target="_blank" class="gal">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; 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 ] 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.


  35. #35
    Moderatore L'avatar di claudioweb
    Data Registrazione
    Jul 2005
    Località
    Salento
    Messaggi
    3,703
    Citazione Originariamente Scritto da uMoR
    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 Snowball

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

    Si avvicina la Festa della Mamma.

  36. #36
    Esperto L'avatar di Rinzi
    Data Registrazione
    Feb 2005
    Località
    Roma
    Messaggi
    5,448
    Io comincerei a partire con calma, partendo dal progettare una struttura intelligente, espandibile, http://www.giorgiotave.it/wikigt/os/Versatile" title="Anticamente usato come sinonimo di girevole, che può ruotare.

    In senso figurato, instabile o incostante." target="_blank" class="gal">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

  37. #37
    Esperto
    Data Registrazione
    Mar 2005
    Località
    Genova
    Messaggi
    533
    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.

  38. #38
    User
    Data Registrazione
    Sep 2005
    Messaggi
    451
    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 !

  39. #39
    User L'avatar di resigua
    Data Registrazione
    Jul 2005
    Messaggi
    68
    mi piacerebbe partecipare ma non sono così esperto, buon lavoro!

    cmq avete anche voi gli stessi finanziamenti del Giappone?

    ok, me ne vado, buon natale!

  40. #40
    Esperto L'avatar di Rinzi
    Data Registrazione
    Feb 2005
    Località
    Roma
    Messaggi
    5,448
    Citazione Originariamente Scritto da resigua

    cmq avete anche voi gli stessi 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...

  41. #41
    Esperta L'avatar di Mamilu
    Data Registrazione
    Jan 2005
    Località
    Krabi Thailand - VE member
    Messaggi
    1,625
    vogliamo cercare di capire come funzionano i criteri di ranking

    poi chissà domani quali orizzonti vedremo...
    E' così

    Ma stranamente ho come l'impressione che a qualcuno non piaccia che la parte più attiva del ForumGT possa vedere orizzonti più ampi...


    Davvero ci preferite a parlar di streganze e macumbe?

  42. #42
    L'avatar di Giorgiotave
    Data Registrazione
    Oct 2004
    Località
    Monasterace
    Messaggi
    40,156
    Visita il canale Youtube di Giorgiotave
    Per gli insulti alla mia persona e nei confronti della mia comunità continuate pure in questo topic

    Prego invece di continuare qui la discussione sul motore

    Abbiamo stabilito una commissione che svilupperà il motore.
    Abbiamo stabilito un capo-progetto
    Abbiamo stabilito un'interlocutore che informerà e spiegherà al forum tutti i passi per rendere questa esperienza del Forum e studiare insieme tutti gli aspetti che i Geniacci devono affrontare


    Giorgio Taverniti Blog. FastForward: su YouTube ogni Martedì!

    Tutta la SEO in 23 ore: 9 diversi moduli tematici, 34 lezioni, questo è il Videocorso SEO del 2017!


  43. #43
    Esperta L'avatar di Fuffissima
    Data Registrazione
    Oct 2005
    Messaggi
    923
    Stamattina girando per blog ho trovato questo, magari può essere utile
    I'm Nothing™ - -> NON CLICCARE <-

  44. #44
    User
    Data Registrazione
    Sep 2005
    Messaggi
    451
    io vi consiglio di dare un'occhiata a
    "Perlfect Search"

    è un motore di ricerca in perl, potrebbe tornare utile per capire come strutturare il tutto

  45. #45
    Esperto L'avatar di agoago
    Data Registrazione
    Apr 2005
    Messaggi
    481
    Fare un motore di ricerca e' semplicissimo, potrebbe avere anche 2 o 3 algoritmi di sort e via.

    Fare un buon motore di ricerca e' difficilissimo, cosi' ad occhio mi vengono in mente almeno un centinaio di algoritmi diversi da far interagire tra di loro.

    Fare un grande-vasto motore di ricerca e' impossibile se non si dispone di risorse adeguate, per capirlo basta provare ad indicizzare e catalogare un milione di pagine, e poi dopo, provare a pensare che invece di qualche milione si parla di miliardi di pagine.

  46. #46
    Utente Premium L'avatar di Salatti.NET
    Data Registrazione
    Sep 2005
    Località
    Livorno
    Messaggi
    354
    Indicizzare 1000000 di pagine mi sembra vada più che bene per i nostri studi...
    O no?!?
    Salatti.NET - Il mio Blog e i miei progetti

  47. #47
    Esperto L'avatar di Andrez
    Data Registrazione
    Mar 2005
    Località
    Sull'isola del giorno prima
    Messaggi
    8,249
    Fare un motore di ricerca e' semplicissimo, potrebbe avere anche 2 o 3 algoritmi di sort e via.
    Spiegare come è stato fatto ai forumisti rendendoli partecipi del suo funzionamento ed innalzandone il livello conoscitivo sarà interessantissimo

  48. #48
    Esperta L'avatar di Mamilu
    Data Registrazione
    Jan 2005
    Località
    Krabi Thailand - VE member
    Messaggi
    1,625
    Eccoci qui.

    Cominciamo per ora l'approfondimento del IR in questo thread, per evitare dispersioni, poi appena sarà più sviluppato ne creeremo uno apposito.

    Come abbiamo già più volte scritto, il fine è quello di alzare il più possibile il livello della parte attiva di questo ForumGT, ricordando che il livello del Forum stesso non è dato dalle domande dei forumisti ma dalle risposte.

    Stà a noi ora fare il possibile affinchè si cerchi di rendere accessibile a quella parte il funzionamento dei MDR.

    __________________________________________________

    Modello Vettoriale di Reperimento Informazioni
    Il Modello Vettoriale di Reperimento delle Informazioni è un potente strumento per la realizzazione del Motore di ricerca.

    Questa discussione cerca di fornire un'introduzione ai concetti matematici richiesti per capire il vector model ed intende mostrare l'applicazione di quei concetti nello sviluppo del modello stesso.

    L'aritmetica con cui "funzionano" i computers è a base 2
    Le informazioni (numeri, parole ecc .) che vengono elaborate o memorizzate in un computer sono codificate come sequenze di bit.
    Un bit (binary digit) è la più piccola unità di informazione e può prendere i valori : 0 oppure 1 .

    Un byte è una sequenza di 2 ³ = 8 bit . Per esempio: 00110101 è il possibile contenuto di un byte.

    Il Kb (chilobyte) corrisponde a bytes, cioè 1024 bytes.
    Il Mb (megabyte) corrisponde a Kb .
    Il Gb (gigabyte) corrisponde a Mb .

    Logaritmi: log(N)
    Il logaritmo è la prima funzione matematica che dobbiamo capire perché il Modello Vettoriale ha equazioni logaritmiche (N/ni).
    Se non conosciamo cos’è un logaritmo non possiamo capire il concetto del Modello Vettoriale.

    In primo luogo, che cosa è una funzione matematica? Nella sua forma più semplice, una funzione è un calcolo che prende un numero come input, effettua un calcolo su quell'input e restituisce il valore del calcolo.
    Consideriamo la funzione quadrata, "sq".
    - sq(2) restituisce 4.
    - sq(9) restituisce 81.
    Così il sq(N) significa restituire il valore di N * N.

    Seguendo questa linea di pensiero, il log (2) significa restituire il logaritmo del numero 2.
    Il log (N) significa restituire il valore del logaritmo della variabile N, qualunque valore N possa avere.

    Conosciamo ora come quadrare un numero, ma che cosa è la funzione di logaritmo?
    Come è calcolato?

    Si chiama logaritmo in base a di b l'unica soluzione dell'equazione esponenziale elementare.

    Supponiamo di dover risolvere un'equazione esponenziale ax=b :
    :
    • se a e b si scrivono come potenze (razionali) della stessa base, si eguagliano gli esponenti :

    2x =8 --> 2x = 23 --> x=3

    • se a e b non si scrivono come potenze (razionali) della stessa base, le soluzioni si scrivono sotto forma di logaritmi : 2x = 8 --> x=log2 8


    Il logaritmo risulta essere l'operazione inversa dell'esponenziale.

    Senza studiare troppo il senso del termine, possiamo giocare un pò con Google e vedere le risposte che restituisce per la funzione di logaritmo. Google ha un calcolatore incorporato che utilizziamo per questa ricerca.
    Digitiamo "log 0,5" (senza le virgolette) in Google e otteniamo -0,301029996.
    Proviamo con "log 95" ed otteniamo 1,97772361.
    Possiamo tentarne altri; qual è il log 6666?

    Questi numeri a caso ci danno un’idea del sistema, ma se realizziamo una tabella organizzata di numeri, questa ci rivela la vera traccia:


    N -->log ( N )
    1 --> 0
    10 --> 1
    100 --> 2
    1000 --> 3
    10000 --> 4


    Base 10 alla potenza del log (N)=N.
    Quindi, se abbiamo un numero (10) e prendiamo il suo logaritmo e innalziamo 10 a quella potenza, otteniamo di nuovo il nostro numero originale:
    - 10 alla prima =10
    - 10 alla seconda = 100
    - 10 alla terza = 1.000
    - 10 alla quarta = 10.000

    La tabella indica che la funzione di logaritmo è utile nei numeri compressi molto grandi fino ai formati maneggevoli; questo è un calcolo di riduzione in "ordine di grandezza”.
    Inoltre, notiamo che il log(1) è uguale a zero.


    Ripetiamo facendo un altro esempio.


    la potenza abbiamo visto è il prodotto di fattori uguali alla base tante volte quanto indicato dall'esponente.
    Per esempio:

    5 ³ = 125

    La potenza ammette due tipi diversi di operazione inversa : la radice ed il logaritmo.

    Radici.
    Consideriamo la potenza 5 ³ = 125 . Possiamo allora definire l' "operazione" di radice a indice 3 (o radice cubica) :




    Logaritmi.
    Esiste un altro modo di definire l'operazione inversa dell'elevamento a potenza : il logaritmo.

    Consideriamo ancora la potenza 5 ³ = 125 . Chiediamoci : qual'è il numero per cui elevare la base 5 per ottenere 125 ? Ovviamente questo numero è 3 .

    Abbiamo così definito il concetto di logaritmo. Scriviamo allora :


    dove il numero 5 scritto in basso a destra del simbolo log si chiama base ed il numero di cui si fa il logaritmo si chiama argomento.

    La definizione di logaritmo è allora :

    Il logaritmo di un numero secondo una certa base è quel numero per cui si deve elevare quella base per ottenere il numero dato.

    La caratteristica più interessante della funzione di logaritmo è che i log dei valori fra 0 e 1 sono numeri negativi.
    Per esempio, log (0,5) = -0,301029996.
    Molte volte vedremo -log(x) in un'equazione.

    Se il valore di quel segno è negativo, ora sappiamo dunque che la X è una variabile che varia da zero ad uno.

    Così ora se vediamo il log (N) in un'equazione, abbiamo un’idea di che cosa significhi e con esso possiamo valutare alcuni valori.

    Un logaritmo misura quindi l'ordine di grandezza di un numero N.
    E’ solo un più piccolo numero che sostituisce quello originale.

    E nel caso speciale dove la N è uno, allora il log(N) sarà zero.


    __________________________________________________


    Un ardito Gruppo di Geniacci ha già iniziato a tramare per realizzare un semplice motore di ricerca.

    Passo passo vi terrò informati sugli sviluppi, cercando di spiegare cosa hanno realizzato e perchè i nostri eroi.

    Oggi abbiamo visto i logaritmi.

    La prossima puntata studieremo i coseni.

  49. #49
    Esperta L'avatar di Mamilu
    Data Registrazione
    Jan 2005
    Località
    Krabi Thailand - VE member
    Messaggi
    1,625
    Il coseno
    Il coseno è una funzione trigonometrica con alcune proprietà che sono molto utili nell'analizzare i vettori. [vector model]

    Stiamo raffigurando i documenti della nostra raccolta del nostro motore come vettori.
    Inoltre raffiguriamo la query dell'utente come vettore.
    Se potessimo confrontare in qualche modo il vettore di domanda ai vettori di ciascuno dei documenti, potremmo dire quale dei documenti sia "il più vicino" alla domanda.
    Ciò ci darebbe una classifica per la nostra ricerca.

    Dunque, come classificare la prossimità dei vettori?

    Una via da considerare (un pò complicata) è misurare l'angolo fra loro.
    Se l'angolo è molto piccolo, significa che i due vettori sono abbastanza vicini. Se l'angolo è grande, allora non lo sono.
    Facile.

    Tuttavia, se desideriamo usare la matematica occupandoci di angoli, otteniamo numeri-gradi bizzarri.
    Gli angoli non sono difficili da manipolare se sono predisposti per variare in modo regolare ... come fra uno e zero per esempio.

    0 potrebbe significare "completamente differente" e 1 potrebbe significare "identico" con una gamma completa di valori (somiglianze) fra 0 e 1.

    Ora, se facciamo una tabella di alcuni angoli e dei loro coseni, possiamo vedere come il coseno semplifica gli angoli:


    Angolo A --> Coseno (A)
    0° --> 1
    30° --> .86
    45° --> .70
    60° --> .5
    90° --> 0


    La tabella indica che quando l'angolo fra due vettori è molto piccolo, il coseno è prossimo a 1.
    Effettivamente, se i due vettori combinano perfettamente, il coseno è uguale a 1.
    Nella nostra applicazione IR, quello sarebbe una accostazione perfetta fra il vettore di domanda e un vettore del documento.

    Mentre l'angolo aumenta, il coseno (il grado di somiglianza fra i vettori) diminuisce fino a che non raggiunge zero quando i vettori sono a 90 gradi.
    Guardiamo l’immagine:

    In un sistema organizzato in cui ogni coordinata ha avuto la sua dimensione, quella potrebbe essere una misura approssimativa di somiglianza. Tuttavia per il nostro modello di vettore desideriamo stimare diverse coordinate (termini di ricerca) anche usando sistemi diversi; dobbiamo quindi rendere il sistema un po’ più complicato
    E lo faremo presto!

    Per ora, vediamo che il coseno è una funzione che misura un rapporto fra due vettori.

    Il coseno dell'angolo fra loro è prossimo a UNO se i vettori convergono ed è prossimo a ZERO se l’angolo fra i vettori si avvicina a novanta gradi.


    __________________________________________________ _______

    Abbiamo già visto che usando la funzione matematica dei logaritmi log (N) possiamo suddividere valori fra 0 e 1;
    - log (1) = 0
    - -log(x) [i log dei valori fra 0 e 1 sono numeri negativi, per esempio, log (0,5) = -0,301029996. ] Se il valore di quel segno è negativo, sappiamo che la X è una variabile che varia da zero ad uno.
    Nel caso speciale log (N) dove il valore (N) è uno, allora il log(N) sarà zero.
    Sappiamo ora anche che con l'uso dei coseni possiamo misurare un rapporto fra due vettori; il coseno dell'angolo fra loro è:
    - prossimo a UNO se i vettori convergono.

    - prossimo a ZERO se l’angolo fra i vettori si avvicina a novanta gradi.


    La prossima puntata studieremo la Sommatoria



  50. #50
    User
    Data Registrazione
    Oct 2005
    Messaggi
    199
    Ciao a tutti ragazzi, progetto davvero interessante

    mi sarebbe piaciuto potermi unire al gruppo, ma non posso farne neanche richiesta perchè sono troppo impegnato.

    preparare il meccanismo base credo sia la cosa più complicata, ma nessuno si è posto il problema di come individuare il testo illeggibile

    Non sottovalutate questo aspetto, ci sono dichiarazioni nei fogli di stile complicatissime

    es: UL#categoria_destra LI A.gruppo

    associare del testo a queste dichiarazioni è davvero difficle. Per non parlere dei livelli a diversi z-index e/o posizionati fuori dalla visibilità.

    Insomma, sebbene per ora non sia una cosa fondamentale, è bene che qualcuno ci inizi a lavorare perchè non mi sembra una cosa semplice.


    In bocca al lupo a tutti!

+ Rispondi alla Discussione
Pagina 1 di 2 12 UltimaUltima

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.