Compartir a través de


preprocesamiento 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.

Realiza operaciones de limpieza en texto

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 describe cómo usar el módulo Preprocesar texto en Machine Learning Studio (clásico) para limpiar y simplificar el texto. Al preprocesar el texto, puede crear más fácilmente características significativas a partir de texto.

Por ejemplo, el módulo Preprocess Text 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 por partes específicas de 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 de detenerse.

Actualmente, el módulo admite seis idiomas: inglés, español, francés, neerlandés, alemán e italiano.

Configuración del preprocesamiento de texto

  1. Agregue el módulo Preprocess Text (Preprocesar texto) 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á preprocesamiento está en el mismo idioma, seleccione el idioma en la lista desplegable Idioma. Con esta opción, el texto se preprocesa mediante reglas lingüísticas específicas del idioma seleccionado.

  4. Para preprocesar texto que pueda contener varios idiomas, elija la opción Columna contiene idioma .

    A continuación, use la propiedad de columna Culture-language para elegir una columna del conjunto de datos que indique el idioma usado 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 datos no contiene estos 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. Consulte 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 parte de la voz. A continuación, puede usar las etiquetas de parte de voz para quitar determinadas 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 verbos.

    Para obtener más información sobre el método de identificación de la parte de voz usado, consulte la sección Notas técnicas .

  6. Columna de texto que se va a limpiar: seleccione la columna o 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 de detenerse se realiza antes que cualquier otro proceso.

    Las listas de palabras irrelevantes dependen del lenguaje y son 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 de lematización depende en gran medida del idioma; Consulte 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 personalizadas de búsqueda y reemplazo 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 los caracteres no se normalizan, la misma palabra en mayúsculas y minúsculas se considera 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 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: use esta opción para reemplazar los caracteres especiales no alfanuméricos por el carácter de | canalización.

      Para 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 repiten 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 separaría en dos tokens, MS y WORD.

Ejemplos

Los ejemplos siguientes de la Azure AI Gallery ilustran el uso del módulo Preprocess Text :

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 admitidos

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

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

Se planean idiomas adicionales. Consulte el blog Machine Learning microsoft para ver los anuncios.

Lematización

La lematización es el proceso de identificar una única forma canónica para representar varios tokens de palabras.

Las bibliotecas de procesamiento de lenguaje natural incluidas en 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 sentimiento y otros análisis de texto, las oraciones se ejecutan con frecuencia o pueden faltar signos de puntuación. Los textos de entrada pueden constituir un fragmento de texto arbitrariamente largo, que va desde un tweet o 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 están separadas en la salida. Opcionalmente, puede especificar que se marque un límite de oración para ayudar en otro procesamiento y análisis de texto.

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

    Algunos idiomas (como chino o japonés) no usan ningún espacio en blanco entre las palabras, y la separación de palabras requiere un análisismorphológico.

    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 están determinadas por las bibliotecas de análisis de texto proporcionadas por 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 computacionalmente la parte exacta de la voz para cada palabra. Incluso una frase aparentemente sencilla, como "Las flechas del tiempo como una flecha" puede tener muchas docenas de análisis (un ejemplo famoso). Las partes de la voz también son muy diferentes en función de la morfología de los distintos idiomas.

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

  • Generación de formulario de diccionario: una palabra puede tener varios lemmas o formularios de diccionario, cada uno procedente de un análisis diferente. Por ejemplo, el edificio de palabras en inglés tiene dos posibles lemmas: compilar si la palabra es un sustantivo ("edificio alto") o compilar si la palabra es un verbo ("están construyendo una casa"). En Machine Learning, solo se genera el formato de diccionario más probable.

Salida de lematización de ejemplo

Source Lematizado con conversión de mayúsculas y minúsculas
Está nadando he i swim
Se va a dar un chapote he i go for a swim
La nada es buena para construir el tejido. ser bueno para el tejido de compilación
Está creando un edificio. he i build a build
Todos estamos construyendo edificios todos estamos compilando

Nota:

Los modelos de lenguaje usados para generar el formulario de diccionario se han entrenado y probado con una 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 inherentemente ambiguo y la precisión del 100 % en todo el vocabulario no es factible. Por ejemplo, la lematización puede verse afectada 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 mediante un vocabulario especializado o dependiente del dominio, se recomienda usar herramientas 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 ninguna 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 pueda ser lingüísticamente significativa.

Por ejemplo, muchos lenguajes distinguen semánticamente entre artículos definidos 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 pertinente. Por lo tanto, puede decidir descartar estas palabras.

El Machine Learning incluye listas de las palabras principales más comunes para cada uno de los idiomas admitidos.

Language Número de palabras clave Ejemplos
Neerlandés 49 aan, af, al
Inglés 312 a, acerca de, anterior
Francés 154 de, des, d', la
Alemán 602 a, ab, aber
Italiano 135 a, adesso, ai
Español 368 álex, ésta, éste

Para su comodidad, un archivo comprimido que contiene las palabras clave predeterminadas para todos los idiomas actuales está disponible en Azure Storage: Stopwords.zip.

Cómo modificar la lista de palabras irrelevantes

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

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

  • El archivo debe contener una sola columna de texto. Es posible que reciba el siguiente error si hay una columna adicional presente: "Preprocesar el patrón de selección de columna de error de texto "Columna de texto para limpiar" debe proporcionar 1 columna seleccionada en el conjunto de datos de entrada, pero en realidad se proporcionan 2 columnas. ( Error 0022 )"

    Si esto sucede, busque espacios, pestañas u columnas ocultas presentes en el archivo desde el que se importó originalmente la lista de palabras irrelevantes. En función de cómo se haya preparado el archivo, las tabulaciones o comas incluidas en el texto también pueden hacer que se cree varias columnas.

    Cuando reciba este error, revise el archivo de origen o use el módulo Seleccionar columnas del conjunto de datos para elegir una sola columna para pasarla al módulo Preprocesar texto.

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

  • La lista de palabras irrelevantes no puede estar vacía.

Orden de las operaciones

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

Por ejemplo, si aplica lematización al texto y también usa la eliminación de palabras irrelevantes, todas las palabras se convierten a sus formas de lemma antes de aplicar la lista de palabras irrelevantes. Por lo tanto, si el texto incluye una palabra que no está en la lista de palabras irrelevantes, pero su lemma está en la lista de palabras irrelevantes, se quitaría 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 Machine Learning, se recomienda usar solo aquellas opciones que no requieran procesamiento dependiente del lenguaje. Esto puede ayudar a evitar resultados extraños.

Además, si usa la opción Columna contiene idioma, debe asegurarse de que no se incluyan idiomas no admitidos en el texto que se procesa. Si hay un idioma no admitido o su identificador en el conjunto de datos, se genera el siguiente error en tiempo de ejecución:

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

Para evitar errores en todo el experimento porque se detectó un idioma no admitido, 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 datos en función del idioma 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 una columna de este tipo, puede usar una expresión regular como la siguiente para filtrar por la columna de identificador:

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

Entradas esperadas

Nombre Tipo Descripción
Dataset Tabla de datos Datos de entrada
Palabras de detenerse Tabla de datos Lista personalizada opcional de palabras de detenerse que se quitarán

Parámetros del módulo

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

False
Obligatorio true Eliminación de direcciones URL
Lenguaje Idioma Inglés

Español

Francés

Neerlandés

Alemán

Italiano
Obligatorio Inglés Selección del idioma que se preprocesa
Columna de texto que se debe limpiar Selección de columnas Obligatorio StringFeature Selección de la columna de texto que se desea 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 de detenerse Boolean Obligatorio true Quitar palabras de detenerse
Lematización Boolean Obligatorio true Uso de lematización
Quitar por parte de la voz True False Type true

false
Obligatorio False Indicar si se debe usar el análisis de parte de la voz para identificar y quitar determinadas clases de palabras
Quitar sustantivos Boolean Se aplica cuando se selecciona la opción Filtrar por parte de la voz. true Quitar sustantivos
Eliminación de adjetivos Boolean Se aplica cuando se selecciona la opción Filtrar por parte de la voz. true Eliminación de adjetivos
Quitar verbos Boolean Se aplica cuando se selecciona la opción Filtrar por parte de la voz. true Quitar verbos
Detección de oraciones Boolean Obligatorio true Detectar oraciones agregando un terminador de oración \"||| \" que puede usar el módulo extractor de características de n-gramas
Normalizar mayúsculas y minúsculas Boolean Obligatorio true Normalizar mayúsculas y 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
Eliminación de direcciones de correo electrónico Boolean Obligatorio true Eliminación de 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 errores específicos de los módulos de Studio (clásico), consulte Machine Learning códigos de error.

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

Consulte también

Text Analytics

Lista de módulos A-Z