KI erobert die Welt rasant. Jedes Segment der Technologie wird mit KI neu gedacht und revolutioniert. Als Softwareentwickler werden Sie irgendwann in Ihrer Karriere auf jeden Fall mit KI in Berührung kommen, daher ist es nur sinnvoll, einige Erfahrungen im Umgang damit zu sammeln. Das Feld der KI ist extrem umfangreich und würde den Rahmen dieses Beitrags sprengen, aber ich möchte Ihnen dennoch zeigen, wie einfach es ist, Intelligenz mit minimalem Aufwand in Ihre Apps zu integrieren. Natürlich trainieren Sie dafür keine Machine-Learning-Modelle, sondern verwenden eine vorgefertigte Lösung, weshalb Sie nur mit minimalem Aufwand arbeiten können.
Wir bauen ein extrem einfaches Sentiment-Analysesystem auf Android mit der Watson-API von IBM. IBM erstellt viele nützliche Integrationen, die von Entwicklern direkt verwendet werden können, ohne sich um den mühsamen Aufbau der Infrastruktur kümmern zu müssen. Sie bündeln alle ihre Angebote unter Bluemix, einer Produktsuite zum Erstellen besserer Software. Das Tolle an Bluemix ist die Tatsache, dass es 30 Tage lang kostenlos erhältlich ist, sodass Sie sich nicht sofort verpflichten müssen. Wenn Sie daran interessiert sind, sich die Angebote anzusehen, besuchen Sie die Bluemix-Website und melden Sie sich für eine 30-tägige Testversion an.
Okay, also fangen wir an, die App zu erstellen. Bevor Sie beginnen, ist hier ein kurzer Haftungsausschluss. In diesem Artikel wird vollständig davon ausgegangen, dass Sie bereits Erfahrung mit objektorientierter Programmierung und Android haben. Der Android-Teil des Projekts ist ziemlich minimal, sodass Sie nur grundlegende Kenntnisse über Ansichten und deren Bearbeitung benötigen.
Nachdem wir nun mit den Formalitäten fertig sind, können wir loslegen.
Schritt 1: Das Setup
Starten Sie Android Studio und erstellen Sie ein neues Projekt. Benennen Sie es nach Belieben und akzeptieren Sie die Standardeinstellungen im Setup-Assistenten. Sobald das Projekt erstellt wurde, führen Sie es auf einem Gerät oder Emulator aus, um sicherzustellen, dass alles ordnungsgemäß funktioniert. Wenn bisher alles in Ordnung ist, können Sie mit dem nächsten Schritt fortfahren.
Schritt 2: Erstellen der Benutzeroberfläche
Beginnen wir mit dem Aufbau des Layouts. Da die App ziemlich minimal ist, lassen Sie uns den Layout-Teil so schnell wie möglich aus dem Weg räumen. So sieht der letzte App-Bildschirm aus.
Es besteht aus einem TextView, einem EditText und einem Button, die alle in einem LinearLayout enthalten sind. Sobald Sie mit der Replikation des Layouts fertig sind, springen Sie einfach zur entsprechenden Java-Datei und verdrahten Sie Ihre Benutzeroberfläche wie folgt.
öffentliche Klasse MainActivity erweitert AppCompatActivity { TextView textView; Text bearbeiten Text bearbeiten; Schaltflächentaste; String-Sentiment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //UI-Elemente initialisieren textView = (TextView) findViewById(R.id.textView); editText = (EditText) findViewById(R.id.editText); button = (Button) findViewById(R.id.button);
Verbinden wir die Schaltfläche mit einem Klick-Listener, damit sie auf Berührungsereignisse reagiert. Hier ist der Code dafür:
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("Auf der Konsole protokollieren, dass die Schaltfläche für den Text gedrückt wurde: " + editText.getText()); textView .setText("Anzeige der zu prüfenden Stimmung auf der Benutzeroberfläche: " + editText.getText()); AskWatsonTask task = new AskWatsonTask(); task.execute(new String[]{}); } });
Beachten Sie die AskWatsonTask? Dies wird verwendet, um die Ergebnisse der Sentimentanalyse von der Watson-API abzurufen. Es ist nichts anderes als eine einfache AsyncTask. Kopieren Sie den folgenden Code und fügen Sie ihn ein:
private Klasse AskWatsonTask erweitert AsyncTask { @Override protected String doInBackground(String... textsToAnalyse) { System.out.println(editText.getText()); runOnUiThread(new Runnable() { @Override public void run() { textView.setText ("was in einem Thread passiert - wir führen Watson AlchemyAPI aus"); } }); sentiment = "Stimmung testen"; System.out.println(Sentiment); //Übergeben des Ergebnisses, das auf der Benutzeroberfläche im Hauptprofil angezeigt werden soll Return Sentiment; } //Wert der Benutzeroberfläche außerhalb des Threads festlegen @Override protected void onPostExecute(String result) { textView.setText ("Die Stimmung der Nachricht ist: " + result); } }
Die oben erwähnte AsyncTask ruft Ergebnisse von Watson im JSON-Format ab, die wir später analysieren und in der Benutzeroberfläche anzeigen. Im Moment ist die App ziemlich dumm, aber sie funktioniert. Um einen Prüfpunkt aufzuzeichnen, können Sie die bisher erstellte App bereitstellen und sehen, was sie tut. Drücken Sie die grüne Play-Taste und sehen Sie zu, wie es läuft. Es tut nichts.
Wenn Sie auf die Schaltfläche Analysieren! Schaltfläche, sollten Sie das Ergebnis im TextView-Feld sehen können. Sie sollten auch einige Ausgaben im Log-Cat-Fenster sehen.
Schritt 3: Hinzufügen der Smarts
Es ist an der Zeit, dieser einfachen App die kognitiven Fähigkeiten hinzuzufügen. Als Erstes müssen Sie das Watson Cloud SDK für Java zu Ihrer App hinzufügen. geh 'rüber zu diesen Link für eine ausführliche Erklärung, wie das geht. Laden Sie die Java-Bibliothek herunter von diesen Link. Und fügen Sie es wie folgt zum Ordner libs hinzu.
Sobald die Bibliothek integriert ist, müssen Sie in Ihrer App Internetberechtigungen erwerben. Öffnen Sie die AndroidManifest.xml und füge die folgenden Zeilen hinzu
Mit den oben genannten Berechtigungen können Sie auf das Netzwerk zugreifen, um die Ergebnisse von Watson abzurufen.
Schritt 3b: Abrufen des API-Schlüssels von Bluemix
Klicken Sie im IBM Bluemix-Katalog auf Watson => AlchemyAPI => Erstellen. Stellen Sie sicher, dass Sie einen statischen API-Schlüssel verwenden, wie in der folgenden Abbildung gezeigt:
Schritt 4: Fügen Sie den Code zum Aufrufen von Watson hinzu
Jetzt ist es an der Zeit, Code hinzuzufügen, um mit der Watson Alchemy-API zu kommunizieren. Erweitern Sie die AskWatson AsyncTask mit dem folgenden Code.
AlchemyLanguage-Dienst = neue AlchemyLanguage(); service.setApiKey(""); Karte params = neue HashMap (); params.put(AlchemyLanguage.TEXT, editText.getText()); DocumentSentiment-Sentiment = service.getSentiment(params).execute(); System.out.println(Sentiment); //Übergeben des an der Benutzeroberfläche im Hauptthread anzuzeigenden Ergebnisses return sentiment.getSentiment().getType().name();
Zeit, schnell zu testen, ob die App funktioniert. Drücken Sie Strg+R und sehen Sie zu, wie die App intelligent ist!
{ "docSentiment": { "score": -0.42344, "type": "negative" }, "language": "english", "totalTransactions": 1 }
Zusammenfassung
Sie haben gerade gesehen, wie einfach es war, mit Watson Sentiment Analysis eine kognitive App zu erstellen. Die von uns entwickelte App hatte keine wirkliche Funktionalität, aber sie zeigte die Leistungsfähigkeit von Bluemix und seinen Angeboten. Sie können diese Angebote in mehrere Klammern setzen und einige äußerst reichhaltige Benutzererfahrungen erstellen. Besuchen Sie die Bluemix-Website, um mehr darüber zu erfahren, was Sie alles bauen können.
Hinterlassen Sie uns eine Nachricht
Haben Sie etwas zu diesem Artikel zu sagen? Fügen Sie Ihren Kommentar hinzu und starten Sie die Diskussion.