کار با Google Cloud machine learning

تولید اپلیکیشن های هوشمند اندروید: چگونه می توان از Google Cloud Machine Learning Services استفاده کرد؟ - بخش دوم


در مطلب قبلی با استفاده از  Vision API اپلیکیشنی ساختیم که با استفاده از دوربین گوشی اشیای اطراف را شناسایی کرده و نام آنها را به صورت برچسب نمایش میدهد. در ادامه قصد داریم با استفاده از Translation API این نام ها را به زبان های گوناگون نمایش دهیم.

استفاده از Translation API

همانطور که از نام Cloud Translation API نیز پیداست، با استفاده از آن میتوان متن را به 100 زبان ترجمه کرد. در صورت استفاده کارآمد، میتوانید اپلیکیشن های هوشمندی بسازید که با زبان کاربران با آنها به تعامل بپردازند.

همانطور که در مرحله قبل دیدید، برچسب های تولید شده توسط اپلیکیشن به زبان انگلیسی میباشند، لذا قصد داریم دکمه ای به آن اضافه کنیم که این برچسب ها را به زبان آلمانی ترجمه کند.

گام 1: آپدیت کردن لی اوت

با استفاده از کد زیر یک ویجت Button در قسمت انتهایی لی اوت اکتیویتی اضافه کنید:

<Button

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/resultsText"

android:text="in German"

android:onClick="translateToGerman"/>

توجه داشته باشید که این دکمه دارای ایونت onClick است که باید در کلاس Activity تعریف شود.

گام 2: ترجمه برچسب ها

کار با Translation API بسیار ساده تر از کار با Vision API میباشد و نیازی به ساخت داکیومنت JSON برای تعریف درخواست ندارید و تنها باید پارامترها را در یک کوئری استرینگ ارسال کنید.

متد ()translateToGerman را ساخته و درون آن یک رشته بسازید که شامل URL از Translation API باشد.

public void translateToGerman(View view) {

String requestURL =

"https://translation.googleapis.com/language/translate/v2";

// More code goes here

}

برای افزودن فیلد به کوئری استرینگ از URL بالا میتوانید از List of Pair objects استفاده کنید.

فیلدهای زیر مهمند:

- key : تعیین کننده API Key مخفی

- source : تعیین کننده زبانی که مایل به ترجمه از آن میباشید

- target : تعیین کننده زبانی که مایل به ترجمه به آن میباشید

- q : تعیین کننده متنی که مایل به ترجمه آن میباشید

List<Pair<String, String>> params = new ArrayList<>();

// Add API key

params.add(new Pair<String, String>("key",

getResources().getString(R.string.mykey)));

// Set source and target languages

params.add(new Pair<String, String>("source", "en"));

params.add(new Pair<String, String>("target", "de"));

از آنجایی که شاید کوئری استرینگ شامل چندین فایل q باشد، برای هر برچسب موجود که در داخل ویجت TextView از لی اوت وجود دارد، یکی اضافه میکنیم. در زیر نحوه انجام این کار نشان داده شده است:

String[] queries = ((TextView)findViewById(R.id.resultsText))

.getText().toString().split("\n");

for(String query:queries) {

params.add(new Pair<String, String>("q", query));

}

برای ساخت یک درخواست HTTP GET به Translation API میتوانید متد ()get از کلاس Fuel را فراخوانی کنید. از متد ()responseString نیز جهت دریافت جواب به شکل رشته و به صورت ناهمگام استفاده کنید.

Fuel.get(requestURL, params).responseString(new Handler<String>() {

@Override

public void success(@NotNull Request request,

@NotNull Response response,

String data) {

// More code here

}

@Override

public void failure(@NotNull Request request,

@NotNull Response response,

@NotNull FuelError fuelError) { }

});

جواب Translation API یک داکیومنت JSON است که شامل یک آرایه از ترجمه ها میباشد، فرمت آن به صورت زیر است:

{ "data": { "translations": [

{

"translatedText": "...."

},

{

"translatedText": "...."

},

...

] } }

در این مرحله در داخل متد ()success از کلاس Handler، یک حلقه بر روی آرایه translations از داکیومنت JSON بالا انجام داده و محتوای ویجت TextView را با استفاده از مقادیر مربوط به کلیدهای translatedText آپدیت میکنیم.

// Access the translations array

JSONArray translations = new JSONObject(data)

.getJSONObject("data")

.getJSONArray("translations");

// Loop through the array and extract the translatedText

// key for each item

String result = "";

for(int i=0;i<translations.length();i++) {

result += translations.getJSONObject(i)

.getString("translatedText") + "\n";

}

// Update the contents of the TextView widget

((TextView)findViewById(R.id.resultsText)).setText(result);

در این مرحله اگر اپلیکیشن را اجرا کنید و برچسب هایی برای یک عکس تولید نمایید و دکمه دوم را بزنید، تمامی برچسب های تولید شده به زبان آلمانی نمایش داده میشوند.

کار با Google Cloud machine learning

جمع بندی

در این دو مطلب نحوه استفاده از Cloud Vision و Cloud Translation API را که هر دو بخشی از پلتفرم Google Cloud Machine Learning میباشند، آموختیم. این پلتفرم API متعدد دیگری را نیز ارائه میدهد و با مراجعه به مستندات رسمی، میتوانید آنها را مشاهده کنید.

 

https://code.tutsplus.com برگرفته از

اینها را هم بخوانید