Stemming e lemmatizzazione in Python: quale usare?
Pubblicato: 2021-02-09L'elaborazione del linguaggio naturale (NLP) è una tecnica di elaborazione della comunicazione che prevede l'estrazione di caratteristiche importanti dal linguaggio. È un progresso nell'intelligenza artificiale che implica la costruzione di agenti intelligenti con esperienza precedente. L'esperienza precedente qui si riferisce alla formazione che viene eseguita su enormi set di dati che coinvolgono dati testuali da fonti tra cui social media, web scraping, moduli di indagine e molte altre tecniche di raccolta dei dati.
Il passo iniziale dopo la raccolta dei dati è la pulizia di questi dati e la conversione nella forma leggibile dalla macchina, la forma numerica che la macchina può interpretare. Mentre il processo di conversione è tutta un'altra cosa, il processo di pulizia è il primo passo da eseguire. In questo compito di pulizia, l'inflessione è un concetto importante che necessita di una chiara comprensione prima di passare allo stemming e alla lemmatizzazione.
Sommario
Inflessione
Sappiamo che i dati testuali comprendono frasi con parole e altri caratteri che possono influenzare o meno le nostre previsioni. Le frasi comprendono parole e le parole che sono comunemente usate come è, lì e sono chiamate parole di arresto. Questi possono essere rimossi facilmente formando un corpus per loro, ma che dire delle diverse forme della stessa parola?
Non vuoi che la tua macchina consideri "studiare" e "studiare" come parole diverse poiché l'intento dietro queste parole rimane lo stesso ed entrambi trasmettono lo stesso significato. La gestione di questo tipo di casi è una pratica comune nella PNL, nota come inflessione. Questa è l'idea di base di stemming e lemmatization con approcci diversi. Scopriamo le differenze tra loro e diamo un'occhiata a quale è meglio usare.
Stemming
È una delle tecniche di normalizzazione del testo che si concentra sulla riduzione dell'ambiguità delle parole. Lo stemming si concentra sullo spogliare la parola intorno alla parola radice. Lo fa rimuovendo i prefissi o i suffissi, a seconda della parola in esame. Questa tecnica riduce le parole secondo l'insieme definito di regole.
Le parole risultanti possono avere o meno vere parole radice significative. Il suo scopo principale è quello di formare gruppi di parole simili insieme in modo da ottimizzare l'ulteriore preelaborazione. Ad esempio, parole come play, playing e playing appartengono tutte alla parola radice "play". Questo aiuta anche a ridurre il tempo di ricerca nei motori di ricerca, poiché ora viene data maggiore attenzione all'elemento chiave.
Due casi devono essere discussi per quanto riguarda lo stemming, vale a dire, over steaming e under stem . Sebbene la rimozione dei prefissi e dei suffissi dalla parola risolva alcuni casi, alcune parole vengono eliminate più dei requisiti.
Questo può portare a più parole spazzatura senza significato. Sebbene questo sia lo svantaggio dello stemming nel suo insieme, e se accade in modo più drastico, è noto come over stemming. Under stemming è il contrario in cui il processo di stemming risulta in pochissima o differenza nelle parole.
Lemmatizzazione
Un altro approccio per normalizzare il testo e convertirlo in significati radice è la lemmatizzazione. Questo ha lo stesso motivo di raggruppare parole con intenti simili in un gruppo, ma la differenza è che qui le parole risultanti sono significative.
Non si spogliano con regole predefinite ma si formano usando un dizionario o lo chiamiamo Lemma. Qui il processo di conversione richiede più tempo perché in primo luogo, le parole sono abbinate alle loro parti del discorso, che di per sé è un processo che richiede tempo.
Ciò garantisce che la parola radice abbia un significato letterale che aiuta a ottenere buoni risultati nell'analisi. Ciò è utile quando non vogliamo dedicare molto tempo alla pulizia dei dati e sono necessari dati più puliti per ulteriori analisi. Uno svantaggio di questa tecnica è che poiché si concentra maggiormente sulla grammatica delle parole, lingue diverse richiederebbero corpora separati portando a una gestione sempre maggiore dei dati.
Checkout: idee per progetti di deep learning per principianti
Quale usare?
Ora arriva il punto di scegliere quello tra loro due. È altamente soggettivo scegliere qualcuno poiché il caso d'uso a cui ti stai rivolgendo gioca un ruolo importante qui.
Se vuoi analizzare un pezzo di testo ma il tempo è un vincolo, puoi optare per lo stem in quanto esegue questa azione in meno tempo ma con una bassa percentuale di successo e gli stem sono forniti tramite un modo algoritmico che potrebbe non avere alcun significato.
L'adozione della lemmatizzazione offre un ulteriore vantaggio di ottenere parole radice significative e accurate bastonate da forme diverse. Se puoi permetterti buone risorse informatiche con più tempo, allora questa può essere una scelta migliore. Questo dovrebbe essere adottato dove vogliamo un'analisi precisa. Può anche essere il caso di alcune tecniche di ricerca sui motori di ricerca in cui la parola radice è sufficiente per ottenere i risultati desiderati dall'utente.
Implementazione Python
Il pacchetto NLTK (Natural Language Tool Kit) è l'implementazione Python delle attività relative alla NLP. Questa libreria ha tutti gli strumenti necessari come Stemmers. Lemmatizzatori, arresto della rimozione delle parole, creazione di alberi di analisi personalizzati e molto altro. Contiene anche i dati del corpus da fonti importanti incluse nel pacchetto stesso.
La tecnica di stemming ha molte implementazioni, ma la più popolare e più antica è l'algoritmo Porter Stemmer. Lo stemmer Snowball viene utilizzato anche in alcuni progetti. Per comprendere più chiaramente la differenza tra stemming e lemmatization, guarda il codice seguente e l'output dello stesso:
importa nltk
da nltk.stem import PorterStemmer
da nltk.stem importa WordNetLemmatizer
word_stemmer = PorterStemmer()
lemmatizzatore = WordNetLemmatizer()
print(lemmatizer.lemmatize('mosche'))
print(word_stemmer.stem('mosche'))
Produzione:
volare
fli
La prima uscita è dal lemmatizzatore e la seconda dallo stemmer. Puoi vedere la differenza che il lemmatizzatore ha dato la parola radice come output mentre lo stemmer ha appena tagliato la parola dalla fine.
Impara i corsi di scienza dei dati dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Leggi anche: Idee per progetti di apprendimento automatico
Conclusione
La PNL cresce ogni giorno e nuovi metodi si evolvono con il tempo. La maggior parte di loro si concentra su come estrarre in modo efficiente le giuste informazioni dai dati di testo con una perdita minima ed eliminando tutti i rumori. Entrambe le tecniche sono comunemente usate. Tutto ciò che conta è che l'analisi venga effettuata su dati puliti.
Quali sono i due tipi di algoritmi di intelligenza artificiale utilizzati per raggruppare i documenti?
Il clustering gerarchico e il clustering non gerarchico sono i due tipi di algoritmi di intelligenza artificiale utilizzati per raggruppare i testi. L'algoritmo di clustering gerarchico divide e aggrega i documenti in base a un insieme di regole. Le coppie di cluster di elementi di dati della gerarchia vengono quindi collegate tra loro. Sebbene questa tecnica sia semplice da leggere e comprendere, potrebbe non essere efficace quanto il clustering non gerarchico. Quando ci sono molti difetti nei dati, il clustering potrebbe essere difficile. Il clustering non gerarchico comporta l'unione e l'interruzione dei cluster esistenti per crearne di nuovi. Questo è un approccio di clustering relativamente più veloce, più affidabile e più stabile.
La lemmatizzazione è preferita per l'analisi del sentimento?
Lemmatizzazione e stemming sono entrambe procedure altamente efficaci. Quando viene convertita in forma radice, tuttavia, la lemmatizzazione produce sempre il termine che significa dizionario. Quando il significato del termine non è fondamentale per lo studio, si consiglia la stemming. Quando il significato di una parola è vitale per l'analisi, si consiglia la lemmatizzazione. Di conseguenza, se dovessi scegliere un approccio per l'analisi del sentimento, la lemmatizzazione sarebbe quella da seguire.
In che modo lo stemming e la lemmatizzazione vengono utilizzati per il clustering dei documenti?
Il raggruppamento di documenti, noto anche come raggruppamento di testo, è un metodo per analizzare i testi di testo raggruppandoli insieme. Le sue applicazioni spaziano dalla disposizione automatizzata dei documenti all'estrazione di argomenti e persino al rapido recupero delle informazioni. Stemming e lemmatizzazione vengono utilizzati per ridurre il numero di token necessari per comunicare le stesse informazioni, migliorando così la tecnica complessiva. Dopo questa fase di preelaborazione, le funzionalità vengono calcolate misurando la frequenza di ciascun token, seguita dagli approcci di clustering più efficienti.