Serviços Web - API
Estável
-
codeTokenizerPOST
/tokenizer
Em análise léxica, tokenização é o processo de dividir um texto em palavras, frases, símbolos, ou outros elementos com significado, tipicamente chamados de tokens.
Pedidos
POST http://api.pln.pt/tokenizer
Enviar o texto para tokenização no corpo do pedido.
Resultado
O resultado da operação é uma lista, em formato JSON, em que cada elemento da list é um token.
Exemplo
Por exemplo, dado o seguinte texto:
$ cat input.txt A Maria tem razão.
É possível fazer um pedido à API para tokenizar o texto, por exemplo:
$ curl -s -X POST -d @input.txt http://api.pln.pt/tokenizer ["A","Maria","tem","razão","."]
Opções
output=json|raw
json
(por omissão) devolve o resultado como um objecto JSON
raw
devolve o resultado não processado em texto limposentence=0|1
1
tokenizar por frases
0
não tokenizar por frases (por omissão) -
codeEtiquetador MorfosintáticoPOST
/tagger
O processo de identificar a etiqueta morfossintática de cada palavra no texto, com base na análise léxica e no contexto.
Pedidos
POST http://api.pln.pt/tagger
Enviar o texto a ser processado como corpo do pedido.
Resultado
O resutado da operação é uma lista, em formato JSON, em que para cada palavra do texto é indenticada a etiqueta de PoS com a respectiva probabilidade.
Exemplo
Por exemplo, dado o seguinte texto:
$ cat input.txt A Maria tem razão.
É possível fazer um pedido à API para etiquetar o texto, por exemplo:
$ curl -s -X POST -d @input.txt http://api.pln.pt/tagger [["A","o","DA0FS0","0.675415"],["Maria","maria","NP00000","1"],["tem","ter","VMIP3S0","0.999287"],["razão","razão","NCFS000","0.65"],[".",".","Fp","1"]]
Opções
output=json|raw
json
(por omissão) devolev o resultado num objecto JSON
raw
devolve o resultado não processado em texto limposense=<value>
no|none
(default) sem anotação semântica
ukb
usar UKB para desambiguação approach
mfs
usar Most Frequent Sense
all
devolve todos os sentidos
Em Testes
-
codeAnálise de PalavrasGET
/morph_analyzer/:word
Analisador morfo-sintático para uma palavra.
Pedidos
GET http://api.pln.pt/morph_analyzer/:word
Onde
:word
é a palavra a ser analisada.Resultado
O resultado é uma lista, em formato JSON, em que cada elemento da lista é um objecto que representa cada sentido.
Exemplo
É possível fazer um pedido à API para analisar uma palavra apenas, por examplo para a palavra
gato
:$ curl -s http://api.pln.pt/morph_analyzer/gato [{"lemma":"gato","prob":"0.914009","pos":"NCMS000"},{"lemma":"gatar","pos":"VMIP1S0","prob":"0.0859907"}]
Opções
output=json|raw
json
(default) devolve o resultado num objecto JSON
raw
devolve o resultado não processado em texto limpobackend=fl4|jspell
fl4
(default) usa a ferramenta FreeLing
jspell
usa a ferramenta jSpell -
codeParser de DependênciasPOST
/dep_parser
Calcular a árvore de dependências de uma frase usando o SyntaxNet.
Pedidos
POST http://api.pln.pt/dep_parser
Enviar a frase no corpo do pedido. Para processar múltiplas frases, enviar uma frase completa por linha.
Resultado
O resultado é uma lista, em formato JSON, onde cada elemento da lista é um objecto que representa uma série de características sobre cada token, incluíndo informação sobre as suas dependências, descritas em Universal Dependencies.
Exemplo
Dado o seguinte texto:
$ cat input.txt A Maria tem razão. O João foi ao rio.
É possível fazer um pedido à API para fazer o parsing das frases, por exemplo:
$ curl -s -X POST --data-binary @input.txt http://api.pln.pt/dep_parser [[["1","A","_","DET","art|
|F|S","Definite=Def|Gender=Fem|Number=Sing|PronType=Art|fPOS=DET++art| |F|S","2","det","_","_"],["2","Maria","_","PROPN","prop|F|S","Gender=Fem|Number=Sing|fPOS=PROPN++prop|F|S","3","nsubj","_","_"],["3","tem","_","VERB","v-fin|PR|3S|IND","Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|fPOS=VERB++v-fin|PR|3S|IND","0","ROOT","_","_"],["4","razão.","_","NOUN","n|F|S","Gender=Fem|Number=Sing|fPOS=NOUN++n|F|S","3","dobj","_","_"]],[["1","O","_","DET","art| |M|S","Definite=Def|Gender=Masc|Number=Sing|PronType=Art|fPOS=DET++art| |M|S","2","det","_","_"],["2","João","_","PROPN","prop|M|S","Gender=Masc|Number=Sing|fPOS=PROPN++prop|M|S","3","nsubj","_","_"],["3","foi","_","VERB","v-fin|PS|3S|IND","Mood=Ind|Number=Sing|Person=3|Tense=Past|VerbForm=Fin|fPOS=VERB++v-fin|PS|3S|IND","0","ROOT","_","_"],["4","ao","_","ADP","adv","AdpType=Preppron|Definite=Def|Gender=Masc|Number=Sing|fPOS=ADP++adv","3","advmod","_","_"],["5","rio.","_","NOUN","NOUN","fPOS=NOUN++NOUN","4","mwe","_","_"]]] Opções
output=json|raw
json
(por omissão) devolve o resultado em formato JSON
raw
devolve o resultado sem processamento em texto limpo -
codeFrequência de TermosPOST
/tf
Dado um texto calcular a frequência dos termos.
Pedidos
POST http://api.pln.pt/tf
Enviar o texto a ser processado no corpo do pedido.
Resultado
O resultado é um objecto, em formato JSON, onde cada chave é um termo encontrado no texto, e o valor é a sua frequência.
Exemplo
Dado o seguinte texto:
$ cat input.txt A Maria tem razão.
É possível fazer um pedido à API para procesar o texto, por exemplo:
$ curl -s -X POST -d @input.txt http://api.pln.pt/tf {"Maria":1,"A":1,"tem":1,"razão":1}
Opções
ner=<1|0>
pre-processar o text para identificação de entidades mencioadas (1
por omissão).
stopwords=<1|0>
filtrar stopwords do resultado final (0
por omissão).
term=<form|lemma>
usar a form ou o lemma de cada token como termo (form
por omissão).
-
codeStop WordsGET
/stopwords
Obter uma lista de stopwords, palavras que não costumam transportar significado semântico relevante.
Pedidos
GET http://api.pln.pt/stopwords
Resultado
O resultado é uma lista, em formato JSON, de palavras.
Exemplo
É posssível fazer um pedido à API para obter uma lista de stopwords, por exemplo:
$ curl http://api.pln.pt/stopwords ["essas","num","estivéramos","do","estivermos","nossa","muito", ...]
Opções
lang=pt
língua (pt
por omissão).
-
codeqaptnetPOST
/qaptnet
Consultar o modelo qaptnet.
Pedidos
POST http://api.pln.pt/qaptnet
Enviar o contexto e a pergunta no corpo do pedido, em formato JSON.
Resultado
O resultado da operação é a resposta à pergunta, em formato JSON.
Exemplo
Por exemplo, dado o seguinte contexto e pergunta:
$ cat data.json {"context": "Arquitetonicamente, a escola tem um caráter católico. No topo da cúpula de ouro do edifício principal é uma estátua de ouro da Virgem Maria. Imediatamente em frente ao edifício principal e de frente para ele, é uma estátua de cobre de Cristo com os braços erguidos com a lenda Venite Ad Me Omnes. Ao lado do edifício principal é a Basílica do Sagrado Coração. Imediatamente atrás da basílica é a Gruta, um lugar mariano de oração e reflexão. É uma réplica da gruta em Lourdes, na França, onde a Virgem Maria supostamente apareceu a Santa Bernadette Soubirous em 1858. No final da unidade principal (e em uma linha direta que liga através de 3 estátuas e da Cúpula de Ouro), é um estátua de pedra simples e moderna de Maria.", "question": "A quem a Virgem Maria supostamente apareceu em 1858 em Lourdes, na França?"}
É possível fazer um pedido à API para obter a resposta, por exemplo:
$ curl -H "Content-Type: application/json" --data @data.json http://api.pln.pt/qaptnet {"answer":"Santa Bernadette Soubirous"}