Compartir a través de


Extracción de características de n-gramas a partir de texto

Importante

El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.

A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.

La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

Crea características de diccionario de n-gramas y realiza la selección de características en ellas.

Categoría: Text Analytics

Nota:

Solo se aplica a: Machine Learning Studio (clásico)

Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.

Información general sobre el módulo

En este artículo se explica cómo usar el módulo Extract N-Gram Features from Text (Extraer características de n-gramas del texto) de Machine Learning Studio (clásico) para caracterizar el texto y extraer solo los fragmentos de información más importantes de cadenas de texto largo.

El módulo funciona mediante la creación de un diccionario de n-gramas a partir de una columna de texto libre que especifique como entrada. El módulo aplica varias métricas de información a la lista de n-gramas para reducir la dimensionalidad de los datos e identificar los n-gramas que tienen el mayor valor de información.

Si ya ha creado un vocabulario de n-gramas, puede actualizar sus estadísticas o combinar en nuevos términos mediante un algoritmo de ponderación de su elección.

Dado que este módulo admite la caracterización a partir de n-gramas, también se puede usar al puntuar.

Cómo configurar Extraer características de n-gramas de texto

Esos módulos admiten los siguientes escenarios para crear, actualizar o aplicar un diccionario de n-gramas:

  • Está desarrollando un nuevo modelo mediante una columna de columna de texto libre y quiere extraer características de texto basadas exclusivamente en los datos de entrada. Consulte las instrucciones.

  • Tiene un conjunto existente de características de texto y desea actualizar las ponderaciones mediante el procesamiento de nuevas entradas de texto. Consulte las instrucciones.

  • Está generando puntuaciones a partir de un modelo predictivo y necesita generar y usar entradas de texto con un diccionario de n-gramas como parte del proceso de puntuación. Consulte las instrucciones.

Puede usar el experimento de ejemplo como referencia.

Creación de un nuevo diccionario de n-gramas a partir de una columna de texto

  1. Agregue el módulo Extract N-Gram Features from Text al experimento y conecte el conjunto de datos que contiene el texto que desea procesar.

  2. En Columna de texto, elija una columna de tipo cadena que contenga el texto que desea extraer.

    De forma predeterminada, el módulo selecciona todas las columnas de cadena. Sin embargo, dado que el resultado es detallado, es posible que deba procesar una sola columna a la vez.

  3. En Modo vocabulario, seleccione Crear para indicar que está creando una nueva lista de características de n-gramas.

    Para obtener información sobre cómo actualizar un conjunto existente de características de n-gramas, consulte esta sección.

  4. En Tamaño de N-gramas, escriba un número que indique el tamaño máximo de los n-gramas que se extraerán y almacenarán.

    Por ejemplo, si escribe , 3se crearán unigramas, bigrams y trigramas.

  5. En Tamaño K-Skip, escriba el número máximo de caracteres que pueden ser diferentes al identificar variantes de n-gramas. Si el valor de k se establece en 0, solo se pueden crear n-gramas a partir de una secuencia de caracteres única y contigua.

    Por ejemplo, suponga que el diccionario contiene el unigrama "equipo". Un valor k de 0 significaría que "equipo" es el único unigrama válido. Si aumenta el valor de k a 1, puede omitir un carácter que interviene, lo que le permite encontrar secuencias más similares. Un grama skip-gram con un valor k de 1 se diferenciaría en un carácter del unigrama de 0 k . Por lo tanto, los gramas skip-grams "conputer" y "compuuter" se considerarían parte de la misma entrada de diccionario que "equipo". Establecer el valor k en 2 coincidiría con palabras aún más distintas.

    Para obtener más información sobre cómo se usan los gramas de skip en el análisis de texto, consulte este documento: Candidate Generation and Feature Engineering for Supervised Lexical Normalization (Generación de candidatos e ingeniería de características para normalización léxica supervisada).

  6. La opción Weighting function (Función de ponderación) solo es necesaria si combina o actualiza vocabularios. Especifica cómo se deben ponderar los términos de los dos vocabularios y sus puntuaciones entre sí.

  7. En Longitud mínima de la palabra, escriba la longitud mínima de las cadenas que se pueden analizar.

    Por ejemplo, suponga que la longitud mínima de la palabra se estableció en 3 (el valor predeterminado) y que tenía una entrada que tenía una sola palabra y otra que tenía algún texto corto como "buen lugar". Ambas filas se omitirían.

  8. En Longitud máxima de la palabra, escriba el número máximo de letras que se pueden usar en cualquier palabra de un n-grama.

    De forma predeterminada, se permiten hasta 25 caracteres por palabra o token. Palabras más largas que las que se quitan, en el supuesto de que posiblemente sean secuencias de caracteres arbitrarios en lugar de elementos léxicos reales.

  9. En Minimum n-gram document absolute frequency (Frecuencia absoluta mínima del documento de n-gramas), escriba un número que indique las repeticiones mínimas necesarias para que cualquier palabra o token único se incluya en el diccionario de n-gramas.

    Por ejemplo, si usa el valor predeterminado 5, cualquier n-grama o skip-gram debe aparecer al menos cinco veces en el corpus para incluirse en el diccionario de n-gramas.

  10. En Maximum n-gram document ratio (Proporción máxima de documentos de n-gramas), escriba un número que represente esta relación: el número de filas que contienen un n-grama determinado, sobre el número de filas del corpus general.

    Por ejemplo, una proporción de 1 indicaría que, incluso aunque un n-grama concreto esté presente en todas las filas, se podría agregar al diccionario de n-gramas. Por lo general, una palabra que aparece en todas las filas se considera una palabra irrelevante y se elimina. Para filtrar las palabras irrelevantes que dependen de un dominio, intente reducir esta proporción.

    Importante

    La frecuencia de aparición de palabras concretas no es uniforme, pero varía de un documento a otro. Por ejemplo, si está analizando los comentarios de los clientes sobre un producto específico, el nombre del producto puede tener una frecuencia muy alta y estar próximo a considerarse una palabra irrelevante y, sin embargo, ser un término significativo en otros contextos.

  11. Seleccione la opción Detectar filas fuera de vocabulario si desea generar un indicador para las filas que contengan palabras que no estén en el vocabulario de n-gramas, que se denominan palabras "fuera de vocabulario" (OOV).

    Todos los léxicos son finitos; Por lo tanto, casi se garantiza que el corpus de texto incluya palabras que no están en el léxico o diccionario de n-gramas. Sin embargo, estas palabras pueden tener varios efectos en los modelos de lenguaje, incluidas mayores tasas de error en comparación con las palabras en vocabulario (IV). Dependiendo del dominio, estas palabras de OOV pueden representar palabras de contenido importantes.

    Al identificar las filas que contienen estas palabras, puede compensar los efectos de estos términos o controlar los términos y las filas relacionadas por separado.

  12. Seleccione la opción Mark begin-of-sentence (Marcar inicio de oración) para agregar una secuencia de caracteres especial que indique el principio de una oración en el diccionario de n-gramas. El prefijo n-gramas que inician una oración con un carácter especial es común en el análisis de texto y puede ser útil para analizar los límites de la delimitación.

    Azure ML Studio (clásico) inserta el símbolo |||. No se puede especificar un carácter personalizado.

  13. Seleccione la opción Normalizar vectores de características de n-gramas si desea normalizar los vectores de características. Al hacerlo, cada vector de característica de n-gramas se divide por su norma L2.

    La normalización se usa de forma predeterminada.

  14. Establezca Usar selección de características basada en filtros en True si desea habilitar opciones adicionales para administrar el tamaño del vector de características de texto.

    • La selección de características puede ser útil para reducir la dimensionalidad de los n-gramas.
    • Cuando no se aplica la selección de filtro, se crean todos los n-gramas posibles, lo que aumenta la cobertura a costa de que el diccionario sea más largo y posiblemente incluya muchos términos poco frecuentes.
    • En un corpus pequeño, el uso de la selección de características puede reducir considerablemente el número de términos que se crean.
    • Para obtener más información, vea Selección de características basada en filtros.

    Si usa la selección de características, debe seleccionar un método en la lista desplegable Método de puntuación de características:

    • PearsonCorrelation: calcula la correlación de Pearson en función del valor de la columna de etiqueta y el vector de texto.
    • MutualInformation: calcula una puntuación de información mutua, en función del valor de la columna de etiqueta y el vector de texto.
    • KendallCorrelation: calcula la correlación de Kendall, en función del valor de la columna de etiqueta y el vector de texto.
    • SpearmanCorrelation: calcula la correlación de Spearman, en función del valor de la columna de etiqueta y el vector de texto.
    • ChiSquared: usa el método chi cuadrado para calcular la correlación entre el valor de la columna de etiqueta y el vector de texto.
    • Score Desenlazador: calcula la puntuación de Lugar para el valor de la columna de etiqueta y el vector de texto.
    • Selección de características basada en recuento: crea nuevas características basadas en los recuentos de valores. No se requiere una columna de etiqueta con este método.

    En función del método que elija, establezca una de las siguientes opciones:

    • Número de características deseadas: es necesario si usa cualquier método de selección de características que no sea la selección de características basada en recuento.

      En el proceso de selección de características, todos los n-gramas obtienen una puntuación de características y los n-gramas se clasifican por puntuación. El valor que establezca aquí determina cuántas de las características más clasificadas son la salida. Se descartan los n-gramas con puntuaciones de características inferiores.

    • Número mínimo de elementos distintos de cero: obligatorio si usa la selección de características basada en recuento.

      Escriba un número entero que represente el número mínimo de instancias totales necesarias para tabular los recuentos de una posible característica.

  15. Ejecute el experimento.

    Consulte esta sección para obtener una explicación de los resultados y su formato.

Actualizar un diccionario de n-gramas existente o combinar diccionarios

  1. Agregue el módulo Extract N-Gram Features from Text al experimento y conecte el conjunto de datos que contiene el texto que desea procesar al puerto Dataset (Conjunto de datos).

  2. En Columna de texto, elija la columna de texto que contiene el texto que desea caracterizar. De forma predeterminada, el módulo selecciona todas las columnas de tipo cadena. Para obtener los mejores resultados, procese una sola columna cada vez.

  3. Agregue el conjunto de datos guardado que contiene un diccionario de n-gramas que se generó previamente y conéctelo al puerto Input vocabulary (Vocabulario de entrada). También puede conectar la salida de vocabulario result de una instancia ascendente del módulo Extract N-Gram Features from Text (Extraer características de n-gramas del texto).

    Para combinar o actualizar el vocabulario, el esquema del vocabulario de entrada debe coincidir exactamente con el formato esperado. No quite ninguna columna de ni agregue ninguna columna al vocabulario de entrada.

  4. En Modo vocabulario, seleccione una de las siguientes opciones de actualización en la lista desplegable:

    • ReadOnly: representa el corpus de entrada en términos del vocabulario de entrada. Es decir, en lugar de calcular las frecuencias de términos del nuevo conjunto de datos de texto (en la entrada izquierda), los pesos de n-gramas del vocabulario de entrada se aplican tal y como están.

      Sugerencia

      Use esta opción al puntuar un clasificador de texto.

    • Update: crea un vocabulario de n-gramas a partir del corpus de entrada y lo combina con el vocabulario de entrada. En otras palabras, puede agregar nuevas entradas al vocabulario creado desde el vocabulario de entrada, o puede actualizar las entradas existentes.

      Sugerencia

      Use esta opción para las actualizaciones incrementales de vocabulario con lotes de datos entrantes.

    • Combinación: genera un nuevo vocabulario de n-gramas a partir del corpus de entrada.

      Esta opción es útil si pasa un vocabulario de fondo como entrada al módulo y desea reducir el peso de las palabras de detenerse. En otras palabras, a cada entrada que tenga una puntuación de frecuencia de documento alta en el vocabulario en segundo plano se le asignará una puntuación de frecuencia inversa de documento inferior en el vocabulario creado.

      Sugerencia

      Use esta opción si no desea agregar nuevas entradas al vocabulario creado desde la entrada y solo desea ajustar las puntuaciones de las entradas existentes.

  5. La opción Elegir la función de ponderación es necesaria si combina o actualiza vocabularios. La función de ponderación especifica cómo se deben ponderar entre sí las puntuaciones DF e IDF de los dos vocabularios:

    • Binary Weight (Peso binario): asigna un valor de presencia binaria a los n-gramas extraídos. En otras palabras, el valor de cada n-grama es 1 cuando existe en el documento especificado y 0 en caso contrario.
    • Peso de TF: asigna una puntuación de frecuencia de término (TF) a los n-gramas extraídos. El valor de cada n-grama es su frecuencia de aparición en un documento determinado.
    • Peso de IDF: asigna una puntuación inversa de frecuencia de documento (IDF) a los n-gramas extraídos. El valor de cada n-grama es el registro del tamaño del corpus dividido por su frecuencia de aparición en todo el corpus. Es decir: IDF = log of corpus_size / document_frequency
    • Peso de TF-IDF: asigna una puntuación de frecuencia de término/frecuencia inversa del documento (TF/IDF) a los n-gramas extraídos. El valor de cada n-grama es su puntuación de TF multiplicada por su puntuación de IDF.
    • Graph peso: asigna la puntuación a los n-gramas extraídos en función de la clasificación del gráfico TextRank. TextRank es un modelo de clasificación basado en grafos para el procesamiento de texto. Graph algoritmos de clasificación basados en claves son esencialmente una manera de decidir la importancia en función de la información global. Para obtener más información, vea TextRank: Bringing Order into Texts (TextRank: poner orden en los textos) de Rada Mihalhal y Paul Queu.
  6. Para todas las demás opciones, consulte las descripciones de propiedades de la sección anterior.

  7. Ejecute el experimento.

    Consulte esta sección para obtener una explicación de los resultados y su formato.

Puntuación o publicación de un modelo que usa n-gramas

  1. Copie el módulo Extract N-Gram Features from Text del flujo de datos de entrenamiento al de puntuación.

  2. Conecte la salida Result Vocabulary (Vocabulario resultante) desde el flujo de datos de entrenamiento a Input Vocabulary (Vocabulario de entrada) en el flujo de datos de puntuación.

  3. En el flujo de trabajo de puntuación, modifique el módulo Extract N-Gram Features from Text, realice estos cambios y deje todo lo demás igual:

    • Establezca el parámetro Vocabulary mode (Modo Vocabulario) en ReadOnly.

    • Cambie la opción Use filter based feature selection (Usar selección de características basada en filtros) a False.

  4. Para publicar el experimento, guarde Result Vocabulary (Vocabulario resultante) como un conjunto de datos.

    A continuación, conecte el conjunto de datos guardado al módulo Extract N-Gram Features from Text en el gráfico de puntuación.

Results

El módulo Extract N-Gram Features from Text (Extraer características de n-gramas del texto) crea dos tipos de salida:

  • Conjunto de datos de resultados: un resumen del texto analizado junto con los n-gramas extraídos. Las columnas que no seleccionó en la opción Columna de texto se pasan a la salida. Por cada columna de texto que analice, el módulo genera estas columnas:

    • NgramsString: cadena que contiene todos los n-gramas únicos.
    • NumUniqueNgrams: recuento de n-gramas extraídos mediante las propiedades especificadas.
    • Matriz dispersa de apariciones de n-gramas: el módulo genera una columna para cada n-grama que se encuentra en el corpus total y agrega una puntuación en cada columna para indicar el peso del n-grama para esa fila.
  • Result vocabulary (Vocabulario resultante): el vocabulario contiene el diccionario de n-gramas real, junto con las puntuaciones de frecuencia de los términos que se generan como parte del análisis. Puede guardar el conjunto de datos para volver a usarlo con un conjunto diferente de entradas o para su actualización posterior. También puede actualizar las puntuaciones o reutilizar el vocabulario para el modelado y la puntuación.

Ejemplo de resultados

Para ilustrar cómo puede usar los resultados, en el ejemplo corto siguiente se usa el conjunto de datos amazon book review disponible en Studio (clásico). El conjunto de datos se filtró para mostrar solo las revisiones con una puntuación de 4 o 5, y las revisiones con una longitud de cadena inferior a 300 caracteres.

En este conjunto de datos, se seleccionó una breve revisión que contiene solo 92 palabras. Aquí se ha reemplazado el nombre del autor por Xxx y el título del libro se ha reemplazado por Yyy:

"Xxx at his best ! Yyy is one of Xxx's best yet! I highly recommend this novel."

Conjunto de datos de resultados para el texto de revisión de ejemplo

Para este ejemplo, el módulo generó estas columnas:

  • NumUniqueNgrams: para esta revisión de 92 palabras, con la configuración predeterminada, se extrajeron 11 n-gramas de la revisión de ejemplo.

    Cuando se aumentó la longitud de n-gramas a 3 y el valor skip-gram establecido en 1, se encontraron 15 n-gramas.

    Cuando se aplicó la selección de características al valor predeterminado, no se extrajeron n-gramas.

  • NgramsString: con la configuración predeterminada, se devolvieron estos n-gramas: ["his","best","one","highly","recommend","this","novel","his_best","highly_recommend","recommend_this","this_novel"]

    Con una longitud de n-gramas de 3 y el valor skip-gram de 1, se devolvieron estos n-gramas: ["his","best","one","highly","recommend","this","novel","his_best","highly_recommend","recommend_this","this_novel","best_one","one_best","highly_this","highly_recommend_this"]

  • Matriz dispersa de repeticiones de n-gramas

    Para esta revisión concreta, los resultados incluyen estas columnas:

    ReviewText. [administra] ReviewText. [and_highly] ReviewText. [highly] ReviewText. [highly_recommend]
    0 0 0.301511 0.301511

    Sugerencia

    Si tiene problemas para ver una columna determinada, adjunte el módulo Seleccionar columnas del conjunto de datos a la salida y, a continuación, use la función de búsqueda para filtrar las columnas por nombre.

Vocabulario de resultados para el texto de revisión de ejemplo

el vocabulario contiene el diccionario de n-gramas real, junto con las puntuaciones de frecuencia de los términos que se generan como parte del análisis. Puede guardar el conjunto de datos para volver a usarlo con un conjunto diferente de entradas o para su actualización posterior. Las puntuaciones DF e IDF se generan independientemente de otras opciones. Al combinar vocabularios, estos valores almacenados se usan como entrada para la función de ponderación que elija.

  • Identificador: identificador generado para cada n-grama único.
  • Ngram: n-grama. Los espacios u otros separadores de palabras se reemplazan por el carácter de subrayado.
  • DF: la puntuación de frecuencia de términos del n-grama en el corpus original.
  • IDF: la puntuación de la frecuencia inversa de documento del n-grama en el corpus original.

Es posible actualizar manualmente este conjunto de datos; sin embargo, tenga cuidado, ya que puede introducir errores. Por ejemplo:

  • Se producirá un error si el módulo encuentra filas duplicadas con la misma clave en el vocabulario de entrada. Asegúrese de que no haya dos filas en el vocabulario que contengan la misma palabra.
  • El esquema de entrada de los conjuntos de datos de vocabulario debe coincidir exactamente, incluidos los tipos y nombres de las columnas.
  • La columna ID (Identificador) y la columna de puntuación DF deben contener valores enteros.
  • La columna IDF debe ser de tipo FLOAT (punto flotante).

Notas técnicas

Se recomienda experimentar con distintos intervalos de valores para la longitud de n-gramas, el número de gramas de skip y el uso de la selección de características para determinar la dimensionalidad del corpus de texto y la relación óptima de características.

Para obtener más información sobre n-gramas y skip-grams, consulte estos recursos:

Entradas esperadas

Nombre Tipo Descripción
Dataset Tabla de datos Datos de entrada
Vocabulario de entrada Tabla de datos Vocabulario de entrada

Parámetros del módulo

Nombre Tipo Intervalo Opcional Valor predeterminado Descripción
Número mínimo de elementos distintos de cero Entero >=1 Solo se aplica cuando se usa el método siguiente:

Basada en recuento
1 Especificar el número de características para la salida (método Basada en recuento)
Columna de texto Selección de columnas Obligatorio StringFeature Nombre o índice basado en uno de la columna de texto
Modo vocabulario Modo vocabulario Crear

ReadOnly

Actualizar

Combinar
Obligatorio Crear Especificar cómo se debe crear el vocabulario de n-gramas a partir del corpus
Tamaño de N-gramas Entero >=1 Obligatorio 1 Indicar el tamaño máximo de n-gramas para crear
Tamaño de K-Skip Entero >=0 Obligatorio 0 Indicar el tamaño de k-skip
Función de ponderación Función de ponderación Peso binario

TF Weight

Peso de IDF

Peso de TF-IDF

Graph peso
Obligatorio Peso binario Elija la función de ponderación que se aplicará a cada valor de n-gramas.
Longitud mínima de la palabra Entero >=1 Obligatorio 3 Especificar la longitud mínima de las palabras que se incluirán en n-gramas
Longitud máxima de la palabra Entero >=2 Obligatorio 25 Especificar la longitud máxima de palabras que se incluirán en n-gramas
Frecuencia absoluta mínima del documento de n-gramas Float >=1,0 Obligatorio 5.0 Frecuencia absoluta mínima del documento de n-gramas
Proporción máxima de documentos de n-gramas Float >=0,0001 Obligatorio 1,0 Proporción máxima de documentos de n-gramas
Detección de filas fuera de vocabulario Boolean Obligatorio true Detectar filas que tienen palabras que no están en el vocabulario de n-gramas (OOV)
Marcar el inicio de oración Boolean Obligatorio false Indicar si se debe agregar una marca de oración de inicio a n-gramas
Normalización de vectores de características de n-gramas Boolean Obligatorio Normalizar vectores de características de n-gramas. Si es true, el vector de característica de n-gramas se divide por su norma L2.
Uso de la selección de características basada en filtros True False Type True

False
Obligatorio True Uso de la selección de características basada en filtros para reducir la dimensionalidad
Método de puntuación de características Método de puntuación Correlación de Pearson

Información mutua

Correlación de Kendall

Correlación de Spearman

Chi cuadrado

Puntuación de Fisher

Basada en recuento
Solo se aplica cuando la opción Usar selección de características basada en filtros es True Puntuación de Fisher Elegir el método que se utilizará para puntuar
Columna de destino Selección de columnas Se aplica cuando se usa uno de los métodos siguientes:

Correlación de Pearson

Información mutua

Correlación de Kendall

Correlación de Spearman

Chi cuadrado

Puntuación de Fisher
Especificar la columna de destino
Número de características deseadas Entero >=1 Se aplica cuando se usa uno de los métodos siguientes:

Correlación de Pearson

Información mutua

Correlación de Kendall

Correlación de Spearman

Chi cuadrado

Puntuación de Fisher
1 Especificar el número de características para la salida en los resultados

Salidas

Nombre Tipo Descripción
Conjunto de datos de resultados Tabla de datos Características extraídas
Vocabulario resultante Tabla de datos Vocabulario resultante

Consulte también

Text Analytics
Lista de módulos de Machine Learning A-Z