Quando si parla di motori di ricerca, si pensa immediatamente a Google. E’ nostra consuetudine, qualunque sia l’informazione di cui abbiamo bisogno, andare su google e digitare alcune parole relative all’argomento di nostro interesse.
Solitamente i risultati ricercati sono contenuti entro i primi dieci link proposti. Alle volte invece bisogna scorrere le pagine e leggere diversi contenuti non attinenti prima di trovare ciò che interessa. Certe altre volte, addirittura non si trova nulla. Perché?
I motori di ricerca tradizionali si basano perlopiù su di una tecnologia che consente di recuperare contenuti secondo una logica a keyword: prendere la stringa di ricerca dell’utente, la (o le) keyword e restituire a tutti i contenuti presenti nel motore di ricerca in cui compare la keyword. Es. inserendo nel campo di ricerca la stringa “sedia” si otterranno tutti i contenuti nei quali compare la keyword “sedia”. Volendo estremizzare, inserendo la stringa di ricerca “la torre mangia il cavallo”, si otterranno tutti i contenuti in cui compaiono le keyword “torre”, “cavallo” e “mangia”, mentre è evidente che l’utente era interessato a contenuti dove si parla esclusivamente di scacchi (ovvero il dominio della ricerca era il gioco degli scacchi).
In pratica, le parole sono considerate come semplici sequenze di caratteri (keyword). Non sono intese per il significato che esprimono ma solo per la forma che hanno. Ciò implica che per trovare le informazioni bisogna usare le stesse identiche parole presenti nel documento originale.
Google rispetto agli altri motori di ricerca è più avanzato e in caso di stringhe di ricerca più complesse riesce ad individuare almeno il dominio della ricerca (difatti inserendo la frase dell’esempio precedente, google riesce a capire che si sta parlando di scacchi). Tuttavia, non è ancora capace dare di un’interpretazione semantica completa ai testi. Se ad esempio si scrive nel campo di ricerca la parola “sedia” si otterranno le pagine in cui compare la keyword “sedia”. Digitando invece “sedie” si ottiene un elenco di pagine in cui compare la keyword “sedie” che è totalmente diverso dall’elenco precedente relativo alla parola “sedia”, laddove invece, dal punto di vista semantico, le due stringhe sarebbero identiche e dovrebbero portare agli stessi risultati della ricerca.
Tipologie di analisi del testo
Analisi a keyword (motori di ricerca tradizionali):
- il testo viene suddiviso nelle parole in esso contenute (keyword) che vengono inserite in un indice alfabetico. In pratica si identificano le keyword considerando come separatore gli spazi, la punteggiatura ed altri caratteri non alfabetici.
- nessuna comprensione del contenuto
- la ricerca avviene consultando l’indice alfabetico
Analisi Statistica
Per Analisi Statistica si intende un sistema di analisi basato su tecniche Machine Learning, al cui funzionamento è propedeutico un addestramento del sistema su di un corpus documentale di esempio per la deduzione di caratteristiche dei testi (es. termini più ricorrenti, caratteristiche di co-occorrenza di termini fra documenti che trattano lo stesso argomento ecc.) per caratterizzare i testi che verranno poi analizzati durante il funzionamento a regime.
In questa categoria sono considerati anche i sistemi basati su reti neurali e fuzzy logic.
Linguistica Superficiale (google):
- il testo viene suddiviso nelle parole contenute che vengono riconosciute sulla base di un dizionario
- le parole conosciute nel dizionario vengono riportate alla loro forma base (lemma base) e viene loro attribuito un tipo grammaticale
- sono effettuati alcuni raggruppamenti logici
- i lemmi e loro forme base vengono inserite in uno o più indici alfabetici
- La ricerca avviene consultando tali indici
Semantica
- il testo viene analizzato in modo simile a quanto fa un essere umano
- viene eseguita l’analisi morfologica, grammaticale, logica e semantica del contenuto in modo creare una mappa concettuale
- l’indicizzazione di un documento avviene mediante la mappa cognitiva/concettuale che contiene parole, lemmi, concetti e relazioni tra lemmi e concetti.
L’analisi semantica consente di evitare equivoci linguistici, di associare alle parole i corretti sinonimi e di individuare in pratica i modi diversi di esprimere gli stessi concetti.
L’uso di una tecnologia avanzata come quella semantica consente di eseguire la categorizzazione e tagging automatico dei documenti e il text mining, elementi chiave per una gestione efficiente della conoscenza contenuta nei documenti non strutturati
L’analisi semantica del testo avviene mediante tre elementi fondametali:
- Una Rete Semantica, ossia una sorta di dizionario organizzato su base concettuale in cui le parole non sono sistemate in ordine alfabetico, ma in gruppi concetti, cioè di parole uguali o “vicine” sulla base del significato (concetto) che esprimono.
WordNet®, un database lessicale in lingua inglese, sviluppato a partire dal 1985 dal dipartimento di Psicologia dell’Università di Princeton, è la principale rete semantica del mondo e funge da punto di riferimento per l’intero settore.
La rete semantica raggruppa le parole di una particolare lingua (nomi, verbi, aggettivi e avverbi etc.) in insiemi di sinonimi, ognuno dei quali esprime un concetto distinto. I concetti sono collegati tra loro per mezzo di relazioni di tipo concettuale (semantico) e lessicale.
- Un Parser che esegue l’analisi morfologica, grammaticale e sintattica del testo interrogando la rete semantica e spezzettando il testo nelle sue componenti fondamentali (soggetti, predicati, complementi, relazioni tra loro e tra parti distinte del testo, ecc.)
- Un Motore Inferenziale (intelligente) per la disambiguazione del testo che consente di capire l’accezione con la quale le parole sono usate e di eliminare qualsiasi ambiguità Es. la disambiguazione è ciò che consente all’essere umano di capire che la frase “il cavallo mangia la torre” si riferisce al gioco degli scacchi, piuttosto che ad un cavallo (in quanto animale) che sta mangiando (si sta cibando di ) una torre (costruzione in pietra).
Confronto
I prodotti sul mercato spesso implementano combinazioni di diverse tecnologie. La linguistica superficiale, ad esempio, viene talvolta unita a tecniche statistiche e contiene in sé la capacità di gestire e indicizzare le keyword, in quanto primo passo dell’analisi. La semantica invece non trova vantaggi nella combinazione con altre tecniche e comprende anch’essa la capacità di riconosce ed indicizzare le keyword come i classici sistemi di information retrieval.
Recall and Precision
Recall e Precision sono i principali indici per valutare l’efficacia delle soluzioni che effettuano elaborazioni su informazioni testuali.
- Recall indica la capacità di individuare l’informazione richiesta.
- Precision indica quanta informazione non attinente viene erroneamente presentata nei risultati.
Applicazioni
Information retrieval
L’Information Retrival è la tipica ricerca di informazioni dei motori di ricerca che indicizzano pagine web o archivi documentali.
Categorizzazione
La categorizzazione dei testi è la loro strutturazione automatica secondo una specifica tassonomia. Tali soluzioni sono solitamente usate per il tagging automatico dei documenti, per lo smistamento automatico delle posta elettronica o dei messaggi, ecc.
Information extraction (ETL)
L’information extraction è l’estrazione di parti specifiche dal testo (es. nomi, luoghi, targhe, ecc.). Solitamente tali tecniche precedono algoritmi di trasformazione in una forma normalizzata e sistemi di archiviazione di tali informazioni in un database.
Sistemi in linguaggio naturale
Tali sistemi consentono di gestire testi in linguaggio naturale, quali domande, comandi, etc. eseguendo una o più azioni in funzione del significato del testo.
Conclusioni
- I motori basati su keyword hanno una architettura molto semplice e riescono a lavorare con enormi quantità di testi in tempi rapidi e con occupazione “minima”, per quanto migliorabile con strumenti come thesaurus e statistica. Tale tecnologia ha ormai esaurito il suo ciclo di innovazione;
- Le tecnologie statistiche riescono ad essere applicate facilmente, ma hanno implicitamente un tasso di approssimazione alto che non può essere migliorato significativamente. Sono tecnologie ormai mature che stanno esaurendo il loro ciclo di sviluppo;
- Le tecnologie linguistiche rielaborano effettivamente le informazioni contenute nei testi, sono relativamente giovani e devono ancora sviluppare una fase di espansione sul mercato;
- La linguistica superficiale è imprecisa, non arrivando alla semantica, ma si può “tradurre” più facilmente in altre lingue;
- La linguistica semantica è la più impegnativa ma è anche la tecnologia più potente e deve sviluppare ancora tutto il suo potenziale, fino a sostituire completamente le altre tecnologie;