[Scratch X AI] 文字辨識專案-智慧教室

利用「文字辨識」設計一個中文智慧助理,可以幫您控制虛擬設備

Coding Lab
AI for K-12
8 min readAug 2, 2021

--

Photo by M. Monk on Unsplash

今天來教大家如何使用 CodingLab 的 AI 教學平台,教電腦識別文字的意義及意圖,同時設計一個中文智慧助理,可以幫您控制虛擬設備。我們將利用文字辨識技術,以及無程式碼機器學習的方式,來瞭解整個機器學習的流程,同時可以將您訓練出來的模型,帶到 Scratch-based 的 AIBLOX 積木環境實際創作應用,進而發揮您的想像力來解決真實生活中的許多問題,最棒的是整個學習過程免安裝免設定,輕輕鬆鬆學會一個 AI 專案,未來還可以做許多延伸應用。

這個專案目標,主要是讓學習者了解幾個部分:

  • 如何訓練電腦了解中文字的意圖。
  • 信心閾值(Confidence thresholds)或信心值高低來提醒電腦何時無法識別中文字的含義(值置信閾值指示機器何時無法識別含義。
  • 智慧助理(例如 Siri、Amazon Alexa或Google Home)的工作原理。
  • 學習電腦從明確指令來執行任務,到了解意圖就可以執行好任務的方便性,並且在積木程式中使用它來製作一個可以回應命令的智慧助理。

如果您還不了解 CodingLab AI 平台操作,可以先參考下面文章介紹

AI 教學平台 (AI Platform) 簡介及註冊流程說明

AI Playground 及 AIBLOX 介紹及操作說明

我們將帶大家一步一步照著下方步驟來完成它,就讓我們開始進行 AI 專案吧!

文字數據收集

首先,您可以先腦力激盪想一想,在教室中有那些設備是您想要利用智慧助理幫您控制。為了讓大家比較好理解,本專案將使用教室中常見的兩個設備進行控制 – 電風扇及電燈。接下來,您將教電腦識別命令,透過提供給每個設備一些文字數據,來讓不同設備可以理解您的需求或意圖,例如

"好熱呀!" 表示著我們覺得很熱,希望電腦可以理解而來幫我們打開電風扇

"現在好暗呀" 表示著我們需要燈光,所以希望電腦幫我們打開

所以您將開始收集許多不同的文字數據資料,並給每一組文字數據建立類別名稱(如下圖,關風扇開風扇等等),來做為與人類互動的一個參考。

文字數據收集

本專案我們共建立 4 種類別您可以自己建立,分別是風扇開風扇關開燈關燈,每一個類別名稱都準備 10 多句的文字數據來讓電腦理解。您可以自行建立這些文字資料,CodingLab 也提供一個文字訓練數據給大家參考(如下 Download)。您可以下載參考檔後,在「文字辨識」的AI 服務中,開啟上圖中的「讀取樣本」按鈕,將檔案載入即可。

Download:文字訓練數據檔(智慧教室_中文.json) (歡迎大家參考使用,並請註明出處 CodingLab)

訓練機器理解意圖

建立好資料類別後,可以點選中間訓練模型的按鈕,開始讓電腦學習認識您所提供的各類指令數據。

訓練機器學習模型並預覽成效

您可以想像電腦就像是一個不理解您的指令或意圖的機器人,您將一些文字數據提供給它認識,它將會根據文句中語意及單詞出現頻率等資訊,來學習不同指令種類的文字資訊。

訓練機器理解意圖

機器訓練完後,您可以在最右邊預覽的地方,提供電腦從未看過的中文語句,看看它是否可以正確無誤的辨識出您的意圖,如果覺得辨識效果不好,可以考慮提供其他更多中文語句數據,讓它再學習看看。如果覺得辨識效果不錯,則可以點選下方「Code & Play」,將您所訓練的模型帶到 AIBLOX的積木環境進行創作,這時候大家可以發揮自己的想像力,看看您能利用辨識出來的 AI 模型進行什麼應用。

編寫基於規則使電腦理解

進入「AIBLOX」後,可以看到我們所產生的一些文字辨識 AI 積木,包括「關風扇」、「開風扇」 「開燈」及「關燈

產生訓練後的 AI 積木

我們會先讓大家試著編寫在沒有 AI 的情況下,電腦基於規則的運作方式。首先,我們會建立一個教室中的場景及設備角色,並對這些角色進行積木程式編寫如下:

  • 「電風扇」角色積木設計
「風扇」角色積木設計
  • 「電燈」角色積木設計
「電燈」角色積木設計
  • 「舞台」角色積木設計
「舞台」積木設計

完成後,大家可以試著執行看看,您會發現必須提供電腦完整的指令,設備才會動作,例如"打開風扇",風扇就會開始運作旋轉,但是如果您輸入的指令是"請關閉風扇"或"關閉電風扇",它將不會聽從您的指令而關閉,因為您在積木程式中已經將指令固定只接收"關閉風扇"才會進行關閉的動作,如果要電腦都認識這些指令,您將需要不斷增加各種「如果…..那麼」積木,這將是非常不方便的方式。

沒有 AI 的情況下只認識固定指令

CodingLab 提供上述專案檔(無 AI )給大家參考,您可以在 AIBLOX 載入使用。

Download:智慧教室_中文 (無 AI).sb3 (歡迎大家參考使用,並請註明出處 CodingLab)

改為基於意圖使電腦理解

我們可以使用機器學習後的 AI 模型積木來改進上述的不方便性與不實用性,如下。

應用訓練後的 AI 積木

此 AI 模型目前學習一些語句意義後,將可以了解您的控制指令,不再是要固定指令才可以運作。例如"今天真的太熱了",電腦將可以知道您的意圖是要「開風扇」,以及"好暗唷",電腦可以知道您想要「開燈」的意圖,而來執行幫您開燈的動作。這樣將大大改善一般傳統以規則為基礎的寫程式方式,而改為利用機器學習後的 AI 模型,使用基於意圖方式而變的非常有效率也合理許多。

有 AI 的情況下可以了解使用者意圖

同樣的 CodingLab 也提供上述專案檔(有AI )給大家參考,您可以在AIBLOX 中載入使用。

Download:智慧教室_中文 (有 AI).sb3 (歡迎大家參考使用,並請註明出處 CodingLab)

討論與延伸

這時候您學到了什麼呢?您將學到下面這些很棒的知識及觀念

  • 您已經學會開始訓練電腦來識別命令及意圖。
  • 您不需要編寫規則來執行此一系列的操作,而是透過收集範例來完成此操作。
  • 這些範例被用來訓練機器學習”模型” ,此方式被稱為”監督式學習”,來監督電腦的訓練。
  • 電腦將從您提供的範例當中學習,例如單字的選擇以及句子的結構方式,這些都將用於未來能夠識別命令。

您也可以試著嘗試其他設備(不限於燈及風扇),或是在不同情境中練習類似的應用(例如智慧辦公室、智慧家庭等等),並且可以結合其他的 AI 應用(例如語音辨識)讓您的生活更智慧化。

大家可以參考下面這兩個有趣的課程,將會讓您學到更多 AI 及機器學習的觀念,同時也您可以手把手實作更多有趣的 AI 專案,學習後還可以獲得證書放進您的學習歷程唷!

輕輕鬆鬆學 AI (Scratch-based)

Scratch X AI 趣味生活專案 #1

活動:Scratch X AI 趣味生活應用

您是否也想看看其它電腦視覺中的應用有哪些呢?大家可以參考下面這幾篇文章。

※ 歡迎大家免費加入 AI Playground,讓您輕鬆動手訓練出獨一無二的 AI 模型及 AI 創意程式,我們將帶領孩子們接觸更多更有趣的人工智慧及機器學習課程。

※ 歡迎大家加入 CodingLab 許多有趣的課程,我們將帶領孩子們接觸更多更有趣的人工智慧及機器學習課程。

※ 歡迎同步訂閱 CodingLab 臉書粉絲專頁,我們會持續分享更多關於兒童資訊教育的相關新知。

※ 若有任何問題也歡迎透過臉書私訊留言給 CodingLab ,收到訊息後我們會盡快回覆您!

--

--