Algoritmo di stemming
Lo stemming è un metodo IR ( Information retrieval ) che identifica la radice delle parole per generalizzare le operazioni di interrogazione e selezione dei documenti in un archivio. Lo stemming trasforma le parole nella loro forma flessa e più generale.
Il significato di stem ( stelo )
Il termine stemming deriva dall'inglese stem ossia stelo. Si considera la radice di una parola come uno stelo da cui si diramano tutte le parole varianti, come un albero, che compone la famiglia delle parole.
Il primo programma di stemming fu sviluppato da Julie Beth Lovins nel 1968 e successivamente migliorato negli anni '80 da Martin Porter.
La radice della parola
Nello stemming la radice è un elemento linguistico irriducibile della parola che continua a esprimere il significato del termine completo.
Nella linguistica il concetto di radice potrebbe essere diverso e non coincidere coincide sempre con quello utilizzato in un algoritmo di stemming.
Nota. La radice linguistica di un termine si ottiene eliminando i prefissi, i suffissi e la desinenza della parola.
Come funziona lo stemming
In un testo ( corpus ) si sostituiscono tutte le parole con le relativi radici. Il risultato finale è una versione del testo con la stessa quantità di termini ma con meno varianti.
Nota. Il testo nella forma radice non sostituisce quello con le parole nella forma piena, bensì lo affianca come un descrittore di keyword per agevolare le operazioni di selezione.
Lo stesso metodo viene applicato alle parole delle interrogazioni ( query ) dell'utente. In un sistema IRS ( Information Retrieval Stemming ) le parole intere della query sono ridotti alla loro radice.
In questo modo, il processo di ricerca e di matching delle informazioni è più efficace, poiché la radice espande la selezione su più documenti rilevanti.
Le stop word nello stemming
Si può ulteriormente ridurre la complessità del testo eliminando le stop-word dal testo e dalle query prima dello stemming. Le stop-word sono quelle parole che non hanno un significato specifico, si tratta di parole comuni usate in ogni testo ( es. articoli, preposizioni, negazioni, ecc. ).
In questo modo si riduce il numero delle parole del testo da ridurre alla forma radice. Si semplifica l'algoritmo, diminuisce il tempo di esecuzione e aumenta l'efficienza computazionale.
Nota. Tuttavia, dal punto di vista semantico l'eliminazione delle stop-word può modificare radicalmente il significato del testo e far perdere informazioni preziose nel testo. Ad esempio, l'eliminazione della negazione "non" in una frase muta completamente il messaggio dell'autore.
Il grado di stem
Nello stemming la riduzione a radice può avvenire con diversi gradi di tem. Una scelta equilibrata è senza dubbio migliore e più efficace rispetto a quelle estreme.
Aumentando il grado di stem la radice diventa più corta e si amplia il numero dei termini nella famiglia di parole che identifica.
Over-stemming. Si individuano più legami tra le parole con lo stesso significato ma si rischia di includere anche quelle con significato diverso. Lo svantaggio è la perdita di specificità.
Viceversa, riducendo il grado di stem aumenta la lunghezza della radice e si riduce la quantità di parole considerate nella famiglia dei termini.
Under-stemming. I termini sono più specifici ma si rischia di perdere qualche relazione tra le parole che hanno lo stesso significato. Lo svantaggio è la perdita di generalità.
Come determinare lo stem
Si può determinare lo stem tramite due processi:
- Individuazione della radice. Si individua la radice della parola partendo da sinistra verso destra.
- Eliminazione degli affissi. Si eliminano gli affissi del termine da destra verso sinistra. Ciò che resta della parola è usato come radice.
Esempio. Alcuni esempi di affissi nella lingua inglese sono -able, -ing, -er. Eliminandoli dalla parola dovremmo ottenere la radice del termine.
I limiti e le criticità dello stemming
Questa tecnica è efficace purché il processo di riduzione non faccia perdere informazioni e la radice della parola conservi lo stesso significato tematico della forma completa.
I principali problemi della riduzione alla radice sono i seguenti:
- Stessa radice ma significati diversi. La radice identifica famiglie di parole con significato differente.
- Stesso significato ma radice diversa. Le parole con lo stesso significato possono anche avere una radice differente.
L'algoritmo di stem dipende dalla lingua
Inoltre, le regole di stemming cambiano con la lingua. Quando un documento multilinguistico utilizza terminologie straniere all'interno del corpus ( es. terminologie inglesi ) lo stemming potrebbe non essere più efficace. In questi casi è necessario disporre di un doppio algoritmo di stem, uno per ciascuna lingua, e di un riconoscimento della natura del termine.
Nota. Non è sempre facile riconoscere l'origine di un termine. Ad esempio, la parola "file" appartiene sia al vocabolario italiano che inglese ma con significati diversi ( archivio in inglese, coda in italiano ).
Il problema delle parole composte
Nel vocabolario sono presenti molte parole composte. In questi casi è impossibile trovare un'unica radice del termine. Si tratta di casi più complessi da gestire con un algoritmo ad hoc.
Soluzione. Una possibile soluzione del problema consiste nel suddividere la parola composta nei due termini che la compongono e trovare per ciascuno di essi la relativa radice.
Lo stemming con i lemma
Per superare le criticità dello stemming sono stati sviluppati algoritmi più complessi che utilizzano il lemma delle parole anziché la radice.
Cos'è il lemma? Il lemma è la parola ( radice morfologica ) che per convenzione rappresenta tutte le forme di una flessione. Ad esempio, il lemma delle forme verbali ( sono, sei, è, siamo, siete, sono ) è il verbo all'infinito ( essere ).
Il lemma consente di migliorare il processo di matching perché evita i limiti della selezione per radice. Nel caso dei lemmi, la parte iniziale delle parole appartenenti allo stesso insieme può anche differire.
La differenza tra lemma e radice. Un lemma è composto da tema+desinenza. La radice è una parte del tema. Non necessariamente lemma e tema coincidono. Ad esempio, la radice del verbo andare è and- che include alcune voci verbali ( andiamo, andate ) ma ne esclude altre ( vado, vai, va, vanno ). Il lemma ( andare ) le comprende tutte.