Red de conocimiento informático - Aprendizaje de código fuente - Descripción general de la ingeniería de funciones de clasificación de texto

Descripción general de la ingeniería de funciones de clasificación de texto

Primero, ¿cómo construir un proyecto completo de aprendizaje automático?

Existen principalmente los siguientes pasos:

Personalmente creo que el paso más importante aquí es el paso 5, que es la ingeniería de funciones.

¿Qué es la ingeniería de características? Como sugiere el nombre, se trata de una serie de procesos de ingeniería sobre datos sin procesar con el objetivo de refinarlos y convertirlos en características que puedan usarse como entrada para algoritmos y modelos.

En esencia, la ingeniería de características es el proceso de representar y presentar datos; en la práctica, el objetivo de la ingeniería de características es eliminar las impurezas y la redundancia de los datos originales y diseñar características más efectivas para describir la relación entre los datos. problema a resolver y el modelo predictivo.

Una buena ingeniería de características puede ① reducir la complejidad y el sobreajuste del modelo; ② mejorar el rendimiento de generalización del modelo; ③ acelerar el entrenamiento y la predicción del modelo;

¿Por qué se necesita la ingeniería de funciones? En tareas reales, los datos que recibimos suelen ser de alta dimensión, no lineales y con mucho ruido, como una imagen de 256 * 256 píxeles * 3 (número de canales RGB). Si no extraemos características, entonces. need Se utilizan las 196,608 características, lo que inevitablemente provocará un sobreajuste del clasificador. De hecho, solo unas pocas partes de la imagen son críticas y puede utilizar métodos de compresión para mostrarlas en imágenes más pequeñas e introducirlas en la red de capacitación. Básicamente, la compresión de imágenes es una forma de ingeniería de funciones.

¿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 que describen las características del texto y capturar el mapeo 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 del texto es el trabajo básico del procesamiento del lenguaje natural. La calidad de la representación del texto 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 es el proceso de representar el texto como una serie de vectores que expresan la semántica del texto.

El modelo de bolsa de palabras es el primer método de vectorización de texto, que utiliza palabras como unidad básica de procesamiento.

Bag Of Words (BOW) se basa en la idea simple de construir una representación vectorial única y única para cada palabra en el diccionario del conjunto de entrenamiento, con cada palabra representada por 00000... .0100 . .. expresar. 00000, la longitud del vector es la longitud del vocabulario. Para cada palabra representada por el vector one-hot, solo hay una posición específica que es 1, y las posiciones restantes son todas 0.

Para el texto, también está representado por un vector 1*dim (dim representa el número de palabras), donde cada elemento representa el número de veces que el elemento relevante en el vocabulario aparece en el documento, es decir , el elemento aparece en el documento varias veces. (También hay modelos de bolsa de palabras, en los que una palabra se establece en 1 cada vez que aparece y en 0 en caso contrario, sin otros números excepto 0 y 1).

Por ejemplo, aquí hay dos documentos :

p>

① Introducción a la frecuencia de palabras: como sugiere el nombre, esta es la representación de bolsa de palabras del vector de texto, que ya no es el 00102100 normal. ..., los pesos de las palabras en las posiciones correspondientes ya no son los mismos, pero los pesos de las palabras en las posiciones correspondientes son los mismos, y los pesos de las palabras en las posiciones correspondientes también son diferentes de los pesos de las palabras. Como sugiere el nombre, 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 palabras en el texto, sino la frecuencia de las palabras. la palabra en todo el corpus. La bolsa de texto mejorada se representa como 0 0 67 0 187 43 0 0...

② Presentamos tf-idf: este es el método más común: Tf-Idf, es decir, documento de frecuencia inversa de palabras. frecuencia .

TF-IDF tiene dos significados, uno es "Frecuencia de términos" (abreviado como TF) y el otro es "Frecuencia de documentos inversa" (abreviado como IDF). Es una técnica de ponderación comúnmente utilizada en recuperación de información (recuperación de información) y minería de textos (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 común de IDF es la siguiente

Aquí D es el número total de documentos en el corpus, D(i) es el número de documentos en el corpus en el que se encuentra la palabra i Aparece Tenga en cuenta que el denominador aquí es 1 y es el resultado del suavizado laplaciano, utilizado para evitar que algunas palabras más nuevas no aparezcan en el corpus, lo que da como resultado un denominador de cero. Además, tenga en cuenta que aquí se utiliza la función logarítmica, que toma el logaritmo del valor de idf.

En cuanto a por qué tf e idf se multiplican en lugar de sumar, por qué idf es un logaritmo y la elección del método de suavizado de Laplace, todos estos se obtienen a través de muchas derivaciones teóricas e investigaciones experimentales. Los detalles no se enumeran aquí.

Finalmente, cabe señalar que en diferentes documentos del mismo corpus, el valor tf-idf de la misma palabra 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 los plazos se basa en un documento específico.

③ Introducción a N-gram

Para resolver el problema de que el modelo de bolsa de palabras no puede expresar el orden de las palabras, la gente ha propuesto el modelo N-gram. En esencia, N-gram es un modelo de lenguaje. Aquí tomamos prestada su idea, es decir, para resolver el problema de que el modelo de bolsa de palabras no considera la relación de orden de las palabras, construimos una diapositiva deslizante. palabras de tamaño N ventana para realizar nuevas caracterizaciones. De hecho, el modelo de bolsa de palabras es un modelo de 1 gramo. Por ejemplo, para una oración

, su modelo de bolsa de palabras correspondiente es:

El modelo de 2 gramos correspondiente es:

El resto de la La oración es básicamente la misma que el modelo de bolsa de palabras: la desventaja del modelo N-grama es que genera una mayor sobrecarga de espacio/tiempo y las dimensiones también son más escasas.

Los N-gramas para el modelado del lenguaje se describirán en detalle más adelante.

También se pueden encontrar otros métodos en "Procesamiento del lenguaje natural de Python": Tecnologías y algoritmos principales P85: algoritmo Tf-idf, algoritmo TextRank, algoritmo LSA/LSI/LDA

Representación de texto Es la base del procesamiento del lenguaje natural. El desempeño de la representación del texto afecta directamente el desempeño de todo el sistema de procesamiento del lenguaje natural. La calidad de la representación del texto 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 es el proceso de representar el texto como una serie de vectores que expresan la semántica del texto.

Actualmente, la mayoría de las investigaciones sobre vectorización de textos se implementan mediante la vectorización de palabras. Al mismo tiempo, un número considerable de 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. Esto se conoce como modelo de espacio de palabras y los vectores de palabras generalmente se entrenan utilizando un modelo de red neuronal que modela la relación entre el contexto y la palabra objetivo.

word2vec guante fasttext

Mejoras en word2vec → doc2vec: word2vec pierde información del orden del texto que contiene información importante.

doc2vec tiene dos modelos principales: el modelo DM y DBOW. DM corresponde al modelo CBOW, que puede predecir la distribución de probabilidad de las palabras objetivo en función de los vectores de palabras de contexto y los vectores de segmento. DBOW corresponde a Skip-gram, que solo ingresa vectores de segmento y predice; aleatoriamente de los párrafos. Distribución de probabilidad de palabras muestreadas. En general, doc2vec es una versión mejorada de word2vec. No solo puede extraer la información semántica del texto, sino también la información de secuencia del texto.

Hay mucho sobre word2vec, así que no entraré en detalles aquí

cnn rnn

La ventaja de NN es que puede. implementar el modelo end2end Entrenamiento y pruebas, utilizando la no linealidad y numerosos parámetros del modelo para aprender características sin extraerlas manualmente. CNN es bueno para capturar información local clave en el texto, mientras que RNN es bueno para capturar información contextual en el texto (teniendo en cuenta la información del orden de las palabras) y tiene ciertas capacidades de memoria.