Elección de una tecnología de procesamiento de lenguaje natural en AzureChoosing a natural language processing technology in Azure

El procesamiento de lenguaje natural (NLP) se utiliza para tareas como el análisis de opiniones, la detección de temas, la detección de idioma, la extracción de frases clave y la clasificación de documentos.Natural language processing (NLP) is used for tasks such as sentiment analysis, topic detection, language detection, key phrase extraction, and document categorization.

Diagrama de una canalización de procesamiento de lenguaje natural

El procesamiento de lenguaje natural se puede usar para clasificar documentos, por ejemplo, etiquetar documentos como confidenciales o como correo no deseado.NLP can be use to classify documents, such as labeling documents as sensitive or spam. La salida del procesamiento de lenguaje natural se puede usar para su procesamiento subsiguiente o para búsquedas.The output of NLP can be used for subsequent processing or search. Otro uso del procesamiento de lenguaje natural es resumir texto mediante la identificación de las entidades presentes en el documento.Another use for NLP is to summarize text by identifying the entities present in the document. Estas entidades también pueden utilizarse para etiquetar documentos con palabras clave, lo que permite la búsqueda y recuperación basadas en el contenido.These entities can also be used to tag documents with keywords, which enables search and retrieval based on content. Las entidades pueden combinarse en temas, con resúmenes que describen los temas importantes presentes en cada documento.Entities might be combined into topics, with summaries that describe the important topics present in each document. Los temas detectados pueden utilizarse para clasificar los documentos para la navegación o para enumerar los documentos relacionados con un tema seleccionado.The detected topics may be used to categorize the documents for navigation, or to enumerate related documents given a selected topic. Otro uso del procesamiento de lenguaje natural es la puntuación del texto según la opinión, para evaluar el tono positivo o negativo de un documento.Another use for NLP is to score text for sentiment, to assess the positive or negative tone of a document. Estos enfoques utilizan muchas técnicas del procesamiento de lenguaje natural, como:These approaches use many techniques from natural language processing, such as:

  • Tokenizador.Tokenizer. Dividir el texto en palabras o frases.Splitting the text into words or phrases.
  • Lematización.Stemming and lemmatization. Normalizar las palabras para asignar distintas formas a la palabra canónica con el mismo significado.Normalizing words so that different forms map to the canonical word with the same meaning. Por ejemplo, "corriendo" y "corrió" se asignan a "correr".For example, "running" and "ran" map to "run."
  • Extracción de entidades.Entity extraction. Identificación de sujetos en el texto.Identifying subjects in the text.
  • Detección de partes de la oración.Part of speech detection. Identifica el texto como un verbo, nombre, participio, frase verbal, etc.Identifying text as a verb, noun, participle, verb phrase, and so on.
  • Detección del límite de las frases.Sentence boundary detection. Detectar frases completas en párrafos de texto.Detecting complete sentences within paragraphs of text.

Cuando se utiliza el procesamiento de lenguaje natural para extraer información y datos a partir de texto sin formato, el punto inicial son normalmente los documentos sin formato almacenados en el almacenamiento de objetos, como Azure Storage o Azure Data Lake Store.When using NLP to extract information and insight from free-form text, the starting point is typically the raw documents stored in object storage such as Azure Storage or Azure Data Lake Store.

DesafíosChallenges

  • El procesamiento de una colección de documentos de texto sin formato suele consumir muchos recursos de cálculo y también en términos de tiempo.Processing a collection of free-form text documents is typically computationally resource intensive, as well as being time intensive.
  • Sin un formato de documento estándar, puede ser difícil lograr unos resultados coherentes y precisos del procesamiento de texto sin formato para extraer datos concretos de un documento.Without a standardized document format, it can be difficult to achieve consistently accurate results using free-form text processing to extract specific facts from a document. Por ejemplo, imagine una representación en texto de una factura; puede ser difícil crear un proceso que extraiga correctamente la fecha de la factura y el número de la factura de las facturas de múltiples proveedores.For example, think of a text representation of an invoice—it can be difficult to build a process that correctly extracts the invoice number and invoice date for invoices across any number of vendors.

¿Cuáles son las opciones al elegir un servicio NLP?What are your options when choosing an NLP service?

En Azure, los servicios siguientes proporcionan funcionalidades de procesamiento de lenguaje natural (NLP):In Azure, the following services provide natural language processing (NLP) capabilities:

Principales criterios de selecciónKey selection criteria

Para restringir las opciones, empiece por responder a estas preguntas:To narrow the choices, start by answering these questions:

  • ¿Desea usar modelos creados previamente?Do you want to use prebuilt models? Si es así, considere la posibilidad de usar las API que ofrece Microsoft Cognitive Services.If yes, consider using the APIs offered by Microsoft Cognitive Services.

  • ¿Necesita entrenar modelos personalizados en un corpus grande de datos de texto?Do you need to train custom models against a large corpus of text data? Si es así, considere la posibilidad de usar Azure HDInsight con Spark MLlib y Spark NLP.If yes, consider using Azure HDInsight with Spark MLlib and Spark NLP.

  • ¿Necesita funcionalidades de procesamiento de lenguaje natural de bajo nivel como tokenización, lematización y frecuencia de términos o frecuencia inversa de documento (TF/IDF)?Do you need low-level NLP capabilities like tokenization, stemming, lemmatization, and term frequency/inverse document frequency (TF/IDF)? Si es así, considere la posibilidad de usar Azure HDInsight con Spark MLlib y Spark NLP.If yes, consider using Azure HDInsight with Spark MLlib and Spark NLP.

  • ¿Necesita capacidades de procesamiento de lenguaje natural simples y de alto nivel como identificación de entidades e intenciones, detección de temas, corrector ortográfico o análisis de opiniones?Do you need simple, high-level NLP capabilities like entity and intent identification, topic detection, spell check, or sentiment analysis? Si es así, considere la posibilidad de usar las API que ofrece Microsoft Cognitive Services.If yes, consider using the APIs offered by Microsoft Cognitive Services.

Matriz de funcionalidadesCapability matrix

En las tablas siguientes se resumen las diferencias clave en cuanto a funcionalidades.The following tables summarize the key differences in capabilities.

Funcionalidades generalesGeneral capabilities

CapacidadCapability HDInsight de AzureAzure HDInsight Microsoft Cognitive ServicesMicrosoft Cognitive Services
Proporciona modelos previamente entrenados como un servicioProvides pretrained models as a service NoNo Yes
API DE RESTREST API Yes Yes
ProgramaciónProgrammability Python, Scala, JavaPython, Scala, Java C#, Java, Node.js, Python, PHP, RubyC#, Java, Node.js, Python, PHP, Ruby
Admite el procesamiento de macrodatos y documentos de gran tamañoSupport processing of big data sets and large documents Yes NoNo

Funcionalidades de procesamiento de lenguaje natural de bajo nivelLow-level natural language processing capabilities

CapacidadCapability HDInsight de AzureAzure HDInsight Microsoft Cognitive ServicesMicrosoft Cognitive Services
TokenizadorTokenizer Sí (Spark NLP)Yes (Spark NLP) Sí (Linguistic Analysis API)Yes (Linguistic Analysis API)
LematizadorStemmer Sí (Spark NLP)Yes (Spark NLP) NoNo
LematizadorLemmatizer Sí (Spark NLP)Yes (Spark NLP) NoNo
Etiquetado de categorías gramaticalesPart of speech tagging Sí (Spark NLP)Yes (Spark NLP) Sí (Linguistic Analysis API)Yes (Linguistic Analysis API)
Frecuencia de términos o frecuencia inversa de documento (TF/IDF)Term frequency/inverse-document frequency (TF/IDF) Sí (Spark MLlib)Yes (Spark MLlib) NoNo
Similitud de cadenas: edición del cálculo de distanciasString similarity—edit distance calculation Sí (Spark MLlib)Yes (Spark MLlib) NoNo
Cálculo de n-gramasN-gram calculation Sí (Spark MLlib)Yes (Spark MLlib) NoNo
Detención de la eliminación de palabrasStop word removal Sí (Spark MLlib)Yes (Spark MLlib) NoNo

Funcionalidades de procesamiento de lenguaje natural de alto nivelHigh-level natural language processing capabilities

CapacidadCapability HDInsight de AzureAzure HDInsight Microsoft Cognitive ServicesMicrosoft Cognitive Services
Identificación y extracción de entidades o intencionesEntity/intent identification and extraction NoNo Sí (Language Understanding Intelligent Service (LUIS) API)Yes (Language Understanding Intelligent Service (LUIS) API)
Detección de temasTopic detection Sí (Spark NLP)Yes (Spark NLP) Sí (Text Analytics API)Yes (Text Analytics API)
Corrector ortográficoSpell checking Sí (Spark NLP)Yes (Spark NLP) Sí (Bing Spell Check API)Yes (Bing Spell Check API)
análisis de opinionesSentiment analysis Sí (Spark NLP)Yes (Spark NLP) Sí (Text Analytics API)Yes (Text Analytics API)
Detección de idiomasLanguage detection NoNo Sí (Text Analytics API)Yes (Text Analytics API)
Admite varios idiomas además del inglésSupports multiple languages besides English NoNo Sí (varía según la API)Yes (varies by API)

Consulte tambiénSee also

Procesamiento de lenguaje naturalNatural language processing