建立互動健康數據監控工具的教學
在這個教學中,我們將學習如何使用 Hugging Face 的變壓器模型、Google Colab 和 ipywidgets 來建立一個互動的健康數據監控工具。我們會一步一步地指導你設置 Colab 環境、加載臨床模型(例如 Bio_ClinicalBERT),並創建一個友好的介面,接受健康數據輸入並返回可解釋的疾病預測。這個逐步指南突顯了先進的自然語言處理(NLP)模型在醫療保健中的能力,並使這些強大的工具對於機器學習和互動編程的新手也能輕鬆使用。
首先,我們安裝三個重要的庫:transformers 用於處理最先進的 NLP 模型,torch 用於深度學習計算,以及 ipywidgets 用於在 Colab 中創建互動小工具。
import ipywidgets as widgets
from IPython.display import display, clear_output
現在我們導入必要的模組:這些模組來自 Hugging Face 的 Transformers 庫,用於模型處理和文本分類。我們還導入了 ipywidgets 和 IPython 的顯示功能,以便在 Google Colab 中創建和管理互動輸出。
model_name = “emilyalsentzer/Bio_ClinicalBERT”
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
health_monitor = pipeline(“text-classification”, model=model, tokenizer=tokenizer)
我們加載了一個公開的臨床模型“emilyalsentzer/Bio_ClinicalBERT”,以及它的分詞器,並設置了一個名為 health_monitor 的文本分類管道,用於處理和分析臨床健康數據。
broad_disease_mapping = {
“LABEL_0”: “沒有顯著的病症”,
“LABEL_1”: “心血管疾病(例如,高血壓、心臟病)”,
“LABEL_2”: “代謝和內分泌疾病(例如,糖尿病、甲狀腺問題)”,
“LABEL_3”: “呼吸系統疾病(例如,哮喘、慢性阻塞性肺病)”,
“LABEL_4”: “神經系統疾病(例如,中風、癲癇)”,
“LABEL_5”: “傳染病(例如,流感、COVID-19)”,
“LABEL_6”: “腫瘤疾病(例如,癌症)”,
“LABEL_7”: “胃腸道疾病(例如,腸易激綜合症、克隆病)”,
“LABEL_8”: “肌肉骨骼疾病(例如,關節炎、骨質疏鬆)”,
“LABEL_9”: “免疫學/自身免疫疾病(例如,紅斑狼瘡、類風濕性關節炎)”
}
我們創建了一個字典,將模型的通用輸出標籤(例如“LABEL_0”)映射到具體的廣泛疾病類別。這有助於將模型的預測轉換為有意義的臨床解釋,涵蓋從心血管疾病到自身免疫疾病的各種病症。
def analyze_health_data(input_text):
prediction = health_monitor(input_text)[0]
disease_prediction = broad_disease_mapping.get(prediction[“label”], “未知病症”)
output_str = (
f”原始模型輸出: {prediction}n”
f”解釋的預測: {disease_prediction}n”
f”信心分數: {prediction[‘score’]*100:.2f}%”
)
return output_str
上述的 analyze_health_data 函數接受臨床文本作為輸入,並使用 health_monitor 管道進行處理。它檢索模型的預測,然後將通用標籤(例如“LABEL_0”)映射到 broad_disease_mapping 字典中的具體疾病類別。最後,它將原始預測、解釋的疾病類別和信心分數格式化為可讀的字符串並返回。
input_text = widgets.Textarea(
value=”在此輸入病人健康數據…”,
placeholder=”輸入臨床筆記或病人報告”,
description=’健康數據:’,
disabled=False,
layout=widgets.Layout(width=”100%”, height=”100px”)
)
我們使用 ipywidgets 創建了一個互動文本區小工具。它提供了一個預填的提示、一個指導的佔位符和指定的佈局,讓用戶可以在友好的介面中輸入臨床筆記或病人報告。
analyze_button = widgets.Button(
description=’分析’,
disabled=False,
button_style=””, # 選項: ‘success’, ‘info’, ‘warning’, ‘danger’ 或 ”
tooltip=’點擊以分析健康數據’,
icon=’check’
)
然後我們使用 ipywidgets 創建了一個按鈕小工具。這個按鈕標記為“分析”,並包括一個工具提示(“點擊以分析健康數據”)和一個圖標(“check”),以增強用戶體驗。當點擊這個按鈕時,它將觸發健康數據分析函數,讓模型處理輸入的臨床文本。
output_area = widgets.Output()
def on_analyze_button_clicked(b):
with output_area:
clear_output()
input_data = input_text.value
result = analyze_health_data(input_data)
print(result)
analyze_button.on_click(on_analyze_button_clicked)
display(input_text, analyze_button, output_area)
最後,我們創建了一個輸出小工具來顯示分析結果,並定義了一個回調函數(on_analyze_button_clicked),當點擊“分析”按鈕時觸發。該函數清除任何先前的輸出,從文本區檢索輸入數據,使用 analyze_health_data 函數進行處理,並在輸出區域打印結果。最後,按鈕的點擊事件與此函數連結,所有小工具(輸入區、按鈕和輸出顯示)一起渲染以供互動使用。
範例輸入和輸出
總結來說,這個教學展示了如何無縫地將最先進的 NLP 工具與互動介面結合起來,以分析臨床健康數據。通過利用 Hugging Face 的預訓練模型和 Google Colab 及 ipywidgets 的簡單性,你可以創建一個系統,將健康信息解釋和分類為可行的見解。
這是 Colab 筆記本。還有,別忘了在 Twitter 上關注我們,加入我們的 Telegram 頻道和 LinkedIn 群組。別忘了加入我們的 80k+ ML SubReddit。
🚨 介紹 Parlant:一個以 LLM 為首的對話式 AI 框架,旨在為開發者提供對其 AI 客戶服務代理的控制和精確度,利用行為指南和運行時監督。🔧 🎛️ 它使用易於使用的 CLI 📟 和 Python 及 TypeScript 的原生客戶端 SDK 操作 📦。
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!