易經數字占卜Chatbot
2017-03-19
前言
根據Simon Sinek的黃金圈理論,從裡到外分為三個階層, 分別是why、how以及what;
why代表領導者或品牌的理念和目標,
how是執行理念的方法與過程,
what則代表最終呈現出的產品以及領導風格。
Simon Sinek的名言
People don't buy what you do; they buy why you do it.
受到Simon Sinek的黃金圈理論所啟發,這次打算從Why開始寫起。
Why 的部分說明為何要做易經數字占卜Chatbot
How 的部分會簡單敘述我的製作過程
What 的部分可以看到我目前的成果
Why ?
為何要做易經數字占卜Chatbot呢?
這就要從去年輔大校慶前,梅大在臉書上的po文說起
今年校慶無法到校見到系友, 特別開放網路占卦三天(12/3-12/5). 若有需要請私訊
然後我錯過了!!!
留言的部分老師提到
要排隊了. Po 文後, 一直占卦, 還沒停下來
當時我想 何不做一個占卜的Chatbot呢?
但由於那時的我對易經一無所知,所以果斷放棄 (´_ゝ`)
這學期剛好有修梅大的易經資訊學,沒想到第一堂課,老師就教了如何用易經占卜
在興趣使然下,我開始了開發易經數字占卜Chatbot的旅程
How ?
在去年FB Chatbot剛推出的時候,我剛好有走過tutorial,所以我直接有現成的bot可以改改
Server的部分,我將Chatbot部署在Heroku上
易經資料的部分由於沒有找到現成的Api可以call,所以打算自己硬幹
在網路上有查到易學網有現成的易經今解可以用,
eee-learning.com/book/neweee01
從網址的結尾發現是有規律的 neweee01到 neweee64, 這樣一來資料的部分就解決一大半了,在來面臨的問題是先天八卦表要怎麼mapping呢? 我的解法比較暴力xDD
我直接看64掛表來一個個掛寫上對應的數字wwwwww
接著只要照簡易數字卦占卜的規則,就能找出卦來
最後使用Cards的形式附加上易學網的易經今解網址就完成了
但是這樣使用者還是無從得知爻辭的部分要參考哪一個
在設計上還需要再friendly一些,
可是要如何得知道變爻的部分呢?
在看了幾篇易經今解後,我找出了內容上大致上的規律
每一篇大致上都會以經文作為開頭
乾,元亨利貞。初九,潛龍勿用。九二,見龍在田,利見大人。九三,君子終日乾乾,夕惕若,厲无咎。九四,或躍在淵,无咎。九五,飛龍在天,利見大人。上九,亢龍有悔。用九,見群龍无首,吉。
從這篇經文中可以看出它的規律可以使用句點將其拆開為
乾,元亨利貞。
初九,潛龍勿用。
九二,見龍在田,利見大人。
九三,君子終日乾乾,夕惕若,厲无咎。
九四,或躍在淵,无咎。
九五,飛龍在天,利見大人。
上九,亢龍有悔。用九,見群龍无首,吉。
找到規律後,我用python寫了爬蟲,
將易學網上共64卦的易經今解資料給爬下來,並輸出成txt,仔細看了這些爬下來的資料,
發現並不是所有的經文都符合上述的規則 (╯‵□′)╯︵┴─┴
像是
元亨,利牝馬之貞。君子有攸往,先迷,後得主利。西南得朋,東北喪朋,安貞吉。初六,履霜,堅冰至。六二,直方大,不習无不利。六三,含章可貞,或從王事,无成有終。六四,括囊,无咎无譽。六五,黃裳,元吉。上六,龍戰于野,其血玄黃。用六,利永貞。
拆解完會得到
元亨,利牝馬之貞。
君子有攸往,先迷,後得主利。
西南得朋,東北喪朋,安貞吉。
初六,履霜,堅冰至。
六二,直方大,不習无不利。
六三,含章可貞,或從王事,无成有終。
六四,括囊,无咎无譽。
六五,黃裳,元吉。
上六,龍戰于野,其血玄黃。
用六,利永貞。
但看似大部分的經文都符合此規則,因此我使用了excel的資料剖析精靈,將txt的資料丟入後,以句號將資料分割成不同的欄位,然後把不合規則的欄位做手動調整,才得出乾淨的資料。
由於這些資料都是只是顯示而已,沒有必要用到資料庫,本來想說直接用js去讀csv,但查了資料感覺好麻煩,還是用json格式最方便,在網路上找了excel to json 的線上工具做了轉換。
最後在js的程式中去讀json的資料。
What ?
以下截圖為目前成果
點擊 查看爻辭 會跳轉到 eee-learning.com/book/neweee33
點擊 查看卦辭 會跳轉到 eee-learning.com/simple64/33
後記
近期 ToDoList
- 加入使用正規表達式
- 直接在Cards裡顯示爻辭與卦辭的解釋
- 加入privacy policy
- 招募測試人員
- 提交應用程式進行審查
目前在使用者輸入的部分還沒有做正規表達式的部分, 此外在Cards裡顯示的資訊也不夠完整,我打算再寫爬蟲把 易學網上的資料爬下來進行分析。
在梅大的文中,Alan學長有提到privacy policy的部分,這點要特別注意,由於這個Chatbot有可能變向收集使用者的資料,所以加上privacy policy會比較保險。
在正式上線前會先進行測試,有興趣成為測試者的歡迎mail我 ( kevinhu@weco.net ),你們的feedback非常重要!!
未來展望
- 解卦者的串接
- 加入Payments的功能
目前自己使用這個Chatbot發現有個問題, 卜卦者可能會看不懂爻辭的解釋,
會需要有經驗的解卦人來做進一步的解釋。 像是我上次占卜要不要換駕訓班的教練,
得到的結果是井卦 (水風井) 的九三
九三,井渫不食,為我心惻。可用汲,王明,並受其福。
《象》曰:井渫不食,行惻也;求王明,受福也。
水井再次湧出甘甜的泉水,可以為人所飲用,然而因為之前水井壞掉,壞名聲在前,所以還不能讓人所接納。若有英明而有眼光的大王來取用,眾人也可以同享福報。
井渫不食,為我心惻:井水清澈乾淨,卻沒人飲用,讓人感到傷心。比喻君子修德有成,但仍懷才不遇,道德不行。渫,音謝,除去污泥,說明井水已經乾淨清澈,可以飲用。心惻,傷心。惻,傷心的樣子。
王明,並受其福:君王英明,有智慧,眾人將會因此而得到其福祉。有智慧的英明君王,當能選用人才,因此而福惠人民。
看完爻辭後,發現還是霧煞煞 ┐(´д`)┌
因此未來如果有機會的話,會想去串接一些有經驗的解卦人,
來為這個服務加值,同時導入Payments的功能,讓這個Chatbot的更加完善。