Metin sınıflandırıcı, geliştiricilere yardımcı olmak için makine öğrenimi tekniklerini kullanır metin sınıflandırma.
Android 11 sürüm metni sınıflandırıcı
Android 11, güncellenebilir bir varsayılan kullanıma sunuyor
metin sınıflandırıcı hizmetinin
ExtServices modülü içerir. Android 11 çalıştıran cihazlarda
veya daha yüksek
getTextClassifier()
yöntemi, ExtServices modülünde bu varsayılan uygulamayı döndürür.
Cihaz üreticilerinin
Mainline OTA üzerinden güncellenebileceği için TextClassifierService
güncellemelerine göz atın.
Android 11, yerel metin sınıflandırıcıyı da kaldırır
bu programdaki varsayılan uygulama
Android 8.1. Sonuç olarak,
getLocalTextClassifier()
bir NO_OP
metin sınıflandırıcı döndürür. Yerel
dönüşüm hunisinin üst kısmındaki
getDefaultTextClassifierImplementation()
yöntemidir.
Kendi metin sınıflandırmalarını kullanmak isteyebilecek cihaz üreticileri
Google Analytics 4'te arama yapanlara özel metin sınıflandırıcı hizmeti
config.xml
içindeki config_defaultTextClassifierPackage
dosyası olarak kaydedebilirsiniz. Bu yapılandırma belirtilmezse varsayılan sistem uygulaması
bu düzenlemelerin nedenlerinden biri. Özel uygulamalar, varsayılan öğenin bir örneğini alabilir
yöntemini çağırarak
TextClassifierService.getDefaultTextClassifierImplementation(Context)
değerleridir.
Daha fazla bilgi için bkz.
Özel bir metin sınıflandırıcı hizmeti uygulamaya koyma.
Test
Metin sınıflandırıcı hizmeti uygulamanızı doğrulamak için
işletim sisteminde Uyumluluk Test Paketi (CTS) testleri
platform/cts/tests/tests/textclassifier/
değerleridir.
Android 10 sürümü metin sınıflandırıcı geliştirmeleri
Android 10,
TextClassifier API'sı:
suggestConversationActions
ve
detectLanguage
)
suggestConversationActions
yöntemi, önerilen yanıtlar oluşturur
belirli bir görüşmeden ve detectLanguage
yönteminden elde edilen işlemler
metnin dilini algılar.
Bu yöntemlere ilişkin model dosyaları aşağıda gösterilmektedir ve şurada bulunabilir:
external/libtextclassifier/models/
değerleridir.
suggestionConversationActions
:actions_suggestions.universal.model
detectLanguage
:lang_id.model
Fabrika görüntünüzdeki en son model dosyalarının bulunduğu bir cihazı kullanıma sunmak için: şu:
En son model dosyalarını alın.
external/libtextclassifier/models/update.sh
- İndirilen dosyaları, mevcut dosyaları yenisiyle değiştirecek şekilde yeniden adlandırın.
- Kurulumu doğrulayın.
adb shell dumpsys textclassification
Bu, ilgili komutun çıkışının bir örneğidir.
TextClassifierImpl: Annotator model file(s): ModelFile { path=/etc/textclassifier/textclassifier.universal.model name=textclassifier.universal.model version=608 locales=und } ModelFile { path=/etc/textclassifier/textclassifier.en.model name=textclassifier.en.model version=608 locales=en } LangID model file(s): ModelFile { path=/etc/textclassifier/lang_id.model name=lang_id.model version=0 locales=und } Actions model file(s): ModelFile { path=/etc/textclassifier/actions_suggestions.universal.model name=actions_suggestions.universal.model version=0 locales=und }
Android 9 sürümü metin sınıflandırıcı geliştirmeleri
Android 9, genişletilmiş metin sınıflandırma çerçevesini (Android 8.1'de) hizmet. Metin sınıflandırıcı hizmeti, OEM'ler için önerilen yöntemdir metin sınıflandırma sistemi desteği sağlamak. Metin sınıflandırıcı hizmeti, herhangi bir sistem APK'sının parçası olmalıdır ve gerektiğinde güncellenebilir.
Android 9'da varsayılan bir metin sınıflandırıcı bulunur
hizmet uygulaması
(
TextClassifierImpl
),
özel metin sınıflandırıcı hizmeti
bazı ipuçları vereceğim.
Özel bir metin sınıflandırıcı hizmeti uygulama
Aşağıdaki bölümlerde, özel metin sınıflandırıcının nasıl uygulanacağı açıklanmaktadır. size yardımcı olabilir.
android.service.textclassifier.TextClassifierService öğesini genişletin.
public final class TextClassifierServiceImpl extends TextClassifierService { // Returns TextClassifierImpl. private final TextClassifier tc = getLocalTextClassifier(); @Override public void onSuggestSelection( @Nullable TextClassificationSessionId sessionId, @NonNull TextSelection.Request request, @NonNull CancellationSignal cancellationSignal, @NonNull Callback<TextSelection> callback) { CompletableFuture.supplyAsync( () -> tc.suggestSelection(request)) .thenAccept(r -> callback.onSuccess(r)); } @Override public void onClassifyText( @Nullable TextClassificationSessionId sessionId, @NonNull TextClassification.Request request, @NonNull CancellationSignal cancellationSignal, @NonNull Callback<TextClassification> callback) { ... } @Override public void onGenerateLinks( @Nullable TextClassificationSessionId sessionId, @NonNull TextLinks.Request request, @NonNull CancellationSignal cancellationSignal, @NonNull Callback<TextLinks> callback) { ... } ... }
Android manifest dosyasında hizmeti tanımlayın
[AndroidManifest.xml]
<service android:name=".TextClassifierServiceImpl" android:permission="android.permission.BIND_TEXTCLASSIFIER_SERVICE"> <intent-filter> <action android:name= "android.service.textclassifier.TextClassifierService"/> </intent-filter> </service>
Hizmetin
android.permission.BIND_TEXTCLASSIFIER_SERVICE
izni ve
belirtin
android.service.textclassifier.TextClassifierService
intent
eyleme dökülebilir.
Yapılandırma yer paylaşımında sistem varsayılan metin sınıflandırıcı hizmeti ayarla
[config.xml]
<string name="config_defaultTextClassifierPackage" translatable="false">com.example.textclassifierservice</string>
Sistem görüntüsünde metin sınıflandırıcı hizmetini oluşturma
Özel metin sınıflandırıcı hizmetiniz, kendi geliştirebileceğiniz bir APK ile
veya başka bir sistem APK'sının parçasına
ekleyebilirsiniz. Sistem,
PackageManager.MATCH_SYSTEM_ONLY
.
çok önemli.
Test
android.view.textclassifier.cts
dilinde test yapın.
Android 9'da metin sınıflandırmayla ilgili diğer değişiklikler
Bkz. Yüklü dil modüllerini inceleme.
Android 9 model dosyaları Android 8.x model dosyaları.
Android 9 model dosyaları için adlandırma kalıbı şöyledir:
texclassifier.[language-code].model
(örneğin,
textclassifier.en.model
)
Android 8.x sürümünde textclassifier.smartselection.en.model
yerine kullanılabilir.
En güncel metin sınıflandırma model dosyalarını edinin
En güncel modelleri elde etmek için aşağıdaki komut dosyası çalıştırılabilir: kaynak ağaçtaki TextClassifier modellerini günceller:
external/libtextclassifier/native/models/update.sh
Android sürüm 8.1 metin sınıflandırıcı
Android 8.1, metin uygulamak için TextClassfier API'yi kullanıma sundu en iyi uygulamaları görelim.
TextClassificationManager tcm = context.getSystemService(TextClassificationManager.class); TextClassifier classifier = tcm.getTextClassifier(); TextSelection selection = classifier.suggestSelection(...); TextClassification classification = classifier.classifyText(...);
Geliştiriciler, özel bir metin sınıflandırıcı ayarlayabilir:
tcm.setTextClassifier(customTextClassifier);
Ancak bir uygulama geliştirici metin sınıflandırıcıyı null
olarak ayarlarsa sistem
getTextClassifier()
için varsayılan metin sınıflandırıcı döndürülür.
android.view.textclassifier.TextClassifierImpl
bakın.
TextView ve WebView, akıllı seçim ve akıllı metin için TextClassifier'ı kullanır özellikleri paylaşır.
TextClassifier nöral ağ modelleri
Android Açık Kaynak Projesi (AOSP) bir dizi nöral ağ içerir modeller bulunuyor. Her model dosyası tek bir dil için eğitilir. Herhangi bir model kombinasyonunu yükleyebilirsiniz. Modeller şurada tanımlanmıştır:
external/libtextclassifier/Android.mk
Dili önceden yükle cihazlardaki modeller
Bir dil modeli paketi belirtebilir ve bunları bir cihaza yükleyebilirsiniz:
# ----------------------- # Smart Selection bundles # ----------------------- include $(CLEAR_VARS) LOCAL_MODULE := textclassifier.smartselection.bundle1 LOCAL_REQUIRED_MODULES := textclassifier.smartselection.en.model LOCAL_REQUIRED_MODULES += textclassifier.smartselection.es.model LOCAL_REQUIRED_MODULES += textclassifier.smartselection.de.model LOCAL_REQUIRED_MODULES += textclassifier.smartselection.fr.model include $(BUILD_STATIC_LIBRARY)
Örneğin, device/google/marlin/device-common.mk
.
# TextClassifier smart selection model files PRODUCT_PACKAGES += \ textclassifier.smartselection.bundle1
Yüklü dili incele modüllerin
Dizindeki dosyaları listelemek için ADB kullanın:
$ adb shell ls -l /etc/textclassifier -rw-r--r-- 1 root root ... textclassifier.smartselection.de.model -rw-r--r-- 1 root root ... textclassifier.smartselection.en.model -rw-r--r-- 1 root root ... textclassifier.smartselection.es.model -rw-r--r-- 1 root root ... textclassifier.smartselection.fr.model
Model güncellemeleri
Modeller, bir sistemin parçası olarak yeni bir modelin dahil edilmesiyle güncellenebilir
veya farklı bir görevi tetikleyen bir sistem bileşenine sahip
API ACTION_UPDATE_SMART_SELECTION
sistem üzerinden bir güncelleme yapıldı
isteyebilirsiniz. Çerçeve, bu sistem API amacını yayınlayarak
ayarlı olan dilin dil modelini güncelleyin. Modellerin kendisi
desteklenen en güncel sürüm için bir sürüm numarası ve
modeli kullanılır.
Bu nedenle, modeller eklenebileceği için tüm diller için modelleri önceden yüklemeniz gerekmez daha sonra. Belirtilen dil için model dosyası bulunamazsa metin sınıflandırması işlemsiz değerler döndürür.
Uyumluluk Test Paketi testleri
İlişkili Android Compatibility Test Suite (CTS) testleri şurada bulunabilir:
cts/tests/tests/view/src/android/view/textclassifier/cts/TextClassificationManagerTest.java
cts/tests/tests/widget/src/android/widget/cts/TextViewTest.java
testSmartSelection
testSmartSelection_dragSelection
testSmartSelection_resetSelection