Udhëzues për klasifikimin e teksteve për ueb

Detyra e Klasifikuesit të Tekstit MediaPipe ju lejon të klasifikoni tekstin në një grup kategorish të përcaktuara, të tilla si ndjenja pozitive ose negative. Kategoritë përcaktohen nga modeli që përdorni dhe mënyra se si është trajnuar ai model. Këto udhëzime ju tregojnë se si të përdorni Klasifikuesin e Tekstit për aplikacionet web dhe JavaScript.

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

Kodi shembull për Klasifikuesin e Tekstit ofron një implementim të plotë të kësaj detyre në JavaScript për referencën tuaj. Ky kod ju ndihmon të testoni këtë detyrë dhe të filloni ndërtimin e aplikacionit tuaj të klasifikimit të tekstit. Mund ta shikoni, ekzekutoni dhe modifikoni shembullin e Klasifikuesit të Tekstit duke përdorur vetëm shfletuesin tuaj të internetit.

Konfigurimi

Ky seksion përshkruan hapat kryesorë për konfigurimin e mjedisit tuaj të zhvillimit dhe projekteve të kodit posaçërisht për të përdorur Tekst Classifier. Për informacion të përgjithshëm mbi konfigurimin e mjedisit tuaj të zhvillimit për përdorimin e MediaPipe Tasks, duke përfshirë kërkesat e versionit të platformës, shihni udhëzuesin e konfigurimit për Web .

Paketat JavaScript

Kodi i Klasifikuesit të Tekstit është i disponueshëm përmes paketës @mediapipe/tasks-text . Mund t'i gjeni dhe shkarkoni këto biblioteka nga lidhjet e dhëna në udhëzuesin e Konfigurimit të platformës.

Mund të instaloni paketat e kërkuara me kodin e mëposhtëm për konfigurimin lokal duke përdorur komandën e mëposhtme:

npm install @mediapipe/tasks-text

Nëse doni të vendosni në një server, mund të përdorni një shërbim të rrjetit të shpërndarjes së përmbajtjes (CDN), siç është jsDelivr, për të shtuar kod direkt në faqen tuaj HTML, si më poshtë:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@0.1/text-bundle.js"
    crossorigin="anonymous"></script>
</head>

Model

Detyra e Klasifikuesit të Tekstit MediaPipe kërkon një model të trajnuar që është i pajtueshëm me këtë detyrë. Për më shumë informacion mbi modelet e trajnuara të disponueshme për Klasifikuesin e Tekstit, shihni seksionin Modele të përmbledhjes së detyrës.

Zgjidhni dhe shkarkoni një model dhe më pas ruajeni atë brenda direktorisë së projektit tuaj:

<dev-project-root>/assets/bert_text_classifier.tflite

Specifikoni shtegun e modelit me parametrin e objektit baseOptions modelAssetPath , siç tregohet më poshtë:

baseOptions: {
        modelAssetPath: `/assets/bert_text_classifier.tflite`
      }

Krijo detyrën

Përdorni një nga funksionet e Klasifikuesit të Tekstit TextClassifier.createFrom...() për të përgatitur detyrën për ekzekutimin e inferencave. Mund të përdorni funksionin createFromModelPath() me një shteg relativ ose absolut për në skedarin e modelit të trajnuar. Shembulli i kodit më poshtë demonstron përdorimin e funksionit TextClassifier.createFromOptions() . Për më shumë informacion mbi opsionet e konfigurimit të disponueshme, shihni Opsionet e konfigurimit .

Kodi i mëposhtëm tregon se si të ndërtohet dhe konfigurohet kjo detyrë:

async function createClassifier() {
  const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  textClassifier = await TextClassifier.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_classifier/bert_text_classifier.tflite`
      },
      maxResults: 5
    }
  );
}
createClassifier();

Opsionet e konfigurimit

Kjo detyrë ka opsionet e mëposhtme të konfigurimit për aplikacionet Web dhe JavaScript:

Emri i opsionit Përshkrimi Diapazoni i Vlerave Vlera e parazgjedhur
displayNamesLocale Cakton gjuhën e etiketave që do të përdoren për emrat e shfaqur të dhënë në metadatat e modelit të detyrës, nëse është e disponueshme. Vlera e parazgjedhur është en për anglishten. Mund të shtoni etiketa të lokalizuara në metadatat e një modeli të personalizuar duke përdorur API-në e Shkruesit të Metadatave TensorFlow Lite. Kodi lokal en
maxResults Cakton numrin maksimal opsional të rezultateve të klasifikimit me rezultatet më të larta që duhen kthyer. Nëse < 0, do të kthehen të gjitha rezultatet e disponueshme. Çdo numër pozitiv -1
scoreThreshold Cakton pragun e rezultatit të parashikimit që mbivendos 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 Cakton listën opsionale të emrave të lejuar të kategorive. Nëse nuk është bosh, rezultatet e klasifikimit emri i kategorisë së të cilave nuk është në këtë grup do të filtrohen. Emrat e kategorive të dyfishta ose të panjohura injorohen. Ky opsion është reciprokisht ekskluziv me categoryDenylist dhe përdorimin e të dy rezultateve në një gabim. Çdo varg Nuk është vendosur
categoryDenylist Cakton listën opsionale të emrave të kategorive që nuk lejohen. Nëse nuk është bosh, rezultatet e klasifikimit emri i kategorisë së të cilave është në këtë grup do të filtrohen. Emrat e kategorive të dyfishta ose të panjohura injorohen. Ky opsion është reciprokisht ekskluziv me categoryAllowlist dhe përdorimin e të dy rezultateve në një gabim. Çdo varg Nuk është vendosur

Përgatitni të dhënat

Klasifikuesi i Tekstit punon me të dhëna teksti ( String ). Detyra trajton parapërpunimin e të dhënave të hyrjes, duke përfshirë tokenizimin dhe parapërpunimin tensorik.

I gjithë parapërpunimi trajtohet brenda funksionit classify() . Nuk ka nevojë për parapërpunim shtesë të tekstit hyrës paraprakisht.

const inputText = "The input text to be classified.";

Ekzekuto detyrën

Klasifikuesi i Tekstit përdor funksionin classify() për të shkaktuar përfundime. Për klasifikimin e tekstit, kjo do të thotë kthimi i kategorive të mundshme për tekstin e futur.

Kodi i mëposhtëm demonstron se si të ekzekutohet përpunimi me modelin e detyrës.

// Wait to run the function until inner text is set
const result: TextClassifierResult = await textClassifier.classify(
  inputText
);

Trajtoni dhe shfaqni rezultatet

Klasifikuesi i Tekstit jep një TextClassifierResult që përmban listën e kategorive të mundshme për tekstin e futur. Kategoritë përcaktohen nga modeli që përdorni, kështu që nëse dëshironi kategori të ndryshme, zgjidhni një model tjetër ose rikualifikoni një ekzistues.

Më poshtë tregohet një shembull i të dhënave të nxjerra nga kjo detyrë:

TextClassificationResult:
  Classification #0 (single classification head):
    ClassificationEntry #0:
      Category #0:
        category name: "positive"
        score: 0.8904
        index: 0
      Category #1:
        category name: "negative"
        score: 0.1096
        index: 1

Ky rezultat është marrë duke ekzekutuar klasifikuesin BERT në tekstin e futur: "an imperfect but overall entertaining mystery" .