Detyra MediaPipe Language Detector ju lejon të identifikoni gjuhën e një pjese teksti. Këto udhëzime ju tregojnë se si të përdorni Detektorin e gjuhës me aplikacionet Android. Shembulli i kodit i përshkruar në këto udhëzime është i disponueshëm në GitHub .
Ju mund ta shihni këtë detyrë në veprim duke parë demonstrimin . Për më shumë informacion rreth aftësive, modeleve dhe opsioneve të konfigurimit të kësaj detyre, shihni Përmbledhjen .
Shembull kodi
Shembulli i kodit për detektorin e gjuhës ofron një zbatim të thjeshtë të kësaj detyre për referencën tuaj. Ky kod ju ndihmon të testoni këtë detyrë dhe të filloni të ndërtoni veçorinë tuaj të zbulimit të gjuhës. Mund të shfletoni shembullin e kodit të detektorit të gjuhës në GitHub.
Shkarkoni kodin
Udhëzimet e mëposhtme ju tregojnë se si të krijoni një kopje lokale të kodit shembull duke përdorur mjetin e linjës së komandës të kontrollit të versionit git .
Për të shkarkuar kodin shembull:
- Klononi depon e git duke përdorur komandën e mëposhtme:
git clone https://github.com/google-ai-edge/mediapipe-samples
- Opsionale, konfiguroni shembullin tuaj të git për të përdorur arkëtimin e rrallë, në mënyrë që të keni vetëm skedarët për shembullin e aplikacionit të Detektorit të gjuhës:
cd mediapipe-samples git sparse-checkout init --cone git sparse-checkout set examples/languagedetector/android
Për udhëzime se si të konfiguroni dhe ekzekutoni një shembull me Android Studio, shihni shembullin e udhëzimeve të konfigurimit të kodit në Udhëzuesin e konfigurimit për Android .
Komponentët kryesorë
Skedarët e mëposhtëm përmbajnë kodin vendimtar për aplikacionin shembull të klasifikimit të tekstit:
- LanguageDetectorHelper.kt - Inicializon detektorin e gjuhës dhe trajton zgjedhjen e modelit.
- ResultsAdapter.kt - Trajton dhe formaton rezultatet e zbulimit.
- MainActivity.kt - Zbaton aplikacionin, duke përfshirë thirrjen
LanguageDetectorHelper
dheResultsAdapter
.
Konfigurimi
Ky seksion përshkruan hapat kryesorë për konfigurimin e mjedisit tuaj të zhvillimit dhe projekteve të kodit në mënyrë specifike për të përdorur Detektorin e gjuhës. Për informacion të përgjithshëm mbi konfigurimin e mjedisit tuaj të zhvillimit për përdorimin e detyrave të MediaPipe, duke përfshirë kërkesat e versionit të platformës, shihni udhëzuesin e konfigurimit për Android .
varësitë
Gjuha Detektor përdor bibliotekat com.google.mediapipe:tasks-text
. Shtoni këtë varësi në skedarin build.gradle
të projektit tuaj të zhvillimit të aplikacionit Android. Ju mund të importoni varësitë e kërkuara me kodin e mëposhtëm:
dependencies {
implementation 'com.google.mediapipe:tasks-text:latest.release'
}
Model
Detyra MediaPipe Language Detector kërkon një model të trajnuar që është në përputhje me këtë detyrë. Për më shumë informacion mbi modelet e trajnuara të disponueshme për Detektorin e gjuhës, shihni seksionin Modelet e përmbledhjes së detyrave.
Zgjidhni dhe shkarkoni modelin dhe më pas ruajeni në direktorinë e projektit tuaj:
<dev-project-root>/src/main/assets
Specifikoni shtegun e modelit brenda parametrit ModelName
.
Krijo detyrën
Ju mund të përdorni një nga funksionet createFrom...()
për të krijuar detyrën. Funksioni createFromOptions()
pranon opsionet e konfigurimit për detektorin e gjuhës. Ju gjithashtu mund të inicializoni detyrën duke përdorur funksionin e fabrikës createFromFile()
. Funksioni createFromFile()
pranon një shteg relative ose absolute drejt skedarit të modelit të trajnuar. Për më shumë informacion mbi konfigurimin e detyrave, shihni Opsionet e konfigurimit .
Kodi i mëposhtëm tregon se si të krijoni dhe konfiguroni këtë detyrë.
// For creating a language detector instance:
LanguageDetectorOptions options =
LanguageDetectorOptions.builder()
.setBaseOptions(
BaseOptions.builder()
.setModelAssetPath(modelPath)
.build()
)
.build();
LanguageDetector languageDetector = LanguageDetector.createFromOptions(context, options);
Ju mund të shihni një shembull se si të krijoni një detyrë në funksionin e kodit të klasës LanguageDetectorHelper initDetector()
.
Opsionet e konfigurimit
Kjo detyrë ka opsionet e mëposhtme të konfigurimit për aplikacionet Android:
Emri i opsionit | Përshkrimi | Gama e vlerave | Vlera e paracaktuar |
---|---|---|---|
maxResults | Vendos numrin maksimal opsional të parashikimeve të gjuhës me pikët më të larta për t'u kthyer. Nëse kjo vlerë është më e vogël se zero, të gjitha rezultatet e disponueshme kthehen. | Çdo numër pozitiv | -1 |
scoreThreshold | Vendos pragun e rezultatit të parashikimit që tejkalon atë të dhënë në meta të dhënat e modelit (nëse ka). Rezultatet nën këtë vlerë refuzohen. | Çdo noton | Nuk është vendosur |
categoryAllowlist | Vendos listën opsionale të kodeve të gjuhëve të lejuara. Nëse nuk janë bosh, parashikimet e gjuhës, kodi i gjuhës së të cilave nuk është në këtë grup do të filtrohen. Ky opsion është reciprokisht ekskluziv me categoryDenylist dhe duke përdorur të dyja rezulton në një gabim. | Çdo varg | Nuk është vendosur |
categoryDenylist | Vendos listën opsionale të kodeve të gjuhëve që nuk lejohen. Nëse nuk janë bosh, parashikimet e gjuhës, kodi i gjuhës së të cilave është në këtë grup do të filtrohen. Ky opsion është reciprokisht ekskluziv me categoryAllowlist dhe duke përdorur të dyja rezultatet në një gabim. | Çdo varg | Nuk është vendosur |
Përgatitni të dhënat
Detektori i gjuhës punon me të dhëna teksti ( String
). Detyra trajton parapërpunimin e hyrjes së të dhënave, duke përfshirë parapërpunimin e tokenizimit dhe tensorit. I gjithë parapërpunimi trajtohet brenda funksionit detect()
. Nuk ka nevojë për përpunim shtesë të tekstit të hyrjes paraprakisht.
String inputText = "Some input text for the language detector";
Drejtoni detyrën
Detektori i gjuhës përdor metodën LanguageDetector.detect()
për të përpunuar tekstin hyrës dhe për të parashikuar gjuhën e tekstit. Ju duhet të përdorni një fill të veçantë ekzekutimi për ekzekutimin e zbulimit për të shmangur bllokimin e fillit të ndërfaqes së përdoruesit të Android me aplikacionin tuaj.
Kodi i mëposhtëm tregon se si të ekzekutohet përpunimi me modelin e detyrës duke përdorur një fill të veçantë ekzekutimi.
// Predict the language of the input text.
fun classify(text: String) {
executor = ScheduledThreadPoolExecutor(1)
executor.execute {
val results = languageDetector.detect(text)
listener.onResult(results)
}
}
Ju mund të shihni një shembull se si të ekzekutoni një detyrë në funksionin e kodit të klasës LanguageDetectorHelper detect()
.
Trajtoni dhe shfaqni rezultatet
Detektori i gjuhës nxjerr një Rezultat LanguageDetectorResult
që përbëhet nga një listë parashikimesh gjuhësore së bashku me probabilitetet për ato parashikime. Kategoritë e gjuhëve janë të përcaktuara në model, shikoni seksionin Modelet e përmbledhjes së detyrave për detaje mbi modelin që po përdorni.
Më poshtë tregon një shembull të të dhënave dalëse nga kjo detyrë:
LanguageDetectorResult:
LanguagePrediction #0:
language_code: "fr"
probability: 0.999781
Ky rezultat është marrë duke ekzekutuar modelin në tekstin hyrës: "Il ya beaucoup de bouches qui parlent et fort peu de têtes qui pensent."
.
Ju mund të shihni një shembull se si të shfaqen rezultatet në klasën e kodit ResultsAdapter dhe klasën e brendshme ViewHolder
.