Según la documentación de la removeSparseTerms
función del tm
paquete, esto es lo que implica la escasez:
A term-document matrix where those terms from x are removed which have at least a sparse percentage of empty (i.e., terms occurring 0 times in a document) elements. I.e., the resulting matrix contains only terms with a sparse factor of less than sparse.
Entonces, ¿es una interpretación correcta de esto decir que si sparse
es igual a .99, entonces estamos eliminando términos que solo aparecen en el 1% de los datos como máximo?
r
text-mining
natural-language
zthomas.nc
fuente
fuente
Respuestas:
Sí , aunque su confusión aquí es comprensible, ya que el término "escasez" es difícil de definir claramente en este contexto.
En el sentido del
sparse
argumento deremoveSparseTerms()
, la escasez se refiere al umbral de frecuencia relativa del documento para un término, por encima del cual se eliminará el término. La frecuencia relativa del documento aquí significa una proporción. Como dice la página de ayuda para el comando (aunque no con mucha claridad), la escasez es menor a medida que se acerca a 1.0. (Tenga en cuenta que la dispersión no puede tomar valores de 0 o 1.0, solo valores intermedios).Entonces, su interpretación es correcta, ya quej dfj>N∗(1−0.99) N
sparse = 0.99
eliminará solo los términos que son más escasos que 0.99. La interpretación exacta desparse = 0.99
es que para el término , retendrá todos los términos para los cuales , donde es el número de documentos; en este caso, probablemente todos los términos se retendrán (vea el ejemplo a continuación) .Cerca del otro extremo, si
sparse = .01
, entonces solo se retendrán los términos que aparecen en (casi) cada documento. (Por supuesto, esto depende de la cantidad de términos y la cantidad de documentos, y en lenguaje natural, es probable que aparezcan palabras comunes como "el" en cada documento y, por lo tanto, nunca sean "escasas").Un ejemplo del umbral de dispersión de 0,99, donde un término que aparece como máximo en (primer ejemplo) menos de 0,01 documentos y (segundo ejemplo) un poco más de 0,01 documentos:
Aquí hay algunos ejemplos adicionales con texto y términos reales:
En el último ejemplo con
sparse = 0.34
, solo se conservaron los términos que aparecen en dos tercios de los documentos.Un enfoque alternativo para recortar términos de matrices de términos de documentos basados en una frecuencia de documentos es el paquete de análisis de texto quanteda . La misma funcionalidad aquí no se refiere a la escasez, sino directamente a la frecuencia de los términos del documento (como en tf-idf ).
Este uso me parece mucho más sencillo.
fuente