Sztuczna inteligencja szybko przejmuje władzę nad światem. Każdy segment technologii jest ponownie przemyślany i zrewolucjonizowany za pomocą sztucznej inteligencji. Jako programista w pewnym momencie swojej kariery na pewno spotkasz się ze sztuczną inteligencją, więc sensowne jest posiadanie pewnego doświadczenia w pracy z nią za pasem. Dziedzina sztucznej inteligencji jest niezwykle rozległa i wykracza daleko poza zakres tego postu, ale nadal chcę pokazać, jak łatwo jest zintegrować inteligencję w swoich aplikacjach przy minimalnym nakładzie pracy. Oczywiście nie będziesz szkolić żadnych modeli uczenia maszynowego, aby to osiągnąć, użyjesz gotowego rozwiązania, dlatego zajmie ci to wyjątkowo minimalny nakład pracy.
Zbudujemy niezwykle prosty system analizy sentymentu na Androida, korzystając z interfejsu Watson API firmy IBM. IBM tworzy wiele przydatnych integracji, które mogą być bezpośrednio używane przez programistów bez konieczności budowania infrastruktury po ich stronie. Łączą wszystkie swoje oferty w Bluemix, który jest pakietem produktów do tworzenia lepszego oprogramowania. To, co jest wspaniałe w Bluemix, to fakt, że jest dostępny za darmo przez 30 dni, więc nie musisz od razu podejmować zobowiązań. Jeśli jesteś zainteresowany zapoznaniem się z ich ofertą, przejdź do Strona internetowa Bluemix i zapisz się na 30-dniowy okres próbny.
Dobrze, więc zacznijmy tworzyć aplikację. Przed rozpoczęciem oto krótkie zastrzeżenie. W tym artykule całkowicie założymy, że masz pewne doświadczenie z programowaniem obiektowym i Androidem. Część projektu dotycząca Androida jest dość minimalna, więc wszystko, czego potrzebujesz, to podstawowa wiedza na temat widoków i tego, jak nimi manipulować.
Skoro już załatwiliśmy formalności, zacznijmy.
Krok 1: Konfiguracja
Uruchom Android Studio i utwórz nowy projekt. Nazwij go jak chcesz i zaakceptuj wartości domyślne w kreatorze konfiguracji. Po skompilowaniu projektu uruchom go na urządzeniu lub emulatorze, aby upewnić się, że wszystko działa poprawnie. Jeśli do tej pory wszystko jest w porządku, możesz przejść do następnego kroku.
Krok 2: Budowanie interfejsu użytkownika
Zacznijmy budować układ. Ponieważ aplikacja jest dość minimalna, usuńmy część układu tak szybko, jak to możliwe. Oto jak będzie wyglądał końcowy ekran aplikacji.
Składa się z TextView, EditText i Buttona wszystkie są zawarte w LinearLayout. Po zakończeniu replikowania układu po prostu przejdź do odpowiedniego pliku Java i podłącz interfejs użytkownika w następujący sposób.
public class MainActivity rozszerza AppCompatActivity { TextView textView; EdytujTekst edytujTekst; Przycisk przycisku; sentyment ciągu; @Zastąp chronione void onCreate(Bundle protectedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //zainicjuj elementy interfejsu użytkownika textView = (TextView) findViewById(R.id.textView); editText = (EditText) findViewById(R.id.editText); button = (Przycisk) findViewById(R.id.button);
Połączmy przycisk z detektorem kliknięć, aby reagował na zdarzenia dotykowe. Oto kod do tego:
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("Logowanie do konsoli po naciśnięciu przycisku dla tekstu: " + editText.getText()); textView .setText("Wyświetlanie w interfejsie tonacji do sprawdzenia: " + editText.getText()); AskWatsonTask task = new AskWatsonTask(); task.execute(new String[]{}); } });
Zwróć uwagę na AskWatsonTask? To właśnie będzie używane do pobierania wyników analizy sentymentu z Watson API. To nic innego jak proste AsyncTask. Skopiuj i wklej następujący fragment kodu:
klasa prywatna AskWatsonTask rozszerza AsyncTask { @Zastąp chroniony ciąg znaków doInBackground(String... textsToAnalyse) { System.out.println(editText.getText()); runOnUiThread(new Runnable() { @Override public void run() { textView.setText ("co dzieje się wewnątrz wątku - uruchamiamy Watson AlchemyAPI"); } }); sentyment = "Testuj sentyment"; System.out.println(sentyment); //przekazanie wyniku do wyświetlenia w interfejsie użytkownika w głównym sentymencie zwrotów bieżnika; } //ustawienie wartości interfejsu użytkownika poza wątkiem @Override protected void onPostExecute(String result) { textView.setText ("Sentyzja wiadomości to: " + wynik); } }
Wspomniany powyżej AsyncTask pobierze wyniki z Watsona w formacie JSON, które później przeanalizujemy i wyświetlimy w interfejsie użytkownika. Na razie aplikacja jest dość głupia, ale działa. Aby zarejestrować punkt kontrolny, wdróż aplikację, którą zbudowaliśmy do tej pory i zobacz, co robi. Naciśnij zielony przycisk Odtwórz i obserwuj, jak działa. To nic nie robi.
Jeśli klikniesz Analizować! przycisk, powinieneś być w stanie zobaczyć wynik w polu TextView. Powinieneś także zobaczyć jakieś dane wyjściowe w oknie dziennika kota.
Krok 3: Dodawanie sprytnych
Czas dodać zdolności poznawcze do tych podstawowych elementów aplikacji. Pierwszą rzeczą, którą musisz zrobić, to dodać Watson Cloud SDK for Java do swojej aplikacji. udaj się do pod tym linkiem aby uzyskać szczegółowe wyjaśnienie, jak to zrobić. Pobierz bibliotekę Java z pod tym linkiem. I dodaj go do folderu libs w następujący sposób.
Po zintegrowaniu biblioteki musisz uzyskać uprawnienia internetowe w swojej aplikacji. Otwórz AndroidManifest.xml i dodaj następujące wiersze
Powyższe uprawnienia pozwolą Ci uzyskać dostęp do sieci w celu pobrania wyników z Watsona.
Krok 3b: Pobierz klucz API z Bluemix
W katalogu IBM Bluemix kliknij Watson => AlchemyAPI => Utwórz. Pamiętaj, aby użyć statycznego klucza API, jak pokazano na poniższym obrazku:
Krok 4: Dodaj kod, aby wywołać Watsona
Teraz nadszedł czas na dodanie kodu do komunikacji z API Watson Alchemy. Rozwiń AskWatson AsyncTask za pomocą następującego kodu.
Usługa AlchemyLanguage = nowa AlchemyLanguage(); service.setApiKey(""); Mapa params = nowa HashMap (); params.put(AlchemyJęzyk.TEKST, editText.getText()); Opinia DocumentSentiment = service.getSentiment(params).execute(); System.out.println(sentyment); //przekazanie wyniku do wyświetlenia w interfejsie użytkownika w głównym wątku return sent sentyment.getSentiment().getType().name();
Czas szybko sprawdzić, czy aplikacja działa. Naciśnij Ctrl + R i obserwuj, jak aplikacja jest inteligentna!
{ "docSentiment": { "score": -0.42344, "type": "negative" }, "language": "english", "totalTransactions": 1 }
Wnioski
Właśnie zobaczyłeś, jak łatwo było zbudować aplikację kognitywną przy użyciu Watson Sentiment Analysis. Zbudowana przez nas aplikacja nie miała żadnej rzeczywistej funkcjonalności, ale pokazała możliwości Bluemix i jego oferty. Możesz umieścić te oferty w wielu nawiasach i zbudować niezwykle bogate wrażenia użytkowników. Wejdź na stronę Bluemix, aby dowiedzieć się więcej o tym, co możesz zbudować.
Zostaw komentarz
Masz coś do powiedzenia na temat tego artykułu? Dodaj swój komentarz i rozpocznij dyskusję.