У меня есть код для выполнения анализа настроений оператора или группы утверждений с использованием API-интерфейса Google cloud на естественном языке. Но когда проект запущен, я не получаю никакого вывода, даже если в моем коде нет ошибок.
Я попытался реализовать пример приложения для Android, предоставляемого android, также для анализа настроений, хотя код работает отлично, я не могу понять код. Вот ссылка для этого, любая помощь в понимании кода будет оценена - https://github.com/GoogleCloudPlatform/android-docs-samples/tree/master/nl/Language
These are my dependencies:
implementation 'com.google.cloud:google-cloud-language:1.70.0'
часть android в моем файле gradle уровня приложения выглядит следующим образом:
андроид {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.googlesentiment"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner
"Android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
релиз {
minifyEnabled false
proguardFiles getDefaultProguardFile ('proguard-android-
optimize.txt '),' proguard-rules.pro '
}
}
configurations.all {
resolutionStrategy.force 'com.google.code.findbugs: jsr305: 1.3.9'
}
packageOptions {
исключить «META-INF / ЗАВИСИМОСТЬ»
исключить «МЕТА-ИНФ / ЛИЦЕНЗИЯ»
исключить META-INF / LICENSE.txt
исключить META-INF / license.txt
исключить «META-INF / NOTICE»
исключить META-INF / NOTICE.txt
исключить 'META-INF / note.txt'
исключить «META-INF / ASL2.0»
исключить META-INF / INDEX.LIST
}
}
I have a class named MyAnalyser where the main code for sentiment analysis lies . It is as follows:
package com.example.googlesentiment;
import com.google.cloud.language.v1.AnalyzeSentimentResponse;
import com.google.cloud.language.v1.Document;
import com.google.cloud.language.v1.Document.Type;
import com.google.cloud.language.v1.LanguageServiceClient;
import com.google.cloud.language.v1.Sentiment;
public class MyAnalyser {
String magnitude,score;
private final static String TAG = "My Tag";
public Sentiment analyzeSentimentText(String text) throws Exception {
// [START language_sentiment_text]
// Instantiate The Languageclient
com.google.cloud.language.v1.LanguageServiceClient
try (LanguageServiceClient language = LanguageServiceClient.create())
{
Document doc = Document.newBuilder()
.setContent(text)
.setType(Type.PLAIN_TEXT)
.build();
AnalyzeSentimentResponse response =
language.analyzeSentiment(doc);
Sentiment sentiment = response.getDocumentSentiment();
if (sentiment == null) {
System.out.println("No sentiment found");
} else {
magnitude = Float.toString(sentiment.getMagnitude());
score = Float.toString(sentiment.getMagnitude());
Log.d(TAG,Float.toString(sentiment.getMagnitude()));
Log.d(TAG,Float.toString(sentiment.getScore()));
}
Log.d(TAG,sentiment.toString());
return sentiment;
}
// [END language_sentiment_text]
}
public String getMagnitude(){
return magnitude;
}
public String getScore(){
return score;
}
}
Это мой файл mainActivity.java для метода создания: при нажатии кнопки должен быть выполнен анализ настроений, но когда я нажимаю кнопку, ничего не происходит:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
enterSample = this.findViewById(R.id.enter_sample_text);
button = this.findViewById(R.id.button_analyse);
textView = this.findViewById(R.id.get_sentiment_and_entity);
sampleText = enterSample.getText().toString();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG,"this is starting");
MyAnalyser analyser = new MyAnalyser();
try {
Log.d(TAG,"this is starting");
analyser.analyzeSentimentText(sampleText);
Log.d(TAG,"this is starting");
textView.setText(analyser.getMagnitude() + "\n" +
analyser.getScore());
Log.d(TAG,"this is starting");
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
Я ожидаю значение плавающего типа (преобразованное в строку) для настроения и величины. но не получаю вывод