打印 上一文章 下一文章

[麻瓜科技] AI線LUIS語義分析

[複製網址]
1

AI線LUIS語義分析大家好 我是台灣微軟的技術傳教士Yvonne今天要跟大家介紹的是AI線裏面的其中一站叫LUIS語義分析的部分現在大家應該很喜歡拿起手機就常常跟Siri在打鬧大家會發現Siri其實越來越聰明甚至會跟你鬧脾氣為什麼一個機器裏面的一個App一個裝置可以知道說人類想要表達的意思是什麼我們今天就帶大家來看一下Azure提供的這個platform它怎麼讓機器裏面的一個套件可以瞭解我們想要表達的什麼東西以下這邊是我們今天會提的一個Agenda就是先告訴大家LUIS是什麼接下來我們就直接去實際操作LUIS的platform一樣跟之前如果有已經看過AI這條線其他section的大家應該就對這張圖不陌生我們在Cognitive Services上面已經把這樣的服務分為5個part今天所介紹的LUIS其實它是屬於Language這個part裏面我們可以從這張圖片可以大概略知一二說LUIS它其實是可以從我們的對話裏面去分析說不同的一些意圖或者是我們可以解析出不同的一些名詞或者是我們想要做的事情甚至是語氣之類、情緒等等它到底是怎麼辦到這件事情的呢LUIS它的全名是Language Understanding
Intelligent Service顧名思義它就得去understand我們的language是什麼LUIS它其實是一個基於雲端的一個自然語言分析的一個模型因為我們要讓機器去瞭解人類的語言其實是非常不容易的因為maybe我們可能會有比如說不同的文化上面我們在動詞、主詞、名詞這樣子的一個排序方式可能就不盡相同我們甚至可能在比如說以中文來講我們可能會有反諷這樣子的一個句型去去做諷刺但是在文字上面其實不見得可以去做理解的如果我們不是自然語言分析的專家一般的開發者我們要怎麼去入門這樣子的一個一個架構、一個解法所以在Azure上面就提供了這樣子的一個platform我們可以透過下tag的方式讓以及資料大量學習的一個方式可以讓更多的開發者可以入門這樣子的一個一個技術這樣子我們這邊可以先介紹一下在LUIS裏面我們很常使用的幾個Terms包括像是Intent跟Entity或者是utterances這樣子的一個用法我們可以先看第1個例子Book a ticketIntent它所代表的就是說我這個語句的意圖會是什麼所以我們通常會說Intent大概就是動詞就是一個語句我想要做什麼以這邊Book
a ticket為例Book就是我們的動詞這也是這個句子所代表的一個意圖就是說我要買一張票Entity就是我們的ticket一句話它可能會有多種不一樣的Entity舉例來說Book a ticket
to SFA我們的Entity關鍵字可能就包括了像是ticket跟SFA這樣子的不一樣的Entity一個代表的是一個物件一個代表的可能是一個地名所以甚至說我一句話我可能還有包括像是天氣、時間、地點等等這些都是屬於Entity但是又不是屬於同一個類型的Entity所以在LUIS建立模型的時候我們可能就得去反覆的思考說我的Entity大概分為哪幾類我的Intent大概分為哪幾類我就需要很多不一樣的語句範例語句去做training所以LUIS它背後其實又內建了一個Machine Learning的一個model去做反覆的訓練跟學習讓你的LUIS Model可以更逼近你想要建立的一個效果所以我們在LUIS裏面比較重要的3個component就包括了像是Intent,
Entity跟utterances 3種不一樣的terms我們瞭解了LUIS裏面的這3個component之後我們就要去看一下說建立一個LUIS Model所需要的一個Lifecycle包括哪些首先第1個步驟是你要先去定義你自己的domain比如說以剛剛為例我要Book a
ticket但我有可能是要Book a flight ticket也有可能是要book一個演唱會的ticket這2個是屬於不同domain的一個情境比如說我如果是flight
ticket的話我可能就需要有Entity是包括起訖點但是這樣子的Entity在演唱會這樣子的一個情境下其實就是不需要的相對的在演唱會這樣的情境我可能更需要的是演唱者或者是歌手類型之類的這樣的Entity所以你要先focus在自己的domain上面是隸屬於哪一個domain再去做後續的一個分析第2個階段就是要去定義好你自己的Intent有哪些因為如果你Intent太少的話可能會造成你模型上面的一個模糊、籠統所以你必須透過比較確定、精確的一個Intent的一個數量跟類型去做去做一個設計你設計好你的Intent之後就要給它10到15句左右的一個utterances去做訓練一開始給10到15句就是不要太多不要太少就是如果太少的話可能會沒有辦法學習到精髓因為我們會建議說在這樣子的一個Intent裏面我們不一樣的utterances我們會建議有不一樣的比如說字數或者是排列的一個順序的差異性甚至像是標點符號的一個不同去造成這些語句的多樣性讓模型可能更有效的學習出人類想要表達的方式的差異另外一個部分就是要定義好你的Entity一樣跟Intent一樣你需要很多的語句去做訓練這樣子這3個步驟定義好之後就是透過這些utterances的input去做不斷的訓練跟publish然後去review這樣子藉此可以讓你的一個模型可以有更好的效果在Entity裏面其實我們有分了還滿多種不一樣的Entity的模式包括像是PrebuiltPrebuilt就是說在Azure上面它就已經有一組一系列已經幫你預先train好的這些Intent跟Entity可以讓你去做使用Regular Expression的部分就是像這樣子的一個格式就是你可以先去定義好你這個這個term可能會代表的或是呈現的方式會是什麼樣子LUIS它就會透過這樣子的一個regulation去幫你做process說只要是這樣子的一個formatted出現的就代表的是甚麼樣的意義也有包括像是Simple就是最一般簡單我們會使用的Entity就是不做任何操作還有像Pattern.any或者是Hierarchical, Composite然後還有一些附屬組合式的還有像是List這樣子的一個一個Entity的格式像List這個部分它想要表達的就是說我這3種不一樣的呈現方式我maybe是Email
address、我可能是phone number我可能是名字但是我其實代表的都是同一個我想要表達的就是這個人所以只要LUIS它發現了說有這個phone number存在的話它就會知道說這是代表這個人的一個屬性所以List它的用法是這個樣子這以上算是LUIS的一個一些比較簡單的concept的部分我們要怎麼樣去建立LUIS呢我們等下就帶大家實際去做操作大家如果都可以嘗試一下登入LUIS的portal如果沒有登入過的話其實你就按右上角的sign in就可以了帳號一樣是你在Azure上面使用的同一組帳號登入後應該可以看到跟我現在螢幕上面一樣的一個畫面就是它會呈現你曾經建立過的哪些application如果沒有的話就是空的我們現在就是試着先去建立第1個建立的方式有2種1個是Create一個new的1個是Import一個new的什麼是Import一個new的就是比如說我今天是一個協同合作的一個團隊我可能有一個人已經建立好了一個model可以分享給我的話可以用JSON檔的方式分享給我我就可以用Import的方式我們先來看一下Create一個new的看看我們現在就給它一個名字為什麼需要選擇Culture呢我們剛剛在前面的section有提到說我們不一樣的國家所使用的語言比如說英文跟中文我們主詞、動詞擺放的方式可能會有所不同所以它會其實在自然語言在分析語義的時候其實會根據這些不一樣的主詞、動詞的位置去做process所以不同的culture其實它分析的方式會有一點差異也就是說你同一個model裏面你也只能建立一種語言的LUIS
Model所以你可以根據你自己所想要操作的語言去做去做設定比如說你可以選英文這邊做一個簡單的介紹建立完以後它就會幫你跳進去這個畫面裏面所有包括Intents, Entities全部都是空的你就是根據你自己的需求去做不一樣的Intent跟Entity的設定Review endpoint的話就是說當有人透過你這個endpoint去做呼叫然後去做測試的話它會出現在Review endpoint
utterances這邊LUIS Model它會根據它自己的判斷去幫你做這句話的解析你可以再透過你在Review endpoint utterances這一個feature裏面去根據它的解析去做做評分比如說它說我是一隻豬它判斷豬這個是一個時間假設它判斷這是一個時間你去回來review的時候你發現錯這其實是一個受詞、一個動物你可以再自己重新下tag說這個是一個動物LUIS
Model它就會藉由這樣子的一個retrain的方式去做學習這樣我這邊帶大家看一個就是我用Import new app的方式我upload了一個JSON file可能是FirstSimpleBotExampleimport完之後它呈現的狀態會是這個樣子我這個是一個簡單的bot的一個sample的Louis
雲平台提供雲端服務公司,其高效及高可用性的解決方案SmartCLOUD™ Compute。
Model我在裏面的Intent包括像是Cancel, Greeting, Help, OrderFood,
Weather從這邊可以看得出來我們這個簡單的bot它主要的功能就是要讓我們去訂食物或者是去瞭解這個天氣我們可以點進去看一下像訂食物跟天氣這2個動作就是就是屬於比較動詞說我要訂食物這樣它就會給它一些utterances去做訓練比如說I want a burger我要order
a burger然後什麼時間點我們再根據這樣子的一個點下去可以去做這個action的部分我可以去在Entities的部分去做定義去Create一個new的entity說我有一個東西叫做食物這樣food我們再回到Intents這邊根據burger這邊我們就把它歸類成food這個Entity從此以後我的LUIS Model就會知道說這樣子的一個規則排列下這個東西代表的可能是食物的部分因為你通常不會說I order
1PM burger就是在文法上面你不會去做這樣的陳述所以它會透過這樣子的一個規則去幫你process說你的語句是否代表的意義是什麼這樣子當你建立好整個Intents跟Entities之後你再按下Train它會根據你所新增的差異性去做訓練訓練完之後不要忘記按Publish這樣你的endpoint才有辦法去被access到我這邊是已經建立好這樣子的一個模型我們再到MANAGE邊Keys and Endpoints看到右下角這邊可以看到我們的Endpoints我們把它複製起來然後丟到我們這個我們的這個postman裏面去做一個測試大家可以看到這個response回來的結果它就知道說
OK我query的一個語句是i want to order
a burger now它就會告訴你說它的intent滿足你剛剛所設定的intent的哪一個意圖我是OrderFood我不是Cancel不是Help更不會是Weather這個Intent我這個信心值有高達76.7%我的entities有哪些呢有now這是屬於我們剛剛定義好的Entity裏面的時間的部分它就會從我剛剛的這個時間點去抓說我可能now的定義是什麼時間點到什麼時間點這樣子我們再回到我們的LUIS的Model這個dashboard來看我們回到BUILD我們Review endpoint這邊我們可以發現我剛剛講的這個句子透過endpointaccess到的這個句子已經出現在這邊了你可以去定義說它是不是真的是屬於它所分析出來的這個結果如果不是的話你可以給它retrain就是重新定義它是屬於哪一個分類然後再去去做一個分析跟retrain的部分然後它就會透過你這樣子不斷的學習跟測試去有更好的一個效果的呈現每一次retrain完千萬都不要忘記publish這樣你的endpoint才可以被update到這個就是LUIS它一個基本的給沒有NLP這樣子的一個經驗或者是這樣一個background
knowledge的人可以去很容易的操作NLP這樣的技術之後LUIS它有除了透過這個dashboard之外它其實還可以透過RESTful API去做access之後要如何透過這些API去做access其實你可以參考我們的document它可以應用在不同的App包括像是bot或者是我們一般的web都可以這樣做這樣的操作以上是我們今天對LUIS的一個簡單的介紹 謝謝

相關推薦:
德國廢核的決定有沒有解決核廢料問題德國廢核的決定並沒有解決在德國已經產生的核廢料問題大量具強烈放射性用過的核燃料被送到法國去做再處理只是德國必須把處理完了的廢料 再拿回來也就是高放射性的玻璃固化廢料每年從法國 用火車護送回德國的中途貯存場Gorleben反核運動者把抗爭集中...
Python 與 Apache的使用接下來,讓我們先來瞭解一下本課程會使用到的軟件實作環境本課程將使用到 Python 與 Apache Spark若您要在自己的電腦上執行 Python 的相關練習這裏建議您下載 Anaconda 的安裝檔若想要練習 Apache Spark...
霧計算 fog computing接下來我們再看一個跟雲計算非常相關而且非常接近的一個技術叫做霧計算 fog computing一開始的時候我有提到cloud就在somewhere 在天上 在很遙遠的地方fog我們也很容易了解就在我們周圍所以就在發生事情就是在我們個人的周圍...
收藏收藏 推 噓
您需要登錄後才可以回文 登錄 | 註冊

本版透可值規則

快速回覆 返回頂部 返回列表