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