国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于大數(shù)據(jù)的微博輿情分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2023-06-10 06:42:26丘志敏李小帆李彥廷
軟件工程 2023年6期
關(guān)鍵詞:詞頻分詞輿情

霍 英, 丘志敏, 李小帆, 李彥廷

(1.韶關(guān)學(xué)院信息工程學(xué)院, 廣東 韶關(guān) 512005;2.韶關(guān)學(xué)院智能工程學(xué)院, 廣東 韶關(guān) 512005)

1 引言(Introduction)

網(wǎng)絡(luò)輿情分析包括對(duì)網(wǎng)絡(luò)信息進(jìn)行采集、去重、抽取、分詞、索引、存儲(chǔ)和分析等一系列過程,是進(jìn)行網(wǎng)絡(luò)輿論感知、監(jiān)控與引導(dǎo)的重要依據(jù)。如何規(guī)范大數(shù)據(jù)環(huán)境下網(wǎng)絡(luò)輿情信息的及時(shí)感知、收集、分析與監(jiān)管,并及時(shí)有效地引導(dǎo)輿情向良好的方向發(fā)展,如何實(shí)現(xiàn)“傳播力決定影響力,話語權(quán)決定主導(dǎo)權(quán),時(shí)效性決定有效性,透明度決定公信度”的使命,是我國各級(jí)政府相關(guān)部門面臨的現(xiàn)實(shí)問題,也是亟待解決的重要課題[1-2]?;诖?在大數(shù)據(jù)環(huán)境下,本文給出了一種微博輿情分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方案,并對(duì)文本情感分析、計(jì)算文本相似度給出了具體實(shí)現(xiàn)算法,以實(shí)現(xiàn)對(duì)輿情信息的趨勢(shì)性預(yù)警及有效監(jiān)管。

2 系統(tǒng)功能及流程(System functions and processes)

2.1 系統(tǒng)功能

本系統(tǒng)主要是通過采集微博用戶指定話題的相關(guān)數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行初步加工后,通過業(yè)務(wù)系統(tǒng)展示出來,能清晰直觀地體現(xiàn)某熱點(diǎn)話題的傳播速度,以及公眾對(duì)該輿情事件的態(tài)度。

本系統(tǒng)主要分成三個(gè)子層:數(shù)據(jù)采集層、數(shù)據(jù)處理層及數(shù)據(jù)展示層(業(yè)務(wù)子系統(tǒng)展示層)。其中,數(shù)據(jù)采集層主要通過官方提供的數(shù)據(jù)應(yīng)用獲取接口(API)及使用自定義的網(wǎng)絡(luò)爬蟲[3-5]獲取網(wǎng)絡(luò)數(shù)據(jù);數(shù)據(jù)處理層主要完成中文的分詞、文本的清洗、標(biāo)準(zhǔn)化、特征提取、情感分析等工作;業(yè)務(wù)子系統(tǒng)展示層主要是面向平臺(tái)用戶,將數(shù)據(jù)處理層處理后的數(shù)據(jù)以圖表、文字的形式呈現(xiàn)給用戶,并完成與用戶的交互等功能。三個(gè)子層都可以當(dāng)成一個(gè)獨(dú)立的系統(tǒng)使用,擁有良好的擴(kuò)展性。系統(tǒng)整體運(yùn)行流程如圖1所示,系統(tǒng)主要功能如圖2所示。

圖1 系統(tǒng)運(yùn)行圖Fig.1 System run diagram

圖2 微博輿情分析平臺(tái)功能圖Fig.2 Functional map of microblog public opinion analysis platform

2.2 系統(tǒng)流程

系統(tǒng)采用SSM(Spring+SpringMVC+MyBatis)架構(gòu),共劃分為四個(gè)層次:View(表現(xiàn))層、Controller(控制)層、Service(業(yè)務(wù)邏輯)層、DAO(數(shù)據(jù)持久)層,如圖3所示,其流程主要分為以下幾個(gè)步驟。

圖3 系統(tǒng)處理流程Fig.3 System processing flow

(1)客戶端(用戶)發(fā)送請(qǐng)求到分發(fā)器。

(2)分發(fā)器查詢Hander Mapping(處理器映射),并找到處理請(qǐng)求的控制器。

(3)控制器調(diào)用業(yè)務(wù)邏輯層后,處理返回Model and View(模型和視圖對(duì)象)。

(4)分發(fā)器負(fù)責(zé)查詢視圖解析器,并找到Model and View指定的視圖。

(5)視圖把結(jié)果展示到客戶端。

3 數(shù)據(jù)處理技術(shù)(Data processing technology)

微博輿情分析中的數(shù)據(jù)處理主要采用以下技術(shù):對(duì)獲取的原始文本進(jìn)行中文分詞、文本清洗、情感分析等。

3.1 中文分詞

由于語言的差異,因此中英文在分詞的思路上有較大區(qū)別。多數(shù)情況下,英文通常使用空格就可以自動(dòng)完成分詞任務(wù),但中文的語法復(fù)雜,通常會(huì)通過第三方庫進(jìn)行分詞操作。本系統(tǒng)采用第三方庫Jieba分詞器進(jìn)行中文分詞工作[6]。Jieba分詞器工作的主要原理是基于統(tǒng)計(jì)詞典,首先建立一個(gè)前綴詞典,然后利用前綴詞典對(duì)句子展開切分,并根據(jù)所有切分的可能及切分位置構(gòu)造一個(gè)有向無環(huán)圖,通過相關(guān)動(dòng)態(tài)規(guī)劃算法計(jì)算出最大概率路徑,從而獲得最終切分形式。

3.2 文本清洗

經(jīng)過分詞之后獲取的文本中通常含有類似標(biāo)點(diǎn)符號(hào)、停用詞等無用信息,因此需要對(duì)文本開展分步清洗工作。本系統(tǒng)使用正則表達(dá)式結(jié)合百度的停用詞庫進(jìn)行文本清洗。

正則表達(dá)式的基本原理如下[7]:定義文法G={Vn,Vt,S,P},其中Vn是一個(gè)非空有限的符號(hào)集合,它的元素稱為非終結(jié)符號(hào);Vt也是一個(gè)非空有限符號(hào)集合,它的元素稱為終結(jié)符號(hào),并且Vt∩Vn=?;S是文法G的起始符號(hào),并且S∈Vn;P是一個(gè)非空有限集合,它的元素稱為產(chǎn)生式。所謂產(chǎn)生式,其形式為α→β,它的元素為形如α→β的產(chǎn)生式,其中α、β是由終結(jié)符和非終結(jié)符組成的符號(hào)串,并且α、β∈(Vt∪Vn)*,α≠ε。開始符S必須至少在某一產(chǎn)生式的α中出現(xiàn)一次。正則表達(dá)式是一種3型文法,它以整個(gè)字母表作為Vt集合。假設(shè)一個(gè)文法的產(chǎn)生式為{S→Sa;S→b;},那么對(duì)應(yīng)的正則表達(dá)式為ba*。例如,等包含html標(biāo)簽的文本,可使用“”表達(dá)式去除html標(biāo)簽。

去除停用詞的原理如下:對(duì)文本進(jìn)行中文分詞操作后,將產(chǎn)生一個(gè)包含所有詞語的列表,通過逐個(gè)取出列表中詞語與停用詞庫里的詞語進(jìn)行匹配,若相同則在列表中刪除該詞,從而實(shí)現(xiàn)去除停用詞。

3.3 文本情感分析及評(píng)分生成規(guī)則

文本情感分析主要是指對(duì)文本開展檢測、分析以及挖掘的過程,文本中可能包含有用戶的觀點(diǎn)、喜好、情感等主觀因素,通過情感分析可以歸納、推理文本和文本中各個(gè)人物所要表達(dá)的情感色彩。SnowNLP[8]是python編寫的一個(gè)類庫,它提供了情感傾向分析等功能,可以方便地處理中文文本內(nèi)容,本系統(tǒng)主要借助它實(shí)現(xiàn)文本情感分析和文本評(píng)分功能。通過人工預(yù)先把部份微博數(shù)據(jù)分為消極的和積極的兩種類別,以此為基礎(chǔ),通過貝葉斯公式推斷接下來提取的微博數(shù)據(jù)屬于積極類別的概率。當(dāng)某條微博數(shù)據(jù)有60%以上的概率屬于積極類,則認(rèn)為該條微博屬于正面微博,并將該微博屬于積極類別的概率值減去0.6后的取值,作為其文本評(píng)分。

3.4 敏感詞及敏感分?jǐn)?shù)生成規(guī)則

通過用戶提供的敏感詞典(*.txt文件),從每條微博中提取出敏感詞匯,存儲(chǔ)在業(yè)務(wù)數(shù)據(jù)庫中。通過自定義的詞庫種類,還可以提取出正負(fù)詞匯和關(guān)鍵詞等。敏感分?jǐn)?shù)則由該微博中出現(xiàn)敏感詞的個(gè)數(shù)決定,出現(xiàn)一個(gè)敏感詞加一分,并存儲(chǔ)到業(yè)務(wù)數(shù)據(jù)庫中。

4 核心算法(Core algorithm)

4.1 SnowNLP文本情感分析

SnowNLP是python編寫的一個(gè)類庫,它提供了情感傾向分析等功能,但因其使用的模型是通過影評(píng)訓(xùn)練生成的,并不完全契合本系統(tǒng)的需求,因此需要重新訓(xùn)練生成新的模型,并替換SnowNLP中原有模型。

貝葉斯模型[9]是用于情感分類的基本模型。對(duì)于兩個(gè)類別的分類問題,其特征表示為w1,w2,…,wn,并且各個(gè)特征之間相互獨(dú)立,對(duì)于其中一個(gè)類別的貝葉斯模型可以表示如下:

例如,有一句話text1:“我想出去玩?!?/p>

text1的分詞結(jié)果為[″我″,″想″,″出去″,″玩″],A1,A2,A3,A4分別表示4個(gè)詞,C1表示積極類,C2表示消極類。

計(jì)算每個(gè)單詞出現(xiàn)的頻率:則P(A1)=A1的詞頻/訓(xùn)練集的單詞總數(shù),同理P(A2)=A2的詞頻/訓(xùn)練集的單詞總數(shù)。

計(jì)算C1情緒中單詞出現(xiàn)的概率:P(A1|C1)=C1中A1的詞頻/訓(xùn)練集中屬于C1的單詞總數(shù)。P(A2|C1)=C1中A2的詞頻/訓(xùn)練集中屬于C1的單詞總數(shù)。

計(jì)算訓(xùn)練集中C1類別出現(xiàn)的概率:P(C1)=C1的句子總數(shù)/訓(xùn)練集的句子總數(shù)。

則text1屬于C1類的概率:

為了得到新的模型,需要重新對(duì)貝葉斯模型進(jìn)行訓(xùn)練,生成新的模型并替換原有模型,而訓(xùn)練的實(shí)質(zhì)就是計(jì)算每個(gè)特征出現(xiàn)的頻次,當(dāng)統(tǒng)計(jì)好訓(xùn)練樣本中的total和每一個(gè)特征key的d[key]后,訓(xùn)練過程就構(gòu)建完成。這個(gè)過程的核心代碼如下:

def train(self, data):

# data 中既包含正樣本,也包含負(fù)樣本

For d in data: # data中是list

# d[1]:正/負(fù)樣本的標(biāo)記

C=d[1]

If c not in self.d:

self.d[c]=AddOneProb() # 類的初始化

For word in d[0]: # 分詞結(jié)果中的每一個(gè)詞

self.d[c].add(word, 1)

self.total=sum(map(lambda x: self.d[x].getsum(), self.d.keys())) # 取得所有d中的和sum

Class AddOneProb(BaseProb):

Def __init__(self):

self.d={}

self.total=0.0

self.none=1 # 默認(rèn)所有的none為1

# 這里如果value也等于1,則當(dāng)key不存在時(shí),累加的是2

Def add(self, key, value):

self.total +=value

# 不存在該key時(shí),需新建key

If not self.exists(key):

self.d[key]=1

self.total +=1

self.d[key] +=value

Def classify(self, x):

tmp={}

For k in self.d:#正類和負(fù)類

tmp[k]=log(self.d[k].getsum())-log(self.total)#正/負(fù)類的所有之和的log函數(shù)

For word in x:

tmp[k] +=log(self.d[k].freq(word)) #詞頻,不存在就為0

ret, prob=0, 0

For k in self.d:

Now=0

try:

For otherk in self.d:

Now +=exp(tmp[otherk]-tmp[k])

Now=1/now

Except OverflowError:

Now 0

If now >prob:

ret, prob=k, now

Return (ret, prob)

4.2 計(jì)算文本相似度算法

該算法主要集成在系統(tǒng)的推薦功能上,以初始文本作為質(zhì)心,計(jì)算與其距離最近的微博,即文本相似度最高的微博推送即可。由于計(jì)算機(jī)不能直接識(shí)別中文,因此需要先把文本轉(zhuǎn)化為向量的形式,其主要步驟可分為去除停用詞、計(jì)算TF-IDF(TF和IDF的乘積)的值,以此作為該文本向量的表現(xiàn)形式。其中,TF定義為某個(gè)詞或短語在一個(gè)文本中出現(xiàn)的頻率,當(dāng)該詞頻率很高時(shí),可認(rèn)為其是該文本較為明顯的特征,有較好的區(qū)分效果;其計(jì)算公式可表示為TF=某詞出現(xiàn)的次數(shù)/該文檔中所有的詞的總數(shù)。

IDF主要用于評(píng)價(jià)一個(gè)詞語的普遍性和重要性,它是以某文件數(shù)目除以包含該詞語的文件的數(shù)目,再以10為底,取對(duì)數(shù)計(jì)算得到。當(dāng)包含該詞的文件數(shù)越少,便可認(rèn)為該詞在文檔中的重要性越高,即IDF的值越大[10];其計(jì)算公式可表示如下:

其中,D為總文檔數(shù),分母包含該詞語的文檔總數(shù)。

本文所提算法的具體實(shí)現(xiàn)方案如下。

(1)對(duì)每個(gè)文檔進(jìn)行分詞,并去除停用詞。詳細(xì)流程如圖4所示:

圖4 去除停用詞流程Fig.4 Process of removing stop words

(2)計(jì)算每個(gè)文檔的TF即詞頻,假設(shè)IDF值均為2。通過圖4可得出文檔的詞頻為{“天氣”=0.2,“錯(cuò)”=0.2,“想”=0.2,“出去”=0.2,“玩”=0.2}。因此,TF-IDF的可表示為{“天氣”=0.4,“錯(cuò)”=0.4,“想”=0.4,“出去”=0.4,“玩”=0.4}。

(3)以TF-IDF作為該文本向量的表現(xiàn)形式,即[0.4,0.4,0.4,0.4,0.4]為該文本向量化后的結(jié)果。

(4)重復(fù)上述步驟,計(jì)算從數(shù)據(jù)庫中隨機(jī)查找出來的微博內(nèi)容的向量值,并以字典的形式保存,如{微博ID=[0.4,0.4,0.4,0.4,0.4]}。最終將形成一個(gè)i行j列的矩陣:

(5)通過歐式距離計(jì)算每條微博到用戶當(dāng)前查看的微博的距離,選取距離最近的前N條展示出來。歐式距離計(jì)算公式如下:

其中,n為向量維數(shù),i和k為行號(hào)。

5 系統(tǒng)實(shí)現(xiàn)效果(System implementation effect)

目前,已利用該平臺(tái)對(duì)“西安奔馳女車主維權(quán)事件”的整個(gè)微博輿情事件發(fā)展全過程進(jìn)行了追蹤與分析,對(duì)2020年3月至2020年6月新冠疫情發(fā)生期間的微博輿情熱點(diǎn)話題進(jìn)行了趨勢(shì)預(yù)警,對(duì)2020年12月至2021年5月韶關(guān)地區(qū)各旅游景點(diǎn)的微博輿情進(jìn)行了采集及預(yù)警處理。系統(tǒng)部分運(yùn)行效果如圖5至圖7所示。圖5為輿情基本信息總覽,圖6為輿情數(shù)據(jù)采集來源及占比分析,圖7為各類事件隨時(shí)間發(fā)展的趨勢(shì)變化展示。在實(shí)際應(yīng)用中,系統(tǒng)整體運(yùn)行穩(wěn)定性較高,在單機(jī)日采集量約100萬條時(shí),對(duì)數(shù)據(jù)分析的有效率可以達(dá)到90%以上,當(dāng)并發(fā)采集的數(shù)據(jù)量過大時(shí),數(shù)據(jù)分析的效率有所下降,研究人員后期將在降數(shù)據(jù)規(guī)模算法方面進(jìn)行進(jìn)一步的優(yōu)化。

圖5 輿情基本信息Fig.5 Basic public opinion information

圖6 輿情數(shù)據(jù)來源展示Fig.6 Display of public opinion data sources

圖7 輿情趨勢(shì)變化展示Fig.7 Display of public opinion trend change

6 結(jié)論(Conclusion)

設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于大數(shù)據(jù)的集輿情信息采集、去重、分析、處理及可視化的綜合平臺(tái)。該平臺(tái)主要對(duì)采集到的用戶指定話題的微博數(shù)據(jù)進(jìn)行加工處理后,通過業(yè)務(wù)子系統(tǒng)展示出來,清晰直觀地體現(xiàn)微博某熱點(diǎn)話題的傳播速度,以及公眾對(duì)該輿情事件的態(tài)度。通過在相關(guān)輿情事件開展追蹤、分析、預(yù)警及處理的實(shí)際應(yīng)用過程中,系統(tǒng)穩(wěn)定性較高,整體表現(xiàn)良好。

猜你喜歡
詞頻分詞輿情
基于詞頻分析法的社區(qū)公園歸屬感營建要素研究
園林科技(2021年3期)2022-01-19 03:17:48
結(jié)巴分詞在詞云中的應(yīng)用
值得重視的分詞的特殊用法
輿情
中國民政(2016年16期)2016-09-19 02:16:48
輿情
中國民政(2016年10期)2016-06-05 09:04:16
輿情
中國民政(2016年24期)2016-02-11 03:34:38
詞頻,一部隱秘的歷史
云存儲(chǔ)中支持詞頻和用戶喜好的密文模糊檢索
以關(guān)鍵詞詞頻法透視《大學(xué)圖書館學(xué)報(bào)》學(xué)術(shù)研究特色
圖書館論壇(2014年8期)2014-03-11 18:47:59
微博的輿情控制與言論自由
延寿县| 鹤壁市| 宾川县| 西充县| 寿光市| 鄂伦春自治旗| 闽清县| 华池县| 江永县| 石楼县| 商水县| 武清区| 平阳县| 嘉鱼县| 巫溪县| 乌拉特后旗| 泌阳县| 江口县| 乐至县| 阳朔县| 德州市| 岳西县| 赣榆县| 大连市| 武安市| 赫章县| 巴林右旗| 泾阳县| 泌阳县| 宜兰县| 新蔡县| 滕州市| 轮台县| 天气| 静安区| 衡阳县| 望谟县| 西藏| 闻喜县| 镇宁| 岳阳市|