Aplicación de clasificación de texto: identificación de spam común, análisis de sentimiento.
Dirección de clasificación de texto: hay dos categorías principales, clasificación múltiple y clasificación de etiquetas múltiples
Métodos de clasificación de texto: métodos tradicionales de aprendizaje automático (Bayes, svm, etc.) y profundidad Métodos de aprendizaje (fastText, TextCNN, etc.).
La idea de este artículo: presenta principalmente el proceso de procesamiento y los principales métodos de clasificación de texto. Esfuércese por que los lectores comprendan por dónde empezar cuando se trata de la clasificación de textos, a qué cuestiones prestar atención y qué métodos adoptar en diferentes escenarios.
El procesamiento de la clasificación de texto se puede dividir a grandes rasgos en preprocesamiento de texto, extracción de características de texto y construcción de modelos de clasificación. En comparación con el procesamiento y clasificación de textos en inglés, el preprocesamiento de textos en chino es una tecnología clave.
La segmentación de palabras chinas es una tecnología clave en la clasificación de textos chinos. La granularidad de las características es mucho mejor que la granularidad de las palabras. La mayoría de sus algoritmos de clasificación no consideran la información del orden de las palabras, y la información gramatical de n-gramas basada en la granularidad de las palabras pierde demasiado. El siguiente es un breve resumen de la tecnología de segmentación de palabras china: segmentación de palabras basada en la coincidencia de cadenas, segmentación de palabras basada en la comprensión y segmentación de palabras basada en estadísticas [1].
1. Método de segmentación de palabras basado en la coincidencia de cadenas:
Proceso: esta es una segmentación de palabras chinas basada en un diccionario. El núcleo es establecer primero una tabla de diccionario unificada. Cuando una oración necesita segmentación de palabras, primero la oración se divide en varias partes y cada parte corresponde al diccionario uno a uno. Si la palabra está en el diccionario, la segmentación de palabras es exitosa; de lo contrario, la coincidencia dividida continúa hasta que sea exitosa.
Núcleo: el diccionario, las reglas de segmentación de palabras y el orden de coincidencia son el núcleo.
Análisis: la ventaja es que es rápido, la complejidad del tiempo se puede mantener en O (n), la implementación es simple y el efecto es aceptable, pero no funciona bien cuando se trata de ambigüedades; y palabras desconocidas.
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 logra el efecto de reconocimiento de palabras al permitir que la computadora simule la comprensión humana de las oraciones. 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 la ambigüedad. Suele constar 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 sobre palabras y oraciones para juzgar la ambigüedad de la segmentación de palabras, es decir, simula el proceso de comprensión de oraciones por parte de las personas. Este método de segmentación de palabras requiere una gran cantidad de información y conocimiento del idioma. Debido a la generalidad y complejidad del conocimiento del idioma chino, es difícil organizar la información diversa del idioma en un formato que las máquinas puedan leer directamente, por lo que el sistema de segmentación de palabras 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: estadísticamente hablando, la segmentación de palabras es un problema de maximización de probabilidad, es decir, dividir oraciones. Con base en el corpus, cuente las probabilidades de palabras compuestas de palabras adyacentes. Cuantas más veces aparezcan palabras adyacentes, mayor será la probabilidad. Entonces, la segmentación de palabras se basa en valores de probabilidad, por lo que es importante un corpus completo.
Los principales modelos estadísticos incluyen: N-grama, modelo oculto de Markov, modelo de máxima entropía (ME), modelo de campo aleatorio condicional (CRF), etc.
1. Segmentación de palabras: la segmentación de tareas chinas es esencial. Generalmente se utiliza la segmentación Jieba, que es la mejor de la industria.
2. Eliminar palabras vacías: crea un diccionario de palabras vacías. Actualmente existen alrededor de 2.000 diccionarios sobre palabras vacías. Las palabras vacías incluyen principalmente algunos adverbios, adjetivos y algunas conjunciones. Mantener una tabla de palabras no indexadas es en realidad un proceso de extracción de características, que es esencialmente una parte de la selección de características.
3. Etiquetado de parte del discurso: determina la parte del discurso después de la segmentación de palabras (verbo, sustantivo, adjetivo, adverbio...), que se puede obtener estableciendo parámetros al usar Street Fighter. segmentación de palabras.
El núcleo de la clasificación de texto es cómo extraer características clave del texto que puedan reflejar 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 constar de cuatro partes:
1. Representación de características basada en el modelo de bolsa: la bolsa construida por unidad de palabras (Unigram) puede alcanzar decenas de miles de dimensiones. y se consideran ternarios. El tamaño del modelo de bolsa puede alcanzar cientos de miles, por lo que la representación de características basada en el modelo de bolsa suele ser extremadamente escasa.
(1) Hay tres métodos para empaquetar funciones:
(2) Ventajas y desventajas:
2 Representación de funciones basada en incrustación: calcular texto mediante. característica de vectores de palabras. (Principalmente para textos cortos)
4. Funciones extraídas en función de la tarea en sí: Diseñado principalmente para tareas específicas. A través de nuestra observación y percepción de los datos, es posible que podamos descubrir algunas características potencialmente útiles. A veces, estas funciones manuales mejoran enormemente el rendimiento de la clasificación final. Por ejemplo, para la tarea de clasificar reseñas positivas y negativas, el número de palabras negativas es una característica unidimensional importante para las reseñas negativas.
5. Fusión de características: cuando la dimensión de la característica es alta y el patrón de datos es complejo, se recomienda utilizar un modelo no lineal (como los populares GDBT y XG Boost para cuando la dimensión de la característica es alta); bajo y el patrón de datos es simple. En este caso, se recomienda utilizar un modelo lineal simple (como LR).
6. Características del tema:
LDA (tema del documento): se puede suponer que hay t temas en la colección de documentos y un documento puede pertenecer a uno o más temas. El modelo LDA se puede utilizar para calcular la probabilidad de que un documento pertenezca a un tema determinado y así se puede calcular la matriz DxT. Las funciones LDA funcionan bien en tareas como el etiquetado de documentos.
LSI (semántica latente del documento): la semántica latente del documento se calcula descomponiendo la matriz de frecuencia documento-palabra, similar a LDA, y es la característica latente del documento.
Esta parte no es el punto. Se pueden utilizar todos los modelos que se pueden utilizar para la clasificación en algoritmos tradicionales de aprendizaje automático, como modelos NB, modelos de bosque aleatorio (RF), modelos de clasificación SVM, modelos de clasificación KNN y modelos de clasificación de redes neuronales.
Aquí se hace hincapié en el modelo bayesiano porque la industria utiliza este modelo para identificar spam [2].
1. Modelo fastText: fastText es un artículo publicado recientemente en julio de 2016 después de que Mikolov, el autor de word2vec, se mudara a Facebook: consejos para una clasificación de texto eficiente [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. Puede dar intuitivamente la contribución de cada palabra. El resultado, básicamente, se ha convertido en el estándar para los modelos Seq2Seq. De hecho, la clasificación de texto también puede entenderse como un Seq2Seq especial en cierto sentido, por lo que solo recientemente se ha considerado la introducción del mecanismo de atención.
Proceso:
RNN hacia adelante y hacia atrás se utiliza para obtener la representación del contexto hacia adelante y hacia atrás de cada palabra:
La representación de la palabra se convierte en The forma de conectar vectores de palabras y vectores de contexto hacia adelante y hacia atrás;
Obviamente, el modelo no es lo más importante: un buen diseño del modelo es muy importante para obtener buenos resultados, y también es un tema candente en el comunidad académica. Pero en la práctica, la carga de trabajo del modelo ocupa relativamente poco tiempo. Aunque la segunda parte presenta cinco modelos de CNN/RNN y sus variantes, de hecho, CNN por sí sola es suficiente para lograr muy buenos resultados en las tareas de clasificación de texto chino. Nuestras pruebas experimentales muestran que RCNN mejora la precisión en aproximadamente 1, pero no es muy significativo. El mejor enfoque es utilizar el modelo TextCNN para depurar al máximo el efecto general de la tarea y luego intentar mejorar el modelo.
Comprenda sus datos: aunque una de las grandes ventajas de aplicar el aprendizaje profundo es que ya no requiere una ingeniería de funciones manual tediosa e ineficiente, si simplemente lo trata como una caja negra, inevitablemente terminará Duda con frecuencia de la vida. Asegúrese de comprender sus datos y recuerde que, ya sea que utilice métodos tradicionales o métodos de aprendizaje profundo, el sentido de los datos siempre es muy importante. Preste atención al análisis de casos incorrectos para comprender si sus datos son adecuados y por qué son correctos o incorrectos.
Ajuste de hiperparámetros: puede consultar los consejos de ajuste de parámetros de la red de aprendizaje profundo: columna Zhihu
Asegúrese de utilizar la deserción: hay dos situaciones que se deben evitar: la cantidad de datos es extremadamente pequeña , o utiliza mejores métodos de regularización, como bn. De hecho, hemos probado diferentes parámetros de abandono y el mejor es 0,5, por lo que si tiene recursos informáticos limitados, el valor predeterminado de 0,5 es una buena opción.
No es necesario que seas softmax loss: depende de tus datos. Si su tarea no es mutuamente excluyente entre varias categorías, puede intentar entrenar varios clasificadores binarios, es decir, definir el problema como de múltiples etiquetas en lugar de múltiples clases. Después del ajuste, la precisión mejoró > 1.
Desequilibrio de categorías: Básicamente, es una conclusión que se ha verificado en muchos escenarios: si tus pérdidas están dominadas por determinadas categorías, probablemente serán negativas en general. Se recomienda probar un método similar al booststrap para ajustar la pérdida de peso de la muestra.
Evite el shock del entrenamiento: de forma predeterminada, se debe agregar un factor de muestreo aleatorio para que la distribución de datos sea lo más iid posible. El mecanismo de barajado predeterminado puede hacer que los resultados del entrenamiento sean más estables. Si el modelo entrenado aún es muy inestable, considere ajustar la tasa de aprendizaje o mini_batch_size.
Concurso de clasificación de textos de etiquetas múltiples de Zhihu, que presenta los sitios web del primer y segundo lugar:
Resumen del campeón de la competencia de PNL: 3 millones de tareas de clasificación de textos de etiquetas múltiples de Zhihu (con profundidad) Aprenda el código fuente)
De participar en la Copa Zhihu Kanshan 2017 al segundo lugar.