23 votos

La Medición De La Similitud De Documentos

Para clúster (texto) los documentos que usted necesita una manera de medir la similitud entre los pares de documentos.

Dos alternativas son:

  1. Comparar documentos como término de vectores utilizando Similitud del Coseno y TF/IDF las ponderaciones de los términos.

  2. Comparar cada uno de los documentos de la distribución de probabilidad de uso de f-por ejemplo, la divergencia de Kullback-Leibler divergencia

¿Hay alguna razón intuitiva para preferir una a la otra (suponiendo que el promedio de los tamaños de documento de 100 términos)?

23voto

Evan M. Puntos 231

Para documentos de texto, la función de los vectores pueden ser muy grandes dimensiones y escasa virtud de cualquiera de las declaraciones estándares (bolsa de palabras o TF-IDF, etc). La medición de distancias directamente debajo de una representación no puede ser confiable, porque es un hecho conocido que en dimensiones muy alto, distancia entre dos puntos se empieza a ver de la misma. Una manera de lidiar con esto es reducir la dimensionalidad de los datos mediante el uso de PCA o LSA (Análisis Semántico Latente, también conocida como la Indexación Semántica Latente) y, a continuación, medir las distancias en el nuevo espacio. El uso de algo como LSA sobre la PCA es ventajoso ya que se puede dar una representación significativa en términos de "semántica de los conceptos", aparte de la medición de distancias en un menor espacio tridimensional.

La comparación de los documentos basados en las distribuciones de probabilidad generalmente se realiza calculando primero el tema de la distribución de cada documento (el uso de algo como Latente de Dirichlet de Asignación), y luego de computación algún tipo de divergencia (por ejemplo, la divergencia KL) entre el tema de las distribuciones de par de documentos. En una manera, es en realidad similar a la de hacer la LSA primero y, a continuación, la medición de distancias en la LSA espacio utilizando KL-divergencia entre los vectores (en lugar de similitud del coseno).

KL-divergencia es una medida de distancia para la comparación de las distribuciones por lo que puede ser preferible si el documento es la representación en términos de distribución (que es a menudo el caso, por ejemplo, documentos representados como su distribución a través de los temas, como en LDA). También tenga en cuenta que en virtud de una representación, las entradas de la función vectorial sería la suma de uno (ya que básicamente el tratamiento del documento como una distribución sobre temas o semántica de conceptos).

Véase también una relativa hilo aquí.

0voto

darkk Puntos 531

Es posible que desee probar este servicio en línea para el coseno de similitud de documentos 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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X