IBM Cloud Natural Language Understanding API android .os.NetworkOnMainThreadException Ошибка - PullRequest
0 голосов
/ 06 августа 2020

Я использую IBM Natural Language Understanding API для возврата информации о токенах во входном тексте.

Это код, который у меня есть в моем onActivityResult для запроса функции синтаксиса:

authenticator = IamAuthenticator("my_api_key")
naturalLanguageUnderstanding = NaturalLanguageUnderstanding("2020-08-05", authenticator)
naturalLanguageUnderstanding.serviceUrl = "my_url"
syntax = SyntaxOptions.Builder().sentences(true).build()
features = Features.Builder().syntax(syntax).build()
parameters = AnalyzeOptions.Builder().text(mainIngr[0]).features(features).build()
posResponse = naturalLanguageUnderstanding.analyze(parameters).execute().result
for (token: TokenResult in posResponse.syntax.tokens) {
    if (token.partOfSpeech == "NOUN") {
        print(token.text + ": " + token.partOfSpeech + ", ")
    }
}

У меня также есть этот код в верхней части моей активности для указанных выше переменных:

private lateinit var authenticator: IamAuthenticator
private lateinit var naturalLanguageUnderstanding: NaturalLanguageUnderstanding
private lateinit var syntax: SyntaxOptions
private lateinit var features: Features
private lateinit var parameters: AnalyzeOptions
private lateinit var posResponse: AnalysisResults

Когда я запускаю свою программу, она вылетает в этой строке: posResponse = naturalLanguageUnderstanding.analyze(parameters).execute().result

Это ошибка, которую я получаю: android.os.NetworkOnMainThreadException

Как мне это исправить? Текст, который мне нужно использовать в качестве ввода, находится в моем onActivityResult.

...