[技術分享] 文本數據可視化之一圖勝千言

 作者:新投云  發布于:2017-07-07  瀏覽數:

文字是傳遞信息最常用的載體。在當前這個信息爆炸的時代,人們接收信息的速度已經小于信息產生的速度,尤其是文本信息。當大段大段的文字擺在面前,已經很少有耐心去認真把它讀完,經常是先找文中的圖片來看。這一方面說明人們對圖形的接受程度比枯燥的文字要高很多,另一方面說明人們急需一種更高效的信息接收方式,文本可視化正是解藥良方。「一圖勝千言」我們從小就有體會,教材里的解釋圖、自己筆記里總結的知識結構圖,一直到現在經常用的思維導圖等,其實都是簡單、實用的文本可視化。本文將簡單介紹文本可視化的基礎概念,然后重點通過各類文本可視化的案例來闡述可視化之美(多圖,不過為了學到知識這點流量不算什么)。

為什么要文本數據可視化

雖然一般這種講必要性的段落很多人都略過不看,雖然文本可視化的必要性大家用腳趾頭估計都能想到,但我還是稍微說一說吧。文本可視化的作用有以下四點:

  1. 理解 - 理解主旨
  2. 組織 - 組織、分類信息
  3. 比較 - 對比文檔信息
  4. 關聯 - 關聯文本的 pattern 和其他信息

簡單來說就是讓你更加直觀迅速的獲取、分析信息(所有可視化的作用都是這個)。舉個例子,針對一篇文章,文本可視化能更快的告訴我們文章在講什么;針對社交網絡上的發言,文本可視化可以幫我們信息歸類,情感分析;針對一個大新聞,文本可視化可以幫我們捋順事情發展的脈絡、每個人物的關系等等;針對一系列的文檔,我們可以通過文本可視化來找到它們之間的聯系等等。

一般來說,情報分析人員、網絡內容分析人員、情感分析或文學研究者等相關職業更需要文本可視化。不過隨著信息圖(例如圖 1)等的普及,越來越多的人已經接受并善用文本可視化了。

圖 1:一幅叫你怎么做信息圖的信息圖圖 1:一幅叫你怎么做信息圖的信息圖

文本數據可視化的流程

如圖 2 所示,其實任何可視化的流程[1]都類似。

圖 2:文本可視化流程圖 2:文本可視化流程

一般把對文本的理解需求分成三級:詞匯級(Lexical Level)、語法級(Syntactic Level)和語義級(Semantic Level)。不同級的信息挖掘方法也不同,詞匯級當然是用各類分詞算法,語法級用一些句法分析算法,語義級用主題抽取算法[2]。以上這些都在第二步文本信息挖掘中進行,其中文本數據預處理是將無效數據過濾,提取有效詞等;文本特征抽取是指提取文本的關鍵詞、詞頻分布、語法級的實體信息、語義級的主題等;文本特征的度量是指在多種環境或多個數據源所抽取的文本特征進行深層分析,如相似性、文本聚類等。這里就簡單籠統地說一下文本分析的基礎方法,有興趣的同學可以自行搜索學習,我們把重點放在可視化設計上。

Wordcount[3] 統計了通常用的86800個單詞Wordcount[3] 統計了通常用的86800個單詞

文本可視化類型

文本數據大致可分為三種:單文本、文檔集合和時序文本數據。對應的文本可視化也可分為三類:

  • 文本內容的可視化
  • 文本關系的可視化
  • 文本多層面信息的可視化

以下我們通過案例來一一介紹。

文本內容可視化

上篇文章所說的標簽云和 Wordle [4]是目前研究領域和 Web 上最受歡迎的文本內容可視化方法了,它們都是基于關鍵詞的文本內容可視化。

基于關鍵詞的文本內容可視化

DocuBurst

文檔散(DocuBurst [5])也是基于關鍵詞的文本可視化,不過它還通過徑向布局體現了詞的語義等級。如下圖所示,外層的詞是內層詞的下義祠,顏色飽和度的深淺用來體現詞頻的高低。

Document Cards

文檔卡片(Document Cards)[6]則是結合了文檔中的關鍵詞和關鍵圖片進行可視化,布局在一張小卡片中。其中的關鍵圖片是指采用智能算法抽取并根據顏色分類后的代表性圖片。

時序文本內容可視化

時序數據是指具有時間或順序特性的文本,例如一篇小說故事情節的變化,或一個新聞事件隨時間的演化。

SparkClouds

SparkClouds[7]是在標簽云的基礎上,在每個詞下面增加了一條折線圖,用以顯示該詞的詞頻隨時間的演變。

SparkCloudSparkCloud

ThemeRiver

主題河流(ThemeRiver)[8]是一種經典的時序文本可視化方法。光陰似水,用河流來隱喻時間的變化幾乎所有人都能非常好地理解。

ThemeRiverThemeRiver

橫軸表示時間,每一條不同顏色線條可視作一條河流,而每條河流則表示一個主題,河流的寬度代表其在當前時間點上的一個度量(如主題的強度)。這樣既可以在宏觀上看出多個主題的發展變化,又能看出在特定時間點上主題的分布。

TIARA

TIARA[9]結合了標簽云,通過主題分析技術(latent dirichlet allocation,LDA),將文本關鍵詞根據時間點放置在每條色帶上,并用詞的大小來表示關鍵詞在該時刻出現的頻率。因此用TIARA就可以幫助用戶快速分析文本具體內容隨時間變化的規律,而不是僅僅一個度量帶變化。

TIARATIARA

TextFlow

TextFlow [10]也算是 ThemeRiver 的一種拓展,它不僅表達了主題的變化,還表達了各個主題隨著時間的分裂與合并。如某個主題在某個時間分成了兩個主題,或多個主題在某個時間合并成了一個主題。

TextFlowTextFlow

HistoryFlow

HistoryFlow [11]則主要研究文檔內容隨時間的變化。下圖以維基百科一篇詞條的更新為例,縱軸表示文章的版本更新時間點,每一種顏色代表一個作者,在同一個時間軸上色塊代表相應的作者所貢獻的文字塊,并且色塊的位置代表該文字塊在文章中的順序。所以縱覽全圖就可以輕易看出文章的修改。

HistoryFlowHistoryFlow

StoryFlow

我們看電影或小說經常說到時間線、劇情線等,都能用 StoryFlow [12]來表示,它通過層次渲染的方式,生成一個 StoryLine 布局。每條線是一條人物線,當兩人在劇情中有某種聯系(同時出場或其他交集)時會在圖中相交,橫軸表示時間。

StoryFlow 還允許用戶實時交互,包括捆綁操作、刪除、移動以及直線化等等。

StoryFlowStoryFlow

文本特征分布模式可視化

可視化也能很好的表現文本特征。

TextArc

TextArc [13]用來可視化一個文檔中的詞頻和詞的分布情況。整個文檔用一條螺線表示,文檔的句子按文字的組織順序布局在螺線上,螺線包圍著的是文檔中出現的單詞,每個單詞的位置由其在文本中的頻率和出現位置決定,飽和度用來映射詞頻。所以全局出現頻率越高的詞越靠近中心,而局部出現頻率越高的詞越靠近其相應的螺線區域。選中某個單詞后,自動用射線關聯到它在文中出現的位置。

TextarcTextarc

Literature Fingerprinting

文獻指紋(Literature Fingerprinting)[14]是體現全文特征分布的一項工作。一個像素塊代表一段文本,一組像素塊代表一本書。顏色映射的是文本特征,下圖中是句子的平均長度。從圖中明顯看出兩人的寫作風格迥異。

Literature FingerprintingLiterature Fingerprinting

情感分析可視化

情感分析是指從文本中挖掘出心情、喜好、感覺等主觀信息。現在人們把各類社交網絡當作感情、觀點的出口,所以分析這類文本就能掌握人們對于一個事件的觀點或情感的發展。下圖是基于矩陣視圖的客戶反饋信息的可視化工作[15],其中的行是指文本(用戶觀點)的載體,列是用戶的評價,顏色表達的是用戶評價的傾向程度,紅色代表消極,藍色代表積極,每個方格內的小格子代表用戶評價的人數,評價人數越多小格子越大。

情感分析情感分析

文本關系可視化

顧名思義,文本關系可視化研究的是文本或文檔集合中的關系信息,比如文本的相似性、互相引用的情況、鏈接等。說到關系布局,一般都是樹或圖。

文本內容關系可視化

Word Tree

單詞樹(Word Tree)[16]很好理解,把文本中的句子按樹形結構布局,可以很好的看出一個單詞在文本中出現的頻率和單詞前后的聯系。

Word Tree.pngWord Tree.png

Phrase Nets

短語網絡(Phrase Nets)[17]是經典的力導向圖結構,圖中的節點是從文本中挖掘出的詞匯級或語法級的語義單元,邊代表語義單元的聯系,邊的方向即短語的方向,邊的寬度是短語在文本中出現的頻率。

Phrase Nets.pngPhrase Nets.png

NewsMap

TreeMap 也是一種經典的可視化關系布局。NewsMap 就是基于 TreeMap 展示新聞,顏色用于區分新聞類型。

Newsmap.pngNewsmap.png

文檔集合關系可視化

文檔數量到一定量的時候,再針對文本做可視化就不現實了,所以通常是對單個文檔定義一個特征向量,利用向量空間模型計算文檔間的相似性,并采用相應的投影技術呈現文檔集合的關系。

Galaxy View

星系圖(Galaxy View)[18]把一篇文檔比作一顆星星,通過投影的方法把所有文檔按照其主題的相似性投影為二維平面的點集,星星離的越近則代表文檔越相似,因此一個星團可以非常直觀地看出文檔主題的緊湊和離散。

Galaxy ViewGalaxy View

ThemeScape

主題地貌(ThemeScape)[18]是對星系圖的改進。地圖中的等高線我相信大家都理解,把等高線加入投影的二維平面中,文檔相似性相同的放在一個等高線內,再用顏色來編碼文本分布的密集程度,把二維平面背景變成一幅地圖,這樣就把剛才星系圖中的星團變成了一座座山丘。文檔越相似,則分布約密集,這座山峰就越高,是不是一目了然?

ThemeScapeThemeScape

Jigsaw

Jigsaw [19]通過提供多種視圖讓用戶交互分析文檔間的關系。最下面是文檔視圖,里面是單個文檔的內容,最上面列表圖中每一行是文檔中的一個實體,連線代表實體間的關系。中間部分,左面是一副節點-鏈接圖,白色節點表示一篇文檔,其他節點是文檔中的實體,鏈接同樣代表聯系;右面的散點圖中,一個菱形代表兩個實體的聯系。

JigsawJigsaw

文本多層面信息可視化

多層面或多維度是指從多個角度或提取多種特征對文本集合分析。

FaceAtlas

FaceAtlas [20]結合了氣泡集和節點-鏈接圖兩種視圖,用于表達文本各層面信息內部和外部的關聯。每個節點表示一個實體,用 KDE 方法刻畫出氣泡圖的輪廓,然后用線將同一層面的實體鏈接起來,一種顏色代表一種實體。下圖是基于醫療健康文檔,展示了病名、病因、癥狀、診斷方案等多層面的信息,兩團分別代表糖尿病1號和2號,連線是指他倆之間的并發癥。

faceatlas.pngfaceatlas.png

Parallel Tag Clouds

平行標簽云(Parallel Tag Clouds)[21]結合了平行坐標(該視圖在多維數據可視化中經常使用)和標簽云視圖。每一列是一個層面的標簽云,然后連接的折線展現了選中標簽在多個層面的分布。

parallel_tag_clouds.pngparallel_tag_clouds.png

總結

今天帶大家看了這么多圖,相信大家一定眼花繚亂了。要理解文本數據可視化,就要先了解文本數據的特點,如何從文本中挖掘出你想要的信息,如何設計數據結構,最后再如何映射出實用又美觀的視圖都是你需要思考的問題。目前文本可視分析已經開始運用在各行各業,直觀的交互將人類的智慧引入到數據分析的過程中,幫助我們從浩瀚的文字中跳脫出來,避免一葉障目。希望我的文章能給大家帶來一些微小的幫助。

相關文章

三期必中一期平特肖