吳漢銘
國立政治大學 統計學系文字視覺化
G03
References
2/43文字探勘
文字探勘: 從文本產生有價值的訊息
透過模式識別等工具處理資料
從非結構化到結構化
分析結構化資料並得到潛在資訊
相關領域
自然語言處理(Natural Language Processing)
資訊檢索(Information Retrieval)
3/43
文字探勘應用
4/43垃圾郵件偵測 命名實體辨識 情感分析
N 元語法(N-gram)
N元語法(N-gram)
N-1階馬可夫鏈模型 - 用前N-1個估計第N個的機率
語句的表示方法如下表。
單位可以是字或詞
可估計語句的機率,用在不同應用上。
5/43
> # R ngram packages
> install.packages("ngram")
> library(ngram)
> words <- "to be or not to be"
> ng <- ngram(words, n=3)
> get.phrasetable(ng) ngrams freq prop 1 not to be 1 0.25 2 be or not 1 0.25 3 to be or 1 0.25
文字處理原則
停用詞(Stop words)
主要為功能詞
英文如‘the’, ‘at’等等。
中文如‘啊’, ‘喔’等等。
標點符號
用以斷句
或直接拿掉
濾掉低頻詞
6/43
中文處理: 斷詞
斷詞: 將有意義的基本單位(詞彙)切割出來
英文:
常以空白隔開詞彙,例如:“Donald Trump and
Recep Tayyip Erdoğan deliver joint statements at the White House on Tuesday in Washington DC.”
英文處理 - Tokenization
中文:
中文詞與詞會連在一起,電腦無法直接理解,例如:
"下雨天留客天留我不留"
R的斷詞套件 - JiebaR 支援斷詞以及標注詞性
7/43
jiebaR: " 結巴"中文分詞套件
"結巴"中文分詞的R語言版本,支援最大概率法
(Maximum Probability),隱式瑪律科夫模型(Hidden Markov Model),索引模型(QuerySegment),混合模 型(MixSegment),共四種分詞模式,同時有詞性標注,
關鍵字提取,文本Simhash相似度比較等功能。專案使 用了Rcpp和CppJieba進行開發。
8/43
> # install.packages("jiebaR")
> library(jiebaR)
> words <- "大家一起來學文字探勘及文字視覺化"
> tagger <- worker()
> tagger <= words
[1] "大家" "一" "起來" "學文" "字" "探勘" "及" "文字" "視覺" "化"
> # 標記詞性
> tagger <- worker("tag")
https://www.r-project.org/nosvn/pandoc/jiebaR.html
文字和文件視覺化
文件視覺化的應用: 標籤雲、資訊文字圖等等。
標籤雲或文字雲是關鍵詞的視覺化描述,
照片分享社區Flickr是首個使用標籤雲的知名網站,其標籤 雲由網站共同創立者、界面互動設計師斯圖爾特·巴特菲爾 德(Stewart Butterfield)設計創造(2006)。
9/43
為什麼要文字資料視覺化
文字視覺化的作用有以下四點:
理解 – 理解主旨
組織 – 組織、分類資訊
比較 – 對比文件資訊
關聯 – 關聯文字的 pattern 和其他資訊
文字資訊的層級:
詞彙級
語法級 語義級
10/43
文字資訊的層級:詞彙級
詞彙級(Lexical Level): 資訊指從一連串的文字 中分析出的語義單元資訊。
語義單元 (Token): 由一個或多個字元組成的詞元,
是文字資訊的最小單元。
語義單元通常透過基於規則分割文字的分詞技術。
詞彙級可分析的資訊包含文字有關的字、詞、
子句,以及它們在文章內的分佈統計、詞根詞 位等相關資訊。
常見的之「關鍵字」即是詞彙等級。
11/43
文字資訊的層級: 語法級
語法級 (Syntactic Level)資訊指基於文字的 語言結構對詞彙級的語義單元進一步分析 和解釋而分析得到的資訊。
語義單元的語法屬性屬於語法級資訊,例 如: 詞性、單複數、詞與詞之間的相關性,
以及地點、時間、日期、人名等實體資訊。
這些屬性可以透過語法分析器識別。
12/43
文字資訊的層級: 語義級
語義級(Semantic Level) 資訊是研究文字整 體所表達的語義內容資訊和語義關係。
包含深入分析詞彙級和語法級所分析的知 識在文字中的含義。
也包括作者透過文字所傳達的資訊。
13/43
文字視覺化的研究內容
文字文件類型: 單文字、文件集合、時序文 字資訊。
文字視覺化可以幫助使用者快速地了解一 個文件的內容、特徵等資訊。
視覺化的分類: 文字內容視覺化,文字關係 視覺化、文字多層面資訊視覺化。
14/43
文字視覺化的流程
文字資訊採擷
文字資料的前置處理: 過濾無效資料。
文字特徵的取出:
詞彙級: 用各類分詞演算法,提取文字的關鍵詞、詞頻分佈。
語法級: 用一些句法分析演算法,提取文字實體資訊。
語義級: 用主題抽取演算法,提取文字的主題。
文字特徵的度量:在多種環境或多個資料來源所抽取的文字特徵進 行相似性分析、文字分類等。
視圖繪製
人機互動
15/43
SOURCE: https://op46.com/#/technique/7a2ace8a539b7270be54bf9cfcc93071.html
文字資訊分析基礎:
(1) 分詞技術和詞幹分析
分析基礎: (1) 分詞技術和詞幹分析、(2) 向量空間模型、
(3) 主題取出
分詞技術和詞幹分析
分詞(tokenization): 將一段文字劃分為多個詞項,剔除停詞,從 文字中分析出有意義的詞項。
詞幹分析(stemming): 去除詞綴獲得詞根,獲得單字最一般寫法 的技術,避免同一個詞的不同表現形式對文字分析帶來干擾。
Martin Luther King, Jr. "I Have a Dream", delivered 28 August 1963, at the Lincoln Memorial, Washington D.C.
"I have a dream that one day this nation will rise up and live out the true meaning of its creed: "We hold these truths to be self- evident, that all men are created equal."" (20/34)
(x) a, the, that
16/43
文字資訊分析基礎:
(2) 向量空間模型 (vector space model)
利用向量符號對文字進行度量的代數模型。
詞袋模型 (bag-of-words model), 用來分析詞彙級文 字資訊。
過濾掉無效詞後,詞袋模型將一個文件的內容歸納 為在由關鍵片語組成的集合上的加權分佈向量。
基於詞袋模型計算的一維詞頻向量中,每個維度代 表一個單字; 每個維度的值等於單字在文字中出現 的統計資訊,可引申為重要性,單字間沒有順序關 係。
詞袋模型沒有考慮語法、詞序資訊,較容易直觀。
詞袋模型的詞頻向量提供更高層文字分析的基礎。
17/43
詞袋模型的詞頻向量
142 words => 78 words
以下為此段文件之詞頻向量的一部份:
18/43
I have a dream that one day this nation will rise up and live out the true meaning of its creed: "We hold these truths to be self-evident, that all men are created equal."
I have a dream that one day on the red hills of Georgia, the sons of former slaves and the sons of former slave owners will be able to sit down together at the table of brotherhood.
I have a dream that one day even the state of Mississippi, a state sweltering with the heat of injustice, sweltering with the heat of oppression, will be transformed into an oasis of freedom and justice.
I have a dream that my four little children will one day live in a nation where they will not be judged by the color of their skin but by the content of their character.
詞 I dream color skin nation slave injustic
e owner
文字的相似性度量:
餘弦相似性
採用詞項-文件矩陣來建構多個文件的數學模型。
度量文字語義的相似度: 夾角餘弦值
餘弦相似性通過測量兩個向量的夾角的餘弦值來度量它 們之間的相似性。
0度角的餘弦值是1 (兩個向量有相同的指向時)。
兩個向量夾角為90°時,餘弦相似度的值為0;
兩個向量指向完全相反的方向時,餘弦相似度的值為-1。
其他任何角度的餘弦值都不大於1;並且其最小值是-1。
兩個向量之間的角度的餘弦值可確定兩個向量是否大致指向 相同的方向。
19/43
範例: 文件餘弦相似性
準備文件:
句子A:我喜歡看電視,不喜歡看電影。
句子B:我不喜歡看電視,也不喜歡看電影。
第一步:分詞
句子A:我/喜歡/看/電視,不/喜歡/看/電影。
句子B:我/不/喜歡/看/電視,也/不/喜歡/看/電影。
第二步:列出所有的詞
我,喜歡,看,電視,電影,不,也
第三步:計算詞頻
句子A:我 1,喜歡 2,看 2,電視 1,電影 1,不 1,也 0
句子B:我 1,喜歡 2,看 2,電視 1,電影 1,不 2,也 1
第四步:寫出詞頻向量
句子A:[1, 2, 2, 1, 1, 1, 0]
句子B:[1, 2, 2, 1, 1, 2, 1]
第五步:計算餘弦值
20/43
餘弦值越接近1,就表明夾角越
Term Frequency-Inverse Document Frequency TF-IDF
對向量空間模型,最常用的多詞權數分配模型是 TF-IDF。
TF-IDF用以評估一個單字或字對於一個文件集合或 一個語料庫中的其中一份文件的重要程度。
概念: 字詞對於某個文件的重要性隨著它在這個文 件中出現的次數成正相關(正比)增加,但同時會隨 著它在文件集中出現的頻率而負相關(反比)下降。
在一份給定的檔案裡,詞頻 (term frequency, tf)指 的是某一個給定的詞語在該檔案中出現的頻率。
21/43
TF-IDF 的計算
對於在某一特定檔案裡的詞語ti,它的重要性可表示為:
22/43
ni,j: 是該詞在檔案dj中的出現次數,而分母則是在 檔案dj中所有字詞的出現次數之和。
逆向檔案頻率(inverse document frequency,idf)是一個詞語普 遍重要性的度量。某一特定詞語的idf,可以由總檔案數目除以包含該 詞語之檔案的數目,再將得到的商取以10為底的對數得到:
某一特定文件內的高詞語頻率,以及該詞語在整個文 件集合中的低文件頻率,可以產生出高權重的tf-idf。
Variants of TF/IDF weight
23/43文字資訊分析基礎:
(3) 主題取出
主題模型是指從語義等級描述文 字集合內各個文件的語義內容。
一個文件的語義內容可描述為多 個主題的組合。
一個主題有認為是一系列詞的機 率分佈或權重分佈。
24/43
詞 word 1 ... word n
分佈 0.45 ... 0.002
詞 word 1 ... word n
分佈 0.55 ... 0.017
主題 分佈 T1 0.6 ... ...
Tn 0.05
主題分佈
詞頻分佈 詞頻分佈
文件
文件視覺化
文字內容視覺化
基於關鍵字的之文字內容視覺化
時序性的文字內容視覺化
文字特徵的分佈模式視覺化
情感分析視覺化
文件資訊檢索視覺化
軟體視覺化
文字關係視覺化
以圖為基礎的文字關係視覺化
文件集合關係視覺化
文字多層面資訊視覺化
25/43
基於關鍵字的之文字內容視覺化: 標籤雲 26/43
顯示世界各國人口數量的數據雲
,顏色用以區分國家,而字體大 小則象徵2007年各國的人口數
Wordcloud2
Wordcloud2 provides an HTML5 interface to wordcloud for data visualization.
Timdream's wordcloud2.js is used in this package.
繪製出來的結果有交互效果,滑鼠移到一個詞上可以看到詞頻。
Main R functions:
wordcloud2: provide traditional wordcloud with HTML5
letterCloud: provide wordcloud with selected word(letters).
27/43
> require(devtools)
> install_github("lchiffon/wordcloud2")
> library(wordcloud2)
> head(demoFreq) word freq oil oil 85 said said 73 prices prices 48
opec opec 42
mln mln 31
the the 26
> str(demoFreq)
'data.frame': 1011 obs. of 2 variables:
$ word: Factor w/ 1011 levels "100000","108",..: 613 808 686 617 568 926 493 149 300 241 ...
$ freq: num 85 73 48 42 31 26 24 23 23 21 ...
More examples
28/43> # figPath" <- "t.png"
> figPath <- system.file("examples/t.png",package = "wordcloud2")
> wordcloud2(demoFreq, figPath = figPath, size = 1.5, color = "skyblue")
> letterCloud(demoFreq, word = "R", size = 2)
> letterCloud(demoFreq, word = "NTPU", wordSize = 1)
打你的中文名字 試試看
基於關鍵字的之文字內容視覺化: 文件散
文件散(DocuBurst)也是基於關鍵詞的文字視覺化,
不過它還通過徑向佈局體現了詞的語義等級。外層的 詞是內層詞的下義詞,顏色飽和度的深淺用來體現詞 頻的高低。
29/43
http://www.infovis.info
基於關鍵字的之文字內容視覺化: 文件卡 30/43
文件卡片(Document Cards)是結 合了文件中的關鍵詞和關鍵圖片進 行視覺化,佈局在一張小卡片中。
其中的關鍵圖片是指採用智慧演算 法抽取並根據顏色分類後的代表性
時序性的文字內容視覺化: 主題河流
主題河流(ThemeRiver)是一種經典的 時序文字視覺化方法。
橫軸表示時間,每一條不同顏色線條 可視作一條河流,而每條河流則表示 一個主題,河流的寬度代表其在當前 時間點上的一個度量(如主題的強度)。
可宏觀上看出多個主題的發展變化,
又能看出在特定時間點上主題的分佈。
31/43
時序資料是指具有時間或順序特性的文字
Susan L. Havre, Elizabeth G. Hetzler, Lucy T. Nowell,
ThemeRiver: Visualizing Theme Changes over Time Published 2000 in INFOVIS
時序性的文字內容視覺化: TIARA
TIARA (Text Insight via Automated Responsive Analytics)
TIARA結合了標籤雲,通過主題分析技術(latent dirichlet allocation,LDA),將文字關鍵詞根據時 間點放置在每條色帶上,並用詞的大小來表示關鍵詞在該時刻出現的頻率。
TIARA可以幫助使用者快速分析文字具體內容隨時間變化的規律,而不是僅僅一個度量帶變化。
32/43
時序性的文字內容視覺化: TextFlow
TextFlow 是 ThemeRiver 的一種拓展,它不僅表達了主題的變化,
還表達了各個主題隨著時間的分裂與合併。如某個主題在某個時間抽 成了兩個主題,或多個主題在某個時間合併成了一個主題。
33/43
時序性的文字內容視覺化: 歷史流
HistoryFlow 則主要研究文件內容隨時間的變化。圖中以維基百科一篇詞條的更新為例,縱軸表示文章的版本更新 時間點。
34/43
時序性的文字內容視覺化: StoryFlow
電影或小說經常說到的時間線、或劇情線等,都能用 StoryFlow 來表示,它通過層次渲染的 方式,生成一個 StoryLine 佈局。每條線是一條人物線,當兩人在劇情中有某種聯絡(同時出 場或其他交集)時會在圖中相交,橫軸表示時間。
35/43
Visualization of the 2012 US presidential election. It contains 89,174,308 tweets, 900 opinion leaders, and 63 time frames. The opinion leaders are organized by a 2-level topic hierarchy and are bundled together by the LOD technique. Each color represents an opinion leader group. Three interesting attention transition patterns related to (a) the Benghazi (班加西(利比亞城市)) issue of the Obama administration, (b) the Sensata scandal of Romney ( 米特ꞏ羅姆尼(前任麻薩諸塞州州長)), and (c) hurricane Sandy (颶風珊迪) have been identified.
文字特徵的分佈模式視覺化: 文字弧
整個文件用一條螺線表示,文件的句子按文字的組織順序佈局在螺線上,螺線包圍著的是文 件中出現的單詞,每個單詞的位置由其在文字中的頻率和出現位置決定,飽和度用來對映詞 頻。
36/43
Alice in Wonderland
TextArc 用來視覺化一個文 件中的詞頻和詞的分佈情 況。
文字特徵的分佈模式視覺化: 文獻指紋
文獻指紋(Literature Fingerprinting)可用於呈現全文特徵分佈。
一個畫素區塊代表一段文字,一組畫素區塊代表一本書。
顏色對映的是文字特徵(寫作度量特徵值),圖中是句子的平均長度。
37/43
Keim D A, Oelke D. Literature fingerprinting: A new method for visual literary analysis[C]//Visual Analytics Science and Technology, 2007. VAST 2007. IEEE Symposium on. IEEE, 2007: 115-122.
情感分析視覺化
情感分析是指從文字中挖掘出心情、喜好、感覺等主觀資訊。
可了解人們對於一個事件的觀點或情感的發展。
下圖是基於矩陣檢視的客戶反饋資訊的視覺化,其中的行是指文字(使用者觀 點)的載體,列是使用者的評價,顏色表達的是使用者評價的傾向程度,紅色 代表消極,藍色代表積極,每個方格內的小格子代表使用者評價的人數,評 價人數越多小格子越大。
文件資訊檢索視覺化:TileBar, Sparkler
軟體視覺化: SeeSoft, Code_Swarm,
38/43
Oelke D, Hao M, Rohrdantz C, et al. Visual opinion analysis of customer feedback data, Visual Analytics Science and Technology, 2009. VAST 2009. IEEE Symposium on. IEEE, 2009: 187-194.
以圖為基礎的文字關係視覺化: 單字樹 (word tree)
單詞樹(Word Tree), 可把文字中的句子按樹形結構佈局,可看出一個 單詞在文字中出現的頻率和單詞前後的聯絡。
39/43
以圖為基礎的文字關係視覺化: 子句網路 (Phrase Nets)
短語網路(Phrase Nets)是經典的力導向圖結構,圖中的節點是從文字中挖掘 出的詞彙級或語法級的語義單元,邊代表語義單元的聯絡,邊的方向即短語
40/43
Van Ham F, Wattenberg M, Viégas F B. Mapping text with phrase
nets[J]. IEEE transactions on visualization and computer graphics, 2009, 15(6).
以圖為基礎的文字關係視覺化: 新聞地圖 (NewsMap)41/43
Maramushi's Newsmap takes news feeds from Google News and creates a visualisation based on the popularity of stories. It updates on the fly as news breaks with the tiles linking to the unabridged stories. Great for a snap-shot of what is going on in the world, even better for those far from home who want a quick over view of what is
happening…about as much as ever it would appear.
文字多層面資訊視覺化: 平行標籤雲
平行標籤雲(Parallel Tag Clouds)結合了平行座標和標籤雲檢視。
42/43
Collins C, Viegas F B, Wattenberg M. Parallel tag clouds to explore and analyze faceted text corpora[C]//Visual Analytics Science and Technology, 2009. VAST 2009. IEEE Symposium on. IEEE, 2009: 91-98.
文件集合關係視覺化
文件集合關係視覺化: 星系視圖 (Galaxy View)
文件集合關係視覺化: 主題地貌 (ThemeScape)
文件集合關係視覺化: 基於範例的大文字集合投影
文字多層面資訊視覺化: 文字集點中存在多個層面 的資訊和上下文連結資訊,
例如時間,地點。
例如: ContexTour, FacetAtlas, 平行標籤雲
43/43