Sign inSign up

luizsci42/api-pln

By luizsci42

•Updated over 3 years ago

Esta API fornece alguns serviços de PLN que podem ser usados por desenvolvedores

Image
0

124

luizsci42/api-pln repository overview

⁠Processamento de Linguagem Natural como um Serviço

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.

⁠Serviços Disponíveis

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.

⁠Endpoints

  • /sumarizar endpoint de sumarização de texto. Em sua aplicação, basta passar uma string na URL.

  • /emocoes endpoint para análise de sentimentos.

⁠Execução do container

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

⁠Exemplo de uso

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}')

Tag summary

Content type

Image

Digest

sha256:eb07f1e04…

Size

1.5 GB

Last updated

over 3 years ago

docker pull luizsci42/api-pln