Selección y Reducción de Funciones para la Clasificación de Texto


Actualmente estoy trabajando en un proyecto, un simple sentimiento analizador de tal manera que habrá 2 y 3 clases en casos separados. Estoy usando un corpus que es bastante ricos en los medios de únicas palabras (alrededor de 200.000). Usé bolsa de palabras método para selección de características y para reducir el número de características únicas , se realiza una eliminación debido a un valor de umbral de frecuencia de ocurrencia . El conjunto final de característicasincluye alrededor de 20.000 características, que en realidad es un disminución del 90% , pero no es suficientepara precisión de predicción de prueba. Estoy usando LibSVM y SVM-light a su vez para el entrenamiento y la predicción (tanto lineal y núcleo RBF ) y también Python y Bash en general.

La mayor precisión observada hasta ahora es de alrededor del 75% y necesita al menos el 90%. Este es el caso de clasificación binaria. Para entrenamiento multi-clase , la precisión cae a ~60%. Yo necesito al menos un 90%en ambos casos y no puedo calcular cómo aumentarlo: a través de optimizando los parámetros de entrenamientoo a través de la optimización de la selección de funciones?

He leído artículos sobre selección de características en la clasificación de texto y lo que encontré es que se utilizan tres métodos diferentes, que tienen en realidad una clara correlación entre sí. Estos métodos son los siguientes:

  • Enfoque de frecuencia de bolsa de palabras (ARCO)
  • Information Gain (IG)
  • X^2 Estadística (CHI)

El primer método ya es el que uso, pero lo uso de manera muy simple y necesito orientación para un mejor uso de él con el fin de obtener una precisión lo suficientemente alta. También me falta conocimiento sobre las implementaciones prácticas de IG y CHI y buscando ayuda para guiarme en ese camino.

Muchas gracias, y si necesita cualquier información adicional para ayuda, solo házmelo saber.


  • @larsmans: Frequency Threshold : Estoy buscando las ocurrencias de palabras únicas en los ejemplos, de modo que si una palabra está ocurriendo en diferentes ejemplos con la suficiente frecuencia, se incluye en el conjunto de características como una característica única.

  • @TheManWithNoName: En primer lugar, gracias por su esfuerzo en explicar las preocupaciones generales de la clasificación de documentos. Examiné y experimenté todos los métodos que usted presenta y otros. Encontré que el método Proportional Difference (PD) es el mejor para la selección de entidades, donde las entidades son uni-gramos y Term Presence (TP) para la ponderación (no entendí por qué etiquetaste Term-Frequency-Inverse-Document-Frequency (TF-IDF) como un método de indexación, prefiero considerarlo como un enfoque feature weighting ). El preprocesamiento también es un aspecto importante para esta tarea como usted mencionó. Utilicé ciertos tipos de eliminación de cadenas para refinar los datos, así como análisis morfológico y stemming. También tenga en cuenta que estoy trabajando en turco, que tiene diferentes características en comparación con el inglés. Finalmente, logré alcanzar ~88% de precisión (medida f) para la clasificación binaria y ~84% para multi-clase . Estos valores son pruebas sólidas del éxito del modelo que utilicé. Esto es lo que he hecho hasta ahora. Ahora trabajando en modelos de clustering y reducción, hemos probado LDA y LSI y pasando a moVMF y tal vez modelos esféricos (LDA + moVMF), que parece funcionar mejor en corpus que tienen naturaleza objetiva, como news corpus. Si tiene alguna información y orientación sobre estas cuestiones, se lo agradeceré. Necesito información especialmente para configurar una interfaz (orientada a Python, de código abierto) entre los métodos de reducción de la dimensión del espacio de la entidad (LDA, LSI, moVMF, etc.) and clustering methods (k-means, hierarchical etc.).

Author: Slater Victoroff, 2012-11-28

4 answers

Esto es probablemente un poco tarde para la mesa, pero...

Como Bee señala y usted ya es consciente, el uso de SVM como clasificador se desperdicia si ya ha perdido la información en las etapas previas a la clasificación. Sin embargo, el proceso de clasificación del texto requiere mucho más que solo un par de etapas y cada etapa tiene efectos significativos en el resultado. Por lo tanto, antes de buscar medidas de selección de características más complicadas, hay una serie de medidas mucho más simples posibilidades que normalmente requerirán un consumo de recursos mucho menor.

¿Preprocesa los documentos antes de realizar la tokensiación/representación en el formato bolsa de palabras? La simple eliminación de palabras de parada o puntuación puede mejorar la precisión considerablemente.

¿Ha considerado alterar su representación de bolsa de palabras para usar, por ejemplo, pares de palabras o n-gramos en su lugar? Usted puede encontrar que usted tiene más dimensiones, para empezar, pero que se condensan mucho más y contienen más información útil.

También vale la pena señalar que la reducción de dimensión es selección de características/extracción de características. La diferencia es que la selección de características reduce las dimensiones de una manera univariada, es decir, elimina los términos de forma individual como aparecen actualmente sin alterarlos, mientras que la extracción de características (a la que creo que Ben Allison se refiere) es multivariada, combinando uno o más términos individuales para producir términos ortangonales más altos que (con suerte) contienen más información y reducen el espacio de entidades.

Con respecto a su uso de la frecuencia de los documentos, ¿está simplemente utilizando la probabilidad/porcentaje de documentos que contienen un término o está utilizando las densidades de términos que se encuentran dentro de los documentos? Si la categoría uno tiene solo 10 douments y cada uno contiene un término una vez, entonces la categoría uno está asociada con el documento. Sin embargo, si la categoría dos tiene solo 10 documentos que cada uno contiene el mismo término cien veces cada uno, entonces obviamente la categoría dos tiene una relación mucho más alta con ese término que la categoría uno. Si las densidades de término no se tienen en cuenta, esta información se pierde y cuantas menos categorías tenga, más impacto tendrá esta pérdida. En una nota similar, no siempre es prudente mantener solo los términos que tienen altas frecuencias, ya que en realidad no pueden proporcionar ninguna información útil. Por ejemplo, si un término aparece cien veces en cada documento, entonces se considera un término de ruido y, si bien parece importante, no hay valor práctico en mantenerlo en su conjunto de características.

También ¿cómo indexa los datos, está utilizando el Modelo de Espacio Vectorial con indexación booleana simple o una medida más complicada como TF-IDF? Teniendo en cuenta el bajo número de categorías en su escenario, una medida más compleja será beneficiosa, ya que puede dar cuenta de la importancia del término para cada categoría en relación con su importancia en todo el conjunto de datos.

Personalmente lo haría experimente con algunas de las posibilidades anteriores primero y luego considere ajustar la selección/extracción de características con una (o una combinación de) ecuaciones complejas si necesita un aumento de rendimiento adicional.


Adicional

Basado en la nueva información, suena como si estuviera en el camino correcto y la precisión del 84%+ (F1 o BEP - precisión y recuperación basada en problemas de varias clases) generalmente se considera muy buena para la mayoría de los conjuntos de datos. Puede ser que tengas adquirido con éxito todas las características ricas en información de los datos ya, o que algunos todavía están siendo podados.

Dicho esto, algo que se puede usar como un predictor de lo buena que puede ser la reducción agresiva de dimensiones para un conjunto de datos en particular es el análisis de "Recuento de valores atípicos", que utiliza la disminución de la ganancia de Información en entidades periféricas para determinar la probabilidad de que la información se pierda durante la selección de entidades. Puede usarlo en los datos sin procesar y / o procesados para dar una estimación de la agresividad con la que debe tratar de podar las características (o no imprimirlas, según sea el caso). Un documento que lo describe se puede encontrar aquí:

Papel con información de Recuento de valores atípicos

Con respecto a describir TF-IDF como un método de indexación, está en lo correcto en que es una medida de ponderación de características, pero considero que se usa principalmente como parte del proceso de indexación (aunque también se puede usar para la reducción de dimensiones). El razonamiento para esto es que algunas medidas son mejor orientado hacia la selección/extracción de características, mientras que otros son preferibles para la ponderación de características específicamente en sus vectores de documentos (es decir, los datos indexados). Esto se debe generalmente a que las medidas de reducción de dimensiones se determinan sobre una base por categoría, mientras que las medidas de ponderación del índice tienden a estar más orientadas a los documentos para dar una representación vectorial superior.

Con respecto a LDA, LSI y moVMF, me temo que tengo muy poca experiencia de ellos para proporcionar alguna orientación. Desafortunadamente tampoco he trabajado con conjuntos de datos turcos o el lenguaje python.

 32
Author: TheManWithNoName,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-19 20:47:57

Recomendaría la reducción de dimensionalidad en lugar de la selección de características. Considere bien descomposición de valor singular, análisis de componentes principales , o incluso mejor considerando que está diseñado para representaciones de bolsa de palabras, Asignación de Dirichlet Latente. Esto le permitirá retener teóricamente las representaciones que incluyen todas las palabras, pero colapsarlas a menos dimensiones explotando las relaciones de similitud (o incluso de tipo sinonimia) entre ellos.

Todos estos métodos tienen implementaciones bastante estándar a las que puedes acceder y ejecutar---si nos haces saber qué idioma estás usando, yo o alguien más podremos dirigirte en la dirección correcta.

 5
Author: Ben Allison,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-30 11:30:07

Se recomienda el svm lineal para entidades de alta dimensión. Según mi experiencia, la limitación final de la precisión de SVM depende de las "características"positivas y negativas. Puede hacer una búsqueda de cuadrícula (o en el caso de svm lineal, solo puede buscar el mejor valor de costo) para encontrar los parámetros óptimos para la máxima precisión, pero al final está limitado por la separabilidad de sus conjuntos de características. El hecho de que usted no está recibiendo 90% significa que usted todavía tiene algo de trabajo para hacer encontrar mejor características para describir a los miembros de las clases.

 1
Author: Bee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-28 22:37:45

Estoy seguro de que esto es demasiado tarde para ser útil para el póster, pero tal vez sea útil para alguien más. El enfoque chi-cuadrado para la reducción de características es bastante simple de implementar. Asumiendo la clasificación binaria BoW en las clases C1 y C2, para cada característica f en candidate_features calcule la frecuencia de f en C1; calcule el total de palabras C1; repita los cálculos para C2; Calcule un chi-sqaure determine el filtro candidate_features basado en si el valor p está por debajo de un cierto umbral (por ejemplo, p http://streamhacker.com/2010/06/16/text-classification-sentiment-analysis-eliminate-low-information-features/ (aunque si recuerdo correctamente, creo que el autor aplica incorrectamente esta técnica a sus datos de prueba, lo que sesga los resultados reportados).

 1
Author: Brandon Loudermilk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-10 21:02:09