• Moderatore

    @Andrea77 said:

    Ciao Paolo,

    ho letto molti tuoi post su questo forum e ti volevo fare i complimenti per la qualità delle risposte e la tua simpatia...
    detto questo... volevo sapere ...ma il programma che hai fatto tu (**Clusterizer: classificazione automatica on-line di keywords e stringhe di testo) **non è una sorta di Intelligenza Artificiale, cioè segue un comportamento simile a quello che farebbe un essere umano posto davanti a quel problema...

    cosa ne dici?

    ciao:D

    Ciao Andrea,
    Clusterizer è un'applicazione web che implementa un algoritmo (clustering k-means) utilizzato in ambito IA (ma non solo...).
    Clusterizer classifica un insieme di keywords e/o keyphrases in categorie autodeterminate sulla base delle loro "distanza" in uno spazio vettoriale n-dimensionale. Tutte le frasi che sono vicine fra loro costituiscono un cluster (cioè una categoria, un gruppo ben definito).
    Quando sono vicine due o più frasi? Inizialmente quando condividono qualche termine in comune, successivamente (iterativamente parlando) quando condividono la "semantica".
    In questo senso "è una sorta di Intelligenza artificiale" ma l'IA non è solo questo ma molto e molto altro ancora...
    L'algoritmo di clustering k-means non è il solo atto a questo scopo, ne esistono altri che, per esempio, analizzano la probabilità che una data keywords appartenga ad un cluster. Questi sono più raffinati in quanto è possibile che una stessa frase appartenga a più cluster con probabilità differenti. con K-means invece ciascuna frase può appartenere ad un solo cluster.

    PS: Grazie per i complimenti 🙂


  • User

    @paocavo said:

    Ciao Andrea,
    Clusterizer è un'applicazione web che implementa un algoritmo (clustering k-means) utilizzato in ambito IA (ma non solo...).
    Clusterizer classifica un insieme di keywords e/o keyphrases in categorie autodeterminate sulla base delle loro "distanza" in uno spazio vettoriale n-dimensionale. Tutte le frasi che sono vicine fra loro costituiscono un cluster (cioè una categoria, un gruppo ben definito).
    Quando sono vicine due o più frasi? Inizialmente quando condividono qualche termine in comune, successivamente (iterativamente parlando) quando condividono la "semantica".
    In questo senso "è una sorta di Intelligenza artificiale" ma l'IA non è solo questo ma molto e molto altro ancora...
    L'algoritmo di clustering k-means non è il solo atto a questo scopo, ne esistono altri che, per esempio, analizzano la probabilità che una data keywords appartenga ad un cluster. Questi sono più raffinati in quanto è possibile che una stessa frase appartenga a più cluster con probabilità differenti. con K-means invece ciascuna frase può appartenere ad un solo cluster.

    PS: Grazie per i complimenti 🙂

    ciao Paolo scusa per il ritardo con cui rispondo,

    allora quando dici:

    • In questo senso "è una sorta di Intelligenza artificiale" ma l'IA non è solo questo ma molto e molto altro ancora...*

    il molto e molto altro ancora cosa sarebbe? (ovviamente qualche esempio :D)
    inoltre... i MDR come Google e Yahoo e altri basano sulla popolarità di un sito o pagina, ma la popolarità di un sito è sempre sinonimo di qualità?
    non potrebbe essere che è stato progettato meglio a livello di web marketing e toglie spazio a chi invece in condizioni normali sarebbe nei primi 10 risultati e quindi visibile ai navigatori (in quanto dal 10 in poi praticamente è come se non esistesse)?

    tu cosa ne pensi?

    Ciao:D


  • Moderatore

    @Andrea77 said:

    ciao Paolo scusa per il ritardo con cui rispondo,

    allora quando dici:
    In questo senso "è una sorta di Intelligenza artificiale" ma l'IA non è solo questo ma molto e molto altro ancora...
    il molto e molto altro ancora cosa sarebbe? (ovviamente qualche esempio :D)
    **
    **
    L?IA è una disciplina che studia i fondamenti teorici, le metodologie e le tecniche che permettono di concepire, progettare, realizzare, sperimentare ed utilizzare sistemi artificiali sia simulati via software che implementati in hardware con gli obiettivi di ottenere prestazioni ritenute caratteristiche dell?intelligenza e di fornire modelli computazionali di processi cognitivi.
    Fonte: http://ia.di.uniba.it/

    ***Applicazioni principali
    *Attualmente questi sono i principali algoritmi dell'intelligenza artificiale:
    *Rappresentazione della conoscenza
    Apprendimento automatico (Machine Learning)
    Apprendimento non supervisionato
    Clustering
    Regole di associazione
    Apprendimento supervisionato
    Albero di decisione
    Regole di decisione
    Sistemi Esperti
    Apprendimento per rinforzo
    Reti neurali
    Algoritmi genetici o evolutivi
    Sistemi a classificatori
    Programmazione Logica Induttiva (ILP)
    Visual retrieval
    Visione artificiale
    Problema di soddisfacimento di vincoli *
    Fonte: http://it.wikipedia.org/wiki/Intelligenza_artificiale#Applicazioni_principali
    **
    *> *
    Inoltre... i MDR come Google e Yahoo e altri basano sulla popolarità di un sito o pagina, ma la popolarità di un sito è sempre sinonimo di qualità?

    La popolarità di un sito è solo uno di tanti e tanti fattori considerati dai MDR.
    Anche se è uno di quelli preponderanti (perche un sito autorevole dovrebbe linkare un sito "fasullo"?)

    non potrebbe essere che è stato progettato meglio a livello di web marketing e toglie spazio a chi invece in condizioni normali sarebbe nei primi 10 risultati e quindi visibile ai navigatori (in quanto dal 10 in poi praticamente è come se non esistesse)?
    tu cosa ne pensi?

    Bella domanda!
    Per rispondere si potrebbe scrivere un libro (e forse tu lo stai già facendo... no? tesi? 😉 )
    Adesso vado a cenare, a presto...

    :ciauz:


  • User Attivo

    I motori di ricerca non hanno bisogno dell'intelligenza artificiale. Il lavoro di un motore è quello di presentare documenti pertinenti ad una query, ma il grandissimo problema è che l'utente digita query troppo vaghe come per esempio "ristoranti". E il motore capisce che la query è troppo vaga, quindi è costretto ad utilizzare espansione delle query ed altri sistemi per presentare risultati più pertinenti.

    Analizzando le ricerche di un singolo utente può verificare meglio i gusti e quindi presentare documenti più pertinenti. Per esempio non è difficile capire di dov'è un utente in base alle ricerche che fa, pertanto se io digito la query "ristoranti" il motore di ricerca del futuro espanderà la query all'area geografica di mio interesse e allora mi farà vedere i risultati di: "ristoranti roma".

    Questo è un esempio stupido, ma spero sia chiaro per individuare il reale problema a cui devono trovare soluzione i motori.


  • User Attivo

    "non potrebbe essere che è stato progettato meglio a livello di web marketing e toglie spazio a chi invece in condizioni normali sarebbe nei primi 10 risultati e quindi visibile ai navigatori (in quanto dal 10 in poi praticamente è come se non esistesse)?"

    Il posizionamento è una conseguenza di una strategia, non un fine. Pertanto è ovvio che un motore premia chi studia un sito dal punto di vista di una strategia più ampia, uno spammer farebbe mai web marketing ? No, prende 1000 siti mette su del testo e spera in dio di non essere bannato.

    In termini pratici prendi una query come mutui, difficilmente un motore premierebbe il sito di peppino sui mutui, più facile che premi chi ci ha studiato per molteplici motivi: primo di tutto perchè è più probabile che un sito studiato dal punto di vista del marketing rispetti i desideri dell'utente, leggi risultati pertinenti, leggi qualità migliori nei risultati di ricerca, leggi più gente userà il mio motore perchè presenta dei buoni risultati.


  • User Attivo

    Ma allora i motori di ricerca attualmente fanno uso di sistemi dotati di Intelligenza Artificiale, sì o no?


  • User Attivo

    Nessuno può rispondere a questa domanda, ma a mio parere no.


  • Moderatore

    😮 ...ehm, in realtà uno degli autori del libro più importante sull'argomento "Intelligenza Artificiale: un approccio moderno" (2 volumi) è Peter Norvig che, guarda caso: *is currently the Director of Research (formerly Director of Search Quality) at *Google Inc](http://en.wikipedia.org/wiki/Google)

    😉


  • User Attivo

    Rimango del mio parere 😛


  • User Attivo

    uMoR quello che dici, l'esempio (e le considerazioni) del ristorante o dei mutui e' giustissimo, ma non e' in contrasto con l'affermazione che i motori usino intelligenza artificiale.

    Anzi, a maggior ragione, per risolvere i problemi che citi dovrammo migliorare-implementare ulteriormente algoritmi "estermi", magari legati piu' agli utenti e meno al lavoro dei wm.

    Ma girala come vuoi sempre di intelligenza artificiale (debole) si tratta.


    La cosa simpatica e' l'idea che normalmente ha la "gente comune" dell'intelligenza artificiale. La maggior parte dei non addetti ai lavori crede che l'intelligenza artificiale in informatica sia cosa da pochi ed espertissimi, cosa degna di reverenziale rispetto sia per la materia che per chi la tratta.

    Quando poi gli spieghi che per fare un buon sito totalmente artificiale ci vuole tanta ricerca ed intelligenza artificiale debole come quella necessaria a creare da 0 un motorino di ricerca discreto, ecco che allora si ricredono.

    Si ricredono e vedono l'ai per quello che realmente e', un insieme piu' o meno semplice di regole che interagendo tra di loro simulano-riproducono schemi decisonali funzionali all'uomo.

    Tutto qui, a ben vedere niente di cosi' complicato.
    Se metto sulla mia auto un rilevatore di distanza e gli dico di azionarmi l'apri cancello quando sono distante meno di 5 metri e vado a meno di 20 all'ora (ma solo se lo trova chiuso), ecco che parliamo di intelligenza artificiale.

    Sara' sicuramente artificiale, ma in questo caso di intelligente ci vedo poco...


    Intelligente invece e' un sistema di estrapolazione automatizzato delle keyphrase, come il programma Clusterizer di Paolo.
    Tuttavia i programmi intelligenti non servono a nulla se non si e' poi cosi' intelligenti da usarli quotidianamente.

    Sistemi come Clusterizer o Kea (che io ora uso per sbrigarmi con un modulo mio basato sull'analisi circa di un milione di documenti) sono eccezionali per indirizzare un wm con che keylink lincare i propri documenti o le pagine altrui.
    Oppure per mettere le key salienti di una pagina nel titolo della stessa o nella sua description. Per non parlare dei tag di un blog etc...

    Un semplice esempio.

    Sappiamo benissimo che i motori "aggiungono-attribuiscono" ad un documento le key usate nei link per lincarlo.

    E' una tecnica per i motori cosi' normale e "di peso" che a volte e' possibile travare in cima alle serp addirittura dei documenti che non contengono la keyword usata per la query di quella serp, e questo solo perche' quella keyword e' assegnata al documento dalle keylink.

    Ora ipotizziamo che un wm voglia fuorviare i motori per danneggiare un concorrente, e decida di lincare una pagina del concorrente con dei link che contengono come keylink dei termini incongruenti-distanti-assurdi rispetto al contenuto della pagina concorrente lincata.

    Il wm di cui sopra, credendosi furbo ragiona: se io linco la pagina concorrente che parla di "mutui" con la key "bollito" il motore attribuira' un po' di bollito anche alla pagina dei mutui e di certo questo non l'aiutera'.

    Questo forse valeva qualche anno fa, prima che i motori per "difendersi" da queste nefandezze implementarono un po' di quell'intelligenza artificiale usata nei sistemi di "keyphrase indexing" (come quello di Paolo) per stabilire con buon margine che la pagina lincata con bollito invece parla di mutui.

    Conseguenza?

    Di conseguenza il wm furbo oggi viene penalizzato pesantemente.
    Il motore infatti ragiona: se questo wm non e' capace neanche di lincare correttamente un altro documento, come posso ritenere (io motore) che quel wm sia ingrado di produrre documenti suoi degni di nota-decenti?

    --

    Veniamo al dunque.

    Quante volte oggi un wm linca una pagina sua o di un collega senza valutare con attenzione la keylink usata?

    E come essere aiutati-indirizzati affinche' una keylink sia veramente valida?

    Appunto con sistemi-tecniche di intelligenza artificiale.

    Pertanto o li usi quotidinamente o ti leggi ogni volta tutto il documento e poi ci ragioni con attenzione.

    Se per sbrigarti usi-copi un pezzo del titolo od il nome della pagina rischi piccole penalizzazioni, il motore penalizza chi pretende di consigliare un utente dove andare senza neanche sbattersi a riassumerne di suo il contenuto e per sbrigarsi copia-usa ovvieta'.

    Per questo ed altri motivi domandiamoci non solo se i motori utlizzano l'intelligenza artificiale, ma se l'utilizzano anche i wm.


  • User Attivo

    Molto interessante, fino a poco tempo fa non sapevo nulla di questo argomento.

    Posso sapere cosa sono più precisamente questi clusterizer, a cosa servono e dove si trovano?


  • Moderatore

    @agoago said:

    ...
    Intelligente invece e' un sistema di estrapolazione automatizzato delle keyphrase, come il programma Clustezer di Paolo.

    Clustezer:
    E' una applicazione web che permette la classificazione automatica di keywords e keyprhases in categorie auto-determinate</I>. Utilizza l'algoritmo di clustering K-means ed, in termini di IA, è un esempio di apprendimento non-supervisionato.
    Disponibile, previa registrazione gratuita, su www.nelsenso.net

    Se per sbrigarti usi-copi un pezzo del titolo od il nome della pagina rischi piccole penalizzazioni, il motore penalizza chi pretende di consigliare un utente dove andare senza neanche sbattersi a riassumerne di suo il contenuto e per sbrigarsi copia-usa ovvieta'.
    Per questo ed altri motivi domandiamoci non solo se i motori utlizzano l'intelligenza artificiale, ma se l'utilizzano anche i wm.

    Summazer:
    Summazer riassume automaticamente un testo estrapolando le frasi con più elevata rilevanza semantica. Si basa sul principio di reciproco rinforzo fra termini e frasi. Anche questo tool è disponibile sul suddetto sito.

    Grazie Ago 😉


  • User Attivo

    Grazie, ce ne sono anche altri da far girare in locale o da scaricare?


  • User Attivo

    "Anzi, a maggior ragione, per risolvere i problemi che citi dovrammo migliorare-implementare ulteriormente algoritmi "estermi", magari legati piu' agli utenti e meno al lavoro dei wm."

    Per me è statistica, non intelligenza artificiale!


  • Moderatore

    @agoago said:

    Sistemi come Clusterizer o Kea...

    Ciao Ago 🙂 ,
    puoi fornirci maggiori info su Kea?

    :ciauz:

    [edit]
    ..ops, eccolo (non lo conoscevo). Thanks
    [/edit]


  • User Attivo

    Kea e' un progetto pubblico e libero (come i sorgenti) dell'universita' di Waikato. Kea e Weka sono opera del dott. F. Eibe con l'aiuto per la parte di indicizzazione delle keyphrase di una sua studentessa che ha ricevuto la borsa di studio da... Google 🙂

    http://www.nzdl.org/Kea/

    Ho integrato Kea in un mio progetto piu' ampio (del quale parlero' in modo approfondito questa estate), ho creato un mio modello basato sull'analisi dei testi di tutta Wikipedia, e lo uso per decidere con che keylink lincare le pagine interne.

    Ho anche ampliato l'elenco delle stopkey originarie di Kea, ma premetto che su windows ho seri problemi di memoria in quanto java non mi vede-usa oltre 1,5 giga di ram.

    Purtroppo il problema dei limiti "hardware", il problema dei tempi di lettura ed analisi dei testi, sono il vero dramma in questo genere di studi-lavori.


    Faccio un esempio banale.
    Se per analizzare-valutare 1 mega di testo ci si impiegasse 1 secondo, per un testo da 10 mega ci potrebbe volere 1 minuto, 100 mega un ora... immaginiamo processare un tera di materiale!

    Per capirci, si pensi solo alle catene di Marcov.
    Un conto se devo scegliere per procedere tra 5 parole, un conto tra 60.000 potabili.
    Prendo a caso o analizzo quale siano le migliori tra quelle 60.000?
    Ma le migliori sono quelle che hanno maggior frequenza (rispetto al testo precedente) o quelle che hanno un senso logico rispetto al pezzo di testo?

    Se avessi:

    casa rossa

    potrei scegliere poi:

    bandiera

    questo se mi basassi solo su rossa come parola da analizzare per decidere come proseguire, ma se lavorassi su "casa rossa" invece che solo su "rossa" non sceglierei bandiera.

    Ma anche 2 parole possono non bastare, allora diciamo che lavoriamo su 4.
    Ecco che allora prendo:

    la bella casa rossa

    e vedo cosa c'e' normalmente dopo, potrei dover scegliere tra:

    affittasi
    ,
    e
    nel
    bruciata
    etc

    ma siamo da capo.

    Anche se nel 90% dei casi "affittasi" seguisse "la bella casa rossa" non avrebbe senso privilegiarla, perche' se la frase fosse lunga potrei preferire la "," se la frase parla di pompieri allora seglierei "bruciata" e via discorrendo.

    Per capire di cosa parla la frase dovro' tenere conto del significato di ogni parola, dei sinonimi, dovro' contare aggettivi, congiunzioni, nomi (e quanto altro) per sapere se dopo "la bella casa rossa" sia meglio mettere un aggettivo, un verbo, un articolo o magari chiudere la frase con un punto.
    Se un verbo prima era al passato dovro' privilegiare quel tempo...

    Diventa dura frase per frase, immaginiamoci per un documento nel suo complesso.

    Per questi motivi purtoppo, anche i migliori programmi disponibili sul web, spesso (praticamente sempre) possono essere utilizzati o a fini di studio o per analisi magari profondissime ma su piccole porzioni di testo.

    In caso di grossi volumi ecco che bisogna spezzare i corpus, dividerli in 100 modi, per grammatica, per alfabeto, per peso, per logica, per tema, per sinonimi, per lunghezza frasi, per numero parole, per lingue, per unicode, per anzianita', (che me ne faccio a fini pratici di un corpus basato sulla Bibbia?) etc etc.

    E cosi' i giga diventono tera...

    Poi riprovi il tutto nuovamente ma ottieni le solite risposte: out of memory, out of patience, out of your time life limit... da piangere.


  • Moderatore

    @agoago said:

    In caso di grossi volumi ecco che bisogna spezzare i corpus, dividerli in 100 modi, per grammatica, per alfabeto, per peso, per logica, per tema, per sinonimi, per lunghezza frasi, per numero parole, per lingue, per unicode, per anzianita', (che me ne faccio a fini pratici di un corpus basato sulla Bibbia?) etc etc.

    E cosi' i giga diventono tera...

    Poi riprovi il tutto nuovamente ma ottieni le solite risposte: out of memory, out of patience, out of your time life limit... da piangere.

    E già... questo è un tipico problema in cui si dovrebbero utilizzare applicazioni distribuite in ambito parallelo o "parallel computing"

    :ciauz:


  • User

    @paocavo said:

    L?IA è una disciplina che studia i fondamenti teorici, le metodologie e le tecniche che permettono di concepire, progettare, realizzare, sperimentare ed utilizzare sistemi artificiali sia simulati via software che implementati in hardware con gli obiettivi di ottenere prestazioni ritenute caratteristiche dell?intelligenza e di fornire modelli computazionali di processi cognitivi.
    Fonte: http://ia.di.uniba.it/

    ***Applicazioni principali
    *Attualmente questi sono i principali algoritmi dell'intelligenza artificiale:
    *Rappresentazione della conoscenza
    Apprendimento automatico (Machine Learning)
    Apprendimento non supervisionato
    Clustering
    Regole di associazione
    Apprendimento supervisionato
    Albero di decisione
    Regole di decisione
    Sistemi Esperti
    Apprendimento per rinforzo
    Reti neurali
    Algoritmi genetici o evolutivi
    Sistemi a classificatori
    Programmazione Logica Induttiva (ILP)
    Visual retrieval
    Visione artificiale
    Problema di soddisfacimento di vincoli *
    Fonte: http://it.wikipedia.org/wiki/Intelligenza_artificiale#Applicazioni_principali

    La popolarità di un sito è solo uno di tanti e tanti fattori considerati dai MDR.
    Anche se è uno di quelli preponderanti (perche un sito autorevole dovrebbe linkare un sito "fasullo"?)

    Bella domanda!
    Per rispondere si potrebbe scrivere un libro (e forse tu lo stai già facendo... no? tesi? 😉 )
    Adesso vado a cenare, a presto...

    :ciauz:

    Ciao Paolo, scusa il ritardo ma non avevo visto la tua risposta...
    Non sto scrivendo una tesi perche sono iscritto a Fisica (anche se fuori corso:D) comunque è un argomento di grande interesse e sto creando una piccola azienda che vorrebbe creare un suo "motore personale" rivolto sopratutto alle aziende. Ho lavorato nel campo del web marketing per 1 anno e ho verificato che l'unica cosa che funziona bene come ritorno degli investimenti è proprio la pubblicità sui motori di ricerca, sia come vendite che come immagine del marchio. Quindi ho pensato di creare un motore personale che includa algoritmi di AI per fare meglio il proprio lavoro. L'AI(forse per i Film) è vista come qualcosa di irraggiungibile...però il tuo algoritmo è già una prova che qualcosa si può fare (e non è poco). Comunque sono solo in fase di partenza e la strada sarà molto lunga e difficile e non è detto che il risultato finale sia accettabile, però fino a quando uno non prova non si puo dire:D.
    Devo dire che la comunità di Giorgio Tave è davvero eccezionale, non vi conoscevo prima di trovarvi tramite internet, e non pensavo che in Italia ci fosse un livello di competenza cosi buono...complimenti a tutti;)


  • User Attivo

    Paocavo scrive:

    "E già... questo è un tipico problema in cui si dovrebbero utilizzare applicazioni
    distribuite in ambito parallelo o "parallel computing""

    Ho seguito il link e letto un po' la documentazione.
    L'unica parola (di tutto) che ho capito' e' "parallelo".
    Credo sinceramente che sia oltre le mie capacita'.

    Ma almeno adesso so perche' riscontro questi limiti!


  • Bannato Super User

    [LEFT]agoago[/LEFT]

    il problema delle tue risorse lo risolvi appena ( spero che il suo avvento non tardi ) il sistema globus farà il suo ingresso sulla rete.

    La potenza di calcolo che questo sistema offre è illimitata.

    In parole povere hai presente come funziona il p2p?

    Bene, li si sharano file ( di tutti i tipi mp3 avi rar ecc. ) con globus si sharano le risorse di sistema.

    Siamo ancora agli albori, e ti posso dire che questo tipo di ricerca va lenta non tanto per la mancanza di menti geniali che la sviluppino, ma per i troppi interessi ( questo è un altro capitolo ).

    Dobbiamo pazientare, con un amico abbiamo sviluppato un software molto simile al tuo ma con scopo differente, ci limita proprio la potenza di calcolo che abbiamo a disposizione.

    Poi a lavoro ho incontrato un ingegnere 24 enne che stava preparando la sua tesi su [LEFT]globus e da li l' illuminazione, tutto il mio entusiasmo fu frenato quando mi disse che per ora
    globus funge solo in lan e malamente, e che le ricerche vanno a rilento.

    E che lui insoddisfatto dal sistema ( no globus, ma dalla gente che lo circondava ) aveva lasciato il progetto che non li dava più stimoli.
    [/LEFT]