|
||||
|
||||
Perché perdere tempo col linguaggio naturale?
Ask Jeeves ha annunciato l’intenzione di pubblicare a breve un motore di ricerca che finalmente riesca a fornire risultati per domande poste in maniera naturale. Il NLP (Natural Language Processing) 'è di moda' ormai da decenni; come è noto, non ha ancora trovato delle applicazioni significative; in sostanza, non funziona affatto bene; per Internet il fallimento è ancora più evidente; ogni tanto capita di vedere banner di Google con scritto frasi del tipo “Qual è il grattacielo più grande del mondo?”, oppure “Qual è l’oceano più profondo?”; cliccando sul banner, si apre una pagina di ricerca che di fatto mostra dei link di siti che rispondono efficacemente alla domanda visualizzata sul banner; se si guarda però la query attivata dal banner si vede che non ha niente a che fare con il linguaggio naturale. La ricerca di solito è attivata dalla combinazione di alcune keyword. La cosa che non ho mai capito è tutto questo interesse verso il linguaggio naturale. Non è forse più semplice insegnare agli essere umani a utilizzare una sintassi diversa da quella che utilizziamo ogni giorno quando chiediamo una rivista al nostro edicolante? A mio parere sì; se andiamo in una biblioteca che dispone di un thesaurus cerchiamo con parole-chiave e con combinazioni di parole-chiave e non ponendo ‘domande naturali’. Il linguaggio naturale d’altronde è tendenzialmente meno efficiente di altri tipi di linguaggi. La maggior parte delle parole contenute in una domanda ‘naturale’ non hanno alcun significato, ma servono per dare un’intonazione, per essere ironiche oppure retoriche, ma di certo non hanno alcun senso quando ci troviamo in una situazione di IR (Information Retrieval) come in un motore di ricerca. Al contrario sembra essere molto più interessante un altro acronimo, più recente (se ne parla dagli anni ’80) e sicuramente più interessante (per lo meno nell’ambito dei search engine): LSI (Latent Semantic Indexing). Cercherò di spiegare in un prossimo post di che cosa si tratta; per adesso, cercate su Google con “latent semantic indexing”; vedrete che nel più grande motore di ricerca del mondo sono in cerca di persone che conoscano bene questo argomento (hanno pubblicato un adword in proposito…che dice: Work at Google
Google is hiring expert computer scientists and software developers! Forse che sia questa la vera frontiera dei motori di ricerca? Commenti
IMHO la soluzione 'ideale' è un thesaurus 'umano' unito alla LSI. in questo modo l'imprecisione dell'LSI (fin troppo reale) è limitata. Inoltre, mi sembra che si molto più realistico di un search-engine-HAL... Inviato da: federico @ 01.04.05 16:33Federico, quello che mi proponevo di affermare e' che non e' sufficiente un'unico ingrediente per risolvere Se oggi, come fai presente, la maggior parte dei search engine sembrano funzionare ancora solo con le regole "classiche" (ma non ne sarei cosi' sicuro), cio' non significa che la rappresentazione dei dati (documenti e query) non sia molto piu' complessa, di quello che puo' apparire ad un utente. Dato un documento/pagina, per includerlo come risultato in una search generalista o a maggior ragione in search verticali, occorre estrarre da esso tutta una serie di informazioni che rappresentino la conoscenza in esso contenuta (e' noto da tempo che usare esclusivamente i dati canonici quali: titolo, corpo, page rank, etc. non e' piu' sufficiente): per svolgere efficacemente questo task occorre avvalersi di una serie di tecniche, anche statistiche, ivi comprese alcune che fanno parte dell'area NLP. Per quanto riguarda la disambiguazione, non ho mai detto che Arianna e' stato il primo ad introdurla, semmai tra i primi e' stato Altavista, che intorno al '97/'98, insieme ai risultati della ricerca, proponeva un frame con "una piccola rete semantica" di termini in relazione con la domanda utente, in cui da ogni termine si poteva attivara una nuova ricerca. Ciao Roberto. In Google ci sono certamente degli esperti in AI, ma probabilmente siamo ancora lontani da un utilizzo delle loro competenze; ho provato a cercare su Google.it "chi è il primo ministro in italia?", che sarebbe una classica 'ricerca' di AI; a prescindere dal fatto che il primo risultato è una pagina di Gay.it (sic), è singolare leggere questa dicitura sotto la form di ricerca: !Le seguenti parole sono molto comuni e sono state escluse dalla ricerca: il in"; se si clicca su 'dettagli' si leggono delle cose interessanti; per esempio: Parole comuni Google ignora le parole ed i caratteri comuni, denominati anche "stop words", scartando automaticamente termini come "http" e ".com" nonché alcune singole cifre e lettere, dal momento che questi termini non aiutano a restringere il campo di ricerca ma anzi contribuiscono a rallentare i tempi di ricerca. Utilizzare il segno "+" per includere parole comuni nella ricerca. Ricordarsi di lasciare uno spazio prima del segno "+". Il segno "+" può essere utilizzato anche per la ricerca di frasi. e poi Lettere maiuscole/minuscole o accenti Google non fa distinzione tra lettere minuscole e maiuscole poiché considera tutte le lettere come minuscole. Ad esempio, digitando "google", "GOOGLE" e "GoOgLE" si ottengono sempre gli stessi risultati. Per impostazione predefinita, Google non riconosce accenti o altri segni diacritici. In altre parole, se si digita [Muenchen] e [München] si ottengono sempre gli stessi risultati. Per fare una distinzione tra le parole, anteporre il segno +; ad esempio [+Muenchen] rispetto a [+München]. Google sembra - e giustamente - essere molto iù interessto al Latent Semantic Indexing piuttosto che all'intelligenza artificiale (eccellente invece per fare funzionare il forno a microonde...); il fatto è che il LSI è sotto certi punti di vista 'opposto' ai pincipi dell'intelligenza artificiale; anche nel LSI le stop words e le stop functions vengono utilizzate ampiamente e inoltre viene utilizzato ampiamente anche lo stemming Ma che senso ha parlare di linguagtgio naturale quando proprio le parole che rendono un linguaggio 'naturale' sono quelle che vengono immediatamente eliminate e quando non vengono considerate le parole 'per intero' ma solo la loro radice (lo stemming appunto)? Ci sono oggi molte aree applicative in cui e' fondamentale l'apporto del Natural Language Processing o NLP. L'argomento e' troppo vasto per essere affrontato in poche righe. In Italia, nonostante tutto, molto si sta facendo. Quindi occorre fare molta attenzione nell'affermare che una tecnica e' inutile: dipende come la si usa e per che cosa. Ciao Dario. Sinceramente penso che il linguaggio naturale applicato ai motori di ricerca non abbia nulla a che vedere con quello di cui parli tu. Posto che i linguaggi di programmazione si sono 'semplificati' (diciamo che per fare cose 'simili'- non le stesse- ci si impiega meno tempo e bisogna essere meno bravi) e posto che comunque i linguaggi di basso livello si usano ancora moltissimo (non creedo che si possano scrivere algoritmi di compressione di un file in php,ma forse mi sbaglio...)io parlavo di un argomento più specifico: quello dei motori di ricerca; sicuramente arriverà il tempo in cuio attrraverso il nostro cellulare (o con un chip infilato da qualche parte sotto la nostra pelle) potremo ordinare agli elettrodomestici che cosa fare e quando (ci siamo quasi...)e la cosa potrebbe sembrare a molti entusiasmante. senza dubbio. Ma non mi entusiasma affatto l'idea che i motori di ricerca possano 'rispondere' alla domanda: quanto è alto il K2? Oppure: Dove è nata Britney Spears?. Lo dico perché penso che questo dovrebbe essere l'ultimo passaggio di una tecnologia di ricerca che lascia ancora tantissimo a desiderare; lo sai che se cerco 'golf' su Google non viene visualizzata la home page del sito ufficiale di Tiger Woods, solo perché non contiene la parola golf? Hai poi visto le descrizioni dei risultati di ricerca di tutti i SE? Sono orrende, non si capisce nulla e l'utente clicca a caso sui link senza sapere che sito si aprirà, 'fidandosi' del ranking. L'idea di un internet modello 'big trivial pursuit' non mi affascina per niente; per il momento preferirei che i motori si sforzassero di fornire dei risultati di ricerca decenti, sforzandosi molto di migliorare la qualità dei risultati oltre che id fare a gara sulla quantità. Che senso ha introdurre il NLP quando ancora abbiamo dei motori lessicali e il Latent Semantic Indexing è ancora relegato alle unversità del Tennessee..? Inviato da: federico @ 31.03.05 11:44Mai programmato in assembler? Io sì. Ti assicuro che quando hanno sviluppato il C mi è sembrato di toccare il cielo con un dito: la potenza dell'assembler e la facilità d'uso di un linguaggio MOLTO più simile al mio. Mai usata una CLI (Comand Line Interface)? Io sì, pure per modificare un file. La prima interfaccia full-screen su cui ho lavorato (XEDIT) era un sogno. Poi le GUI, il WYSIWYG, ecc.... Oggi un PC lo sa usare anche mia figlia di 10 anni perché devi sapere solo fare clic qui e là e non conoscere complesse sintassi di comandi per muoversi nel filing system. Insegnare un computer a capire l'italiano o l'inglese o lo spagnolo è un'impresa madornale, ma concettualmente possibile, avendo abbastanza potenza di calcolo e scrivendo applicazioni molto sofisticate di AI. Ma ci si arriverà. E tu chiederai al tuo computer di accendere il riscaldamento a casa, farti sapere se c'è un bel film stasera (lo hai già informato dei tuoi gusti) e di ricordarti domani l'appuntamento con Marabella (non dimenticare le rose, rosse, lei odia le bianche). Fantascientifico, inutile? No, normale evoluzione. Gli umani hanno sviluppato la tecnologia NON perché sono intelligenti, ma perché sono pigri. Odiano studiare, imparare cose nuove, amano essere serviti. Per cui...... ;-) Inviato da: Dario de Judicibus @ 30.03.05 21:05Credo che il linguaggio naturale possa invece essere di supporto nel migliorare la precisione e la rilevanza ma non deve essere utilizzato isolatamente. Supponiamo di avere fatto una richiesta in cui sono inseriti i termini "processo" o "albero" e la combinazione di parole chiave non offre i risultati ricercati. Il motore in linguaggio naturale può offrire valide alternative. In aula ho spesso utilizzato Ask Jeeves come esempio di partenza per la progettazione di contenuti user based essendo consapevole che siamo ancora alla preistoria. Credo che sia la combinazione tra keywords e linguaggio naturale che ci offrirà in futuro ottime possibilità. Su questa strada l'Italia è all'avanguardia una volta tanto. |