發表文章

目前顯示的是 1月, 2018的文章

使用C#開發Linebot(19) - 建立LUIS服務處裡自然語言辨識

圖片
接下來這幾篇,我們從頭開始談談NLP(自然語言處理),以及LUIS如何跟Line bot整合應用 前言 關於Linebot的開發,最終我們免不了碰到一個問題,要如何識別用戶所輸入的語句? 雖然我們有千百個不願意,Linebot也提供了Template Message之類的選單機制,可以幫助我們降低free style對談發生的機會,但終究,到最後我們還是得讓chat bot面對用戶以文字方式傳來的訊息。 怎麼說千百個不願意? 做一隻chatbot不就是希望和用戶chatting嗎? 話是這麼說沒錯,但截至今天的科技,要做一個答非所問,胡言亂語的bot來 引誘用戶跟你聊天 很容易(別懷疑,很多的chat bot其實目的只是要引誘用戶說話),但要做到有意義的自然語言『對談』,對電腦來說,這依舊是一個非常大的挑戰。隨著你對這個主題研究的逐漸深入,你愈會發現,人腦處理語言的神奇。 前話表過,我們終究要來看,在當前的技術下,如何讓chat bot來識別一段文字。我們在這邊推薦的技術是LUIS。 LUIS全名是Language Understanding Intelligent Services,顧名思義,是一個提供語句理解能力的雲端服務。請留意,LUIS並非去分析語句含意(這是Text Analytics的功能),而是去拆解並嘗試依照句型來判斷一個句子,分類歸納出用戶的意圖(intents)並抓取出句子當中關鍵的entities。 而這個功能,對於我們的caht bot,非常的重要。 由於bot的文字輸入介面很自由,用戶往往可以很隨興的打字輸入,你根本無法限制用戶輸入什麼,以什麼句型方式輸入。而且人很有趣,只要沒有限制,就會竭盡所能地嘗試。此外,也非常有可能因為typo之類的輸入錯誤,導致一個句子在輸入上就有錯別字或是不完整,使得chat bot無法只是抓取特定關鍵字來識別用戶的企圖與目的。 凡此種種,都讓NLP自然語言處理的難度比想像來的高。 你只要開放一個文字聊天機器人,就會有人亂打一些有的沒的,然後bot沒理解出他的意思,他就笑這個bot很笨。(這樣很有成就感?) 因此,就對談機器人來說,首要目標之一就是理解用戶輸入的內容,而LUIS是實現這個功能的重點服務。 基本概念 首先,我們需要知道一些概念,LUIS的基本功能(以後有空再說複雜的),就是分析一句話,區分出用戶的意

使用C#開發LineBot(18) - 不寫一行code完成Line bot

圖片
這一篇標題就有問題,既然是用C#開發,那怎麼可能不寫一行code就完成Line bot的開發呢? 的確,不行。還是要寫code,但,但,差別在於,是誰寫。 為什麼會有這篇呢? 是這樣的,在分享了許多的Line bot開發之後,發現有不少對chat bot有興趣,但對C#完全沒概念的新同學加入,新同學們可能過去習慣的是其他的開發技術和語言,會選擇用C#純粹是 因為給微軟和我們一點面子 因為聽說C#開發Linebot比較容易,也就這麼走進來了,為了幫助這些新朋友,也為了上課寫書方便,我們做了一個小套件(Nuget StudyHost.Example.Linebot),它可以幫助開發人員,不寫一行程式,就立即完成一隻Linebot的開發。 怎麼用呢?非常之簡單。 請打開VS2015/VS2017,然後建立一個空的Web專案: 我只有一個小小的要求,請務必選擇.net framework 4.5.2以上。然後,在下一個畫面中,直接選擇Empty(空)的範本類型,然後請務必(一定一定要)勾選WebAPI: 就這樣,VS2015會幫你建立好一個空專案,長得像是底下這樣: 理論上,你建立好的專案會跟上面幾乎完全一樣,接著,重點來了,請安裝一個nuget套件: 在Nuget套件安裝畫面上,選擇Studyhost.Example.Linebot套件: 按下安裝鈕,安裝完成後,你會看到這個套件已經幫你把程式碼都寫好了: 不蓋你,這個寫好的Linebot甚至還可以連結LUIS支援自然語言對談,你只需要把上圖中的ChannelAccessToken、AdminUserId換掉就好。注意,有3個檔案需要你這麼做,分別是LineWebHookSampleController.cs, TestLUISController.cs, default.aspx.cs。 千萬別告訴我你不知道Channel Access Token和Admin User ID怎麼取得!? 好吧,如果真的不知道,可以先參考底下這支影片: 請將程式碼中3處的資訊換掉,這時,你甚至不需要先將網站佈署到任何雲端站台,應該就可以按下F5執行,試試看default.aspx這個頁面上的按鈕,其實已經可以讓你成功的發送訊息給自己了: 如果你想更進一步的,讓這個chat bot可以跟用戶對話,也不難,其實你已經寫好了一個WebHook,

The DevOps Journey – Index

圖片
前幾年的DevOps大多談的是概念,但從去年(2017)中開始,大家慢慢發現DevOps中工具的使用或許也是導入成敗的關鍵之一。 許多人談DevOps導入時主要談的是文化,這沒錯,我自己也曾經在分享時提過,企業的文化決定了DevOps的推動是否順暢。然而,要怎麼改變文化呢? 文化的養成是透過日復一日的行為,從行為培養成習慣,從習慣慢慢造成影響(或制約),進而形成文化,而工具在這習慣養成過程當中,著實有不可或缺的一席之地。 我們使用VSTS/TFS已經有很多年,也在敏捷開發和Scrum上有過數年的實戰經驗,底下這些,是這些經驗的一些整理和分享,內容從觀念到工具,希望能提供給對敏捷開發或軟體生命週期管理有興趣的朋友。 我先定義一下我們的範圍: 採用的開發技術包含.NET傳統桌面應用程式和網站、iOS和Android開發,使用的DevOps/ALM工具主要是VSTS/TFS(版控包含Git和TFVC),從需求、設計、開發、測試、CI、CD、線上監控、客戶反饋…大致上都有涉及。 開發團隊包含設計人員(Designer)、前端開發人員、後端開發人員,當然還有PM(PO)、客戶服務(或Sales) 底下是系列文: the DevOps journey (0) - 敏捷開發真和每個開發人員有關? the DevOps journey (1) - 敏捷開發不相信時程預測? the DevOps journey (2) - 如果時程難預估,不如追求透明度… the DevOps journey (3) - 『透明度』與『自動化』… the DevOps journey (4) - 建立VSTS站台與專案(2017年Q1版) the DevOps journey (5) - 在VSTS站台與專案中添加成員 the DevOps journey (6) - 安排與設定專案的迭代 the DevOps journey (7) – 你的source code還沒上版控嗎? the DevOps journey (8) – 使用TFVC程式碼版控 the DevOps journey (9) – 在TFS/VSTS中使用Git版控 the DevOps journey (10) - 讓用戶輕鬆建立並管理Feedback/bug/Issue 持續更新中… 相關文章 the DevOps jou

the DevOps journey (10) - 讓用戶輕鬆建立並管理Feedback/bug/Issue

圖片
Excel,是過去傳統軟體開發專案當中,管理Bugs/Issues常見而行之有年的工具。既然行之有年,表示有其存在的原因,然而,卻也帶來了不少問題。 Excel控管的Bugs/Issues,由於是檔案形式的存在,因此無法多人同時更新維護,即便現在可以透過雲端共用檔案來解決,但想要在Excel檔案上掌握bugs的狀態、控管處理進度實在很不容易,且一份Excel也無法完整描述出bugs/Issue的重現步驟(Step)、錯誤來源、以及用戶的電腦設備環境…等資訊。 既然,我們已經用VSTS來處理工項,一定會更希望這些bugs/issues的管理可以如同Backlogs一樣,輕鬆紀錄每一個狀態、讓各種問題有效的被追蹤處理。 上圖是VSTS中工作項目(Work Items)與Bugs的呈現畫面,過去開發人員或測試人員,可以在底下這個畫面中添加Bugs,便於管理: 但這樣,用戶得要先進入VSTS畫面,且填寫bugs時常常需要剪貼畫面,書寫comments,來來回回很是麻煩,有沒有更簡單的方式? 有的,Test & Feedback Tools,它在VSTS的Marketplace中,可以從 這個 網址進入,這絕對是一個優秀好物: 這是一個讓測試人員或stakeholder使用的工具,只要你為專案的測試人員或相關人員建立一個免費的stakeholder權限帳號,即可使用此工具,輕鬆截圖回報bugs。 測試人員點選上面install之後,會看到它目前支援Chrome/Firefox (對,尚未支援Edge和IE,why?不要問,何必問呢? ): 點選安裝之後,可以輕易地把這個外掛裝入Chrome瀏覽器: 安裝完成之後,你會發現瀏覽器多了這個圖示: 點選該圖示之後,會出現底下畫面,第一次使用時,請著點選齒輪: 點選齒輪之後,會看到底下畫面,請依序選擇Connected,填入你的VSTS/TFS網址,按下Next: 接著應該會出現一個登入畫面,如果有,請輸入你想要處理的專案的Microsoft Account(VSTS),驗證完身分之後,接著會出現底下畫面。 這個畫面中會出現你的帳號可以管理的專案,請選擇你的Project以及Team/Area,選定後按下Save: 這樣,Test與Feedback工具就與你的專案綁定了。接著可以怎麼用呢? 請看。 你可以先在網址列輸入你專案的