Este documento fornece um guia sobre os princípios básicos da utilização da Cloud Natural Language API. Este guia conceptual aborda os tipos de pedidos que pode fazer à API Natural Language, como criar esses pedidos e como processar as respetivas respostas. Recomendamos que todos os utilizadores da API Natural Language leiam este guia e um dos tutoriais associados antes de explorarem a API em si.
Funcionalidades de linguagem natural
A API Natural Language tem vários métodos para realizar a análise e a anotação no seu texto. Cada nível de análise fornece informações valiosas para a compreensão da linguagem. Estes métodos são apresentados abaixo:
A análise de sentimentos inspeciona o texto fornecido e identifica a opinião emocional predominante no texto, especialmente para determinar a atitude de um escritor como positiva, negativa ou neutra. A análise de sentimentos é realizada através do método
analyzeSentiment
.A análise de entidades inspeciona o texto fornecido para encontrar entidades conhecidas (nomes próprios, como figuras públicas, pontos de referência, etc.). Substantivos comuns, como restaurante, estádio, etc.) e devolve informações sobre essas entidades. A análise de entidades é realizada com o método
analyzeEntities
.A análise de sentimentos de entidades inspeciona o texto fornecido para entidades conhecidas (nomes próprios e substantivos comuns), devolve informações sobre essas entidades e identifica a opinião emocional predominante da entidade no texto, especialmente para determinar a atitude de um escritor em relação à entidade como positiva, negativa ou neutra. A análise de entidades é realizada com o método
analyzeEntitySentiment
.A análise sintática extrai informações linguísticas, dividindo o texto fornecido numa série de frases e tokens (geralmente, limites de palavras), fornecendo uma análise mais detalhada desses tokens. A análise sintática é realizada com o método
analyzeSyntax
.A classificação de conteúdo analisa o conteúdo de texto e devolve uma categoria de conteúdo para o conteúdo. A classificação de conteúdo é realizada através do método
classifyText
.
Cada chamada API também deteta e devolve o idioma, se o autor da chamada não o tiver especificado no pedido inicial.
Além disso, se quiser realizar várias operações de linguagem natural num determinado texto usando apenas uma chamada API, também pode usar o pedido annotateText
para realizar a análise de sentimentos e a análise de entidades.
Experimente
Se está a usar o Google Cloud pela primeira vez, crie uma conta para avaliar o desempenho da API Natural Language em cenários do mundo real. Os novos clientes também recebem 300 USD em créditos gratuitos para executar, testar e implementar cargas de trabalho.
Experimente a linguagem natural gratuitamentePedidos básicos de linguagem natural
A API Natural Language é uma API REST e consiste em pedidos JSON e respostas. Segue-se um pedido de análise de entidades JSON de linguagem natural simples:
{ "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" }
Estes campos são explicados abaixo:
document
contém os dados deste pedido, que consistem nos seguintes subcampos:type
: tipo de documento (HTML
ouPLAIN_TEXT
)language
- (opcional) o idioma do texto no pedido. Se não for especificado, o idioma é detetado automaticamente. Para obter informações sobre os idiomas suportados pela API Natural Language, consulte o artigo Suporte de idiomas. Os idiomas não suportados devolvem um erro na resposta JSON.content
ougcsContentUri
, que contêm o texto a avaliar. Se passarcontent
, este texto é incluído diretamente no pedido JSON (conforme mostrado acima). Se passargcsContentUri
, o campo tem de conter um URI que aponte para conteúdo de texto no Google Cloud Storage.
- encodingType -
(obrigatório) o esquema de codificação no qual os desvios de carateres devolvidos no
texto devem ser calculados, que tem de corresponder à codificação do texto transmitido.
Se este parâmetro não estiver definido, o pedido não vai gerar um erro, mas todos os desvios vão ser definidos como
-1
.
Especificar conteúdo de texto
Quando transmite um pedido da API Natural Language, especifica o texto a processar de uma das seguintes formas:
- Transmitir o texto diretamente num campo
content
. - Transmitir um URI do Google Cloud Storage num campo
gcsContentUri
.
Em qualquer dos casos, deve certificar-se de que não excede os limites de conteúdo permitidos. Tenha em atenção que estes limites de conteúdo são por byte e não por carater. Por conseguinte, o comprimento dos carateres depende da codificação do texto.
O pedido abaixo refere-se a um ficheiro do Google Cloud Storage que contém o Discurso de Gettysburg:
{ "document":{ "type":"PLAIN_TEXT", "language": "EN", "gcsContentUri":"gs://cloud-samples-tests/natural-language/gettysburg.txt" }, }
Análise de sensação geral
A análise de sentimentos tenta determinar a atitude geral (positiva ou negativa) expressa no texto. O sentimento é representado por valores numéricos score
e magnitude
.
Campos de resposta da análise de sensação geral
Abaixo, é apresentado um exemplo de analyzeSentiment
resposta à Gettysburg Address:
{ "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 } }, ... }
Estes valores dos campos estão descritos abaixo:
documentSentiment
contém o sentimento geral do documento, que consiste nos seguintes campos:score
do sentimento varia entre-1.0
(negativo) e1.0
(positivo) e corresponde à tendência emocional geral do texto.magnitude
indica a intensidade geral da emoção (positiva e negativa) no texto fornecido, entre0.0
e+inf
. Ao contrário descore
,magnitude
não é normalizado paradocumentSentiment
; cada expressão de emoção no texto (positiva e negativa) contribui para amagnitude
do texto (por isso, os blocos de texto mais longos podem ter magnitudes maiores).
language_code
contém o idioma do documento, transmitido no pedido inicial ou detetado automaticamente se estiver ausente.language_supported
contém um valor booleano para identificar se o idioma é oficialmente suportadosentences
contém uma lista das frases extraídas do documento original, que contém:sentiment
contém os valores de sentimento ao nível da frase anexados a cada frase, que contêmscore
entre-1.0
(negativo) e1.0
(positivo), bem como valores demagnitude
entre0.0
e1.0
. Tenha em atenção quemagnitude
parasentences
é normalizado.
Um valor de sentimento de 0.2
para o discurso de Gettysburg indica que é ligeiramente positivo em termos de emoção, enquanto o valor de magnitude de 3.6
indica um documento relativamente emocional, dado o seu pequeno tamanho (cerca de um parágrafo). Tenha em atenção que a primeira frase do discurso de Gettysburg contém uma
probabilidade muito elevada de score
de 0.8
.
Interpretar os valores da análise de sensação geral
A pontuação do sentimento de um documento indica a emoção geral de um documento. A magnitude do sentimento de um documento indica a quantidade de conteúdo emocional presente no documento, e este valor é frequentemente proporcional ao comprimento do documento.
É importante ter em atenção que a API Natural Language indica diferenças entre emoções positivas e negativas num documento, mas não identifica emoções positivas e negativas específicas. Por exemplo, "zangado" e "triste" são considerados emoções negativas. No entanto, quando a API Natural Language analisa texto considerado "zangado" ou texto considerado "triste", a resposta indica apenas que o sentimento no texto é negativo e não "triste" ou "zangado".
Um documento com uma pontuação neutra (cerca de 0.0
) pode indicar um documento com poucas emoções ou emoções mistas, com valores positivos e negativos elevados que se anulam mutuamente. Geralmente, pode usar valores magnitude
para distinguir estes casos, uma vez que os documentos verdadeiramente neutros têm um valor magnitude
baixo, enquanto os documentos mistos têm valores de magnitude mais elevados.
Quando comparar documentos entre si (especialmente documentos de comprimentos diferentes), certifique-se de que usa os valores magnitude
para calibrar as suas classificações, uma vez que podem ajudar a avaliar a quantidade relevante de conteúdo emocional.
O gráfico abaixo mostra alguns valores de exemplo e como os interpretar:
Opinião | Valores de exemplo |
---|---|
Claramente positivo* | "score" : 0,8, "magnitude" : 3,0 |
Claramente negativo* | "score" : -0,6, "magnitude" : 4,0 |
Neutro | "score" : 0,1, "magnitude" : 0,0 |
Misto | "score" : 0.0, "magnitude" : 4.0 |
* O sentimento "claramente positivo" e "claramente negativo" varia consoante os diferentes exemplos de utilização e clientes. Pode encontrar resultados diferentes para o seu cenário específico. Recomendamos que defina um limite que funcione para si e, em seguida, ajuste o limite após testar e validar os resultados. Por exemplo, pode definir um limite de qualquer pontuação superior a 0,25 como claramente positiva e, em seguida, modificar o limite de pontuação para 0,15 depois de rever os dados e os resultados e descobrir que as pontuações entre 0,15 e 0,25 também devem ser consideradas positivas.
Análise de entidades
A análise de entidades fornece informações sobre entidades no texto, que geralmente se referem a "coisas" com nome, como indivíduos famosos, marcos, objetos comuns, etc.
As entidades dividem-se em duas categorias: nomes próprios que são mapeados para entidades únicas (pessoas, locais, etc. específicos) ou nomes comuns (também denominados "nominais" no processamento de linguagem natural). Uma boa prática geral a seguir é que, se algo for um substantivo, qualifica-se como uma "entidade". As entidades são devolvidas como deslocamentos indexados no texto original.
Um pedido de análise de entidades deve transmitir um argumento encodingType
para que os desvios devolvidos possam ser interpretados corretamente.
Campos de resposta da análise de entidades
A análise de entidades devolve um conjunto de entidades detetadas e parâmetros associados a essas entidades, como o tipo da entidade, a relevância da entidade para o texto geral e as localizações no texto que se referem à mesma entidade.
A analyzeEntities
resposta ao pedido de entidade é
apresentada abaixo:
{ "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 }
Tenha em atenção que a API Natural Language devolve entidades para "Lawrence da Arábia" (o filme) e "T.E. Lawrence" (a pessoa). A análise de entidades é útil para desambiguar entidades semelhantes, como "Lawrence" neste caso.
Os campos usados para armazenar os parâmetros da entidade estão listados abaixo:
type
indica o tipo desta entidade (por exemplo, se a entidade é uma pessoa, uma localização, um bem de consumo, etc.) Estas informações ajudam a distinguir e/ou desambiguar entidades e podem ser usadas para escrever padrões ou extrair informações. Por exemplo, um valortype
pode ajudar a distinguir entidades com nomes semelhantes, como "Lawrence da Arábia", etiquetado comoWORK_OF_ART
(filme), de "T.E. Lawrence", etiquetado comoPERSON
, por exemplo. (Consulte os tipos de entidades para obter mais informações.)metadata
contém informações de origem sobre o repositório de conhecimentos da entidade. Podem ser expostos repositórios adicionais no futuro.mentions
indicam posições de deslocamento no texto onde uma entidade é mencionada. Estas informações podem ser úteis se quiser encontrar todas as menções da pessoa "Lawrence" no texto, mas não o título do filme. Também pode usar menções para recolher a lista de aliases de entidades, como "Lawrence", que se referem à mesma entidade "T.E. Lawrence". Uma menção de entidade pode ser de um de dois tipos:PROPER
ouCOMMON
. Uma entidade de substantivo próprio para "Lawrence da Arábia", por exemplo, pode ser mencionada diretamente como o título do filme ou como um substantivo comum ("biografia cinematográfica" de T.E. Lawrence).
Análise de sentimento de entidades
A análise de sentimento de entidades combina a análise de entidades e a análise de sentimento e tenta determinar o sentimento (positivo ou negativo) expresso sobre as entidades no texto. O sentimento da entidade é representado por valores numéricos de pontuação e magnitude e é determinado para cada menção de uma entidade. Essas pontuações são, em seguida, agregadas numa pontuação de sentimento geral e magnitude para uma entidade.
Pedidos de análise de sensação geral de entidades
Os pedidos de análise de sentimentos de entidades são enviados para a API Natural Language através da utilização do método analyzeEntitySentiment
no seguinte 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" }
Pode especificar um parâmetro language
opcional com o seu pedido que identifica o código de idioma do texto no parâmetro content
.
Se não especificar um parâmetro language
, a API Natural Language deteta automaticamente o idioma do conteúdo do seu pedido.
Para informações sobre os idiomas suportados pela API Natural Language,
consulte o artigo Suporte de idiomas.
Respostas da análise de sensação geral de entidades
A API Natural Language processa o texto fornecido para extrair as entidades e determinar o sentimento. Um pedido de análise de sentimentos de entidades devolve uma resposta que contém as entities
encontradas no conteúdo do documento, uma entrada mentions
para cada vez que a entidade é mencionada e os valores numéricos score
e magnitude
para cada menção, conforme descrito em Interpretar os valores da análise de sentimentos. Os valores score
magnitude
gerais de uma entidade são um agregado dos valores score
magnitude
específicos de cada menção da entidade. Os valores score
e magnitude
de uma entidade podem ser 0
se houver um sentimento baixo no texto, o que resulta num magnitude
de 0, ou se o sentimento for misto, o que resulta num 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 um exemplo, consulte o artigo Analisar o sentimento das entidades.
Análise sintática
A API Natural Language oferece um conjunto de ferramentas poderosas para analisar e
analisar texto através da análise sintática. Para realizar a análise sintática, use o método analyzeSyntax
.
A análise sintática consiste nas seguintes operações:
- A extração de frases divide o fluxo de texto numa série de frases.
- Tokenização divide a stream de texto numa série de tokens, com cada token a corresponder normalmente a uma única palavra.
- Em seguida, a API Natural Language processa os tokens e, usando as respetivas localizações nas frases, adiciona informações sintáticas aos tokens.
A documentação completa sobre o conjunto de tokens sintáticos encontra-se no guia Morfologia e árvores de dependência.
Pedidos de análise sintática
Os pedidos de análise sintática são enviados para a API Natural Language através da utilização do método analyzeSyntax
no seguinte 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" }
Respostas de análise sintática
A API Natural Language processa o texto fornecido para extrair frases e tokens. Um pedido de análise sintática devolve uma resposta que contém estes elementos
sentences
e tokens
no seguinte formato:
{ "sentences": [ ... Array of sentences with sentence information ], "tokens": [ ... Array of tokens with token information ] }
Extração de frases
Ao realizar a análise sintática, a API Natural Language devolve uma matriz de frases extraídas do texto fornecido, com cada frase a conter os seguintes campos num elemento principal text
:
beginOffset
indicando o deslocamento de carateres (com base zero) no texto fornecido onde a frase começa. Tenha em atenção que este desvio é calculado com base no valorencodingType
transmitido.content
que contém o texto completo da frase extraída.
Por exemplo, o seguinte elemento sentences
é recebido para um pedido de análise sintática do 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" }
Um pedido de análise sintática à API Natural Language também inclui um conjunto de tokens. Pode usar as informações associadas a cada token para fazer uma análise mais detalhada das frases devolvidas. Pode encontrar mais informações sobre estes tokens no guia Morfologia e árvores de dependências.
Conversão em tokens
O método analyzeSyntax
também transforma o texto numa série de tokens, que correspondem aos diferentes elementos textuais (limites de palavras) do conteúdo transmitido. O processo através do qual a API Natural Language desenvolve este conjunto de tokens é conhecido como tokenização.
Depois de extraídos, a API Natural Language processa estes tokens para determinar a respetiva parte do discurso associada (incluindo informações morfológicas) e lema. Além disso, os tokens são avaliados e colocados numa árvore de dependências, o que lhe permite determinar o significado sintático dos tokens e ilustrar a relação dos tokens entre si e com as frases que os contêm. As informações sintáticas e morfológicas associadas a estes tokens são úteis para compreender a estrutura sintática das frases na API Natural Language.
O conjunto de campos de tokens devolvidos numa resposta JSON de análise sintática é apresentado abaixo:
text
contém os dados de texto associados a este token, com os seguintes campos secundários:beginOffset
contém o deslocamento de carateres (com base zero) no texto fornecido. Tenha em atenção que, embora existam dependências (descritas abaixo) apenas nas frases, os desvios dos tokens estão posicionados no texto como um todo. Tenha em atenção que este desvio é calculado com base no valor passadoencodingType
.content
contém o conteúdo textual real do texto original.
partOfSpeech
fornece informações gramaticais, incluindo informações morfológicas, sobre o token, como o tempo, a pessoa, o número, o género, etc., do token. (Para obter informações mais completas sobre estes campos, consulte o guia Morfologia e árvores de dependências.)lemma
contém a palavra "raiz" na qual esta palavra se baseia, o que lhe permite canonicalizar a utilização de palavras no seu texto. Por exemplo, as palavras "escrever", "escrevendo", "escreveu" e "escrito" baseiam-se no mesmo lema ("escrever"). Além disso, as formas no singular e no plural baseiam-se em lemas: "casa" e "casas" referem-se à mesma forma. (Consulte Lema (morfologia).)Os campos
dependencyEdge
identificam a relação entre palavras na frase que contém um token através de arestas numa árvore direcionada. Estas informações podem ser valiosas para tradução, extração de informações e resumo. (O guia Morfologia e árvores de dependências contém informações mais detalhadas sobre a análise sintática de dependências.) Cada campodependencyEdge
contém os seguintes campos secundários:headTokenIndex
fornece o valor do índice (baseado em zero) do "token principal" deste token na frase de encapsulamento do token. Um token sem índices principais indexa-se a si próprio.label
fornece o tipo de dependência deste token no respetivo token principal.
A seguinte citação de Franklin D. O discurso de inauguração de Roosevelt produz os seguintes tokens:
NOTA: todas as etiquetas partOfSpeech
que contêm valores *_UNKNOWN
foram removidas para maior clareza.
"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": "." } ],
Classificação de conteúdo
Pode pedir à API Natural Language que analise um documento e devolva uma lista de categorias de conteúdo que se aplicam ao texto encontrado no documento. Para classificar
o conteúdo num documento, chame o método classifyText
.
Pode encontrar uma lista completa das categorias de conteúdo devolvidas para o método classifyText
aqui.
A API Natural Language filtra as categorias devolvidas pelo método classifyText
para incluir apenas as categorias mais relevantes para um pedido. Por exemplo, se /Science
e /Science/Astronomy
se aplicarem a um documento, apenas é devolvida a categoria /Science/Astronomy
, uma vez que é o resultado mais específico.
Para ver um exemplo de classificação de conteúdo com a API Natural Language, consulte o artigo Classificar conteúdo.
Executar várias operações num único pedido
Se quiser realizar um conjunto de operações de linguagem natural numa única chamada de método, pode usar annotateText
como um pedido de API de linguagem natural de uso geral. Um pedido JSON de anotação de texto é semelhante a um
pedido de análise de entidades padrão, mas também requer um conjunto de
funcionalidades
transmitidas para indicar as operações a realizar no texto. Estas funcionalidades estão listadas
abaixo:
extractDocumentSentiment
realiza a análise de sensação geral, conforme descrito na secção Análise de sensação geral.extractEntities
realiza a análise de entidades, conforme descrito na secção Análise de entidades.extractSyntax
indica que o texto fornecido deve ser processado para realizar a análise sintática, conforme descrito na secção Análise sintática.
A solicitação seguinte chama a API para anotar features
numa frase curta.
{ "document":{ "type":"PLAIN_TEXT", "content":"The windy, cold weather was unbearable this winter." }, "features":{ "extractSyntax":true, "extractEntities":true, "extractDocumentSentiment":true }, "encodingType":"UTF8" }