跳至主內容

非結構化數據

非結構化數據
Gordon Lau 劉偉中
2019-05-08

近年數據科學及人工智能發展迅速,大眾開始對數據(Data)有很大興趣,甚至有「數據是未來的石油」(Data is the new oil)的講法。很容易會聽到如大數據(Big Data)、數據導向決策(Data Driven Decision)、數據化組織(Data Organization)等等與數據相關的詞語,其中重點,不外乎都是如何運用已儲存的數據,通過數據處理及數據分析,從而得出結論,幫助決策。筆者今日希望談談的,是另一個技術用語,與大數據一詞經常一齊出現,就是非結構化數據(Unstructured Data)

非結構化數據與結構化數據比例圖

Source

何謂數據

要理解非結構化數據,要先理解何謂數據,廣義上的數據通常指的是原數據(Raw Data),是我們為了記錄事物而製造出來,因此要定義數據,筆者會用以下的定義。

數據本質上是紀錄(Record),是狀態的紀錄(Record of states),通常專指未經處理的原數據(Raw Data)。

記錄的形式可以包羅萬有、層出不窮,一個原始人結的繩結是數據;一本寫在竹簡上的書是數據;一個Excel檔案也是數據。資訊科技的高速發展,令我們可以儲存及記錄大量數據。由數據開始,人類可以掫取資訊(Information),歸納為知識(Knowledge),內化成智慧(Wisdom)

DIKW金字塔圖

所以數據是分析、學習的基礎,沒有數據,則無法從中掫取資訊,知識就更不可能由其中歸納而成。因此現今對數據的重視,最終目的,就在於希望由分析原數據,得到未知的見解(insight)。

結構化

只是有數據,仍是不夠,我們還需要將數據以結構化(Structured)的方式儲存,才能加以利用。試分析以下兩個情況:

  1. 將銷售數據變成如下圖Excel欄及列的形式,分門別類處理好。

Excel_table截圖

  1. 收集好每一張銷售發票及銀行月結單,再作統計

quotes_template截圖

要作銷售額統計,兩者較為容易呢?理所當然是前者。 分野原因何在?最關鍵的原因,在於數據是否已經結構化,Excel的欄及列有明顯數據結構:ProductCountriesQtr1Qtr2都是早已定義好的 標頭,要做的只是將不正確的數據清理好,就可以開始分析數據。

相反,銷售發票通常容許較多彈性,沒有統一的填寫方法,例如上圖description中,容許使用者任意填寫任何文字,就稱不上是結構化數據,因為根本沒有一個統一的格式,在分析上就會遇到很多困難。亦正是如此,很多公司都利用系統生成銷售發票,正是為了規範格式。

簡而言之,結構化數據方便處理,也更容易分析,將數據儲存成結構化的格式,有明顯的好處。

那為何非結構化數據成為討論熱點?

這就奇怪了,既然結構化的數據在處理遠比非結構化數據更為簡單,為何近年的討論都集中在非結構化數據之上呢? 箇中原因其實很簡單,結構化數據在過去數十年間,早已是數據分析的中流砥柱,要分析結構化數據,甚至有一個專有的範疇:商業智能(Business Intelligence)就正正是專為了分析結構化數據而設,微軟近年開發的商業智能工具PowerBI就正正是其中最好的例子。

相反,非結構化數據卻被長期忽略,大家細想日常工作所傳送的電郵、收取的表格、Facebook上的影片等,都是數據的一部份,然而由於分析難度很大,通常在分析數據時,都會盡量避免處理這些數據,以節省人力物力。如分析大量Facebook影片的內容,不以人力逐一觀看,就只有運用現今深度學習的算法,如圖像辨識(Image Recognition)等,才能掫取有用的數據。正因如此,很多可能有用的數據就這樣被埋沒了。

結構化數據三層級

除了上述的例,結構化和非結構化數據還有其他例子嗎? 下圖綜合了三種不同結構化程度的數據:

結構化數據三層級示意圖

由上圖可見,圖片、影片、即時對話內容、錄音、手寫資料、電郵、二進位檔等都是非結構化數據的最佳例子。而關聯式資料庫、CSV檔、Excel檔案等則是結構化數據的例子,能夠使用傳統的數據分析工具去處理及理解。 結構化數據及非結構化數據中間,還有一個灰色地帶,也就是半結構化數據,半結構化數據包含了常用傳輸格式: XML、JSON、YAML等,因為這些格式有一定的格式架構,例如JSON只支援數組(Array)、物件(Object)、字串(String)等常用的數據型別,但又不會像關聯式資料庫(RDBMS)般需要一個既定的型式,因此在編程中常常用作傳輸、儲存數據。NoSQL中使用的,也常常是半結構化數據,例如MongoDB就是儲存了JSON格式的數據。

有估計都認為,結構化數據及半結構化數據其實只佔了總體數據的百分之二十,剩餘的百分之八十都是屬於非結構化數據的領域。 日常工作、瀏覽網頁,用戶時刻都製造了許多數據,而這些數據,很多就屬於非結構化數據。

非結構化與數據科學

正因大部份的數據本質上都是非結構化,因此在大數據時代的今日,要分析、處理、圖像化非結構化數據,就使數據科學(Data Science)成為了一門顯學。不同機構及公司都因此爭相聘請數據科學的人材,去處理這個長期忽略的「大多數」。無意之間也令大眾衍生了一種誤解:以為結構化數據與非結構化數據中間有一條楚河漢界,又或是以為非結構化數據是一個新的數據格式。實際上兩者都是由來已久,只是近年技術發展迅速,出現了不少大數據的工具,例如Apache Spark、Kafka、Hadoop等,數據處理工具Pandas等亦漸成主流,才令非結構化數據走到了舞台的中心位置。

留言

閱讀更多

Data Science? AI ? Machine Learning? 到底有何分別?

Data Science? AI ? Machine Learning? 到底有何分別?

Data Science? AI ? Machine Learning? 到底有何分別?
Gordon Lau 劉偉中
2018-11-23

近幾年大家經常聽到 Data Science(數據科學)、AI(人工智能)、Machine Learning(機器學習)、 Deep Learning(深度學習)等等詞彙, 以上的名詞的意思好像差不多,但又並非完全一樣


兩種檔案大不同

兩種檔案大不同

兩種檔案大不同
Gordon Lau 劉偉中
2018-12-14

當你想寫好一個文件,用 .doc 檔 及 .txt檔 有何分別? 驟看之下,最大分別就是 .doc檔 要用Microsoft Word開, .txt檔 只要一個簡單Notepad就可以。實情是 .doc檔 跟 .txt檔 分別代表兩種截然不同的檔案,如果你用一個純文字編輯 器打開他們,分別就顯而易見了。


資訊熵

資訊熵

資訊熵
Gordon Lau 劉偉中
2018-12-18

資訊量有方法量度嗎?當然有,一句十個字訊息跟一百字訊息所包含的資訊當然大相逕庭。光看字數準確嗎?同一語言還可,然而不同語言不同字數所表達的 意思不同,本身根本不可比。看檔案大小可以嗎?有時可以有時不可以,因為不同檔案類型大小不同,光看檔案大小並不準確。 因此,電腦科學中有一個數學方式表達資訊量,此概念就是資訊熵(Information Entropy)。


做個精明消費者 : Python 簡單數據科學日常應用例子

做個精明消費者 : Python 簡單數據科學日常應用例子

做個精明消費者 : Python 簡單數據科學日常應用例子
Brian Tsang
2019-03-27

相信讀者或多或少都會有需要去香港超級市場購買家居日常用品的經驗.而從小我們都知道貨比三家,格價理財的基本消費原則. 不知道讀者會否知道香港有消費者委員會, 在消費者委員會的網上推出了網上格價一覽通, 讓我們每日得到六間超級市場的相同貨品的價格資料.


天文台的理想與現實

天文台的理想與現實

天文台的理想與現實
Alex Lau 劉光曆
2019-05-03

香港天文台的預測經常令你失望?是你的心理作用,還是這台的預測真的有偏差?配合 Web Scraping 和 d3.js 讓大家都把誰是誰非一眼看通透!


索取課程大綱
提交後, 請檢查你的電郵
hello@tecky.iot.me/tecky_hub+852 9725 6400
green_org
商界展關懷 2019-2022
英國頒證機構 TQUK 認可中心
aws_partner
薯片叔叔共創社 重塑教育挑戰大獎
B Corp™ 認證共益企業
無障礙網頁內容指引 (WCAG) 2.1 AA 級
香港無障礙網頁 金獎
© 2024 Tecky Academy Limited