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.
- Consulte la información acerca de traslado de proyectos de aprendizaje automático de ML Studio (clásico) a Azure Machine Learning.
- Más información sobre Azure Machine Learning.
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
Agregue el módulo Preprocess Text (Preprocesar texto) al experimento en Studio (clásico). Puede encontrar este módulo en Text Analytics.
Conecte un conjunto de datos que incluya al menos una columna que contenga texto.
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.
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.
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 .
Columna de texto que se va a limpiar: seleccione la columna o columnas que desea preprocesar.
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 .
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.
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.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.
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 queam
.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
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" .
Normalize backslashes to slashes (Normalizar barras diagonales inversas en barras diagonales: seleccione esta opción para asignar todas las instancias de
\\
a/
.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
yWORD
.
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.