關於文字探勘(Text mining)的應用還很多,Datamining for the masses一書只講到Clustering而已,但是其中有提到n-gram,因此,我最近在網路上找到這個部落客的文章,提供給各位參考!!
摘自Ease, of Something, n-gram
n-gram,語言,與其他符號
n-gram, the final frontier, 喔,不是,更正:是一種統計模型,源自於夏農(Claude Shannon)的資訊理論(information theory),而主要應用在「自然語言處理」(natural language processing)跟「基因序列分析」(genetic sequence analysis)的研究上
。
。
拿「天氣」當作例子,不過這次講的是「天」跟「氣」的關係:當「天」這個字出現的時候,後面接著是「氣」這個字的機率是多少?相信說到這裏,有用過各種中文輸入法的人,大概都已經知道關於這種「關係」的知識應用到生活中的哪些地方了。而這種知識的基礎,「字頻」跟「詞頻」,也是構成 n-gram 模型的基礎。
中文的「字」是文字的最小單位,也就是 n=1 的狀況,稱作 unigram (uni 即「單一」),一種語言的「字頻」也就是該語言的 unigram model。從馬可夫鏈的角度來看,因為前後的關係項為零,這是一種「0 階馬可夫鏈」。
然後是「二字詞」,就像前面說的「天氣」,「天」後面接著各種字的機率,構成了 n=2 的狀況,bigram(bi 是「二」的字首),這也是一種一階馬可夫鏈:前一個狀態跟下一個狀態的關係。依此類推,我們可以進一步去建立 n=3,4,5... 的統計模型,而這些模型的集合,就是所謂的 n-gram 模型。
中文的「字」是文字的最小單位,也就是 n=1 的狀況,稱作 unigram (uni 即「單一」),一種語言的「字頻」也就是該語言的 unigram model。從馬可夫鏈的角度來看,因為前後的關係項為零,這是一種「0 階馬可夫鏈」。
然後是「二字詞」,就像前面說的「天氣」,「天」後面接著各種字的機率,構成了 n=2 的狀況,bigram(bi 是「二」的字首),這也是一種一階馬可夫鏈:前一個狀態跟下一個狀態的關係。依此類推,我們可以進一步去建立 n=3,4,5... 的統計模型,而這些模型的集合,就是所謂的 n-gram 模型。
希望能找到更多用Rapidminer做出來的實例