Проблема с анализом настроений в Google Natural Language - PullRequest
1 голос
/ 26 апреля 2019

У меня есть код для выполнения анализа настроений оператора или группы утверждений с использованием 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();
            }
        }
    });


}

Я ожидаю значение плавающего типа (преобразованное в строку) для настроения и величины. но не получаю вывод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...