Code: Select all
package com.android.app.tokenizer
class Tokenizer(context: Context) {
private var context: Context? = null
init {
this.context = context
try {
System.loadLibrary('mediasearch')
} catch (e: Exception) {
Log.e("Tokenzier", e.message)
}
}
fun tokenizeText(input: String): MutableList? {
val tokens = Arrays.stream(tokenizeTextFromAsset(context.assets, "sentence_tokenizer.model", input")).boxed().collect(Collectors.toList())
return tokens
}
external fun tokenizeTextFromAsset(manager: AssetManager, tokenizerName: String, query: String): IntArray
}
< /code>
und ich rufe den Tokenizer von < /p>
aufval tokenizer = Tokenizer(context)
val tokens = tokenizer.tokenizeText(input)
< /code>
In der CPP -Datei habe ich die Tokenize -Funktion als < /p>
definiertextern "C"
JNIEXPORT jintArray JNICALL
Java_com_android_app_tokenizer_Tokenizer_tokenizeTextFromAsset(JNIEnv *env, jobject, jobject assetManager, jobject assetFileName, jstring query)
No implementation found for int[]
com.android.app.tokenizer.Tokenizer.tokenizeTextFromAsset (android.content.res.AssetManager, java.lang.String, java.lang. String) (tried Java_com_android_app_tokenizer_Tokenizer_tokenizeTextFromAsset and Java_com_android_app_tokenizer_Tokenizer_tokenizeTextFromAsset_Landroid_content_res_AssetManager_2Ljava_lang_String_2Ljava_lang_String_2) - is the library loaded, e.g. System.loadLibrary
< /code>
Der Blockvermessungsblock hat keinen Fehler gemacht. Bitte lassen Sie mich wissen, ob es etwas fehlt.