Esta API fornece alguns serviços de PLN que podem ser usados por desenvolvedores
124
Esta API fornece alguns serviços de Processamento de Linguagem Natural que podem ser usados em aplicações independentes, de forma que o desenvolvedor dessa aplicação não precise e preocupar em treinar modelos de Aprendizado de Máquina ou compreender conceitos de PLN.
Nesta primeira versão, estão disponíveis os serviços de sumarização extrativa de texto e análise de sentimentos dentre as 5 emoções de Ekman. Para utilizar, basta acessar um dos endpoints, passando o texto como argumento.
/sumarizar endpoint de sumarização de texto. Em sua aplicação, basta passar uma string na URL.
/emocoes endpoint para análise de sentimentos.
Para inicialização do container, execute o comando:
$ docker run -dp 3000:5000 api-pln
Para o ambiente de desenvolvimento, é interessante ter um bind mount. Para isso, execute o comando:
Linux/Mac
$ docker run -dp 3000:5000 api-pln -w /api-pln --mount type=bind,src="$(pwd)",target=/api-pln python:3 \ sh -c "export FLASK_ENV=development"
Windows
$ docker run -dp 3000:5000 api-pln -w /api-pln --mount "type=bind,src=$pwd,target=/api-pln" python:3 ` sh -c "export FLASK_ENV=development"
Isso irá criar o mount e executar o flask em modo de desenvolvimento. Dessa forma, as alterações no código serão refletidas no container.
E então inicialize o
import requests
def extrair_texto(titulo):
"""
Obtém um texto da Wikipédia através da WikiMedia API.
:param titulo:
:return:
"""
parametros = {
'action': 'query',
'format': 'json',
'titles': titulo,
'prop': 'extracts',
'explaintext': True
}
try:
response = requests.get(
'https://pt.wikipedia.org/w/api.php',
params=parametros
).json()
# Exceção lançada quando não é encontrada uma página com o título passado
except KeyError:
raise
# Código executado se não ocorrer nenhuma exceção
else:
page = next(iter(response['query']['pages'].values()))
# Este é o conteúdo em texto da página
return page['extract']
if __name__ == '__main__':
texto = extrair_texto('Inteligência artificial')
resumo = str(requests.get(f'http://localhost:5000/sumarizar/{texto}').content)
emocao = requests.get(f'http://localhost:5000/emocoes/{texto}').content
with open('../res/saidas/resumo.txt', 'w', encoding='utf-8') as writer:
writer.writelines(resumo)
print(f'SENTIMENTO\n{emocao}')
Content type
Image
Digest
sha256:eb07f1e04…
Size
1.5 GB
Last updated
over 3 years ago
docker pull luizsci42/api-pln