文本挖掘小探索:避孕藥內容主題分析
文章分享了作者的一個文本挖掘的實例,希望對你能夠有所幫助。
輿情監測一直是眾多品牌關注的地方,尤其品牌想知道在品牌推廣,品牌策略,品牌廣告中出現的問題,從而能進行策略上的改進,但是現在很多人都是讀帖子,筆者在4年前做輿情分析時候就是讀帖子,至今沒有太多改善,關注輿情監測中的主題挖掘部分,主題挖掘可以使數據分析師,減輕工作量,去掉讀帖子等一系列等的復雜工作,大致了解主題規律。
本文是筆者早前發在某網站上的,由于筆者最近太忙,將本文修改下呈現給大家:
本文分析邏輯:
數據處理
1.數據源:
從各大網站論壇,微博等爬蟲關于某避孕藥的內容
關鍵字段名稱包含:
- content Author: 發帖作者(第D列)
- Content Forward: 轉發的內容(第F列)
- Content_Main: 發帖內容(第G列)
- Title:發帖內容(第H列)
其他字段和本文不想關,不闡述
2.加載數據包(r語言)和需要在中文分詞中插入的中文詞語:
(1)Rwordseg:(4年前用的分詞包,不知道現在更新與否),分詞包就是讓R語言識別中文,按照單詞來視為一個值
(2)插入單詞:因為Rwordseq中文詞性包含不了其他奇怪詞匯,例如: 媽富隆、優思明、短期避孕藥、治療多囊等。插入單詞作為模型的變量值
3.讀入文本分析處理
去掉數字、特殊字符、標準符號
數據探索:大概了解下數據現狀
1.根據變量值(單詞)統計各個單詞出現的次數
2.根據單詞量畫詞云圖
3.重新轉化用于聚類的數據格式
根據以上數據探索的詞頻,詞作為colname,詞頻表示數值,每一行是帖子內容作為id標示
例如:
即每個帖子出現了某詞的詞頻的次數,帖子1中出現避孕藥2次,優思明4次,囊中1次
R語言tm包來作處理
即:分詞之后生成一個列表變量,用列表變量構建語料庫。
由于tm包中的停用詞()都是英文(可以輸入stopwords()查看),所以大家可以去網上查找中文的停用詞,用removeWords函數去除語料庫中的停用詞:
生成語料庫之后,生成詞項-文檔矩陣(Term Document Matrix,TDM),顧名思義,TDM是一個矩陣,矩陣的列對應語料庫中所有的文檔,矩陣的行對應所有文檔中抽取的詞項,該矩陣中,一個[i,j]位置的元素代表詞項i在文檔j中出現的次數。
4.注意:
默認的加權方式是TF,即詞頻,這里采用Tf-Idf,該方法用于評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度:
- 在一份給定的文件里,詞頻 (term frequency, TF) 指的是某一個給定的詞語在該文件中出現的次數。這個數字通常會被歸一化,以防止它偏向長的文件。
- 逆向文件頻率 (inverse document frequency, IDF) 是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總文件數目除以包含該詞語之文件的數目,再將得到的商取對數得到。
- 某一特定文件內的高詞語頻率,以及該詞語在整個文件集合中的低文件頻率,可以產生出高權重的TF-IDF。因此,TF-IDF傾向于保留文檔中較為特別的詞語,過濾常用詞。
同時,需要用removeSparseTerms()函數進行降維
數據挖掘
1.查看頻率&基本統計
其實就是在數據挖掘查看數據基本統計,目的看下數據邏輯符合不符合社會認知
例如下圖:查看優思明和它相關概率高于0.6的詞有哪些
下圖為整體數據(由于歸一化)做的數據統計
2.LDA
LDA(Latent Dirichlet Allocation)是一種文檔主題生成模型,也稱為一個三層貝葉斯概率模型,包含詞、主題和文檔三層結構。所謂生成模型,就是說,我們認為一篇文章的每個詞都是通過“以一定概率選擇了某個主題,并從這個主題中以一定概率選擇某個詞語”
具體的算法核心在這里略,因為寫太多可能讀者看不懂。
VEM = LDA( sample.dtm2, k=10, control = list(seed= SEED)),
根據上面所形成的raw data形成主題詞:
解讀:
主題分類10個主題,在這個文本中,但是還需要優化
- 第一個主題是女性服用避孕藥后作用會不會增加流產風險?
- 第二個主題是女性避孕和激素的關系(需要優化)
- 第三個主題醫生推薦優思明會不會影響月經(需要優化)
- 第四個主題口服避孕藥會不會影響月經
- 第五個主題治療痤瘡,激素,多囊
- 第六個主題和第四個主題一樣(需要優化)
- 第七個主題同上
- 第八個主題,雜文帖子
- 第九個主題,會不會是吃完避孕藥后發胖
- 第十個主題,優思明女性服用避孕
確切來說,這10個主題還需要優化,文本經過人工看完應該提煉的的是優思明使用目的,大部分集中在避孕,安全,發胖,治療痤瘡等,少部分會集中副作用等。
結束語
由于4年前做腳本,因此好多需要優化,之后會將優化的和大家分享
優化內容包含
- 需要在文本庫中添加月經不調,治療痤瘡,青春痘等詞語
- 文本還需要繼續處理改進去掉postend
- 主題數目需要加大
- 以及主題內容維度需要增加可以讓他成為一句話
作者:馮大福,微信公眾號:說說數據分析那些事兒
本文由 @shangyuan 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自PEXELS,基于CC0協議
999