iT邦幫忙

2023 iThome 鐵人賽

DAY 30
0
自我挑戰組

30天從零開始學習NLP(自然語言處理) 系列 第 30

Day 30 - 建立 Gradio Demo App

  • 分享至 

  • xImage
  •  

終於來到了鐵人賽的最後一天,感謝有看到今天的各位大大們,今天我們要來使用訓練好的模型來建立一個簡易的 Demo App,那我們就開始吧

先讓大家看看最後的呈現方式會長什麼樣子,這邊的模型依樣使用之前實習時訓練的品牌物品模型。

https://ithelp.ithome.com.tw/upload/images/20231014/20160436AFWViWnX0m.png

那我們就開始吧!

! pip install transformers
! pip install gradio
from transformers import pipeline

import gradio as gr
  • Pipeline : 用於簡化自然語言處理任務的執行。它使我們能夠輕鬆地加載和使用預訓練的模型來執行各種自然語言處理任務,它提供了一個接口,不需要編寫大量的自訂程式碼,可以透過簡單的函數呼叫來使用模型
  • Gradio : 它是一個用於快速建立機器學習模型部屬的互動式介面的工具,提供了一種簡單的方式將機器學習模型整合到 Web 應用程式中,而不需要太多的程式碼。
model_path = "C:/Users/User/model/bert-base-chinese-david-ner"
ner_pipeline = pipeline(model_path)

def ner(text):
    output = ner_pipeline(text)
    return {"text": text, "entities": output}   
  • 使用 pipeline 創建一個 NER 流程管道,以使用我們自己的模型
  • 定義一個名為 ner 的函數,它將文本作為輸入,並使用 NER 模型獲得實體識別結果
title = "品牌品項APP Demo"
examples = [
    "DARLIE好來黑人極致護齦抗敏礦鹽牙膏,超好用",
    "Avène雅漾控油安敏保養體驗組"
    ]

demo = gr.Interface(ner,
                inputs=gr.Textbox(placeholder="Enter sentence here..."),
                outputs=gr.HighlightedText(color_map={"BRAND": "yellow", "ITEM": "blue", "0": "white"}),
                examples=examples, # 指定一些範例輸入
                title=title, # 指定界面的標題
                live=True,  # 啟用即時預覽
                )
  • 創建 Gradio 界面
  • 輸入是一個文本框 (Textbox),允許輸入文本
  • 創建一個高亮文本區域(HighlightedText)作為輸出元素,指定了三個顏色映射:品牌(BRAND)的文本高亮為黃色,項目(ITEM)的文本高亮為藍色,0(未標識的實體)的文本高亮為白色。
demo.launch(
        debug=True,
        server_name="127.0.0.1",
        server_port=8080,
        )
  • 使用launch啟動 Gradio 界面,並以調試模式運行,使用指定的伺服器名稱和端口。

接下來運行完以上程式碼我們就能在網址輸入127.0.0.1:8080,就可以打開這個簡易的 Demo 站台,這裡有 Gradio 官方使用 NER 模型的詳細用法和說明。

參考資料


上一篇
Day 29 - NER 模型檔案內容
系列文
30天從零開始學習NLP(自然語言處理) 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言