A IA está dominando o mundo rapidamente. Cada segmento de tecnologia está sendo repensado e revolucionado usando IA. Como desenvolvedor de software, em algum momento de sua carreira, você definitivamente terá um encontro com IA, então só faz sentido ter alguma experiência em trabalhar com ela. O campo da IA é extremamente vasto e está muito além do escopo deste post, mas ainda assim, quero mostrar como é fácil integrar inteligência em seus aplicativos com o mínimo de trabalho. Claro, você não treinará nenhum modelo de aprendizado de máquina para conseguir isso, mas usará uma solução pré-construída, e é por isso que exigirá um trabalho extremamente mínimo.
Vamos construir um sistema de análise de sentimento extremamente simples no Android usando a API Watson da IBM. A IBM cria muitas integrações úteis que podem ser usadas diretamente pelos desenvolvedores sem a necessidade de construir a infraestrutura em sua extremidade. Eles vinculam todas as suas ofertas ao Bluemix, que é um conjunto de produtos para construir um software melhor. O que é ótimo sobre o Bluemix é o fato de que ele vem de graça por 30 dias, então você não precisa assumir um compromisso direto. Se você estiver interessado em verificar suas ofertas, vá para o Site Bluemix e inscreva-se para um teste de 30 dias.
Tudo bem, então vamos começar a construir o aplicativo. Antes de começar, aqui está um rápido aviso de isenção de responsabilidade. Este artigo presumirá completamente que você tem alguma experiência com programação orientada a objetos e Android. A parte Android do projeto é mínima, então tudo que você precisa é um conhecimento básico das visualizações e como manipulá-las.
Agora que terminamos as formalidades, vamos começar.
Etapa 1: a configuração
Abra o Android Studio e crie um novo projeto. Nomeie como quiser e aceite os padrões no assistente de configuração. Depois que o projeto for compilado, execute-o em um dispositivo ou emulador apenas para ter certeza de que tudo está funcionando bem. Se tudo estiver bem até agora, você está pronto para prosseguir para a próxima etapa.
Etapa 2: Construindo a IU
Vamos começar a construir o layout. Como o aplicativo é mínimo, vamos tirar a parte do layout do caminho o mais rápido possível. Esta é a aparência da tela final do aplicativo.
É composto por um TextView, um EditText e um Button, todos eles contidos dentro de um LinearLayout. Quando terminar de replicar o layout, basta ir para o arquivo Java correspondente e conectar sua IU da seguinte maneira.
a classe pública MainActivity estende AppCompatActivity {TextView textView; EditText editText; Botão de botão; Sentimento da corda; @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // inicializar os elementos da IU textView = (TextView) findViewById (R.id.textView); editText = (EditText) findViewById (R.id.editText); botão = (Botão) findViewById (R.id.button);
Vamos conectar o botão a um ouvinte de clique para que ele responda a eventos de toque. Aqui está o código para isso:
button.setOnClickListener (new View.OnClickListener () {@Override public void onClick (View v) {System.out.println ("Registrando no console que o botão pressionou para o texto:" + editText.getText ()); textView .setText ("Exibindo na IU o sentimento a ser verificado:" + editText.getText ()); AskWatsonTask task = new AskWatsonTask (); task.execute (new String [] {});}});
Observe o AskWatsonTask? Isso é o que será usado para buscar os resultados da análise de sentimento da API do Watson. Não é nada além de uma simples AsyncTask. Copie e cole o seguinte trecho de código:
classe privada AskWatsonTask estende AsyncTask {@Override protected String doInBackground (String ... textToAnalyse) {System.out.println (editText.getText ()); runOnUiThread (new Runnable () {@Override public void run () {textView.setText ("o que está acontecendo dentro de uma thread - estamos executando o Watson AlchemyAPI");}}); sentimento = "Testar sentimento"; System.out.println (sentimento); // passando o resultado a ser exibido na IU no sentimento de retorno da banda de rodagem principal; } // definindo o valor da IU fora do thread @Override protected void onPostExecute (String result) {textView.setText ("O sentimento da mensagem é:" + resultado); }}
O AsyncTask mencionado acima buscará resultados do Watson no formato JSON, que analisaremos posteriormente e exibiremos na IU. A partir de agora, o aplicativo é muito burro, mas funciona. Para registrar um ponto de verificação, vamos implantar o aplicativo que construímos até agora e ver o que ele faz. Aperte o botão verde Play e veja-o rodar. Não faz nada.
Se você clicar no Analisar! botão, você deve ser capaz de ver o resultado no campo TextView. Você também deve ver alguma saída na janela log cat.
Etapa 3: Adicionando os Smarts
É hora de adicionar a capacidade cognitiva ao esqueleto de um aplicativo. A primeira coisa que você precisa fazer é adicionar o Watson Cloud SDK para Java em seu aplicativo. cabeça para este link para obter uma explicação detalhada sobre como fazer isso. Baixe a biblioteca Java em este link. E adicione-o à pasta libs da seguinte maneira.
Assim que a biblioteca estiver integrada, você precisa adquirir permissões de internet em seu aplicativo. Abra o AndroidManifest.xml e adicione as seguintes linhas
As permissões acima permitirão que você acesse a rede para buscar os resultados do Watson.
Etapa 3b: recuperar a chave de API do Bluemix
No catálogo do IBM Bluemix, clique em Watson => AlchemyAPI => Criar. Certifique-se de usar uma chave de API estática, conforme mostrado na imagem a seguir:
Etapa 4: adicione o código para invocar o Watson
Agora é hora de adicionar algum código para se comunicar com a API do Watson Alchemy. Expanda AskWatson AsyncTask com o código a seguir.
Serviço AlchemyLanguage = novo AlchemyLanguage (); service.setApiKey (""); Mapa params = novo HashMap (); params.put (AlchemyLanguage.TEXT, editText.getText ()); DocumentSentiment sentiment = service.getSentiment (params) .execute (); System.out.println (sentimento); // passando o resultado a ser exibido na IU no thread principal return sentiment.getSentiment (). getType (). name ();
É hora de testar rapidamente se o aplicativo está funcionando. Aperte Ctrl + R e veja o app ficar todo inteligente!
{"docSentiment": {"score": -0.42344, "type": "negative"}, "language": "english", "totalTransactions": 1}
Conclusão
Você acabou de ver como é fácil construir um aplicativo cognitivo usando o Watson Sentiment Analysis. O aplicativo que construímos não tinha nenhuma funcionalidade real por dizer, mas mostrou a capacidade do Bluemix e suas ofertas. Você pode colocar essas ofertas em vários colchetes e construir algumas experiências de usuário extremamente ricas. Acesse o site do Bluemix para saber mais sobre o que você pode construir.
Deixe um comentário
Tem algo a dizer sobre este artigo? Adicione seu comentário e comece a discussão.