Analisando dados sobre a demanda com a API do Analyze
Use a API Analyze para processar documentos de texto por meio do pipeline de enriquecimento do serviço Discovery sem armazenar dados dos documentos de origem.
A API do Analyze é suportada apenas por implementações do plano Enterprise e implementações instaladas
Esta abordagem é ideal para fins de automação de negócios. Por exemplo, se você deseja classificar emails, você pode usar a API Analyze para chamar sincronicamente Discovery para obter uma classificação do e-mail. Em seguida, você pode usar a saída dessa classificação em sua lógica de negócios.
A API de análise suporta somente documentos JSON.
Ao analisar um documento com a API, você indica como deseja que o documento seja processado, especificando a coleção para associar com a análise. O documento não é armazenado na coleção. Em vez disso, as configurações de configuração da coleção são aplicadas no documento. Por exemplo, se você deseja encontrar referências de entidade em um documento, execute a API do Analisar contra uma coleção onde o enriquecimento de Entidades é aplicado. A análise de documentos resultantes identifica qualquer menção de entidade no documento.
Envie uma solicitação para análise com relação a apenas uma coleção configurada com os enriquecimentos que você deseja usar para analisar seu documento on demand. Lembre-se, os documentos na coleção não são significativos. São os enriquecimentos definidos para a coleção que importam. Se você enviar solicitações para várias coletas, então vários modelos serão iniciados ao mesmo tempo, o que pode causar falhas de solicitação.
Os enriquecimentos a seguir são suportados na API de Análise:
- Modelos de regras avançadas
- Contratos
- Entidades customizadas
- Dicionário
- Classificador de documento
- Entidades(NLP)
- Palavras-chave(NLP)
- Modelos de Aprendizado de máquina e do Watson Explorer Content Analytics Studio
- Expressões regulares
- Patterns (Apenas plano de empresa)
- Sentimento dos documentos
- entendimento da tabela[1]
- Classificador de Texto
Para obter a lista completa dos enriquecimentos compatíveis com cada idioma, consulte Suporte a idiomas.
Para obter mais informações, consulte o Discovery Referência de API.
Exemplo de análise
Os dados que você enviar para análise devem estar no formato JSON. O texto deve ser especificado como uma string; ele não pode ser especificado como uma matriz. Por exemplo, o arquivo JSON a seguir contém uma citação no campo Quote que você deseja analisar para encontrar qualquer menção de palavra-chave no texto.
{
"Author": "Jane Austen",
"Book": "Pride and Prejudice",
"Quote": "From this day you must be a stranger to one of your parents. Your mother will never see you again if you do not marry Mr. Collins, and I will never see you again if you do.",
"Year": "1813/01/01",
"Subject":"Parental love",
"Speaker": "Mr. Bennett",
"url": "https://www.gutenberg.org/files/1342/1342-h/1342-h.htm#link2HCH0020"
}
Você sabe o nome de uma coleção em seu projeto em que o enriquecimento Palavras-chave em Inglês é configurado para ser aplicado em documentos na coleção. Você pode usar a API para listar suas coleções para encontrar o ID associado com a coleção que você procura pelo nome.
Depois de obter o ID da coleção, inclua-o na solicitação POST que você enviar para aplicar as configurações de configuração da coleção em seu arquivo JSON. Por exemplo, a solicitação a seguir envia o fragmento JSON em um arquivo denominado favorites2.json para análise de palavra-chave.
curl --location --request POST \
'https://my-cloud-pak-for-data-cluster/discovery/zen-wd/instances/{instance-id}/api/v2/ \
projects/{project-id}/collections/{collection-id}/analyze?version=2020-08-30' \
--header 'Authorization: Bearer ...' \
--form 'file=@"/quotations/favorites2.json"'
O resultado contém uma lista de palavras-chave que foram reconhecidas na citação.
{
"result": {
"enriched_Quote": [
{
"keywords": [
{
"text": "day",
"mentions": [
{
"text": "day",
"location": {
"begin": 10,
"end": 13
}
}
],
"relevance": 0.673739
},
{
"text": "stranger",
"mentions": [
{
"text": "stranger",
"location": {
"begin": 28,
"end": 36
}
}
],
"relevance": 0.596757
},
{
"text": "parents",
"mentions": [
{
"text": "parents",
"location": {
"begin": 52,
"end": 59
}
}
],
"relevance": 0.568336
},
{
"text": "mother",
"mentions": [
{
"text": "mother",
"location": {
"begin": 66,
"end": 72
}
}
],
"relevance": 0.755562
},
{
"text": "Mr. Collins",
"mentions": [
{
"text": "Mr. Collins",
"location": {
"begin": 118,
"end": 129
}
}
],
"relevance": 0.945891
}
]
}
],
"url": "https://www.gutenberg.org/files/1342/1342-h/1342-h.htm#link2HCH0020",
"Subject": "Parental love",
"Year": "1813/01/01",
"Book": "Pride and Prejudice",
"Author": "Jane Austen",
"Quote": [
"From this day you must be a stranger to one of your parents. Your mother will never see you again if you do not marry Mr. Collins, and I will never see you again if you do."
],
"metadata": {
"name": "favorites2.json"
},
"Speaker": "Mr. Bennett"
},
"notices": []
}
Não é possível enviar uma matriz de objetos como entrada. Por exemplo, você pode querer analisar várias citações, portanto, sua fonte pode parecer a seguir:
{
"quotations":[
{
"Author": "Jane Austen",
"Book": "Sense and Sensibility",
"Quote": "Is there a felicity in the world superior to this?",
"Year": "1811/01/01",
"Subject": "Nature",
"Speaker": "Marianne Dashwood",
"url": "https://www.gutenberg.org/files/1342/1342-h/1342-h.htm#link2HCH0059"
},
{
"Author": "Jane Austen",
"Book": "Persuasion",
"Quote": "A man does not recover from such a devotion of the heart to such a woman. He ought not; he does not.",
"Subject": "Romantic love",
"Year": "1818/01/01",
"Speaker": "Captain Wentworth",
"url": "https://www.gutenberg.org/files/105/105-h/105-h.htm#chap20"
}
]
}
Se sim, quebre cada objeto em um arquivo separado e analise cada arquivo individualmente.
Analisando um trecho de texto
É possível enviar texto para análise ao especificar o texto no formato JSON usando uma sintaxe como esta:
{
"text":"The text that you want to analyze."
}
A solicitação de exemplo a seguir mostra como analisar texto que você especifica na solicitação, não que você passe em um arquivo físico.
curl --location --request POST \
'https://my-cloud-pak-for-data-cluster/discovery/zen-wd/instances/{instance-id}/api/v2/ \
projects/{project-id}/collections/{collection-id}/analyze?version=2020-08-30' \
--header 'Authorization: Bearer ...' \
--form 'file={"text": "ISO 9000 is a standard."}'
A resposta pode ser como a seguir:
{
"result" : {
"enriched_text" : [ {
"entities" : [ {
"text" : "ISO 9000",
"type" : "my_iso_pattern",
"mentions" : [ {
"text" : "ISO 9000",
"confidence" : 1.0,
"location" : {
"begin" : 0,
"end" : 8
}
} ],
"model_name" : "My ISO Pattern"
}, {
"text" : "9000",
"type" : "Number",
"mentions" : [ {
"text" : "9000",
"confidence" : 0.8,
"location" : {
"begin" : 4,
"end" : 8
}
} ],
"model_name" : "natural_language_understanding"
} ]
} ],
"metadata" : { },
"text" : [ "ISO 9000 is a standard." ]
},
"notices" : [ ]
}
Analisando conteúdo HTML
É possível analisar HTML ao enviar o html no formato JSON usando uma sintaxe como esta:
{
"html":"<p>My html content.</p>"
}
A solicitação de exemplo a seguir mostra como analisar texto que você especifica na solicitação, não que você passe em um arquivo físico.
A coleção para a qual a solicitação é feita usa os enriquecimentos a seguir, o que significa que esses enriquecimentos são aplicados ao conteúdo enviado com a solicitação da API:
- Entidades
- Palavras-chave
- Table Understanding
Exemplo de solicitação
O corpo da solicitação contém form-data com o nome file. O valor é o conteúdo JSON a ser analisado.
curl --location --request POST \
'https://cpd-abc.example.com/discovery/abc-wd/instances/1671204318684041/api/v2/projects/d457fcd9-a4ce-4637-a340-33123b5cbe2c/collections/2d47dbcc-64c7-84e9-0000-01851bb9d998/analyze?version=2020-08-30' \
--header 'Authorization: Bearer ...' \
--form 'file={
"html":"<html><head>This is my html file</head><body><p>My file contains a table.</p><table><tbody><tr><th>Holiday</th><th>Popular greeting</th></tr><tr><td>Christmas</td><td>Merry Christma!s</td></tr></tbody></table></body></html>",
"text":"This is a sentence that contains key words, such as George Washington and Boston, MA."
}'
Resultados
Os resultados mostram a saída das Entidades, Palavras-chave e enriquecimentos da Tabela Entenda sobre os campos text e html que foram submetidos.
{
"result": {
"text": [
"This is a sentence that contains key words, such as George Washington and Boston, MA."
],
"enriched_text": [
{
"keywords": [
{
"text": "George Washington",
"mentions": [
{
"text": "George Washington",
"location": {
"begin": 52,
"end": 69
}
}
],
"relevance": 0.952591
},
{
"text": "Boston",
"mentions": [
{
"text": "Boston",
"location": {
"begin": 74,
"end": 80
}
}
],
"relevance": 0.578079
},
{
"text": "MA",
"mentions": [
{
"text": "MA",
"location": {
"begin": 82,
"end": 84
}
}
],
"relevance": 0.146905
}
],
"entities": [
{
"text": "George Washington",
"type": "Location",
"mentions": [
{
"text": "George Washington",
"confidence": 0.54922265,
"location": {
"begin": 52,
"end": 69
}
}
],
"model_name": "natural_language_understanding"
},
{
"text": "Boston, MA",
"type": "Location",
"mentions": [
{
"text": "Boston, MA",
"confidence": 0.66049105,
"location": {
"begin": 74,
"end": 84
}
}
],
"model_name": "natural_language_understanding"
}
]
}
],
"metadata": {},
"enriched_html": [
{
"tables": [
{
"body_cells": [
{}
],
"location": {
"begin": 99,
"end": 183
},
"row_headers": [],
"key_value_pairs": [],
"section_title": {},
"contexts": [],
"text": "Holiday Popular greeting Christmas Merry Christmas!",
"table_headers": [],
"title": {},
"column_headers": []
}
]
}
],
"html": [
"<html><head>This is my html file</head><body><p>My file contains a table.</p><table><tbody><tr><th>Holiday</th><th>Popular greeting</th></tr><tr><td>Christmas</td><td>Merry Christmas!</td></tr></tbody></table></body></html>"
]
},
"notices": []
}
Analisar limites da API
A tabela a seguir mostra o tamanho do arquivo e os limites de uso para a API do Analyze.
| Tipo de implementação | Limite de tamanho do arquivo | Limite de coleções simultâneas | Consultas simultâneas por limite de coleta |
|---|---|---|---|
| Cloud Pak for Data instalada | Ilimitada | Ilimitada | Ilimitada |
| Implementação gerenciada do plano corporativo | 50 KB | 5 | 5 |
Uso da API Analyze a partir de Discovery Cartucho para IBM Cloud Pak for Data afeta o uso de licença. Para obter mais informações, consulte informações sobre licença.
Monitoramento do uso IBM Cloud Pak for DataIBM Software Hub
Você pode monitorar o uso da API do Analyze a partir da página Uso da API.
A página Uso da API está disponível apenas a partir de implementações instaladas. Para planos Enterprise, as informações de chamadas de método de análise são combinadas com informações de chamadas de método de consulta e são relatadas como parte das métricas de consulta.
Para acessar a página de uso da API, abra a página Projetos, selecione Uso de dados e, em seguida, Uso da API.
- Data de início
- A data de início do período de monitoramento da chamada API.
- Data de encerramento
- A data de encerramento do período de monitoramento da chamada API.
- Total chamada de trinta dias
- Número de chamadas para a API do Analyze no intervalo de tempo de 30 dias que é indicado pela Data de início e Data de término. O intervalo de tempo é determinado pelo cálculo do período de tempo consecutivo com o maior número de chamadas de API. A janela de 30 dias é atualizada como o intervalo de tempo com o maior número de alterações de chamadas de API.
O uso da API não é exibido até algum tempo após o início do monitoramento do uso da API. Um atraso na desbanca do número total final do 30-day call total pode ocorrer, mesmo que o período de 30 dias que está listado inclua a data atual.
-
Para que o enriquecimento de entendimento de tabela produza quaisquer resultados, a entrada deve conter um elemento HTML
<table>para analisar ↩︎