今天想分享一個 Program 仔,就是可以自動分辨香港地址上的分區
====================================================
Hong Kong Address Area Code
開發工具︰NotePad++技術︰jQuery, Ajax, JSON, PHP, HTML, CSS
版本編號︰2014-08-29(因為是當天完成的)
開發者︰杜芬宅
授權條款︰Apache License 2.0
===================================================================
事源是這樣的,說故事︰
===================================================================
這種時候我就跪係到,當然無可能啦。為了費時失事,沒有傳回叫對方補回資料。
因為那是小事,因為我手頭上沒有其它工作,因為收了對方錢。
那種事,上位的當然不理你,只要你出到貨。
反正有時間,就寫個無聊小程式自我陶醉一下
香港地址,在信件上寫地址,香港分為四大區域︰香港島(Hong Kong Island)、九龍(Kowloon)、新界(New Territories)、離島(Foreign)
Area Column 的預期值是
香港 = H
九龍 = K
新界 = N
離島 = F
良機 -→ 實幹 --→ ……
===================================================================
事源是這樣的,說故事︰
===================================================================
背景
有一次進行 Data Importation ,但是對方竟然十分不聽話的沒有提供 Area Column 的值。這種時候我就跪係到,當然無可能啦。為了費時失事,沒有傳回叫對方補回資料。
因為那是小事,因為我手頭上沒有其它工作,因為收了對方錢。
那種事,上位的當然不理你,只要你出到貨。
反正有時間,就寫個無聊小程式自我陶醉一下
預期結果
香港地址,在信件上寫地址,香港分為四大區域︰香港島(Hong Kong Island)、九龍(Kowloon)、新界(New Territories)、離島(Foreign)
Area Column 的預期值是
香港 = H
九龍 = K
新界 = N
離島 = F
香港島15-18, 離島1, 大概是10-14, 其它是新界
===================================================================良機 -→ 實幹 --→ ……
===================================================================
Functional Requirement
簡單地 Brain Storming 一下,首先︰(前設是杜芬宅是Web Base 形式寫的)
- 為了辨識每句地址是屬於香港、九龍、新界、離島,要有一類似字典的存在。指名尖沙咀是九龍、銅鑼灣是香港島
- 字典必須允許使用者更新,不可能簡單地只懂區分十八區是四個中的那一個吧
- 為了方便存取 字典,就把它獨立出來,不和Web Page混在一起
使用指南 User Guide
How to use
- Make sure the current dictionary matching table are work.
- Place your list of address copy from excel to the left panel at below and wait
- The sentence trim by , will display at the right panel, at the same time..
- The program will try to identify the area code of each line of address
- You may assign area code in the custom address area code panel manually
How to update the dictionary
- After finish you manual assignment, click the [update dictionary] button
- Your new keywords will display at the "Dictionary New Definition" panel
- You may change and edit in the "Dictionary New Definition" panel
- Click [Generate New JSON] button, the new json code will include the new dictionary definition
- Click [submit] to update the json file by PHP or copy the json code update by yourself
如何使用辨識功能
- 打開網頁,程式會自動載入字典供之後的配對使用
- 在 [Press your address here] Panel 輸入地址,記得用Enter(換行)分隔每個地址。貼上地址後稍等
- 地址的最尾部份會分割出來,顯示在[Get the substring] Panel。此時可核對,如有問題重新修改左方的地址
- 在此同時,程式會自動生成一行行的框框。並且嘗試與字典核對,自動配對出正確的 area code
- 使用者亦可以 在框框內的下拉選單,手動指派 area code
如何更新字典
- 當完成所以地址的 Area code 指派後, 按下 [update dictionary] 按鈕
- 新追加的字典定義 將會顯示在 "Dictionary New Definition" panel
- 如發現有問題。例如不想在字典加入某一項的定義,可以在 "Dictionary New Definition" panel 的相應文字方塊中修改內容
- 按 [Generate New JSON] 按鈕, 新的字典定義將加入到舊字典並生成新的字典
- 此時你可以複製新字典,手動切換字典內容 。或 是按 [Submit] 按鈕更新字典,你的網頁伺服器需要支援PHP
Program Flow and Logic
那個『小』程式,都是寫來玩玩。可能有點甩皮甩骨(殘缺不全),請大家多多包涵,最好有高手賜教啦。Panel
有文字變更時會觸發一個計時器
3秒內有文字再更動3秒倒數重新計算,倒數到零時開始切割地址,找出地址最後的部份
Panel
每句地址最後的部份,會顯示在此
[Custom address area code] section
同時,每句最後的地址會生成一個框框,如果在字典找到相同的 那部份,會自動指派 Area Code。
如果沒有相同,使用者可手動在下拉選單選取 Area Code
[Dictionary New Definition] Accordion
按下 [Update Dictionary] 後,會檢查所有框框,如果某項地址並未記錄在字典時。
該項地址會出現在[Dictionary New Definition] Accordion 雙應的分區
New Json Accordion
按下 [Generate New JSON] 後 ,會根據原本的字典加入,新的字典定義
生成出新的JSON字典定義
Submit Button
新的 JSON 字典定義生成後,你可以手動複製文字並更新 check-address-area.txt 的內容
或按 [Submit] Button,如果你的Web Server支援PHP就可以自動更新字典
====================================================================
本來我的Scope就是只有英文,哈。
有關什麼是 jQuery
http://try.jquery.com/levels/1/challenges/2
jQuery 主要令以下五大要點 更容易實行
還有後續文章,敬請期待下一篇文章就以上案例 比較 AngularJS 與 jQuery 兩者對開發者的不同『待遇』
自說自話
現在回想起來,只會找出地址最後一部份。那只適用於英文地址,嗯…本來我的Scope就是只有英文,哈。
有關什麼是 jQuery
http://try.jquery.com/levels/1/challenges/2
jQuery 主要令以下五大要點 更容易實行
- find - elements in an HTML document 找出/指向一個 HTML 的元素(element / tag / node)
- change - HTML content 變更 HTML 內容
- listen - to what a use does and react accordingly 對使用者指定動作出特定回應 (在其它程式那可能叫 Trigger / Listener)
- animate - content on the page 動態特效
- talk - over the network to fetch new content 運用 Ajax 技術,瀏覽者不用刷新網頁,內容也可以刷新
還有後續文章,敬請期待下一篇文章就以上案例 比較 AngularJS 與 jQuery 兩者對開發者的不同『待遇』
====================================================================
Reference︰
No comments:
Post a Comment