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

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

Categoría: Text Analytics

Nota

Se aplica a: machine learning Studio (clásico)

Este contenido solo pertenece a Studio (clásico). Se han agregado módulos similares de arrastrar y colocar al diseñador de Azure Machine Learning. Obtenga más información en este artículo comparativa de las dos versiones.

Información general sobre el módulo

En este artículo se explica cómo usar las características de extraer N-grama desde el módulo de texto en Azure machine learning Studio (clásico) , para encadenar texto y extraer solo los fragmentos de información más importantes de las cadenas de texto largo.

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

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

Dado que este módulo admite características de n-gramas, también se puede usar cuando se puntuación.

Cómo configurar la extracción de características de N-grama desde el texto

Ese módulo admite los siguientes escenarios para crear, actualizar o aplicar un diccionario n-grama:

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

  • Tiene un conjunto de características de texto existente y desea actualizar los pesos procesando nuevas entradas de texto. Vea las instrucciones.

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

Podría usar el experimento de ejemplo como referencia.

Crear un nuevo Diccionario n-grama 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, puede que tenga que procesar una sola columna a la vez.

  3. En el modo de vocabulario, seleccione crear para indicar que está creando una nueva lista de características de n-grama.

    Para obtener información sobre cómo actualizar un conjunto existente de características de n-grama, vea 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 van a extraer y almacenar.

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

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

    Por ejemplo, supongamos que el diccionario contiene el unigrama "equipo". Un valor k de 0 significa que "equipo" es el único unigrama válido. Si aumenta el valor de k a 1, puede omitir un carácter intermedio, lo que le permite buscar secuencias más similares. Un carácter SKIP-grama con un valor k de 1 diferirá en uno de los caracteres de 0 a k unigrama. Por lo tanto, los SKIP-gramas "conputer" y "compuuter" se considerarían parte de la misma entrada de diccionario que "Computer". Si se establece el valor k en 2, se coincidirían con palabras más distintas.

    Para obtener más información sobre cómo se usan los SKIP-gramas en el análisis de texto, consulte este documento: generación de candidatos e ingeniería de características para la normalización léxica supervisada

  6. La opción, la función de ponderación, solo es necesaria si se combinan o se actualizan los vocabularios. Especifica cómo se deben ponderar entre sí los términos de los dos vocabularios y sus puntuaciones.

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

    Por ejemplo, supongamos que la longitud mínima de la palabra se estableció en 3 (el valor predeterminado), y tenía una entrada con una sola palabra y otra que tenía un texto corto como "bonito lugar". Ambas filas se pasarán por alto.

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

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

  9. Para la frecuencia absoluta del documento n-grama mínima, escriba un número que indique las repeticiones mínimas necesarias para cualquier palabra o token que se va a incluir en el Diccionario de n-grama.

    Por ejemplo, si usa el valor predeterminado de 5, cualquier n-grama o SKIP-grama debe aparecer al menos cinco veces en el corpus para que se incluya en el Diccionario n-grama.

  10. Para la relación máxima de documento n-grama, 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 de la 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 cualquier fila que contenga palabras que no estén en el vocabulario de n-grama, que se denominan palabras "fuera de vocabulario" (OOV).

    Todos los léxicos son finitos; por lo tanto, es casi seguro que el corpus de texto incluye palabras que no están en el Diccionario de léxico o n-grama. Sin embargo, estas palabras pueden tener distintos efectos en los modelos de idioma, incluidas las tasas de error más altas en comparación con las palabras en el vocabulario (IV). Dependiendo de su dominio, estas palabras OOV podrían 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 marcar inicio de oración para agregar una secuencia de caracteres especiales que indique el principio de una oración en el Diccionario de n-grama. El prefijo de los 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 Discourse.

    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-grama si desea normalizar los vectores de características. Al hacerlo, cada vector de características de n-grama se divide por su norma L2.

    La normalización se utiliza 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 filtros, se crean todos los n-gramas posibles, lo que aumenta la cobertura a costa de que el Diccionario sea más largo y, posiblemente, se incluyan muchos términos poco frecuentes.
    • En un corpus pequeño, el uso de la selección de características puede reducir en gran medida 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 de la lista desplegable método de puntuación de características :

    • PearsonCorrelation: calcula la correlación de Pearson según el 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 del vector de texto.
    • KendallCorrelation: calcula la correlación de Kendall, en función del valor de la columna de etiqueta y del vector de texto.
    • SpearmanCorrelation: calcula la correlación de la sonda, en función del valor de la columna de etiqueta y del 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.
    • FisherScore: calcula la puntuación de Fisher para el valor de la columna de etiqueta y el vector de texto.
    • Selección de características basada en recuentos: crea nuevas características basadas en los recuentos de valores. Este método no requiere una columna de etiqueta.

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

    • Número de características deseadas: requerido si usa un método de selección de características distinto de la selección de características basada en recuentos.

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

    • Número mínimo de elementos distintos de cero: obligatorio si se 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 característica potencial.

  15. Ejecute el experimento.

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

Actualizar un diccionario n-grama existente o fusionar mediante combinación 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 quiere usar. 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 de resultados de una instancia de nivel superior de las características de extraer N-grama desde el módulo de 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 el modo de vocabulario, seleccione una de las siguientes opciones de actualización de la lista desplegable:

    • ReadOnly: representa la corpus de entrada en términos del vocabulario de entrada. Es decir, en lugar de calcular las frecuencias de los términos del nuevo conjunto de datos de texto (en la entrada izquierda), las ponderaciones n-grama del vocabulario de entrada se aplican tal cual.

      Sugerencia

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

    • Update: crea un nuevo vocabulario de n-grama desde el 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.

    • Merge: genera un nuevo vocabulario n-grama desde la corpus de entrada.

      Esta opción es útil si va a pasar un vocabulario de fondo como entrada al módulo y desea reducir el peso de las palabras irrelevantes. 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 de documento inversa inferior en el vocabulario creado.

      Sugerencia

      Utilice 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 se combinan o se actualizan los vocabularios. La función de ponderación especifica cómo se deben ponderar las puntuaciones de DF y IDF en los dos vocabularios entre sí:

    • 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 dado y 0 de lo contrario.
    • TF Weight: asigna una puntuación de términos y frecuencias (TF) a los n-gramas extraídos. El valor de cada n-grama es su frecuencia de aparición en un documento determinado.
    • IDF Weight: asigna una puntuación de frecuencia de documento inversa (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
    • TF-IDF Weight: asigna una puntuación de frecuencia de documento inverso (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.
    • Peso del gráfico: asigna puntuación a los n-gramas extraídos según la clasificación del gráfico TextRank. TextRank es un modelo de clasificación basado en gráficos para el procesamiento de texto. Los algoritmos de clasificación basados en gráficos son esencialmente una forma de decidir la importancia en función de la información global. Para obtener más información, vea TextRank: traer Order into Text by Rada Mihalcea y Paul Tarau.
  6. Para todas las demás opciones, vea las descripciones de propiedades en la sección anterior.

  7. Ejecute el experimento.

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

Puntuar o publicar 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 usar selección de características basada en filtro a False .

  4. Para publicar el experimento, guarde el vocabulario del resultado como conjunto de resultados.

    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.

Resultados

En el módulo de extracción de características de N-grama de texto se crean dos tipos de resultados:

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

    • NgramsString: una cadena que contiene todos los n-gramas únicos.
    • NumUniqueNgrams: el recuento de n-gramos extraído usando las propiedades especificadas.
    • Matriz dispersa de repeticiones de n-grama: 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 cambios para reutilizarlo con un conjunto diferente de entradas o para una 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 se pueden usar los resultados, en el siguiente ejemplo breve se usa el conjunto de elementos de Review de Amazon Book disponible en Studio (clásico). El dataaset se filtró para mostrar solo las revisiones con una puntuación de 4 o 5, y revisa con una longitud de cadena de menos de 300 caracteres.

En este conjunto de contenido, se seleccionó una breve revisión que contiene solo 92 palabras. Aquí el nombre del autor se ha reemplazado 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 resultados para texto de revisión de ejemplo

En 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 gramos de la revisión de ejemplo.

    Cuando la longitud de la n-grama se incrementó a 3 y el valor de SKIP-grama establecido en 1, se encontraron 15 n-gramas.

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

  • NgramsString: con la configuración predeterminada, se devolvieron estos n-gramas: ["su", "Best", "One", "High", "recomiende", "this", "novela", "his_best", "highly_recommend", "recommend_this", "this_novel"]

    Con una longitud de n-grama de 3 y el valor de SKIP-gram de 1, se devolvieron estos n-gramas: ["su", "Best", "One", "High", "rehow", "this", "novela", "his_best", "highly_recommend", "recommend_this", "this_novel", "best_one", "one_best", "highly_this", "highly_recommend_this"]

  • Matriz dispersa de repeticiones de n-grama

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

    ReviewText. administrado ReviewText. [y _ alta] ReviewText. cualifica ReviewText. [se _ recomienda encarecidamente]
    0 0 0,301511 0,301511

    Sugerencia

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

Vocabulario de resultados para 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 cambios para reutilizarlo con un conjunto diferente de entradas o para una actualización posterior. Las puntuaciones DF e IDF se generan independientemente de otras opciones. Al combinar vocabularios, estos valores almacenados se utilizan como entrada para la función de ponderación que elija.

  • ID: un 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 DataSet; 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-grama, el número de omisiones y el uso de la selección de características para determinar la dimensionalidad del texto corpus y la proporción de características óptima.

Para obtener más información acerca de los n-gramas y los SKIP-gramas, 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 de vocabulario Modo de vocabulario Crear

ReadOnly

Actualizar

Merge
Obligatorio Crear Especificar cómo se debe crear el vocabulario de n-grama a partir de Corpus
Tamaño de N-gramas Entero >=1 Obligatorio 1 Indicar el tamaño máximo de los n-gramas que se van a crear
Tamaño K-SKIP Entero >=0 Obligatorio 0 Indicar el tamaño de k-SKIP
Weighting (función) Weighting (función) Peso binario

Peso de TF

Peso de IDF

Peso TF-IDF

Peso del gráfico
Obligatorio Peso binario Elegir la función de ponderación que se va a aplicar a cada valor de n-grama
Longitud mínima de la palabra Entero >=1 Obligatorio 3 Especificar la longitud mínima de las palabras que se van a incluir en n-gramas
Longitud máxima de la palabra Entero >= 2 Obligatorio 25 Especificar la longitud máxima de las palabras que se van a incluir en n-gramas
Frecuencia absoluta del documento n-grama mínima Float >= 1,0 Obligatorio 5.0 Frecuencia absoluta del documento n-grama mínima
Relación máxima de documento n-grama Float >= 0,0001 Obligatorio 1.0 Relación máxima de documento n-grama
Detectar filas fuera de vocabulario Boolean Obligatorio true Detectar filas que tengan palabras que no estén en el vocabulario de n-grama (OOV)
Marca de inicio de oración Boolean Obligatorio false Indicar si se debe agregar una marca de oración a n-gramas
Normalizar vectores de características de n-grama Boolean Obligatorio Normalizar vectores de características de n-grama. Si es true, el vector de características de n-grama se divide por su norma L2.
Usar la selección de características basada en filtros True (tipo falso) True

False
Obligatorio True Usar 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 la 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

Vea también

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