Wei's code
2014年11月18日 星期二
2013年10月5日 星期六
什麼是 Information Retrieval (資訊檢索)
最近有個同學問我,什麼是資訊檢索,這讓我回想起一年前,我也問過柯老師同樣的問題,那個時候的我對這方面也完全沒有概念。
在經過一年的訓練,修過陳老師與其他相關課程之後,在這位同學問我的當下,我依然沒有辦法以自己的口吻告訴他我心目中的資訊檢索。我舉了幾個例子,描述了一些資訊檢索中會用到的方法、說了一些資訊檢索上會遇到的問題,但是卻很片段,不是一個有整理過的想法。這樣說起來,現在的我比起一年前的我,好像只是多學了一些方法,卻不能靈活運用,似乎沒有甚麼太大進步?不過幸好,在經過幾天斷斷續續思考這個問題,漸漸浮現出自己的想法,也許不一定正確,也許離正確答案誤差很大,但是起碼,這是我自己的想法,我對這段時間的學習可以有個交代。
回到正題,什麼是資訊檢索?資訊檢索就是為了幫助使用者找到他想要的資料的方法。資訊檢索可以是 google 的關鍵字搜尋、最新的以圖搜圖、以錄音找歌、語音辨識、是圖書館的圖書編目,可以是資料庫的搜尋語句、也可以是軍隊裏面的組織編成。在所有資訊檢索當中,最特別的一個是所謂的 Boolean Model,也就是資料庫所使用的方法。所謂的boolean model,對於所有的資料只有有找到跟沒有找到的分別。但是這對於現在的應用而言,就算是圖書館的館藏搜尋系統,都不夠用,原因就在於現在的資料量太大,我們找到的東西往往都是一大批資料,因此才會有它各式各樣的方法,希望能夠找到更精準、更有價值的資料。
2013年5月28日 星期二
2012年4月24日 星期二
如何使用Google Map Api 找出附近的餐廳
這部分的功能是屬於Google Map Api 中的 Place 的功能,請參考以下網址
Place Library 介紹
範例
Api Reference
介紹裡面有Place Library的基本使用,打開範例,可以看到一個 Type 為store 的基本搜尋。
下面我們要來一步步介紹如何使用 Google Map Api 找出附近的餐廳。
Place Library 介紹
範例
Api Reference
介紹裡面有Place Library的基本使用,打開範例,可以看到一個 Type 為store 的基本搜尋。
下面我們要來一步步介紹如何使用 Google Map Api 找出附近的餐廳。
- 我們要在地圖上畫一個圓,然後找出在這個圓裡面的餐廳。所以首先,我們要先找出圓心的經緯度,所以請按照 http://blog.soft.idv.tw/?p=1190 這個網址裡的方法一,在 google map上按右鍵選擇這裡有什麼,就可以找出經緯度。
- 請點選上面的範例,會進入一個網頁,將其程式碼 copy 下來,並在 22 行換上剛才的經緯度,並在 33 行 type : ['store'] 改成 keyword : 'food' ,儲存成另一個網頁,完成。
這個方法找出來的資料其實與在 google map 上鍵入 food 所找到的資料相比,手動鍵入的似乎加入了所有搜尋結果的點,而使用 Api 則只有前20個( 可參考上面Place Library 介紹)。
2012年3月18日 星期日
JUnit 與 TDD
- 什麼是TDD
- TDD(測試驅動開發),是極限編程中提倡的開發方法,其開發流程為先寫測試碼,然後再寫實現的功能。在使用TDD的過程中,會將程式架構切割成多個小元件,便於將來debug與維護。並且在測試碼寫好之後,利用自動化測試也比較容易找到bug的位置,更多的介紹可以查看維基百科。
- 什麼是Junit
- 這是Java使用的開源單元測試框架,並且相容於許多常用的framework如structs, spring, gwt, gae, android等等。標準的JUnit能夠幫助邏輯層面跟JavaSE的部份做單元測試,而各個framework有其特殊的JUnit功能,可以用來測試個framework的特殊功能。
2012年3月14日 星期三
Apache Ant 簡介
- Apache Ant是什麼?
- Ant 可以說是一種開源軟體,一種軟體工程的工具,這裡有它的網頁。它是用來協助使用者建立Java的專案,包括編譯、上傳、測試等等。使用者會在build.xml撰寫一些描述碼,並且利用簡短的指令執行這些描述碼,以達到do it once and only once的效果。
- 為什麼要使用Ant
- Ant 的使用,是為了要替programmer處理一些開發且瑣碎的事務,讓programmer可以集中心力在其他較重要的部份。例如當要發展一個比較大型的Project時,很可能,我們需要將Project裡面不同的部份,分別部署到不同的平台上面,此時若是利用Ant,可以解決分開部署到多個平台上的繁雜步驟。ant有一些功能使用shell script也可以做到,但是因為ant是用java寫的,是跨平台的,並且內建在一些熱門的IDE,如eclipse,這一點又比shell script好一些。
- 常用到的功能
- JavaSE
- 在GAE上使用Ant
- 在GWT上使用Ant
- Android
- 上傳FTP
- 使用JUnit
- svn 與 git (或是直接將指令包在Ant裡面)。
2012年3月12日 星期一
GAE for Java 簡介
- 什麼是GAE
- GAE全名Google App Engine,是Google提供的一個PaaS形式的雲端服務,它可以執行使用者上傳的程式(都是屬於WebService的程式)。在GAE裡面所使用的程式語言有三種,Python,Java與Go(google 自行開發的程式語言),而後面所講的都是屬於Java的部份。
- 它的優點
- 它提供了許多已經建立好的工具,例如流量監控、Logs、IP阻擋、Cron Jobs等等。
- 一開始是免費的。
- 使用前必須先建立Google帳戶並用手機號碼認證,認證完可以免費建立10個Application。
- 除了預設的domain以外,可以使用其他你所擁有的domain(需搭配Google Apps)。
- 可以調用google的認證API來認證google帳戶。
- 不必煩惱網路(中國地區除外)、電源等基礎設施。
- 它的缺點
- 免費的Quota不多,且超過免費的配額之後收費並不便宜(計費資訊)。
- 在資料的儲存上與傳統的RDBMS並不相同,如果data schema較為複雜,資料備份以及平台轉移較為不易。
- 如果使用一些GAE上面特有的Service一樣不利於平台轉移。
- 沒有較為方便的客服機制。
- 不能使用file system, socket, thread。
- 欲使用JavaMail時,不須指定from and password,因為這個部份是綁定的,也就是你只能使用建立該Application時的gmail來寄信,並且不能收信。
- 其他特色
- App Engine Datastore 可以選擇Master/Slave Datastore與High Replication兩種,建議以High Replication 為優先選擇。
- 除了App Engine Datastore 以外,還有兩種儲存方式,Google Cloud SQL與Google Cloud Storage。這兩種都是較新,且在實驗階段的功能,第一種讓GAE可以執行一般的SQL語法,第二種提供存取檔案的功能。
- 並非所有的JavaSE的功能皆有提供,詳細情形請看 JRE Classes White List。
- 有些Java 的第三方工具可以使用,有些不行,詳細請看 WillItPlayInJava 。
- SSL的功能只支援預設的domain(*.appspot.com)。
訂閱:
文章 (Atom)