preprocesamiento de texto

Realiza operaciones de limpieza en texto

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 describe cómo usar el módulo de texto preprocesamiento en Azure machine learning Studio (clásico) para limpiar y simplificar el texto. Al preprocesar el texto, puede crear de forma más sencilla características significativas a partir del texto.

Por ejemplo, el módulo de texto preprocesamiento admite estas operaciones comunes en el texto:

  • Eliminación de palabras irrelevantes
  • Uso de expresiones regulares para buscar y reemplazar cadenas de destino específicas
  • Lematización: esta operación convierte varias palabras relacionadas en una única forma canónica
  • Filtrado de partes específicas de la voz
  • Normalización de mayúsculas
  • Eliminación de ciertas clases de caracteres, como números, caracteres especiales y secuencias de caracteres repetidos, como "aaaa"
  • Identificación y eliminación de correos electrónicos y direcciones URL

Puede elegir qué opciones de limpieza usar y, opcionalmente, especificar una lista personalizada de palabras irrelevantes.

El módulo admite actualmente seis idiomas: Inglés, español, Francés, holandés, alemán e italiano.

Cómo configurar el preprocesamiento de texto

  1. Agregue el módulo de texto de preprocesamiento al experimento en Studio (clásico). Puede encontrar este módulo en Text Analytics.

  2. Conecte un conjunto de datos que incluya al menos una columna que contenga texto.

  3. Si el texto que está preprocesando está en el mismo idioma, seleccione el idioma en la lista desplegable idioma . Con esta opción, el texto se preprocesa utilizando reglas lingüísticas específicas del idioma seleccionado.

  4. Para preprocesar texto que puede contener varios idiomas, elija la opción la columna contiene el idioma .

    A continuación, use la propiedad columna de idioma de referencia cultural para elegir una columna del conjunto de filas que indique el idioma utilizado en cada fila. La columna debe contener un identificador de idioma estándar, como "inglés" o en .

    En función de este identificador, el módulo aplica los recursos lingüísticos adecuados para procesar el texto.

    Si el conjunto de DataSet no contiene tales identificadores, use el módulo detectar idioma para analizar el idioma de antemano y generar un identificador.

    Sugerencia

    Se produce un error si se incluye un idioma no admitido. Vea la sección notas técnicas para obtener más información.

  5. Quitar por parte de la voz: Seleccione esta opción si desea aplicar el análisis de la parte de la voz. Después, puede usar las etiquetas de la parte de la voz para quitar ciertas clases de palabras.

    • Quitar nombres: Seleccione esta opción para quitar nombres.
    • Quitar adjetivos: Seleccione esta opción para quitar adjetivos.
    • Quitar verbos: Seleccione esta opción para quitar los verbos.

    Para obtener más información sobre el método de identificación de la parte de la voz que se usa, consulte la sección notas técnicas .

  6. Columna de texto que se va a limpiar: seleccione las columnas que desea preprocesar.

  7. Remove stop words (Eliminar palabras irrelevantes): seleccione esta opción si desea aplicar una lista de palabras irrelevantes predefinida a la columna de texto. La eliminación de palabras irrelevantes se realiza antes que cualquier otro proceso.

    Las listas de palabra irrelevante son dependientes del lenguaje y personalizables. para obtener más información, consulte la sección notas técnicas .

  8. Lemmatization (Lematización): seleccione esta opción si desea que las palabras se representen en su forma canónica. Esta opción es útil para reducir el número de apariciones únicas de otros tokens de texto similares.

    El proceso lematización es muy dependiente del lenguaje; Vea la sección notas técnicas para obtener más información.

  9. Detect sentences (Detectar frases): seleccione esta opción si desea que el módulo inserte una marca de límite de frase al realizar el análisis.

    Este módulo usa una serie de tres caracteres de barra vertical ||| para representar el terminador de frase.

  10. Opcionalmente, puede realizar operaciones de búsqueda y reemplazo personalizadas mediante expresiones regulares.

    • Expresión regular personalizada: defina el texto que está buscando.
    • Custom replacement string (Personalizar cadena de sustitución): defina un único valor de sustitución.
  11. Normalize case to lowercase (Normalización de mayúsculas en minúsculas): seleccione esta opción si desea convertir los caracteres ASCII en mayúsculas a sus correspondientes formas en minúsculas.

    Si no se normalizan los caracteres, la misma palabra en mayúsculas y minúsculas se consideran dos palabras diferentes: por ejemplo, AM es igual que am .

  12. Opcionalmente, puede quitar los siguientes tipos de caracteres o secuencias de caracteres del texto de salida procesado:

    • Remove numbers (Quitar números): seleccione esta opción para quitar todos los caracteres numéricos del idioma especificado.

    La identificación de lo que constituye un número depende del dominio y depende del idioma. Si los caracteres numéricos forman parte integral de una palabra conocida, es posible que no se quite el número.

    • Quitar caracteres especiales: Utilice esta opción para reemplazar los caracteres especiales no alfanuméricos por el carácter de barra vertical | .

      Para obtener más información sobre los caracteres especiales, consulte la sección notas técnicas .

    • Quitar caracteres duplicados: Seleccione esta opción para quitar las secuencias que repitan los caracteres. Por ejemplo, se quitaría una secuencia como "AAAAA".

    • Remove email addresses (Quitar direcciones de correo electrónico): seleccione esta opción para quitar cualquier secuencia del formato <string>@<string>.

    • Quitar direcciones URL: Seleccione esta opción para quitar cualquier secuencia que incluya los siguientes prefijos de dirección URL:

      • http, https
      • ftp
      • www
  13. Expand verb contractions (Expandir contracciones verbales): esta opción solo se aplica a los idiomas que usan contracciones verbales. Actualmente, solo se aplica al inglés.

    Por ejemplo, si selecciona esta opción, podría sustituir la expresión "wouldn't stay there" por "would not stay there" .

  14. Normalize backslashes to slashes (Normalizar barras diagonales inversas en barras diagonales: seleccione esta opción para asignar todas las instancias de \\ a /.

  15. Split tokens on special characters (Dividir tokens en caracteres especiales): seleccione esta opción si desea dividir las palabras en caracteres como &, -, etc.

    Por ejemplo, la cadena MS-WORD se dividiría en dos tokens, MS y WORD .

Ejemplos

En los siguientes ejemplos del Azure AI Gallery se muestra el uso del módulo de preprocesamiento de texto :

Notas técnicas

En esta sección se proporciona más información sobre la tecnología de procesamiento previo de texto subyacente y cómo especificar recursos de texto personalizados.

Idiomas compatibles

Actualmente Azure Machine Learning admite el preprocesamiento de texto en estos idiomas:

  • Neerlandés
  • Inglés
  • Francés
  • Alemán
  • Italiano
  • Español

Se planean otros idiomas. Vea el blog de Microsoft machine learning para anuncios.

Lematización

Lematización es el proceso de identificar una forma canónica única para representar varios tokens de palabra.

Las bibliotecas de procesamiento de lenguaje natural incluidas en Azure Machine Learning Studio (clásico) combinan las siguientes operaciones lingüísticas para proporcionar lematización:

  • Separación de oraciones: en el texto libre que se usa para el análisis de opiniones y otros análisis de texto, es posible que las oraciones no se ejecuten con frecuencia o que falten signos de puntuación. Los textos de entrada pueden constituir un fragmento de texto arbitrariamente largo, que va desde un tweet o un fragmento hasta un párrafo completo, o incluso un documento.

    Las herramientas de lenguaje natural usadas por Studio (clásico) realizan la separación de oraciones como parte del análisis léxico subyacente. Sin embargo, las oraciones no se separan en la salida. Opcionalmente, puede especificar que un límite de oración se marque como ayuda en otro análisis y procesamiento de texto.

  • Tokenización: las reglas que determinan los límites de las palabras dependen del lenguaje y pueden ser complejas incluso en idiomas que usan espacios entre palabras.

    Algunos idiomas (como el chino o el japonés) no usan ningún espacio en blanco entre palabras y la separación de palabras requiere análisis morfológicos.

    Por lo tanto, los métodos de tokenización y las reglas que se usan en este módulo proporcionan resultados diferentes de un idioma a otro. Estas reglas de tokenización vienen determinadas por las bibliotecas de análisis de texto que proporciona Microsoft Research para cada idioma admitido y no se pueden personalizar.

  • Identificación de la parte de la voz: en cualquier secuencia de palabras, puede ser difícil identificar de forma computacional la parte exacta de la voz de cada palabra. Incluso una frase aparentemente simple, como "el tiempo se parece a una flecha", puede tener numerosos análisis (un ejemplo famoso). Las partes de la voz también son muy diferentes en función de la morfología de diferentes idiomas.

    En Azure Machine Learning, se usa un modelo de desambiguación para elegir la parte más probable de la voz, según el contexto de oración actual. La información sobre la parte de la voz se usa para filtrar las palabras usadas como características y ayudar en la extracción de frases clave. Sin embargo, la salida de este módulo no incluye explícitamente etiquetas de POS y, por lo tanto, no se puede usar para generar texto etiquetado por PDV.

  • Generando formulario de diccionario: una palabra puede tener varias formas de lemmas, o de diccionario, cada una procedente de un análisis diferente. Por ejemplo, la creación de palabras en inglés tiene dos lemmas posibles: compilar si la palabra es un nombre ("la compilación de alto") o compilar si la palabra es un verbo ("está construyendo una casa"). En Azure Machine Learning, solo se genera el formulario del diccionario más probable .

Ejemplo de salida de lematización

Source Lematizada con conversión de mayúsculas y minúsculas
Es natación nadar
Está pasando por un nadar soy un nadar
Natación es una buena idea para crear músculos nadar sea bueno para el músculo de compilación
Está creando un edificio creo una compilación
Estamos creando edificios vamos a compilar todas las compilaciones

Nota

Los modelos de lenguaje que se usan para generar el formulario de diccionario se han entrenado y probado con una gran variedad de textos técnicos y de uso general, y se usan en muchos otros productos de Microsoft que requieren API de lenguaje natural. Sin embargo, el lenguaje natural es intrínsecamente ambiguo y la precisión del 100% en todos los vocabularios no es factible. Por ejemplo, lematización puede verse afectado por otras partes de la voz o por la forma en que se analiza la oración.

Si necesita realizar un procesamiento previo adicional o realizar análisis lingüísticos con un vocabulario especializado o dependiente del dominio, se recomienda usar herramientas de NLP personalizables, como las disponibles en Python y R.

Caracteres especiales

Los caracteres especiales se definen como caracteres individuales que no se pueden identificar como cualquier otra parte de la voz y pueden incluir signos de puntuación: dos puntos, punto y coma, etc.

Palabras irrelevantes

Una palabra irrelevante (o palabra irrelevante) es una palabra que a menudo se quita de los índices porque es común y proporciona poco valor para la recuperación de información, aunque podría ser lingüísticamente significativa.

Por ejemplo, muchos lenguajes realizan una distinción semántica entre artículos definitos e indefinidos ("el edificio" frente a un edificio), pero para el aprendizaje automático y la recuperación de información, la información a veces no es relevante. Por lo tanto, podría decidir descartar estas palabras.

El entorno de Azure Machine Learning incluye listas de los palabras irrelevantes más comunes para cada uno de los idiomas admitidos.

Lenguaje Número de palabras irrelevantes Ejemplos
Neerlandés 49 aan, AF, al
Inglés 312 a, acerca de, sobre
Francés 154 de, des, d ', la
Alemán 602 a, AB, aber
Italiano 135 a, Adesso, AI
Español 368 ésa, ésta, éste

Para su comodidad, el archivo comprimido que contiene el valor predeterminado de palabras irrelevantes para todos los idiomas actuales está disponible en Azure Storage: Stopwords.zip.

Cómo modificar la lista palabra irrelevante

Esperamos que muchos usuarios quieran crear sus propias listas de palabra irrelevante o cambiar los términos incluidos en la lista predeterminada. En el siguiente experimento de la Galería de Cortana Intelligence se muestra cómo se puede personalizar una lista de palabras irrelevantes.

Si modifica la lista o crea su propia lista de palabras irrelevantes, observe estos requisitos:

  • El archivo debe contener una sola columna de texto. Es posible que reciba el siguiente error si existe una columna adicional: "el patrón de selección de columnas de error de texto de preprocesamiento" para limpiar "se espera que proporcione una o varias columnas seleccionadas en el conjunto de datos de entrada, pero en realidad se proporcionan 2 columnas. (Error 0022) "

    Si esto ocurre, busque espacios, tabulaciones o columnas ocultas presentes en el archivo desde el que se importó originalmente la lista palabra irrelevante. Dependiendo de cómo se haya preparado el archivo, las tabulaciones o comas incluidas en el texto también pueden hacer que se creen varias columnas.

    Cuando reciba este error, revise el archivo de código fuente o use el módulo seleccionar columnas de conjunto de archivos para elegir una sola columna para pasarla al módulo de preprocesamiento de texto .

  • Cada fila solo puede contener una palabra. Con el fin de analizar el archivo, las palabras se determinan mediante la inserción de espacios.

  • La lista palabra irrelevante no puede estar vacía.

Orden de las operaciones

En este módulo, puede aplicar varias operaciones a texto. Sin embargo, no se puede cambiar el orden en que se aplican estas operaciones. Esto puede afectar a los resultados esperados.

Por ejemplo, si se aplica lematización a texto y también se usa la eliminación de palabra irrelevante, todas las palabras se convierten en sus formatos de Lemma antes de que se aplique la lista palabra irrelevante. Por lo tanto, si el texto incluye una palabra que no está en la lista palabra irrelevante, pero su Lemma se encuentra en la lista palabra irrelevante, se quitará la palabra.

Asegúrese de probar los términos de destino de antemano para garantizar los resultados correctos.

Idiomas no admitidos

Si la columna de texto incluye idiomas no admitidos por Azure Machine Learning, se recomienda usar solo las opciones que no requieren el procesamiento dependiente del idioma. Esto puede ayudar a evitar resultados extraños.

Además, si usa la opción la columna contiene el idioma, debe asegurarse de que no se incluyan idiomas no admitidos en el texto que se procesa. Si un lenguaje no compatible o su identificador están presentes en el conjunto de elementos, se genera el siguiente error en tiempo de ejecución:

"Error de texto preprocesado (0039): especifique un idioma admitido."

Para evitar que se produzca un error en todo el experimento porque se detectó un idioma no compatible, use el módulo Split Data (dividir datos ) y especifique una expresión regular para dividir el conjunto de datos en idiomas admitidos y no admitidos.

Por ejemplo, la siguiente expresión regular divide el conjunto de filas basándose en el lenguaje detectado para la columna Sentence :

\"Sentence Language" Dutch|English|French|Italian|Spanish

Si tiene una columna que contiene el identificador de idioma, o si ha generado este tipo de columna, puede usar una expresión regular como la siguiente para filtrar por la columna de identificadores:

\"Sentence Iso6391 Name" nl|en|fr|it|es

Entradas esperadas

Nombre Tipo Descripción
Dataset Tabla de datos Datos de entrada
Palabras irrelevantes Tabla de datos Lista personalizada opcional de palabras irrelevantes que se van a quitar

Parámetros del módulo

Nombre Tipo Intervalo Opcional Valor predeterminado Descripción
Quitar direcciones URL Boolean True

False
Obligatorio true Quitar direcciones URL
Lenguaje Lenguaje Inglés

Español

Francés

Neerlandés

Alemán

Italiano
Obligatorio Inglés Seleccionar el idioma que se va a preprocesar
Columna de texto que se va a limpiar Selección de columnas Obligatorio StringFeature Seleccionar la columna de texto que se va a limpiar
Expresión regular personalizada String Opcional Especificar la expresión regular personalizada
Cadena de reemplazo personalizada String Opcional Especificar la cadena de reemplazo personalizada para la expresión regular personalizada
Quitar palabras irrelevantes Boolean Obligatorio true Quitar palabras irrelevantes
Lematización Boolean Obligatorio true Usar lematización
Quitar por parte de la voz True (tipo falso) true

false
Obligatorio False Indicar si se debe usar el análisis de la parte de la voz para identificar y quitar determinadas clases de palabras
Quitar nombres Boolean Se aplica cuando se selecciona la opción filtrar por parte de voz true Quitar nombres
Quitar adjetivos Boolean Se aplica cuando se selecciona la opción filtrar por parte de voz true Quitar adjetivos
Quitar verbos Boolean Se aplica cuando se selecciona la opción filtrar por parte de voz true Quitar verbos
Detectar oraciones Boolean Obligatorio true Detectar oraciones agregando un terminador de frase \ "|||\ " que pueda usar el módulo de extractor de características de n-grama
Normalizar mayúsculas y minúsculas en minúsculas Boolean Obligatorio true Normalizar mayúsculas y minúsculas en minúsculas
Quitar números Boolean Obligatorio true Quitar números
Quitar caracteres especiales Boolean Obligatorio true Quitar caracteres especiales no alfanuméricos y reemplazarlos por el \ carácter "|\ "
Quitar caracteres duplicados Boolean Obligatorio true Quitar caracteres duplicados
Quitar direcciones de correo electrónico Boolean Obligatorio true Quitar direcciones de correo electrónico

Salidas

Nombre Tipo Descripción
Conjunto de datos de resultados Tabla de datos Conjunto de datos de resultados

Excepciones

Excepción Descripción
Error 0003 Se produce una excepción si una o varias de las entradas son nulas o están vacías.
Error 0030 Se produce una excepción cuando no es posible descargar un archivo.
Error 0048 Se produce una excepción cuando no es posible abrir un archivo.
Error 0049 Se produce una excepción cuando no es posible analizar un archivo.

Para obtener una lista de los errores específicos de los módulos de Studio (clásico), consulte Machine Learning de los códigos de error.

Para obtener una lista de excepciones de API, consulte códigos de error de la API de REST de machine learning.

Vea también

Text Analytics

Lista de módulos A-Z