當前位置:成語大全網 - 成語詞典 - 淺談文本分析分詞及關系圖

淺談文本分析分詞及關系圖

在文本分析中,我們需要對其文本進行分詞,並對這些分詞統計分析,基於 python jieba 是很受歡迎的壹種分詞庫,而後對分詞之間的關系,當然Python Matplotlib 基於networkx畫關系網絡圖也是可以的,但是這裏我們將借助 Gephi 來制作,這個軟件容易上手,這裏我們並對其中個別方法進行解釋。

jieba庫是Python中壹個重要的第三方中文分詞函數庫,能夠將壹段中文文本分隔成中文詞語序列。

jieba庫分詞所用的原理就是把分詞的內容與分詞的中文詞庫進行對比,通過圖結構和動態規劃方法找到最大概率的詞組。

支持四種分詞模式:

四種模式分隔舉例:

結果:

由上我們可以發現,我們想要把生態環境、汙水處理、有限公司都分開,精確模式和Paddle模式,未分開,全模式和搜索引擎模式雖分開了,但卻也含有未分的詞組。所以這裏我們可以采用自定義詞典,使用load_userdict(),不過註意的是需要給自定義詞做詞頻,否則自定義詞典不起作用,因為,當自定義詞詞頻低於默認詞典的詞頻時,它還是采用默認分詞,所以我們設定詞頻大於默認詞詞頻時,就會采用自定義詞典的詞分詞。

具體怎麽設置自定義詞典的詞頻數,還沒有具體的公式,越大當然概率越大,只要超過默認詞典即可,但也不宜過大。 默認詞典

自定義詞典

其中 user_dict 定義如下:

jieba簡單介紹及使用介紹到這裏,更深層理論及使用可學習這個地址: jieba-github參考

在 圖論 中, 集聚系數 (也稱 群聚系數 集群系數 )是用來描述壹個 圖 中的 頂點 之間結集成團的程度的系數。具體來說,是壹個點的鄰接點之間相互連接的程度。例如生活社交網絡中,妳的朋友之間相互認識的程度 基於復雜網絡理論的代謝網絡結構研究進展 。有證據表明,在各類反映真實世界的網絡結構,特別是 社交網絡 結構中,各個結點之間傾向於形成密度相對較高的網群 TRANSITIVITY IN STRUCTURAL MODELS OF SMALL GROUPS 、 Collective dynamics of 'small-world' networks 。也就是說,相對於在兩個節點之間隨機連接而得到的網絡,真實世界網絡的集聚系數更高。

假設圖中有壹部分點是兩兩相連的,那麽可以找出很多個“三角形”,其對應的三點兩兩相連,稱為閉三點組。除此以外還有開三點組,也就是之間連有兩條邊的三點(缺壹條邊的三角形)。

Clustering coefficient 的定義有兩種; 全局 的和 局部 的。

全局的算法:

局部的算法:

平均系數:

下面即分析其系數求解:

接下來我們就以壹個實例來分析聚類系數應用,這裏我們用到的工具是 Gephi ,數據也是使用其內置的數據。

在上面分析中,我們提到節點大小,代表自身權重,但是有時由於我們的節點範圍導致有些需要辨別的節點不易分析,這時我們可以考慮從顏色入手,即權重從小到大以顏色的變化老判定,當然也可以用同壹種顏色通過漸變來判定,這裏我是使用了三種顏色變化範圍來分析。如下圖選擇及展示:

由上圖,從顏色上我們選擇了紅黃藍的依次變化情況,右圖我們從節點大小加上顏色更方便判定節點自身的權重了,即自身出現次數越多顏色越靠近藍色,反之靠近紅色。

由上倆個圖的變化可察覺出它們的布局分布是壹樣的,那它是什麽原因呢?

如圖結構可分析形成聚合的簇團,是相互之間彈簧吸引的強烈的,也就是說關系比較密切些。

在數據中,我們關系圖是由節點和邊組成,上面都簡要分析了節點的處理,那麽邊怎麽分析呢?其實邊由圖中是可以以線的粗細來判斷倆個詞之間的關系,即出現的次數。如下圖:

由於次數範圍太廣,我們把它們轉化成0--1之間的範圍,以最高權重為1,其它數據以此為基準做轉化。

即為所轉化後的占比值, 為每個權重值, 為最大權重值

jieba-github參考

Clustering coefficient

ForceAtlas2, A Continuous Graph Layout Algorithm for Handy Network Visualization