Red de conocimiento informático - Aprendizaje de código fuente - ¿Cuáles son los métodos de clasificación de texto?

¿Cuáles son los métodos de clasificación de texto?

Problema de clasificación de texto: dado un documento p (que puede contener un título t), clasifique el documento en una o más de n categorías

Aplicaciones de clasificación de texto: identificación y sentimiento de spam comunes análisis

Dirección de clasificación de texto: principalmente clasificación binaria, clasificación multivariada, clasificación de etiquetas múltiples

Método de clasificación de texto: método tradicional de aprendizaje automático (bayesiano, svm, etc.), métodos de aprendizaje profundo (fastText, TextCNN, etc.)

Idea de este artículo: este artículo presenta principalmente los métodos de procesamiento de clasificación de texto. svm, etc.), métodos de aprendizaje profundo (fastText, TextCNN, etc.)

Idea de este artículo: este artículo presenta principalmente los métodos de procesamiento de clasificación de texto, entre los cuales se encuentran los métodos tradicionales de aprendizaje automático. Principales: este artículo presenta principalmente los métodos de procesamiento de clasificación de texto, cuáles son los principales. Su compromiso es permitir que los lectores comprendan por dónde empezar cuando se enfrentan a problemas de clasificación de texto, a qué cuestiones prestar atención y qué métodos utilizar en diferentes escenarios.

El procesamiento de la clasificación de texto se divide a grandes rasgos en preprocesamiento de texto, extracción de características de texto, construcción de modelos de clasificación, etc. En comparación con la clasificación del procesamiento de textos en inglés, el preprocesamiento de textos en chino es una tecnología clave.

Una de las tecnologías clave para la clasificación de textos chinos es la clasificación de palabras chinas. La granularidad de caracteres de la granularidad de características es mucho mejor que la granularidad de palabras, pero la mayoría de los algoritmos de clasificación no consideran la información del orden de las palabras y la clasificación basada en la granularidad de las palabras pierde demasiada información de n-gramas. El siguiente es un breve resumen de la tecnología de segmentación de palabras china: método de segmentación de palabras basado en la coincidencia de cadenas, método de segmentación de palabras basado en la comprensión y método de segmentación de palabras basado en estadísticas [1].

1. Método de segmentación de palabras basado en la coincidencia de cadenas:

Proceso: este es un método de segmentación de palabras chinas basado en un diccionario. El núcleo es establecer primero una tabla de diccionario unificada. necesidades de oración Al segmentar palabras, primero divida la oración en varias partes, cada parte tiene una correspondencia uno a uno con el diccionario. Si la palabra está en el diccionario, la segmentación es exitosa. De lo contrario, la segmentación y la coincidencia continúan hasta el éxito.

Núcleo: El diccionario, las reglas de segmentación y el orden de coincidencia son el núcleo.

Análisis: la ventaja es que es rápido, la complejidad del tiempo se puede controlar en O (n), la implementación es simple y el efecto es bueno, pero el efecto de procesamiento de palabras ambiguas y no registradas sí lo es; no es bueno.

2. Método de segmentación de palabras basado en la comprensión: el método de segmentación de palabras basado en la comprensión permite a la computadora simular la comprensión humana de las oraciones para lograr el efecto de reconocimiento de palabras. La idea básica es realizar análisis sintáctico y semántico mientras se segmentan palabras y utilizar información sintáctica y semántica para abordar fenómenos confusos. Por lo general, consta de tres partes: subsistema de segmentación de palabras, subsistema de sintaxis y semántica y parte de control general. Bajo la coordinación de la parte de control general, el subsistema de segmentación de palabras puede obtener información sintáctica y semántica de palabras, oraciones, etc., y juzgar la ambigüedad de la segmentación de palabras, es decir, simular el proceso de comprensión humana de las oraciones. Este método de desambiguación requiere el uso de una gran cantidad de conocimientos e información lingüística. Debido a la universalidad y complejidad del conocimiento chino, es difícil organizar la información de varios idiomas en una forma que las máquinas puedan leer directamente, por lo que el sistema de desambiguación basado en la comprensión aún se encuentra en la etapa experimental.

3. Método de segmentación de palabras basado en estadísticas:

Proceso: El método estadístico cree que la segmentación de palabras es un problema de maximización de probabilidad, es decir, al dividir oraciones, se basa en la corpus, y las estadísticas se basan en palabras adyacentes. La probabilidad de ocurrencia de palabras compuestas de palabras, es decir, el número de ocurrencias y la probabilidad de ocurrencia de palabras adyacentes, se segmenta de acuerdo con el valor de probabilidad de segmentación de palabras, la probabilidad de ocurrencia y el valor de probabilidad. , por lo que un corpus completo es muy importante.

Los principales modelos estadísticos incluyen: N-grama, Modelo Oculto de Markov (HMM), Modelo de Máxima Entropía (ME), Campo Aleatorio Condicional (CRF), etc.

1. Segmentación: la segmentación de tareas chinas es esencial y generalmente se utiliza la segmentación de Jieba, que lidera la industria.

2. Palabras vacías: establezca un diccionario de palabras vacías. Actualmente hay más de 2000 diccionarios de palabras vacías que incluyen principalmente algunos adverbios, adjetivos y algunos conectivos. Mantener una lista de palabras vacías es en realidad un proceso de extracción de características, que es esencialmente una parte de la selección de características.

3. Anotación de parte del discurso: después de determinar la parte del discurso (verbo, sustantivo, adjetivo, adverbio...) mediante la segmentación de palabras, puede obtener la parte del discurso mediante configuración de parámetros al utilizar la segmentación de palabras jieba.

El núcleo de la clasificación de texto radica en cómo extraer características clave del texto que puedan describir las características del texto y capturar la asignación entre características y categorías. Por lo tanto, la ingeniería de características es muy importante y puede estar compuesta de cuatro partes:

1. Representación de características basada en el modelo de bolsa de palabras: la bolsa de palabras (Unigram) integrada en unidades de palabras puede llegar a decenas. Si el tamaño binario de Bigram, Trigram y la bolsa de palabras puede alcanzar cientos de miles, la representación de características basada en el modelo de bolsa de palabras suele ser extremadamente escasa.

(1) Hay tres métodos de funciones de bolsa de palabras:

(2) Ventajas y desventajas:

2. Representación de funciones basada en incrustaciones : Las características del texto están representadas por palabras. Se calcula el vector. (Principalmente para textos cortos)

4. Funciones extraídas en función de la tarea en sí: diseñadas principalmente para tareas específicas A través de nuestra observación y percepción de los datos, es posible que podamos descubrir algunas funciones potencialmente útiles. A veces, estas características artificiales pueden mejorar enormemente la clasificación final. Por ejemplo, tomemos la tarea de clasificar comentarios positivos y negativos. Para los comentarios negativos, la cantidad de palabras negativas contenidas es una característica unidimensional muy importante.

5. Fusión de características: para dimensiones de características más altas y patrones de datos complejos, se recomienda utilizar modelos no lineales (como el popular GDBT, XGBoost, se recomienda para dimensiones de características más bajas y patrones de datos simples); utilizar un modelo lineal simple (como LR).

6. Características del tema:

LDA (tema del documento): Se puede suponer que el conjunto de documentos tiene T temas. Un documento puede pertenecer a uno o más temas, los cuales pueden ser. calculado a través del modelo LDA La probabilidad de que un documento pertenezca a un tema permite calcular la matriz DxT. Las funciones de LDA son excelentes en tareas como la anotación de documentos.

LSI (semántica latente del documento): calcula la semántica latente del documento descomponiendo la matriz de frecuencia de palabras del documento, que es algo similar a LDA y es la característica latente del documento.

Esta parte no es el foco. Se pueden usar todos los modelos que se pueden usar para la clasificación en algoritmos de aprendizaje automático tradicionales. Los más comunes incluyen: modelo NB, modelo de bosque aleatorio (RF), modelo de clasificación SVM, KNN. modelo de clasificación, modelo de clasificación de redes neuronales.

Aquí nos centramos en los modelos bayesianos, ya que este modelo es utilizado por la industria para identificar spam [2].

1. Modelo fastText: fastText es un artículo que el autor de word2vec, Mikolov, acaba de publicar en julio de 2016 después de cambiarse a Facebook: Bolsa de trucos para una clasificación de texto eficiente [3].3

Estructura del modelo:

Mejora: el mecanismo de atención es un mecanismo de modelado de memoria a largo plazo comúnmente utilizado en el campo del procesamiento del lenguaje natural. Es básicamente el estándar para el modelo Seq2Seq porque puede mostrar cada paso de manera muy detallada. intuitivamente. La contribución de las palabras a los resultados. De hecho, la clasificación de texto también puede entenderse como un tipo especial de Seq2Seq en cierto sentido, por lo que en un futuro próximo también consideraremos utilizar el mecanismo de Atención.

Proceso:

Utilice RNN hacia adelante y hacia atrás para obtener la representación de contexto hacia adelante y hacia atrás de cada palabra:

La representación de la palabra se convierte en un vector de palabra Y la forma de conexión de vector de contexto hacia adelante y hacia atrás:

El modelo obviamente no es lo más importante: un buen diseño del modelo es crucial para obtener buenos resultados, que también es un tema candente en la comunidad académica. Pero en realidad, la cantidad de trabajo que implica el modelado es relativamente pequeña.

Aunque la segunda parte presenta 5 CNN/RNN y sus modelos variantes, usar CNN solo en tareas de clasificación de texto reales es suficiente para lograr buenos resultados. En nuestra prueba experimental, la precisión de RCNN es solo de alrededor de 1, lo cual es de poca importancia. El mejor enfoque es utilizar primero el modelo TextCNN para ajustar la tarea general a resultados óptimos y luego intentar mejorar el modelo.

Comprenda sus datos: si bien una de las grandes ventajas de aplicar el aprendizaje profundo es que elimina la necesidad de una ingeniería de funciones manual tediosa e ineficiente, si lo trata simplemente como una caja negra, inevitablemente lo hará. dudarlo. Es importante comprender sus datos y recordar que el conocimiento de los datos siempre es importante, ya sea que se utilicen métodos tradicionales o de aprendizaje profundo. Debe hacer hincapié en el análisis de casos incorrectos para comprender si sus datos son apropiados, por qué son correctos y por qué son incorrectos.

Ajuste de hiperparámetros: puede consultar "Técnicas de ajuste de parámetros de red de aprendizaje profundo: columna Zhihu"

Asegúrese de utilizar el abandono: hay dos situaciones en las que no se puede utilizar: primero, la cantidad de datos es extremadamente pequeña. La segunda razón es que utilizó un mejor método de regularización, como bn. En la práctica, hemos probado el abandono con diferentes parámetros y el mejor sigue siendo 0,5, por lo que si no utiliza el mismo método, es mejor utilizar 0,5, por lo que si sus recursos informáticos son muy limitados, el valor predeterminado es 0,5. Una buena elección.

No necesariamente es una pérdida de softmax: depende de sus datos, si su tarea no es mutuamente excluyente entre múltiples clases, puede intentar entrenar múltiples clasificadores binarios, es decir, definir el problema como Con múltiples etiquetas en lugar de multiclase, nuestra precisión ajustada aún mejora en >1.

Problema de desequilibrio de clases: Básicamente, esta conclusión se ha verificado en muchos escenarios de aplicación: si su pérdida está dominada por algunas clases, entonces la mayoría de las pérdidas serán negativas para toda la clase. Se recomienda probar algo como booststrap para ajustar los pesos de la muestra en la pérdida.

Evite las oscilaciones del entrenamiento: de forma predeterminada, debe aumentar el factor de muestreo aleatorio para que la distribución de datos sea lo más iid posible, y el mecanismo de barajado predeterminado puede hacer que los resultados del entrenamiento sean más estables. Si las oscilaciones del modelo entrenado aún son grandes, considere ajustar la tasa de aprendizaje o mini_batch_size.

Copa Zhihu Kanzan 2017 del finalista al segundo puesto