iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 18
0
Big Data

資料科學:使用 Clojure系列 第 18

Day 18 - 單元六:群聚算法(一)

本章所要討論的群聚算法(clustering analysis)是一種非監督式機器學習(unsupervised learning)。程式碼請參見 Chapter 06,所使用的資料是 Reuters-21578,可以通過下載腳本獲得。這份資料是 Reuters Ltd. 路透社在 1987 那一年的所有新聞資料,公開出來供資料科學研究用。

取得資料

下載後,資料會被解壓縮並存放在 data/reuters-sgml 中。每一個 .sgm 檔案包含了一千篇文章,使用 Standard Generalized Markup Language SGML 格式標記。我們可以使用 Lucene 這套開源 Java 文字搜尋引擎將文章內容取出。關於如何使用 Java 模組,我將在最後幾天提到。

(:import [org.apache.lucene.benchmark.utils ExtractReuters])

(defn sgml->text [in-path out-path]
  (let [in-file (clojure.java.io/file in-path)
        out-file (clojure.java.io/file out-path)]
    (.extract (ExtractReuters. in-file out-file))))

文章會被拆解成 txt 檔案存放在 data/reuters-text,也可以通過執行 lein extract-reuters 來執行此步驟(已被設定為 lein task)。


上一篇
Day 17 - 單元五:大數據(二)
下一篇
Day 19 - 單元六:群聚算法(二)
系列文
資料科學:使用 Clojure30

尚未有邦友留言

立即登入留言