Una revisión de la ingeniería de funciones de clasificación de texto
Existen principalmente los siguientes pasos:
Personalmente, creo que el paso más importante aquí es el quinto paso, la ingeniería de funciones.
¿Qué es un proyecto especial? Como sugiere el nombre, consiste en realizar una serie de procesamientos de ingeniería en los datos originales y refinarlos para convertirlos en características como entrada para algoritmos y modelos.
Esencialmente, la ingeniería de características es un proceso de representación y presentación de datos. En el trabajo real, el propósito de la ingeniería de características es eliminar impurezas y redundancias en los datos originales y diseñar características más eficientes para describir la relación entre el problema que se resuelve y el modelo de predicción.
Una buena ingeniería de características puede reducir la complejidad del modelo y el sobreajuste; ② mejorar el rendimiento de generalización del modelo; ③ acelerar el entrenamiento y la predicción del modelo.
¿Por qué necesitamos realizar ingeniería de características? En tareas reales, los datos que recibimos suelen ser de alta dimensión, no lineales y ruidosos, como una imagen de 256*256 píxeles*3 (número de canales RGB). Si no se extraen las características, debemos usar todas estas 196608 características, lo que inevitablemente conducirá a un sobreajuste del clasificador. De hecho, para una imagen, su información clave solo tiene unas pocas partes. Puede utilizar el método de compresión para mostrarlas en imágenes más pequeñas e ingresarlas en la red de capacitación. La compresión de imágenes es esencialmente una forma de ingeniería de características.
¿Qué pasa con los datos no estructurados como el texto (las imágenes, el audio, el texto y el vídeo son todos datos no estructurados)?
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:
La representación de texto es el trabajo básico en el procesamiento del lenguaje natural y su calidad afecta directamente el rendimiento de todo el sistema de procesamiento del lenguaje natural. La vectorización de texto es una forma importante de representación de texto. La vectorización de texto se refiere a representar el texto como una serie de vectores que pueden expresar la semántica del texto.
El modelo de bolsa de palabras es el primer método de vectorización de texto con palabras como unidad básica de procesamiento.
Bag Of Words (BOW) se basa en una idea simple: construir un vector one-hot único para cada palabra en el vocabulario del conjunto de entrenamiento, y cada palabra está representada por 00000...0100... 00000, y la longitud del vector es la longitud del vocabulario. Para cada palabra, sólo hay un vector activo.
Para un texto, también está representado por un vector de 1*dim (dim representa el número de palabras), donde cada elemento representa el número de veces que el elemento relevante del diccionario aparece en el documento. (En algunos modelos de bolsa de palabras, siempre que aparezca esta palabra, se establece en 1; de lo contrario, se establece en 0 y no hay otros números excepto 0 y 1).
Por ejemplo, hay son los dos documentos siguientes:
p>① Introducir la frecuencia de las palabras: como sugiere el nombre, esto significa que el vector de representación de la bolsa de palabras del texto ya no es el 00102100 ordinario..., y el peso de la palabra en la posición correspondiente ya no es el número de una determinada palabra en el texto, sino la frecuencia de la palabra en todo el corpus. La bolsa de palabras de texto mejorada se expresa de la siguiente manera: 0 0 67 0 187 43 0 0. ...
②Introducción a tf-idf: este es un enfoque común: Tf-Idf, que es la frecuencia de documentos inversa de frecuencia de palabras.
TF-IDF tiene dos significados, uno es "frecuencia de palabras" (TF para abreviar) y el otro es "frecuencia inversa de documentos" (IDF para abreviar). Es una técnica de ponderación comúnmente utilizada en la recuperación de información y minería de textos.
TF-IDF se basa en la simple idea de que la importancia de una palabra es directamente proporcional al número de veces que aparece en el documento e inversamente proporcional al número de veces que aparece en el corpus.
La fórmula de cálculo comúnmente utilizada de IDF es la siguiente
Aquí D es el número total de documentos en el corpus y D(i) es el número de documentos en los que la palabra I aparece en el corpus. Tenga en cuenta que el denominador aquí es 1 y que el suavizado laplaciano se utiliza para evitar la situación en la que algunas palabras nuevas no aparecen en el corpus, lo que hace que el denominador sea 0. También tenga en cuenta que aquí se utiliza la función de registro, que toma el logaritmo del valor idf.
En cuanto a por qué tf e idf se multiplican en lugar de sumar, por qué idf toma el logaritmo y la elección del método de suavizado de Laplace, estos se han estudiado teórica y experimentalmente. Los detalles específicos no están aquí. mostrarse.
Finalmente, cabe señalar que el valor tf-idf de la misma palabra en diferentes documentos bajo el mismo corpus es diferente: para ser precisos, el valor idf es el mismo, pero el valor tf es diferente , porque el cálculo de la frecuencia de palabras se basa en documentos específicos.
③Introduzca N-grama.
Para solucionar el defecto de que el modelo de bolsa de palabras no puede expresar el orden de las palabras, alguien propuso el modelo N-grama. En esencia, N-gram es un modelo de lenguaje. Aquí solo tomamos prestada su idea, es decir, para resolver el problema de que el modelo de bolsa de palabras no considera el orden de las palabras, construimos una ventana deslizante de palabras de tamaño N. para una nueva representación. De hecho, el modelo de bolsa de palabras es un modelo de 1 gramo. Por ejemplo, para una oración,
El modelo de bolsa de palabras correspondiente es:
El modelo de 2 gramos correspondiente es:
De lo contrario, es Básicamente es lo mismo que el modelo de bolsa de palabras. Lo mismo: la desventaja del modelo N-gram es que provocará una mayor sobrecarga de espacio-tiempo y dimensiones más escasas.
El conocimiento sobre N-gram en el modelo de lenguaje se presentará más adelante.
También se pueden encontrar otros métodos en "Práctica de procesamiento del lenguaje natural de Python: tecnologías y algoritmos centrales" P85: algoritmo TF-IDF, algoritmo TextRank, algoritmo LSA/LSI/LDA.
La representación de texto es el trabajo básico en el procesamiento del lenguaje natural, y su calidad afecta directamente al rendimiento de todo el sistema de procesamiento del lenguaje natural. La vectorización de texto es una forma importante de representación de texto. La vectorización de texto se refiere a representar el texto como una serie de vectores que pueden expresar la semántica del texto.
Actualmente, la mayor parte de las investigaciones sobre vectorización de textos se consiguen a través de la vectorización de palabras. Al mismo tiempo, bastantes investigadores consideran los artículos o las frases como la unidad básica de procesamiento del texto y han propuesto las tecnologías doc2vec y ste2vec.
La idea central de la representación de palabras basada en incrustaciones es que las palabras con contexto similar tienen una semántica similar. Este es el famoso modelo de espacio de palabras. Los vectores de palabras suelen entrenarse mediante modelos de redes neuronales, que se basan en la relación entre el contexto y las palabras objetivo.
texto rápido de word2vec guante
word2vec → Mejora de doc2vec: word2vec pierde la información del orden de las palabras del texto y el orden de las palabras del texto contiene información importante. Doc2vec tiene principalmente dos modelos: los modelos DM y DBOW. Los modelos DM y CBOW se corresponden entre sí y pueden predecir la distribución de probabilidad de las palabras objetivo en función de los vectores de palabras de contexto y los vectores de fragmentos. DBOW corresponde a Skip-gram y solo ingresa vectores de fragmentos para predecir; los fragmentos. Distribución de probabilidad sobre frases seleccionadas al azar. En general, doc2vec es una versión mejorada de word2vec, que no solo extrae la información semántica del texto, sino que también extrae la información del orden de las palabras del texto.
Word2vec es un poco largo, así que no entraré en ello aquí. Movámonos aquí.
cnn rnn
La ventaja de NN es que puede entrenar y probar el modelo extremo a extremo, utilizando la no linealidad y muchos parámetros del modelo para aprender características sin extraer características manualmente. CNN es bueno para capturar información local clave en el texto, mientras que RNN es bueno para capturar la información contextual del texto (considerando la información del orden de las palabras) y tiene cierta capacidad de memoria.