也來寫機器人

今年五月,各平台陸續發表新的bot服務,為了學習golang也順便做點實驗,就順手寫了兩個平台上的機器人

Line: https://github.com/orsonwang/linebot_client

Line平台使用line官方的gloang 函式庫,直接可用

Facebook: https://github.com/orsonwang/fbbot_client

Facebook使用 https://github.com/frodsan/fbot 函式庫,但是在go 1.6會有點問題,所以我就自己Fork改了一下,雖然發了pull request回去,看來作者沒有要整併,也沒關係。 另外有 https://github.com/maciekmm/messenger-platform-go-sdk 可以直接使用,不過我懶得改過去了。

後面為了共用文字處理引擎,我借用 nats.io 來當one to many request response server,這樣就把這兩個程式變成純粹的收發平台,(幾乎)不做任何處理。

投影片10

收到訊息,就把發送者ID跟訊息往後拋,讓後面文字處理引擎來回覆。

後面的文字處理本來想用jieba來斷字,但是就算斷完字,沒有語法引擎,還是要自己做patten matching,所以就乾脆的放棄斷字引擎,直接使用Reguar Expression來作業(也順便學一下RegEx的語法)。

投影片11

這也回到一個問題,現在的文字服務,不管是關鍵字對應還是機器學習,最終還是需要撰寫patten matching才能提供服務,加上中文的難斷字、亂文法特性。最終會變成一個很大的map/Result,尤其是單句就完成的指令式服務,AI的價值好像很難彰顯。但是要做有記憶力的服務,難度就大幅提昇了,需要多重主詞、情境、指令的記憶點跟如何問答來補足資訊,這樣的服務用RegEx來寫,就會累死人(難以窮舉),依靠機器學習來幫忙歸類才能讓負責寫答案的人專門寫答案。當然機器一定會有錯誤率,如果是在我所在的不能出錯行業,機器學習走監督式學習是必須的,讓機器學會把問題歸類到正確的答案區,整個對答就能很順利的完成。目前在這一塊技術,傳統字NLP領域,領先的好像是在北大,早幾年是中研院領先,但被北大超越後,好像就沒有再贏過去的發展。走機器學習來處理的,就都是中國的廠商了,台灣的廠商好像沒聽說有人投入,投入沒價值嗎?泛亞洲區用的文字幾乎都是需要另外斷字的,發展好能處理中文的,泰國、印尼、馬來西亞等新興國家都在後面等著你,好生意,誰會投資呢?

目前這文字引擎,不會聊天,都是處理金融業務的查詢,也為了做真一點的demo,就讓他提供真的匯率(背後寫了一個定時去爬台銀匯率網頁的小爬蟲),另外也做了個覆的小能,然後就沒了,沒時間玩了。

投影片12

現在在認真的測試聲紋辨識,希望能弄個方便的好東西出來。

在〈也來寫機器人〉中有 1 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *