En este documento se explican los conceptos básicos para usar la API Cloud Natural Language. En esta guía conceptual se describen los tipos de solicitudes que puedes enviar a la API Natural Language, cómo crear esas solicitudes y cómo gestionar sus respuestas. Recomendamos que todos los usuarios de la API Natural Language lean esta guía y uno de los tutoriales asociados antes de empezar a usar la API.
Funciones de Natural Language
La API Natural Language tiene varios métodos para realizar análisis y anotaciones en el texto. Cada nivel de análisis proporciona información valiosa para comprender el lenguaje. Estos métodos son los siguientes:
El análisis de sentimientos inspecciona el texto proporcionado e identifica la opinión emocional predominante en él, sobre todo para determinar si la actitud del autor es positiva, negativa o neutra. El análisis de sentimiento se realiza mediante el método
analyzeSentiment
.Análisis de entidades: inspecciona el texto proporcionado para detectar entidades conocidas (nombres propios, como personajes públicos, monumentos, etc.). Nombres comunes, como restaurante, estadio, etc.) y devuelve información sobre esas entidades. El análisis de entidades se realiza con el método
analyzeEntities
.El análisis de sentimiento de entidades inspecciona el texto proporcionado para buscar entidades conocidas (nombres propios y nombres comunes), devuelve información sobre esas entidades e identifica la opinión emocional predominante de la entidad en el texto, especialmente para determinar si la actitud del autor hacia la entidad es positiva, negativa o neutra. El análisis de entidades se realiza con el método
analyzeEntitySentiment
.El análisis sintáctico extrae información lingüística, desglosando el texto proporcionado en una serie de frases y tokens (generalmente, límites de palabras) y proporcionando un análisis más detallado de esos tokens. El análisis sintáctico se realiza con el método
analyzeSyntax
.Clasificación de contenido: analiza el contenido de texto y devuelve una categoría de contenido para el contenido. La clasificación del contenido se realiza mediante el método
classifyText
.
Cada llamada a la API también detecta y devuelve el idioma, si el llamante no lo especifica en la solicitud inicial.
Además, si quieres realizar varias operaciones de lenguaje natural en un texto determinado con una sola llamada a la API, también puedes usar la solicitud annotateText
para realizar análisis de sentimiento y de entidades.
Pruébalo
Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de Natural Language en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.
Probar Natural Language gratisSolicitudes básicas de lenguaje natural
La API Natural Language es una API REST que consta de solicitudes y respuestas JSON. A continuación, se muestra una solicitud JSON de análisis de entidades de lenguaje natural sencilla:
{ "document":{ "type":"PLAIN_TEXT", "language_code": "EN", "content":"'Lawrence of Arabia' is a highly rated film biography about British Lieutenant T. E. Lawrence. Peter O'Toole plays Lawrence in the film." }, "encodingType":"UTF8" }
A continuación se explican estos campos:
document
contiene los datos de esta solicitud, que consta de los siguientes subcampos:type
: tipo de documento (HTML
oPLAIN_TEXT
)language
: (opcional) el idioma del texto de la solicitud. Si no se especifica, el idioma se detectará automáticamente. Para obtener información sobre los idiomas admitidos por la API Natural Language, consulta Idiomas admitidos. Si se usan idiomas no admitidos, se devolverá un error en la respuesta JSON.content
ogcsContentUri
, que contienen el texto que se va a evaluar. Si se pasacontent
, este texto se incluye directamente en la solicitud JSON (como se muestra arriba). Si se envíagcsContentUri
, el campo debe contener un URI que apunte a contenido de texto en Google Cloud Storage.
- encodingType
(obligatorio) el esquema de codificación en el que se deben calcular los desplazamientos de caracteres devueltos en el texto, que debe coincidir con la codificación del texto proporcionado.
Si no se define este parámetro, no se producirá ningún error, pero todos los desplazamientos se definirán como
-1
.
Especificar el contenido de texto
Cuando envías una solicitud a la API Natural Language, especificas el texto que quieres procesar de una de estas dos formas:
- Pasando el texto directamente en un campo
content
. - Enviar un URI de Google Cloud Storage en un campo
gcsContentUri
.
En cualquier caso, debes asegurarte de no superar los límites de contenido. Tenga en cuenta que estos límites de contenido se miden en bytes, no en caracteres, por lo que la longitud de los caracteres depende de la codificación del texto.
La solicitud que se muestra a continuación hace referencia a un archivo de Google Cloud Storage que contiene el discurso de Gettysburg:
{ "document":{ "type":"PLAIN_TEXT", "language": "EN", "gcsContentUri":"gs://cloud-samples-tests/natural-language/gettysburg.txt" }, }
Análisis de sentimiento
El análisis de sentimiento intenta determinar la actitud general (positiva o negativa) que se expresa en el texto. El sentimiento se representa con valores numéricos score
y magnitude
.
Campos de respuesta del análisis de sentimiento
A continuación, se muestra un ejemplo de respuesta de analyzeSentiment
a la arenga de Gettysburg:
{ "documentSentiment": { "score": 0.2, "magnitude": 3.6 }, "language_code": "en", "sentences": [ { "text": { "content": "Four score and seven years ago our fathers brought forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal.", "beginOffset": 0 }, "sentiment": { "magnitude": 0.8, "score": 0.8 } }, ... }
Estos valores de campo se describen a continuación:
documentSentiment
contiene el sentimiento general del documento, que consta de los siguientes campos:score
de la opinión varía entre-1.0
(negativa) y1.0
(positiva) y corresponde a la tendencia emocional general del texto.magnitude
indica la intensidad general de la emoción (tanto positiva como negativa) en el texto proporcionado, entre0.0
y+inf
. A diferencia descore
,magnitude
no se normaliza paradocumentSentiment
; cada expresión de emoción en el texto (tanto positiva como negativa) contribuye a lamagnitude
del texto (por lo que los bloques de texto más largos pueden tener magnitudes mayores).
language_code
contiene el idioma del documento, que se ha indicado en la solicitud inicial o se ha detectado automáticamente si no se ha especificado.language_supported
contiene un valor booleano para identificar si el idioma se admite oficialmente.sentences
contiene una lista de las frases extraídas del documento original, que incluye lo siguiente:sentiment
contiene los valores de sentimiento a nivel de frase asociados a cada frase, que contienenscore
entre-1.0
(negativo) y1.0
(positivo), así como valores demagnitude
entre0.0
y1.0
. Ten en cuenta quemagnitude
desentences
se normaliza.
Un valor de sentimiento de 0.2
en el discurso de Gettysburg indica que es ligeramente positivo, mientras que el valor de magnitud de 3.6
indica que es un documento relativamente emotivo, teniendo en cuenta su pequeño tamaño (aproximadamente un párrafo). Ten en cuenta que la primera frase del discurso de Gettysburg contiene una score
positiva muy alta de 0.8
.
Interpretar los valores del análisis de sentimiento
La puntuación del sentimiento de un documento indica la emoción general del documento. La magnitud del sentimiento de un documento indica la cantidad de contenido emocional que contiene el documento. Este valor suele ser proporcional a la longitud del documento.
Es importante tener en cuenta que la API Natural Language indica las diferencias entre las emociones positivas y negativas de un documento, pero no identifica emociones positivas y negativas específicas. Por ejemplo, "enfadado" y "triste" se consideran emociones negativas. Sin embargo, cuando la API Natural Language analiza texto que se considera "enfadado" o "triste", la respuesta solo indica que el sentimiento del texto es negativo, no "triste" o "enfadado".
Un documento con una puntuación neutra (alrededor de 0.0
) puede indicar que el documento tiene un nivel de emoción bajo o que contiene emociones mixtas, con valores positivos y negativos altos que se anulan entre sí. Por lo general, puede usar magnitude
valores para distinguir estos casos, ya que los documentos verdaderamente neutrales tendrán un valor magnitude
bajo, mientras que los documentos mixtos tendrán valores de mayor magnitud.
Cuando compares documentos entre sí (sobre todo si tienen longitudes diferentes), asegúrate de usar los valores de magnitude
para calibrar las puntuaciones, ya que pueden ayudarte a medir la cantidad pertinente de contenido emocional.
En el siguiente gráfico se muestran algunos valores de ejemplo y cómo interpretarlos:
Opinión | Valores de muestra |
---|---|
Claramente positivo* | "score" : 0,8, "magnitude" : 3,0 |
Claramente negativo* | "score" : -0,6, "magnitude" : 4,0 |
Neutral | "score" : 0,1, "magnitude" : 0,0 |
Mixto | "score" : 0,0, "magnitude" : 4,0 |
* El sentimiento "claramente positivo" y "claramente negativo" varía en función de los casos prácticos y los clientes. Es posible que obtengas resultados diferentes en tu caso concreto. Te recomendamos que definas un umbral que te resulte útil y que lo ajustes después de probar y verificar los resultados. Por ejemplo, puedes definir un umbral de cualquier puntuación superior a 0,25 como claramente positiva y, a continuación, modificar el umbral de puntuación a 0,15 después de revisar tus datos y resultados y determinar que las puntuaciones de 0,15 a 0,25 también deben considerarse positivas.
Análisis de entidades
Análisis de entidades proporciona información sobre las entidades del texto, que generalmente se refieren a "cosas" con nombre, como personajes famosos, monumentos, objetos comunes, etc.
Las entidades se dividen en dos categorías: nombres propios que se asignan a entidades únicas (personas, lugares, etc. específicos) o nombres comunes (también llamados "nominales" en el procesamiento del lenguaje natural). Una buena práctica general es que, si algo es un sustantivo, se considera una "entidad". Las entidades se devuelven como desplazamientos indexados en el texto original.
Una solicitud de análisis de entidades debe incluir un argumento encodingType
para que los desplazamientos devueltos se puedan interpretar correctamente.
Campos de respuesta del análisis de entidades
El análisis de entidades devuelve un conjunto de entidades detectadas y los parámetros asociados a esas entidades, como el tipo de entidad, la relevancia de la entidad en el texto general y las ubicaciones del texto que hacen referencia a la misma entidad.
A continuación se muestra una respuesta analyzeEntities
a la solicitud de entidad:
{ "entities": [ { "name": "British", "type": "LOCATION", "metadata": {}, "mentions": [ { "text": { "content": "British", "beginOffset": 58 }, "type": "PROPER", "probability": 0.941 } ] }, { "name": "Lawrence", "type": "PERSON", "metadata": {}, "mentions": [ { "text": { "content": "Lawrence", "beginOffset": 113 }, "type": "PROPER", "probability": 0.914 } ] }, { "name": "Lawrence of Arabia", "type": "WORK_OF_ART", "metadata": {}, "mentions": [ { "text": { "content": "Lawrence of Arabia", "beginOffset": 0 }, "type": "PROPER", "probability": 0.761 } ] }, { "name": "Lieutenant", "type": "PERSON", "metadata": {}, "mentions": [ { "text": { "content": "Lieutenant", "beginOffset": 66 }, "type": "COMMON", "probability": 0.927 } ] }, { "name": "Peter O Toole", "type": "PERSON", "metadata": {}, "mentions": [ { "text": { "content": "Peter O Toole", "beginOffset": 93 }, "type": "PROPER", "probability": 0.907 } ] }, { "name": "T. E. Lawrence", "type": "PERSON", "metadata": {}, "mentions": [ { "text": { "content": "T. E. Lawrence", "beginOffset": 77 }, "type": "PROPER", "probability": 0.853 } ] }, { "name": "film", "type": "WORK_OF_ART", "metadata": {}, "mentions": [ { "text": { "content": "film", "beginOffset": 129 }, "type": "COMMON", "probability": 0.805 } ] }, { "name": "film biography", "type": "WORK_OF_ART", "metadata": {}, "mentions": [ { "text": { "content": "film biography", "beginOffset": 37 }, "type": "COMMON", "probability": 0.876 } ] } ], "languageCode": "en", "languageSupported": true }
Ten en cuenta que la API Natural Language devuelve entidades de "Lawrence de Arabia" (la película) y "T.E. Lawrence" (la persona). El análisis de entidades es útil para desambiguar entidades similares, como "Lawrence" en este caso.
A continuación, se indican los campos que se usan para almacenar los parámetros de la entidad:
type
indica el tipo de esta entidad (por ejemplo, si la entidad es una persona, una ubicación, un bien de consumo, etc.). Esta información ayuda a distinguir o desambiguar entidades y se puede usar para escribir patrones o extraer información. Por ejemplo, un valor detype
puede ayudar a distinguir entidades con nombres similares, como "Lawrence de Arabia", etiquetada comoWORK_OF_ART
(película), de "T.E. Lawrence", etiquetada comoPERSON
. Para obtener más información, consulta Tipos de entidades.metadata
contiene información de origen sobre el repositorio de conocimientos de la entidad. Es posible que se expongan repositorios adicionales en el futuro.mentions
indican las posiciones de desplazamiento dentro del texto en las que se menciona una entidad. Esta información puede ser útil si quieres encontrar todas las menciones de la persona "Lawrence" en el texto, pero no el título de la película. También puedes usar menciones para recoger la lista de alias de entidades, como "Lawrence", que hacen referencia a la misma entidad "T.E. Lawrence". Una mención de entidad puede ser de dos tipos:PROPER
oCOMMON
. Por ejemplo, la entidad de nombre propio "Lawrence de Arabia" se puede mencionar directamente como título de la película o como nombre común ("biografía cinematográfica" de T.E. Lawrence).
Análisis de sentimiento de entidades
El análisis de sentimiento de entidades combina el análisis de entidades y el análisis de sentimiento, y trata de determinar el sentimiento (positivo o negativo) expresado sobre las entidades en el texto. El sentimiento de la entidad se representa mediante valores numéricos de puntuación y magnitud, y se determina para cada mención de una entidad. Esas puntuaciones se agregan para obtener una puntuación y una magnitud generales del sentimiento de una entidad.
Solicitudes de análisis de sentimiento de entidades
Las solicitudes de análisis de sentimiento de entidades se envían a la API Natural Language mediante el método analyzeEntitySentiment
, que tiene el siguiente formato:
{ "document":{ "type":"PLAIN_TEXT", "content":"I love R&B music. Marvin Gaye is the best. 'What's Going On' is one of my favorite songs. It was so sad when Marvin Gaye died." }, "encodingType":"UTF8" }
Puede especificar un parámetro language
opcional en su solicitud que identifique el código de idioma del texto del parámetro content
.
Si no especifica ningún parámetro language
, la API Natural Language detectará automáticamente el idioma del contenido de su solicitud.
Para obtener información sobre los idiomas admitidos por la API Natural Language, consulta Idiomas admitidos.
Respuestas de análisis de sentimiento de entidades
La API Natural Language procesa el texto proporcionado para extraer las entidades y determinar el sentimiento. Una solicitud de análisis de sentimiento de entidades devuelve una respuesta que contiene las entities
que se han encontrado en el contenido del documento, una entrada mentions
por cada vez que se menciona la entidad y los valores numéricos score
y magnitude
de cada mención, tal como se describe en Interpretar los valores del análisis de sentimiento. Los valores generales de score
y magnitude
de una entidad son una agregación de los valores específicos de score
y magnitude
de cada mención de la entidad. Los valores score
y magnitude
de una entidad pueden ser 0
si el sentimiento del texto es bajo, lo que da como resultado un valor magnitude
de 0, o si el sentimiento es mixto, lo que da como resultado un valor score
de 0.
{ "entities": [ { "name": "R&B music", "type": "WORK_OF_ART", "metadata": {}, "salience": 0.5306305, "mentions": [ { "text": { "content": "R&B music", "beginOffset": 7 }, "type": "COMMON", "sentiment": { "magnitude": 0.9, "score": 0.9 } } ], "sentiment": { "magnitude": 0.9, "score": 0.9 } }, { "name": "Marvin Gaye", "type": "PERSON", "metadata": { "mid": "/m/012z8_", "wikipedia_url": "http://en.wikipedia.org/wiki/Marvin_Gaye" }, "salience": 0.21584158, "mentions": [ { "text": { "content": "Marvin Gaye", "beginOffset": 18 }, "type": "PROPER", "sentiment": { "magnitude": 0.4, "score": 0.4 } }, { "text": { "content": "Marvin Gaye", "beginOffset": 138 }, "type": "PROPER", "sentiment": { "magnitude": 0.2, "score": -0.2 } } ], "sentiment": { "magnitude": 0.6, "score": 0.1 } }, ... ], "language": "en" }
Para ver un ejemplo, consulta Analizar opinión de entidades.
Análisis sintáctico
La API Natural Language proporciona un potente conjunto de herramientas para analizar y desglosar texto mediante el análisis sintáctico. Para realizar un análisis sintáctico, utiliza el método analyzeSyntax
.
El análisis sintáctico consta de las siguientes operaciones:
- La extracción de oraciones divide el flujo de texto en una serie de oraciones.
- La tokenización divide el flujo de texto en una serie de tokens, y cada token suele corresponder a una sola palabra.
- A continuación, la API Natural Language procesa los tokens y, mediante sus ubicaciones en las frases, añade información sintáctica a los tokens.
Puedes consultar la documentación completa sobre el conjunto de tokens sintácticos en la guía Árboles de morfología y de gramática de dependencias.
Solicitudes de análisis sintáctico
Las solicitudes de análisis sintáctico se envían a la API Natural Language mediante el método analyzeSyntax
con el siguiente formato:
{ "document":{ "type":"PLAIN_TEXT", "content":"Ask not what your country can do for you, ask what you can do for your country." }, "encodingType":"UTF8" }
Respuestas de análisis sintáctico
La API Natural Language procesa el texto proporcionado para extraer frases y tokens. Una solicitud de análisis sintáctico devuelve una respuesta que contiene sentences
y tokens
con el siguiente formato:
{ "sentences": [ ... Array of sentences with sentence information ], "tokens": [ ... Array of tokens with token information ] }
Extracción de frases
Al realizar un análisis sintáctico, la API Natural Language devuelve una matriz de frases extraídas del texto proporcionado. Cada frase contiene los siguientes campos en un elemento text
principal:
beginOffset
que indica el desplazamiento de caracteres (basado en cero) dentro del texto dado donde empieza la frase. Ten en cuenta que este desfase se calcula mediante elencodingType
proporcionado.content
que contiene el texto completo de la frase extraída.
Por ejemplo, el siguiente elemento sentences
se recibe en una solicitud de análisis sintáctico del discurso de Gettysburg:
{ "sentences": [ { "text": { "content": "Four score and seven years ago our fathers brought forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal.", "beginOffset": 0 } }, { "text": { "content": "Now we are engaged in a great civil war, testing whether that nation or any nation so conceived and so dedicated can long endure.", "beginOffset": 175 } }, ... ... { "text": { "content": "It is rather for us to be here dedicated to the great task remaining before us--that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion--that we here highly resolve that these dead shall not have died in vain, that this nation under God shall have a new birth of freedom, and that government of the people, by the people, for the people shall not perish from the earth.", "beginOffset": 1002 } } ], "language": "en" }
Una solicitud de análisis sintáctico a la API Natural Language también incluirá un conjunto de tokens. Puede usar la información asociada a cada token para analizar más a fondo las frases devueltas. Puedes consultar más información sobre estos tokens en la guía Árboles de morfología y de gramática de dependencias.
Tokenización
El método analyzeSyntax
también transforma el texto en una serie de tokens, que se corresponden con los diferentes elementos textuales (límites de palabras) del contenido proporcionado. El proceso por el que la API Natural Language desarrolla este conjunto de tokens se conoce como tokenización.
Una vez que se extraen estos tokens, la API Natural Language los procesa para determinar la parte de la oración asociada (incluida la información morfológica) y el lema. Además, los tokens se evalúan y se colocan en un árbol de dependencias, lo que te permite determinar el significado sintáctico de los tokens e ilustrar la relación entre los tokens y las frases que los contienen. La información sintáctica y morfológica asociada a estos tokens es útil para comprender la estructura sintáctica de las frases en la API Natural Language.
A continuación, se muestra el conjunto de campos de token devueltos en una respuesta JSON de análisis sintáctico:
text
contiene los datos de texto asociados a este token, con los siguientes campos secundarios:beginOffset
contiene el desplazamiento de caracteres (empezando por cero) en el texto proporcionado. Ten en cuenta que, aunque las dependencias (descritas más abajo) solo existen en las frases, los desplazamientos de los tokens se colocan en el texto en su conjunto. Ten en cuenta que este desfase se calcula mediante el valor deencodingType
.content
contiene el contenido textual real del texto original.
partOfSpeech
proporciona información gramatical, incluida la información morfológica, sobre el token, como el tiempo, la persona, el número, el género, etc. del token. (Para obtener información más completa sobre estos campos, consulta la guía Morfología y árboles de dependencias).lemma
contiene la palabra "raíz" en la que se basa esta palabra, lo que te permite canonicalizar el uso de palabras en tu texto. Por ejemplo, las palabras "escribir", "escribiendo", "escribió" y "escrito" se basan en el mismo lema ("escribir"). Además, las formas en singular y plural se basan en lemas: "casa" y "casas" hacen referencia a la misma forma. Consulta Lema (morfología).Los campos
dependencyEdge
identifican la relación entre las palabras de la frase que contiene un token mediante aristas en un árbol dirigido. Esta información puede ser valiosa para la traducción, la extracción de información y el resumen. La guía Árboles de morfología y de gramática de dependencias contiene información más detallada sobre el análisis de dependencias. Cada campodependencyEdge
contiene los siguientes campos secundarios:headTokenIndex
proporciona el valor de índice (basado en cero) del "token principal" de este token en la frase que lo contiene. Un token sin padre se indexa a sí mismo.label
proporciona el tipo de dependencia de este token en su token principal.
La siguiente cita de Franklin D. El discurso de investidura de Roosevelt generará los siguientes tokens:
NOTA: Se han quitado todas las etiquetas partOfSpeech
que contienen valores *_UNKNOWN
para que quede más claro.
"tokens": [ { "text": { "content": "The", "beginOffset": 4 }, "partOfSpeech": { "tag": "DET", }, "dependencyEdge": { "headTokenIndex": 2, "label": "DET" }, "lemma": "The" }, { "text": { "content": "only", "beginOffset": 8 }, "partOfSpeech": { "tag": "ADJ", }, "dependencyEdge": { "headTokenIndex": 2, "label": "AMOD" }, "lemma": "only" }, { "text": { "content": "thing", "beginOffset": 13 }, "partOfSpeech": { "tag": "NOUN", "number": "SINGULAR", }, "dependencyEdge": { "headTokenIndex": 7, "label": "NSUBJ" }, "lemma": "thing" }, { "text": { "content": "we", "beginOffset": 19 }, "partOfSpeech": { "tag": "PRON", "case": "NOMINATIVE", "number": "PLURAL", "person": "FIRST", }, "dependencyEdge": { "headTokenIndex": 4, "label": "NSUBJ" }, "lemma": "we" }, { "text": { "content": "have", "beginOffset": 22 }, "partOfSpeech": { "tag": "VERB", "mood": "INDICATIVE", "tense": "PRESENT", }, "dependencyEdge": { "headTokenIndex": 2, "label": "RCMOD" }, "lemma": "have" }, { "text": { "content": "to", "beginOffset": 27 }, "partOfSpeech": { "tag": "PRT", }, "dependencyEdge": { "headTokenIndex": 6, "label": "AUX" }, "lemma": "to" }, { "text": { "content": "fear", "beginOffset": 30 }, "partOfSpeech": { "tag": "VERB", }, "dependencyEdge": { "headTokenIndex": 4, "label": "XCOMP" }, "lemma": "fear" }, { "text": { "content": "is", "beginOffset": 35 }, "partOfSpeech": { "tag": "VERB", "mood": "INDICATIVE", "number": "SINGULAR", "person": "THIRD", "tense": "PRESENT", }, "dependencyEdge": { "headTokenIndex": 7, "label": "ROOT" }, "lemma": "be" }, { "text": { "content": "fear", "beginOffset": 38 }, "partOfSpeech": { "tag": "NOUN", "number": "SINGULAR", }, "dependencyEdge": { "headTokenIndex": 7, "label": "ATTR" }, "lemma": "fear" }, { "text": { "content": "itself", "beginOffset": 43 }, "partOfSpeech": { "tag": "PRON", "case": "ACCUSATIVE", "gender": "NEUTER", "number": "SINGULAR", "person": "THIRD", }, "dependencyEdge": { "headTokenIndex": 8, "label": "NN" }, "lemma": "itself" }, { "text": { "content": ".", "beginOffset": 49 }, "partOfSpeech": { "tag": "PRON", "case": "ACCUSATIVE", "gender": "NEUTER", "number": "SINGULAR", "person": "THIRD", }, "dependencyEdge": { "headTokenIndex": 8, "label": "NN" }, "lemma": "itself" }, { "text": { "content": ".", "beginOffset": 49 }, "partOfSpeech": { "tag": "PUNCT", }, "dependencyEdge": { "headTokenIndex": 7, "label": "P" }, "lemma": "." } ],
Clasificación de contenido
Puedes hacer que la API Natural Language analice un documento y devuelva una lista de categorías de contenido que se apliquen al texto del documento. Para clasificar el contenido de un documento, llama al método classifyText
.
Puedes consultar la lista completa de categorías de contenido devueltas por el método classifyText
aquí.
La API Natural Language filtra las categorías devueltas por el método classifyText
para incluir solo las categorías más relevantes para una solicitud. Por ejemplo, si /Science
y /Science/Astronomy
se aplican a un documento, solo se devuelve la categoría /Science/Astronomy
, ya que es el resultado más específico.
Para ver un ejemplo de clasificación de contenido con la API Natural Language, consulte Clasificación de contenido.
Realizar varias operaciones en una sola solicitud
Si quieres realizar un conjunto de operaciones de lenguaje natural en una sola llamada de método, puedes usar annotateText
como solicitud de API de lenguaje natural de uso general. Una solicitud JSON de anotación de texto es similar a una solicitud de análisis de entidades estándar, pero también requiere un conjunto de funciones para indicar las operaciones que se deben realizar en el texto. Estas funciones se indican a continuación:
extractDocumentSentiment
realiza un análisis de sentimiento, tal como se describe en la sección Análisis de sentimiento.extractEntities
realiza un análisis de entidades, tal como se describe en la sección Análisis de entidades.extractSyntax
indica que el texto proporcionado debe procesarse para realizar un análisis sintáctico, tal como se describe en la sección Análisis sintáctico.
La siguiente solicitud llama a la API para anotar features
en una frase corta.
{ "document":{ "type":"PLAIN_TEXT", "content":"The windy, cold weather was unbearable this winter." }, "features":{ "extractSyntax":true, "extractEntities":true, "extractDocumentSentiment":true }, "encodingType":"UTF8" }