在瀏覽器即時分析文字情緒!MediaPipe Text Classifier 快速上手指南

作者: Calpa Liu
字數:1340
出版:2025 年 4 月 27 日
分類: MediaPipeText Classification Vue.js TypeScript JavaScript 前端開發

MediaPipe 文本分類器是一個強大的機器學習工具,能夠將文本分類為預定義的類別,如正面或負面情感。本文將深入探討此工具的特性、功能和實際應用,並透過 Vue.js 和 TypeScript 的範例程式碼展示其實際應用。

什麼是 MediaPipe Text Classifier?

MediaPipe Text Classifier 是 Google AI Edge 旗下 MediaPipe 解決方案的一部分,專為將文本資料自動分類而設計。開發者可以使用它,將輸入的文字歸類到預先定義的類別中,例如判斷文本的情感傾向(正面或負面)。

這項技術基於機器學習模型運作,將文字作為靜態資料處理,並輸出包含各類別及其對應機率分數的結果清單。

目前,MediaPipe Text Classifier 支援在 Web、Android、Python 和 Flutter 等多種平台上部署,實現跨端一致的開發體驗。

為何選擇在瀏覽器上執行情緒分析?

MediaPipe Text Classifier 擁有廣泛的應用場景,包括情感分析、內容分類、意圖識別、有害內容檢測、客戶反饋分類,以及多語言文本處理。 不僅能分析文章、評論或社群貼文的情感傾向,還能自動識別指令意圖,偵測攻擊性或不適當內容,甚至結合語言識別器與文本嵌入器,組建更完整的文字處理流程。 尤其是在瀏覽器端執行,讓情感分析能夠即時、低延遲地完成,適合需要快速回應的應用場景,例如即時客服、社群互動或個人化推薦系統。

MediaPipe Text Classifier 的優勢

MediaPipe Text Classifier 的一大特色是其低代碼、高效率的設計理念。開發者僅需少量程式碼,就能完成過去需要繁複機器學習背景才能實現的文本分析任務,大幅降低技術門檻。 同時,它的機器學習推論流程經過優化,可在 CPU、GPU 甚至 TPU 上進行端到端加速,特別適合對即時性要求高的應用。

此外,分類過程完全在用戶端設備上執行,不僅減少了依賴伺服器的延遲,還強化了使用者隱私保護,因為資料不必上傳到雲端。用戶僅需透過瀏覽器即可使用,無需安裝額外應用或插件,真正做到即點即用。

更進一步,MediaPipe Model Maker 提供了靈活的自訂功能,允許開發者基於自己的資料集訓練專屬模型,滿足特定領域或業務需求。 無論在哪個平台上開發,MediaPipe 任務都遵循統一的結構與風格,極大地降低了跨平台學習與維護成本,提升整體開發效率。

線上體驗範例

為了讓大家能更直觀體驗 MediaPipe Text Classifier 的強大功能,我也特別製作了一個線上示範工具。 您可以直接在瀏覽器中輸入任意文字,立即分析其情感傾向(正面或負面),無需安裝任何額外軟體。

👉 歡迎前往體驗:線上文字情緒分析工具

詳細步驟

我們可以使用 MediaPipe Text Classifier 來分析文本情緒,例如判斷文本的情感傾向(正面或負面)。

配置選項

MediaPipe Text Classifier 提供多種配置選項來自定義其行為:

選項名稱描述值範圍預設值
displayNamesLocale設置用於顯示名稱的標籤語言語言代碼en
maxResults設置返回的最高得分分類結果的最大數量任何正數-1
scoreThreshold設置預測分數閾值任何浮點數未設置
categoryAllowlist設置允許的類別名稱的可選列表任何字符串未設置
categoryDenylist設置不允許的類別名稱的可選列表任何字符串未設置

初始化分類器

以下是啟動 MediaPipe 文本分類器的步驟:首先,我們使用 FilesetResolver.forTextTasks() 加載必要的 WASM 模組。接著,透過 TextClassifier.createFromOptions() 創建分類器實例,配置預訓練的 BERT 文本分類模型路徑,並將最大結果數設為 3。

const initializeClassifier = async () => {
    const fileset = await FilesetResolver.forTextTasks(
        "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@0.10.22-rc.20250304/wasm"
    );
    textClassifier.value = await TextClassifier.createFromOptions(fileset, {
        baseOptions: {
            modelAssetPath:
                "https://storage.googleapis.com/mediapipe-tasks/text_classifier/bert_text_classifier.tflite",
        },
        maxResults: 3,
    });
    isWASMReady.value = true;
};

執行分類任務

以下是執行文本分類的步驟:首先,我們檢查分類器是否已初始化。接著,使用 textClassifier.value.classify() 方法對輸入文本進行分類,返回分類結果。

const classifyInputText = async () => {
    if (!textClassifier.value) {
        return;
    }

    const classificationResult: ClassificationResult = await textClassifier.value.classify(inputText.value);

    console.log(JSON.stringify(classificationResult, null, 2));

    classificationResult.classifications.forEach((classification) =>
        classification.categories.forEach((category) => {
            if (category.categoryName === "positive") {
                positiveScore.value = Number(category.score.toFixed(2));
            } else if (category.categoryName === "negative") {
                negativeScore.value = Number(category.score.toFixed(2));
            }
        })
    );
};

結論

MediaPipe Text Classifier 是一款功能強大且靈活的工具,專為高準確度的文本分類而設計。透過 Vue.js 範例,我們瞭解到其實現簡單、易於集成,同時具備專業級的文本分析功能。這使得開發者能夠輕鬆將情感分析、內容分類及意圖識別等多種文本處理功能集成到應用中,提供高效的跨平台解決方案。

憑藉預訓練模型和自定義配置選項,MediaPipe Text Classifier 不僅提升了用戶體驗,還擴展了應用的功能。隨著自然語言處理技術的進步,該工具將不斷演化,提供更強大和精確的分析能力,為開發者開創更多可能性,並推動創新應用的發展。

想跟上前端開發的最新技術與實戰分享嗎?立即訂閱本站,掌握 React、Vue、TypeScript 等趨勢!
關於 Calpa

Calpa 擅長使用 TypeScriptReact.jsVue.js 建立 Responsive Website。

他積極參與開源社區,曾在 2019 年的香港開源大會上擔任講者,提供工作經驗和見解。此外,他也在 GitHub 上公開分享個人博客程式碼,已獲得超過 300 顆星星和 60 個分支的支持。

他熱愛學習新技術,並樂意分享經驗。他相信,唯有不斷學習才能跟上快速演變的技術環境。

熱門文章

最新文章