English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Applicazione di TF-IDF e somiglianza cosangue (prima parte): estrazione automatica delle parole chiave
Il titolo sembra molto complesso, ma in realtà sto parlando di un problema molto semplice.
Ho un lungo articolo e devo estrarre le parole chiave con un computer (estrazione automatica delle parole chiave), senza alcun intervento umano. Come posso farlo correttamente?
Questo problema coinvolge molti campi all'avanguardia come la data mining, il processing del testo e la ricerca dell'informazione, ma a sorpresa, c'è un algoritmo classico molto semplice che può fornire risultati soddisfacenti. È così semplice che non richiede matematica avanzata, e chiunque può capirlo in soli 10 minuti, è questo che voglio introdurre oggi.TF-IDFAlgoritmo.
Iniziamo con un esempio. Supponiamo di avere un lungo articolo intitolato "L'allevamento delle api mellifere in Cina", e stiamo cercando di estrarre le parole chiave con un computer.
Un'idea semplice da pensare è trovare le parole che si presentano più frequentemente. Se una parola è importante, dovrebbe apparire molte volte in questo articolo. Quindi, conduciamo una statistica di "frequenza delle parole" (Term Frequency, abbreviato in TF).
Il risultato che avete sicuramente immaginato è che le parole che si presentano più frequentemente sono----"di", "è", "in"----e altre parole di uso comune. Queste vengono chiamate"Parole di stop"(stop words), che rappresentano parole che non sono utili per trovare risultati e devono essere filtrate.
Immaginiamo di filtrare tutto il resto, considerando solo le parole che hanno un significato reale. Così ci imbatteremo in un altro problema: potremmo scoprire che le parole "Cina", "api mellifere", "allevamento" si sono tutte presentate con la stessa frequenza. Questo significa che, come parole chiave, hanno la stessa importanza?
Ovviamente non è così. Poiché "Cina" è una parola comune, rispetto a "api" e "apicoltura", non sono così comuni. Se queste tre parole compaiono con la stessa frequenza in un articolo, c'è ragione di credere che l'importanza di "api" e "apicoltura" sia maggiore di "Cina", ovvero, nell'ordinamento delle parole chiave, "api" e "apicoltura" dovrebbero essere messi davanti a "Cina".
Pertanto, abbiamo bisogno di un coefficiente di adattamento dell'importanza per misurare se una parola è una parola comune. Se una parola è meno comune ma appare più volte in questo articolo, è molto probabile che rifletta le caratteristiche di questo articolo, che è proprio la parola chiave che cerchiamo.
Esprimendo in termini statistici, è necessario assegnare un "peso di importanza" a ogni parola sulla base della frequenza di parola. Le parole più comuni ("的", "是", "在") vengono assegnate il peso più piccolo, le parole meno comuni ("中国", "养殖") vengono assegnate un peso più piccolo, e le parole meno comuni ("蜜蜂", "养殖") vengono assegnate un peso più grande. Questo peso si chiama "frequenza inversa del documento" (Inverse Document Frequency, abbreviato in IDF), la cui dimensione è inversamente proporzionale alla frequenza di apparizione di una parola.
Dopo aver scoperto la "frequenza di parola" (TF) e la "frequenza inversa del documento" (IDF), moltiplicando questi due valori si ottiene il valore TF-IDF di una parola. Più importante è una parola per un articolo, maggiore è il suo valore TF-IDF. Pertanto, le prime alcune parole sono le parole chiave di questo articolo.
Di seguito sono dettagliati l'algoritmo.
Il primo passo è calcolare la frequenza di parola.
Rispetto alla lunghezza diversa degli articoli, per facilitare la comparazione tra diversi articoli, si effettua la normalizzazione della "frequenza di parola".
O
Il secondo passo è calcolare la frequenza inversa del documento.
In questo momento, c'è bisogno di un corpus, che viene utilizzato per simulare l'ambiente di utilizzo della lingua.
Se una parola è più comune, il denominatore sarà maggiore, la frequenza inversa del documento sarà più piccola e si avvicinerà a 0. Il denominatore deve essere aggiunto 1 per evitare che il denominatore sia 0 (cioè tutti i documenti non contengono la parola). log rappresenta l'operazione di prendere il logaritmo del valore ottenuto.
Il terzo passo è calcolare il TF-IDF.
Si può vedere che TF-IDF è proporzionale alla frequenza di apparizione di una parola nel documento e inversamente proporzionale alla frequenza di apparizione di una parola nell'intero linguaggio. Pertanto, l'algoritmo per estrarre automaticamente le parole chiave è chiaro: calcolare il valore TF-IDF di ogni parola nel documento, quindi ordinare in ordine decrescente e prendere le prime alcune parole.
Tuttavia, prendiamo ad esempio l'articolo "La Apicoltura in Cina", ipotizziamo che la lunghezza dell'articolo sia di 1000 parole, "Cina", "api" e "apicoltura" compaiono ciascuno 20 volte, quindi la loro "frequenza di parola" (TF) è di 0.02. Poi, cercando su Google, si scopre che ci sono 25 miliardi di pagine web che contengono la parola "的", ipotizziamo che questo sia il numero totale di pagine web in cinese. Le pagine web che contengono "Cina" sono 6,23 miliardi, quelle che contengono "api" sono 0,484 miliardi, e quelle che contengono "apicoltura" sono 0,973 miliardi. Di conseguenza, la loro frequenza inversa di documento (IDF) e TF-IDF sono come segue:
Dalla tabella sopra riportata è chiaro che il valore TF-IDF di "ape" è il più alto, "allevamento" il secondo e "Cina" il più basso. (Se si calcola anche il TF-IDF della parola "的", il valore sarà estremamente vicino a 0.) Pertanto, se si sceglie solo una parola, "ape" è la parola chiave di questo articolo.
Oltre all'estrazione automatica delle parole chiave, l'algoritmo TF-IDF può essere utilizzato in molti altri contesti. Ad esempio, durante la ricerca di informazioni, per ogni documento, è possibile calcolare un insieme di TF-IDF per ogni parola di ricerca ("Cina", "ape", "allevamento") e sommarli. Il documento con il valore di TF-IDF più alto è il documento più correlato alle parole di ricerca.
I vantaggi dell'algoritmo TF-IDF sono la semplicità e la velocità, i risultati sono abbastanza conformi alla realtà. Gli svantaggi sono che, misurare l'importanza di una parola semplicemente con la "frequenza di parola" non è abbastanza completo, a volte le parole importanti possono apparire poche volte. Inoltre, questo algoritmo non può rappresentare l'informazione sulla posizione delle parole, le parole che appaiono in posizione iniziale e quelle in posizione finale vengono considerate di importanza uguale, il che non è corretto. (Un metodo per risolvere questo problema è assegnare un peso maggiore al primo paragrafo e alla prima frase di ogni paragrafo.)
La prossima volta, utilizzerò TF-IDF combinato con la somiglianza cosangue per misurare la somiglianza tra i documenti.
Questo è tutto il contenuto dell'articolo, spero che sia utile per la tua apprendimento e ti prego di supportare e urlare tutorial.
Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright spetta ai rispettivi proprietari. Il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, il sito web non detiene i diritti di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata la veridicità, il sito web eliminerà immediatamente i contenuti sospetti di violazione del copyright.