AI neemt de wereld snel over. Elk segment in technologie wordt heroverwogen en gerevolutioneerd met behulp van AI. Als softwareontwikkelaar zul je op een bepaald moment in je carrière zeker in aanraking komen met AI, dus het is alleen maar logisch om enige ervaring ermee te hebben. Het gebied van AI is extreem groot en het valt ver buiten het bestek van dit bericht, maar toch wil ik je laten zien hoe gemakkelijk het is om intelligentie in je apps te integreren met minimaal werk. Natuurlijk train je geen machine learning-modellen om dit te bereiken, je gebruikt een kant-en-klare oplossing, en daarom zal het je uiterst weinig werk kosten.
We bouwen een uiterst eenvoudig sentimentanalysesysteem op Android met behulp van de Watson API van IBM. IBM bouwt veel handige integraties die direct door ontwikkelaars kunnen worden gebruikt zonder dat ze zelf de infrastructuur hoeven te bouwen. Ze verbinden al hun aanbod onder Bluemix, een reeks producten om betere software te bouwen. Het mooie van Bluemix is het feit dat het 30 dagen gratis wordt geleverd, zodat u niet meteen een verbintenis hoeft aan te gaan. Als je geïnteresseerd bent in het bekijken van hun aanbod, ga dan naar de Bluemix-website en meld u aan voor een proefperiode van 30 dagen.
Oké, laten we beginnen met het bouwen van de app. Voordat u begint, volgt hier een korte disclaimer. In dit artikel wordt er volledig van uitgegaan dat je enige ervaring hebt met objectgeoriënteerd programmeren en Android. Het Android-gedeelte van het project is vrij minimaal, dus alles wat je nodig hebt is basiskennis van weergaven en hoe je ze kunt manipuleren.
Nu we klaar zijn met de formaliteiten, gaan we aan de slag.
Stap 1: De installatie
Start Android Studio en maak een nieuw project. Geef het de gewenste naam en accepteer de standaardinstellingen in de installatiewizard. Zodra het project is gebouwd, voert u het uit op een apparaat of emulator om er zeker van te zijn dat alles goed werkt. Als alles tot nu toe goed is, ben je klaar om door te gaan naar de volgende stap.
Stap 2: De gebruikersinterface bouwen
Laten we beginnen met het bouwen van de lay-out. Aangezien de app vrij minimaal is, laten we het lay-outgedeelte zo snel mogelijk uit de weg ruimen. Dit is hoe het uiteindelijke app-scherm eruit zal zien.
Het bestaat uit een TextView, een EditText en een Button die allemaal in een LinearLayout zitten. Als u klaar bent met het repliceren van de lay-out, springt u gewoon naar het bijbehorende Java-bestand en sluit u uw gebruikersinterface als volgt aan.
openbare klasse MainActivity breidt AppCompatActivity uit { TextView textView; Tekst bewerken tekst bewerken; Knop knop; Stringsentiment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // initialiseer UI-elementen textView = (TextView) findViewById (R.id.textView); editText = (EditText) findViewById(R.id.editText); button = (Knop) findViewById(R.id.button);
Laten we de knop koppelen aan een klikluisteraar zodat deze reageert op aanraakgebeurtenissen. Hier is de code daarvoor:
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("Log in op de console dat de knop voor de tekst is ingedrukt: " + editText.getText()); textView .setText("Weergeven in UI het sentiment waarop moet worden gecontroleerd: " + editText.getText()); AskWatsonTask task = new AskWatsonTask(); task.execute(new String[]{}); } });
Let op de AskWatsonTask? Dat is wat zal worden gebruikt voor het ophalen van de sentimentanalyseresultaten van de Watson API. Het is niets anders dan een eenvoudige AsyncTask. Kopieer en plak het volgende stukje code:
privéles AskWatsonTask breidt AsyncTask . uit { @Override protected String doInBackground(String... textsToAnalyse) { System.out.println(editText.getText()); runOnUiThread(new Runnable() { @Override public void run() { textView.setText ("wat gebeurt er in een thread - we gebruiken Watson AlchemyAPI"); } }); sentiment = "Testsentiment"; Systeem.uit.println(sentiment); // het resultaat doorgeven dat moet worden weergegeven in de gebruikersinterface in het hoofdretoursentiment van het loopvlak; } // de waarde van de UI buiten de thread instellen @Override protected void onPostExecute(String result) { textView.setText ("Het sentiment van het bericht is: " + resultaat); } }
De bovengenoemde AsyncTask haalt resultaten op van Watson in JSON-indeling die we later zullen ontleden en weergeven in de gebruikersinterface. Vanaf nu is de app behoorlijk dom, maar het werkt. Om een checkpoint vast te leggen, kunnen we de app implementeren die we tot nu toe hebben gebouwd en kijken wat deze doet. Druk op de groene afspeelknop en kijk hoe het wordt uitgevoerd. Het doet niets.
Als u op de Analyseren! knop, zou u het resultaat in het veld TextView moeten kunnen zien. Je zou ook wat output moeten zien in het log cat-venster.
Stap 3: De Smarts toevoegen
Het is tijd om het cognitieve vermogen toe te voegen aan deze kale botten van een app. Het eerste dat u hoeft te doen, is de Watson Cloud SDK voor Java toevoegen aan uw app. ga naar deze link voor een gedetailleerde uitleg over hoe u dit moet doen. Download de Java-bibliotheek van deze link. En voeg het als volgt toe aan de map libs.
Zodra de bibliotheek is geïntegreerd, moet u internetrechten in uw app verkrijgen. Open de AndroidManifest.xml en voeg de volgende regels toe:
Met de bovenstaande machtigingen hebt u toegang tot het netwerk om de resultaten van Watson op te halen.
Stap 3b: Haal de API-sleutel op uit Bluemix
Klik in de IBM Bluemix-catalogus op Watson => AlchemyAPI => Aanmaken. Zorg ervoor dat u een statische API-sleutel gebruikt, zoals weergegeven in de volgende afbeelding:
Stap 4: Voeg de code toe om Watson aan te roepen
Nu is het tijd om wat code toe te voegen om te communiceren met de Watson Alchemy API. Vouw de AskWatson AsyncTask uit met de volgende code.
AlchemyLanguage-service = nieuwe AlchemyLanguage(); service.setApiKey(""); Kaart params = nieuwe HashMap (); params.put(AlchemyLanguage.TEXT, editText.getText()); DocumentSentiment sentiment = service.getSentiment(params).execute(); Systeem.uit.println(sentiment); // het resultaat doorgeven dat moet worden weergegeven in de gebruikersinterface in de hoofdthread return sentiment.getSentiment().getType().name();
Tijd om snel te testen of de app werkt. Druk op Ctrl+R en zie hoe de app helemaal slim is!

{ "docSentiment": { "score": -0.42344, "type": "negative" }, "language": "english", "totalTransactions": 1 }
Conclusie
Je zag net hoe gemakkelijk het was om een cognitieve app te bouwen met Watson Sentiment Analysis. De app die we hebben gebouwd, had niet per se een echte functionaliteit, maar het toonde de mogelijkheden van Bluemix en zijn aanbod. Je kunt deze aanbiedingen onder meerdere haakjes plaatsen en een aantal extreem rijke gebruikerservaringen bouwen. Ga naar de website van Bluemix voor meer informatie over wat u allemaal kunt bouwen.
laat een reactie achter
Heb je iets te zeggen over dit artikel? Voeg je commentaar toe en start de discussie.