Somiglianza del documento di misurazione


21

Per raggruppare i documenti (di testo) è necessario un modo per misurare la somiglianza tra coppie di documenti.

Due alternative sono:

  1. Confronta i documenti come vettori di termini usando Cosine Somiglianza - e TF / IDF come coefficienti correttori per i termini.

  2. Confronta ogni distribuzione di probabilità dei documenti usando la divergenza f, ad esempio la divergenza di Kullback-Leibler

Esiste un motivo intuitivo per preferire un metodo all'altro (presupponendo dimensioni medie del documento di 100 termini)?

Risposte:


23

Per i documenti di testo, i vettori delle caratteristiche possono essere di dimensione molto elevata e sparsi sotto qualsiasi rappresentazione standard (sacco di parole o TF-IDF ecc.). Misurare le distanze direttamente sotto tale rappresentazione potrebbe non essere affidabile poiché è noto che in dimensioni molto elevate, la distanza tra due punti qualsiasi inizia a sembrare la stessa. Un modo per gestirlo è ridurre la dimensionalità dei dati utilizzando PCA o LSA ( Latent Semantic Analysis ; noto anche come Latent Semantic Indexing ) e quindi misurare le distanze nel nuovo spazio. L'uso di qualcosa come LSA su PCA è vantaggioso poiché può dare una rappresentazione significativa in termini di "concetti semantici", oltre a misurare le distanze in uno spazio dimensionale inferiore.

Il confronto dei documenti basato sulle distribuzioni di probabilità viene di solito effettuato prima calcolando la distribuzione degli argomenti di ciascun documento (usando qualcosa come Latich Dirichlet Allocation ), e quindi calcolando una sorta di divergenza (ad esempio, la divergenza KL) tra le distribuzioni degli argomenti di una coppia di documenti. In un certo senso, in realtà è in qualche modo simile a fare prima l'LSA e poi misurare le distanze nello spazio LSA usando la divergenza KL tra i vettori (invece della somiglianza del coseno).

La divergenza di KL è una misura della distanza per confrontare le distribuzioni, quindi potrebbe essere preferibile se la rappresentazione del documento è in termini di distribuzione (come spesso accade, ad esempio, i documenti rappresentati come distribuzione su argomenti, come in LDA). Si noti inoltre che in una rappresentazione di questo tipo, le voci nel vettore di funzione si sommerebbero a una (poiché si tratta sostanzialmente del documento come una distribuzione su argomenti o concetti semantici).

Vedi anche un thread correlato qui .


Grazie. LDA richiede che tu sappia gli argomenti in anticipo? Nel nostro caso non sappiamo a quale argomento appartiene ciascun Documento e useremo la misura della somiglianza per eseguire il clustering (EM-G-Means, o GAAC)
Joel

@ ebony1 Bel riferimento a LSA, ho fatto una risposta simile qualche tempo fa a stats.stackexchange.com/questions/369/…
chl

1
@Joel: No, LDA non presume di conoscere in anticipo gli argomenti di ciascun documento. A proposito, per essere chiari, LDA rappresenta ogni documento come una miscela di argomenti, non solo per un singolo argomento. Quindi ogni argomento contribuirà ad una frazione dei documenti (e le singole frazioni si sommeranno a 1). Fondamentalmente, LDA presume che ogni parola nel documento sia generata da qualche argomento.
ebony1,

@ebony - grazie! A rischio di riformulare la domanda e ripetermi, LDA richiede che tu sappia il numero di argomenti discreti?
Gioele,

Sì. Ma ci sono varianti di LDA (HDP-LDA) che non richiedono di specificare il numero di argomenti. Vedi questo documento: cse.buffalo.edu/faculty/mbeal/papers/hdp.pdf
ebony1

0

Potresti provare questo servizio online per la somiglianza dei documenti del coseno http://www.scurtu.it/documentSimilarity.html

import urllib,urllib2
import json
API_URL="http://www.scurtu.it/apis/documentSimilarity"
inputDict={}
inputDict['doc1']='Document with some text'
inputDict['doc2']='Other document with some text'
params = urllib.urlencode(inputDict)    
f = urllib2.urlopen(API_URL, params)
response= f.read()
responseObject=json.loads(response)  
print responseObject

2
Si prega di fornire maggiori dettagli.
Xi'an,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.