SlideShare a Scribd company logo
1 of 38
Download to read offline
Text mining @ Hadoop 架構
Orozco Hsu
2015-05-30
知識是可以累積的
文字是最好的保存工具
• 伽利略發現聖經和樞機所相信的自然與宇宙,和他觀
察的並不相同,從而開創了自然/物理科學。他是一位
創新的「理論建構」家,而且以許多創新實驗,證明
了他的理論。
• 他的理論還是要再等牛頓發展出了細致的計量方法-微
積分,再將伽利略的各個實驗整合化、體系化。在牛
頓的力學基礎知識之上,幾乎可以架構出各種子理論,
以解釋一切人類可以感知範圍內的物理現象,澈底改
變了人類的歷史。
• 而後,愛因斯坦又把這方面的知識,推廣到一般人不
會感知到的高能與時空物理現象。
Agenda
• 文字探勘介紹
• 文字探勘結合大數據
• 常用的演算法介紹
• 玩玩藏頭詩,體驗文字探勘的技術
• 參考
– 馬可夫鏈、隱性馬可夫鏈
為什麼我們要文字探勘
• 何謂文字探勘?
• 你認為文字探勘需要甚麼東西? 怎麼取得?
• 怎麼呈現文字探勘的結果?
• 文字探勘的應用?
文字探勘
• 資料探勘(Data Mining)與文字探勘(Text
Mining)關係緊密,相較於前者顯著的結構
化,後者長短不一、沒有規律,且尚有現今
生活中 隨口說出來的字彙,或是從社群網
站、BBS衍生出的用語,隨著使用者每天更
新及增減而無法事先定義
相關核心技術
● 網路爬蟲 (平行式)
● 語言分詞 (字典豐富度)
● 演算法 (快,又準)
● 文字探勘相關
● 巨量數據存儲 ( Hadoop)
● 分佈式計算 (MR,Spark)
● 視覺化呈現 (互動式報表)
運用文字探勘產生新的價值
• 資料內容再進一步
– 語意分析功能
– 轉成結構化欄位處裡
• 了解趨勢、產業研究
– 產業方向
– 議題探討
– 情感分析
– 聲量分析
網頁爬文
文字探勘
自動分類
相關性分析
大數據處裡
網頁內容
自動爬取
網站
內容分析
熱門議題擷
取追蹤
網頁
內容歸檔
文章推薦
即時爬取即
時分析
資訊檢索
也蠻多工作機會的
特定
模板爬文
Google 關
鍵字爬文
社群
平台爬文
爬整個網站
資料整理
情感分析
主題關鍵字
分析
交易資料
資料超市
資料視覺
文字探勘平台系統架構圖
文字索引
來源分類
類別斷詞
新增字詞
演算法
文字探勘系統功能圖
思考一下,如何打造實驗室大
數據平台? 我們的特色是甚麼?
醫療知識檢索平台
文章推薦自動內容產生器 自動摘要
產生器
自動分類
系統
人事時地物
特徵分析
特徵值
自動摘要
關聯式分析
北護醫療知識語意分析平台
文字探勘常用的做法
字典豐富度決定了一切
• 如何新增字詞
– ngram 做 TF
– InnerFeature Bi-gram =>
P(A,B) / (P(A) X P(B))
– InnerFeature Trigram =>
min( P(A,B,C) / ( P(A) X P(B,C)),
P(A,B,C) / (P(A,B) X P(C))
– BoundaryFeature =>
min( -logN(LeftBoundary), -logN(RightBoundary))
玩玩看 !! 藏頭詩
蒐集語料庫
• 語料庫(Corpus)
– 語言學上意指大量的文本,通常經過整理,
具有既定格式與標記 (Part-of-speech tagging)
– 中研院斷詞系統(ckip)
http://ckipsvr.iis.sinica.edu.tw/
• 蒐集全唐兩萬首作為語料庫
– 唐詩:卷683_16【五更】韓屋
往年曾約郁金床,半夜潛身入洞房
懷裏不知金钿落,暗中唯覺繡鞋香
演算法介紹
• 由語料庫建立語言模型(Bigram)
• 從語言模型當中,算出比較有可能出現
的句子(Viterbi)
語料庫
語言模型
北 語言模型 北山下天子
語言模型
• Unigram
– 床 | 前 | 明 | 月 | 光
– 頭: 2, 床: 1
• Bigram
– 床前 | 前明 | 明月 | 月光
– 明月: 2, 地上: 1
床前明月光,疑是地上霜
舉頭望明月,低頭思故鄉
過程介紹(1)
• 若有個句子有五個字,任意挑選五個字,則表示
這五個字符合語言模型的程度,可用機率表示
(比較有可能出現的句子)
• P(X1=w1, X2=w2, X3=w3, X4=w4, X5=w5)
=P(X1=w1) X P(X2=w2|X1=w1)
X P(X3=w3|X2=w2, X1=w1)
X P(X4=w4|X3=w3, X2=w2, X1=w1)
X P(X5=w5|X4=w4, X3=w3, X2=w2, X1=w1)
過程介紹(2)
• Markov Assumption:
– 每個字出現的機率,只跟前一個字有關
• P(X1=w1, X2=w2, X3=w3, X4=w4, X5=w5)
= P(X1=x1) X P(X2=w2|X1=w1) X
P(X3=w3|X2=w2) X P(X4=w4|X3=w3) X
P(X5=w5|X4=w4)
• 白日依山盡
(X1=白,X2=日,X3=依,X4=山,X5 = 盡)
=P(X1=白) X P(X2=日|X1=白) X P(X3=依|X2=日)
X P(X4=山|X3=依) X P(X5=盡|X4=山)
過程介紹(3)
• P(X2=w2|X1=w1) =>
P(X1=w1, X2=w2)/P(X1 =w1)
• P(X1=w1) =>
count(unigram(w1)) / count(all unigram)
• P(X1=w1, X2=w2) =>
count(bigram(w1, w2)) / count(all bigrams)
過程介紹(4)
• 給定句子中的句首 w1, 找出其他四個字 w2, w3,
w4, w5
• 算出使條件機率為最大值的 w2, w3, w4, w5
(參照前面公式)
• 例如: 給定句首為北,產生另外四個字
P(X1=北, X2=w2, X3=w3, X4=w4, X5=w5 | X1=北)
=P(X2=w2|X1=北) X P(X3=w3|X2=w2) X
P(X4=w4 | X3=w3) X P(X5=w5 | X4=w4)
過程介紹(5)
• 若 Bigram 中未出現 w1, w2組合
– P(X1=w1, X2=w2) = 0,這會使整個句子
機率為 0
• 為避免這樣情況發生
– 令 P(X1=w1, X2=w2) = 0.5 / count(all
bigrams)
– 0.5 ??
時間複雜度(1)
• 給定 w1, 求機率最大值 w2, w3, w4, w5
• 若詞庫中有3000個字,則共有 3000^4
組合
• 所以這樣的計算屬於指數時間 O(2^n)
時間複雜度(2)
A
B
C
A
B
C
A
B
C
A
B
C
Max (aaaa, aaab, aaac, aaba….)
w2 w3 w4 w5
Viterbi 演算法 (1)
• Dynamic Program
– Max flow, taboo…
• 不需要把所有的組合都
算出來
• 先算局部最大值,傳遞
下去
• 時間複雜度為O(n^2)
A
B
C
A
B
C
A
B
C
A
B
C
w2 w3 w4 w5
Viterbi 演算法 (2)
Max( AA, AB, AC)
Max( BA, BB, BC)
Max( CA, CB, CC)
先計算 第一階段 Max (AA, AB, AC) ,再計算第二階段
時間複雜度: 每個階段都是 V X V X L (階段),故為 O(n^2)
第一階段 第二階段
總結: 藏頭詩產生器
• 以 Ngram 為語言模型,先從兩萬首全唐
詩中算出 Ngram 的統計數值,再用
Viterbi 演算法拼湊出藏頭詩中的每個字,
得出的藏頭詩,看起來很像詩詞但語意
未必通順
安裝
• 採用 WinPython
• 將 AcrosticPoem.zip 解壓縮到 WinPython 下
的 python-2.7.9 目錄內
• 執行指令
– cd AcrosticPoem
– python AcrosticPoem.py
• 在 > 環境下
– 打 –h ,查看系統參數
– 打 北護大數據成功 -l 5 -p 1
(五個字藏頭詩,且出現在第一個字)
後續改良方法
• 句子與句子間的關聯度
• 語句夠不夠通順
• 詞性一起考量進來
• Phrase-based SMT model
• Neural Network
– Neural Probabilistic Language Model
– Multiplicative Recurrent Neural Network
參考 – 馬可夫鏈
• 馬可夫鏈
– 把事件拆成 bigram,透過前一個字來推估下
一個字的機率
參考自然語言處裡網站: http://cpmarkchang.logdown.com
參考 – 馬可夫鏈
參考 -隱性馬可夫鏈 (HMM)
• 隱性馬可夫鏈 (HMM)
– 隱性馬可夫常用在 Natural language process 當
中的詞性
– 有個研究者, 想根據某地人們生活日記中, 記載每天
吃冰淇淋的數量, 來推斷當時的天氣變化如何
在某個地點有兩種天氣, 分別是 Hot 和 Cold , 而當
地的人們會記錄他們每天吃冰淇淋的數量, 數量分
別為 1 , 2 或 3 ,
則可以把天氣變化的機率, 以及天氣吃冰淇淋數量
的關係, 用 Hidden Markov Model 表示
參考 -隱性馬可夫鏈 (HMM)
參考 -隱性馬可夫鏈 (HMM)

More Related Content

More from FEG

2023 Supervised Learning for Orange3 from scratch
2023 Supervised Learning for Orange3 from scratch2023 Supervised Learning for Orange3 from scratch
2023 Supervised Learning for Orange3 from scratchFEG
 
2023 Supervised_Learning_Association_Rules
2023 Supervised_Learning_Association_Rules2023 Supervised_Learning_Association_Rules
2023 Supervised_Learning_Association_RulesFEG
 
202312 Exploration Data Analysis Visualization (English version)
202312 Exploration Data Analysis Visualization (English version)202312 Exploration Data Analysis Visualization (English version)
202312 Exploration Data Analysis Visualization (English version)FEG
 
202312 Exploration of Data Analysis Visualization
202312 Exploration of Data Analysis Visualization202312 Exploration of Data Analysis Visualization
202312 Exploration of Data Analysis VisualizationFEG
 
Transfer Learning (20230516)
Transfer Learning (20230516)Transfer Learning (20230516)
Transfer Learning (20230516)FEG
 
Image Classification (20230411)
Image Classification (20230411)Image Classification (20230411)
Image Classification (20230411)FEG
 
Google CoLab (20230321)
Google CoLab (20230321)Google CoLab (20230321)
Google CoLab (20230321)FEG
 
Supervised Learning
Supervised LearningSupervised Learning
Supervised LearningFEG
 
UnSupervised Learning Clustering
UnSupervised Learning ClusteringUnSupervised Learning Clustering
UnSupervised Learning ClusteringFEG
 
Data Visualization in Excel
Data Visualization in ExcelData Visualization in Excel
Data Visualization in ExcelFEG
 
6_Association_rule_碩士班第六次.pdf
6_Association_rule_碩士班第六次.pdf6_Association_rule_碩士班第六次.pdf
6_Association_rule_碩士班第六次.pdfFEG
 
5_Neural_network_碩士班第五次.pdf
5_Neural_network_碩士班第五次.pdf5_Neural_network_碩士班第五次.pdf
5_Neural_network_碩士班第五次.pdfFEG
 
4_Regression_analysis.pdf
4_Regression_analysis.pdf4_Regression_analysis.pdf
4_Regression_analysis.pdfFEG
 
3_Decision_tree.pdf
3_Decision_tree.pdf3_Decision_tree.pdf
3_Decision_tree.pdfFEG
 
2_Clustering.pdf
2_Clustering.pdf2_Clustering.pdf
2_Clustering.pdfFEG
 
1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdfFEG
 
5_BERT.pdf
5_BERT.pdf5_BERT.pdf
5_BERT.pdfFEG
 
2_學院碩士班_分群模型_20220606.pdf
2_學院碩士班_分群模型_20220606.pdf2_學院碩士班_分群模型_20220606.pdf
2_學院碩士班_分群模型_20220606.pdfFEG
 
5_RNN_LSTM.pdf
5_RNN_LSTM.pdf5_RNN_LSTM.pdf
5_RNN_LSTM.pdfFEG
 
2_學院碩士班_分類模型_20220523.pdf
2_學院碩士班_分類模型_20220523.pdf2_學院碩士班_分類模型_20220523.pdf
2_學院碩士班_分類模型_20220523.pdfFEG
 

More from FEG (20)

2023 Supervised Learning for Orange3 from scratch
2023 Supervised Learning for Orange3 from scratch2023 Supervised Learning for Orange3 from scratch
2023 Supervised Learning for Orange3 from scratch
 
2023 Supervised_Learning_Association_Rules
2023 Supervised_Learning_Association_Rules2023 Supervised_Learning_Association_Rules
2023 Supervised_Learning_Association_Rules
 
202312 Exploration Data Analysis Visualization (English version)
202312 Exploration Data Analysis Visualization (English version)202312 Exploration Data Analysis Visualization (English version)
202312 Exploration Data Analysis Visualization (English version)
 
202312 Exploration of Data Analysis Visualization
202312 Exploration of Data Analysis Visualization202312 Exploration of Data Analysis Visualization
202312 Exploration of Data Analysis Visualization
 
Transfer Learning (20230516)
Transfer Learning (20230516)Transfer Learning (20230516)
Transfer Learning (20230516)
 
Image Classification (20230411)
Image Classification (20230411)Image Classification (20230411)
Image Classification (20230411)
 
Google CoLab (20230321)
Google CoLab (20230321)Google CoLab (20230321)
Google CoLab (20230321)
 
Supervised Learning
Supervised LearningSupervised Learning
Supervised Learning
 
UnSupervised Learning Clustering
UnSupervised Learning ClusteringUnSupervised Learning Clustering
UnSupervised Learning Clustering
 
Data Visualization in Excel
Data Visualization in ExcelData Visualization in Excel
Data Visualization in Excel
 
6_Association_rule_碩士班第六次.pdf
6_Association_rule_碩士班第六次.pdf6_Association_rule_碩士班第六次.pdf
6_Association_rule_碩士班第六次.pdf
 
5_Neural_network_碩士班第五次.pdf
5_Neural_network_碩士班第五次.pdf5_Neural_network_碩士班第五次.pdf
5_Neural_network_碩士班第五次.pdf
 
4_Regression_analysis.pdf
4_Regression_analysis.pdf4_Regression_analysis.pdf
4_Regression_analysis.pdf
 
3_Decision_tree.pdf
3_Decision_tree.pdf3_Decision_tree.pdf
3_Decision_tree.pdf
 
2_Clustering.pdf
2_Clustering.pdf2_Clustering.pdf
2_Clustering.pdf
 
1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf
 
5_BERT.pdf
5_BERT.pdf5_BERT.pdf
5_BERT.pdf
 
2_學院碩士班_分群模型_20220606.pdf
2_學院碩士班_分群模型_20220606.pdf2_學院碩士班_分群模型_20220606.pdf
2_學院碩士班_分群模型_20220606.pdf
 
5_RNN_LSTM.pdf
5_RNN_LSTM.pdf5_RNN_LSTM.pdf
5_RNN_LSTM.pdf
 
2_學院碩士班_分類模型_20220523.pdf
2_學院碩士班_分類模型_20220523.pdf2_學院碩士班_分類模型_20220523.pdf
2_學院碩士班_分類模型_20220523.pdf
 

Text mining