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

?

智能時代的網絡輿情分析技術應用

2024-01-12 05:40:46周洪斌賈蘇許禮捷
微型電腦應用 2023年12期
關鍵詞:爬蟲分詞云圖

周洪斌, 賈蘇, 許禮捷

(沙洲職業(yè)工學院, 數字化與微電子學院, 江蘇, 張家港 215600)

0 引言

數字時代,網絡是輿情傳播的主要途徑之一,并且網絡輿情具有集中式、爆發(fā)式的特點,因此對網絡輿情進行及時有效的分析是當今社會治理必須面對的問題[1-2]。隨著網絡爬蟲、中文分詞以及文本情感分析等智能技術的日趨成熟,能夠在極短的時間內準確呈現網絡輿情文本信息中的核心內容,有效應對網絡輿情信息具有的數據量大、動態(tài)性、價值密度低等特性,為互聯(lián)網輿情數據的高效收集、分析提供了全新的方式、方法,可以實現網絡輿情分析的自動化、智能化,有助于做好網絡輿論引導,傳播正能量。

1 網絡輿情分析常用技術

1.1 爬蟲技術

爬蟲技術來源于網絡搜索引擎,目前應用非常廣泛,通過對特定網站中的頁面信息進行爬取、分析,可以給出輿情態(tài)勢的綜合研判。Python程序設計語言在人工智能時代被廣泛應用,目前大量的網絡爬蟲程序采用Python語言開發(fā)?;赑ython的爬蟲技術通常會用到requests庫、BeautifulSoup庫[3],對應的基本使用方法如下。

(1) 通過requests.get()方法模擬HTTP GET方法發(fā)出請求到服務器,然后通過text屬性獲得服務器響應返回的網頁內容(源代碼)。具體代碼如下:

res = requests.get(url)

html = res.text

(2) 使用BeautifulSoup進行網頁解析,調用BeautifulSoup對象的select()等方法抓取指定數據。具體代碼如下:

soup = BeautifulSoup(html.encode('utf-8'),"lxml")

data=soup.select(“html head title”)

當要爬取動態(tài)頁面時,普通的requests無法實現,需要用到selenium。selenium是一個自動化測試工具,能夠驅動瀏覽器模擬人的操作,如鼠標單擊、鍵盤輸入等。selenium的使用方法如下:

(1) 根據瀏覽器的型號和版本下載對應的驅動程序,如谷歌瀏覽器的驅動程序為ChromeDriver,再根據具體的版本號下載匹配的驅動程序。

(2) 啟動瀏覽器,訪問對應的頁面,獲得頁面代碼:

driver = webdriver.Chrome()

driver.get(url)

data= driver.page_source

在使用爬蟲技術獲取頁面數據的同時,也要遵循行業(yè)規(guī)范,即Robots協(xié)議[4]。網站通過Robots協(xié)議告訴爬蟲哪些頁面可以爬取,哪些頁面不能爬取。在網站首頁的地址后面添加“/robots.txt”,可以查看該robots.txt文件的內容,robots.txt文件主要包括User-Agent、Allow 和Disallow等3部分內容。其中:User-Agent用于指明允許的爬蟲標識,如果是“*”則表明允許所有的爬蟲訪問該網站;Allow表示允許爬蟲訪問的目錄或頁面;Disallow表示不允許爬蟲訪問的目錄或頁面。但根據Robots協(xié)議的默認規(guī)則,如果一個目錄沒有顯示為Disallow,則是允許訪問的。

1.2 中文分詞技術

中文分詞是中文信息處理的基礎,通過分詞將漢字序列分成一個個單獨的詞,為觀點抽取等進一步的自然語言處理作準備[5]。近年來,jieba中文分詞工具得到了較為廣泛的應用,jieba的3種分詞模式如表1所示。

表1 Jieba分詞模式

以語句“張家港是全國文明城市”為例,通過jieba的3種分詞模式得到的運行結果為:精確模式輸出['張家港', '是', '全國','文明城市'];全模式輸出['張家', '張家港', '是', '全國', '國文', '文明', '文明城市', '城市'];搜索引擎模式輸出['張家', '張家港', '是', '全國', '文明', '城市', '文明城市']。

1.3 文本詞云

在jieba分詞的基礎上可以制作詞云圖[6],實現文本分析的可視化,可以更加直觀和藝術地展示文本。詞云是將文本中出現頻率較高的詞予以視覺上的突出,使得瀏覽者一眼就能領略文本的主旨。詞云圖一般使用字體的大小來反應詞語出現的頻率,頻率越高的詞在詞云圖中的字體就越大。

Python語言可以通過WordCloud庫來制作詞云圖。WordCloud是一個實現詞云展示的第三方庫,其可以設定詞云的形狀、大小和顏色。生成指定字體和背景色的詞云圖的代碼如下:

wordcloud=WordCloud(font_path="simhei.ttf",background_color="white").generate(text)

然后,可以通過matplotlib.pyplot庫將詞云圖展現出來,代碼如下:

plt.imshow(wordcloud)

plt.axis("off")

plt.show()

默認的詞云形狀為長方形,如果要對詞云圖本身進行視覺上的改進,可以在產生詞云時設置mask參數,代碼如下:

cloudMask=imread("mask.png")

wordcloud=WordCloud(font_path="simhei.ttf",background_color="white",mask=cloudMask).generate(text)

1.4 文本情感分析

文本情感分析[7]是指用自然語言處理技術來識別和提取文本中的主觀信息,找出說話者或者作者當時的態(tài)度,如積極、消極或者中性,因此文本情感分析在輿情分析方面被廣泛應用。

目前大量的自然語言處理庫都是針對英文的,而SnowNLP庫是一個用Python語言編寫的自然語言處理類庫,支持多種中文文本處理操作,包括詞性標注、情感分析、提取文本摘要等[8]。因此,可以通過SnowNLP對中文文本情感進行分析,代碼如下:

s = SnowNLP(coment)

print(s.sentiments)

其中,sentiments為SnowNLP情感分析的結果,取值在0到1之間,表示情感分析結果為正面的可能性:當數值大于0.5時,情感偏向正面;當數值小于0.5時,情感偏向負面。

隨著人工智能技術與云計算技術的融合,國內部分公司推出了人工智能開放平臺,開發(fā)者可以在程序中通過調用平臺提供的接口完成情感分析,如百度AI開放平臺、訊飛開放平臺。以百度AI開放平臺為例,其提供了情感傾向分析、文章分類等自然語言處理服務,開放者完成賬號的注冊與認證后,可以查看不同程序設計語言所對應的SDK文檔,調用百度AI開放平臺完成文本情感分析[9]。Python語言的調用方法如下:

result=client.sentimentClassify(text)

傳入參數text表示待分析文本,最大2048 Byte。數據參數如表2所示。

表2 百度AI開放平臺情感傾向分析返回數據參數詳情

因此,可以通過pos=result['items'][0]['positive_prob'] 獲得情感積極的概率。

2 輿情分析技術應用實例

綜合應用上述技術對新聞評論進行分析,具體流程如圖1所示。

圖1 新聞評論數據分析過程

關鍵步驟如下。

1) 爬取新聞評論

(1) 爬取評論節(jié)點

評論的節(jié)點為〈div class="comment_que"〉

comment_nodes = data.find_all('div', class_="comment_que")

for node in comment_nodes:

(2) 獲取昵稱

nickname = node.find('div', class_="aqwright").find('h3').find('a').get_text().strip()

nicknames.append(nickname)

(3) 獲取評論主體內容

comment = node.find('div', class_="aqwright").find('div', class_="ansright_cont").get_text().strip()

comments.append(comment)

2) 對評論分詞并制作詞云圖

(1) 使用jieba中文分詞

words=[word for word in jieba.lcut(comments) if len(word)>=2]

text=" ".join(words)

(2) 對詞云圖本身進行視覺上的改進,制作并顯示指定形狀的詞云圖

cloudMask=imread("mask.png")

wordcloud=WordCloud(font_path="simhei.ttf",background_color="white",mask=cloudMask).generate(text)plt.imshow(wordcloud)

plt.axis("off")

plt.show()

詞云顯示效果如圖2所示。

圖2 新聞評論詞云圖

3) 對評論進行情感分析

(1) 本例中使用SnowNLP進行情感分析

for comment in comments

(2) 獲得每條評論的情感分析結果

s=SnowNLP(comment)

result=s.sentiments

emotion+=result

n += 1

(3) 輸出所有評論情感分析的平均值

print('情感分析平均值:',emotion/n)

對于本次分析的結果,所有評論的情感分析平均值為0.7063,說明廣大網民對本條新聞的評論以正面的、積極的評論為主。

3 總結

隨著時代發(fā)展,網絡輿情分析越來越受到社會各界重視。智能技術為網絡輿情收集、分析提供了有力高效的手段,通過網絡爬蟲、中文分詞以及文本情感分析技術,實現了新聞評論的自動化采集、可視化分析,能夠在極短的時間內準確呈現網絡輿情文本信息中的核心內容,為網絡輿情分析與引導提供幫助。本文所用的情感分析結果對輿情導向的判斷略顯單一化,如何將情感分析結果與多種因素結合輔助判斷是下一步的重要工作。

猜你喜歡
爬蟲分詞云圖
利用網絡爬蟲技術驗證房地產灰犀牛之說
基于Python的網絡爬蟲和反爬蟲技術研究
成都云圖控股股份有限公司
中國農資(2019年44期)2019-12-03 03:10:46
結巴分詞在詞云中的應用
智富時代(2019年6期)2019-07-24 10:33:16
利用爬蟲技術的Geo-Gnutel la VANET流量采集
電子測試(2018年1期)2018-04-18 11:53:04
黃強先生作品《雨后松云圖》
名家名作(2017年3期)2017-09-15 11:13:37
大數據環(huán)境下基于python的網絡爬蟲技術
電子制作(2017年9期)2017-04-17 03:00:46
值得重視的分詞的特殊用法
基于TV-L1分解的紅外云圖超分辨率算法
云圖青石板
镇沅| 江西省| 德阳市| 肃北| 武功县| 长沙市| 皋兰县| 寻乌县| 西宁市| 乌拉特中旗| 阜康市| 海林市| 瑞安市| 和平县| 革吉县| 敦煌市| 承德市| 山东| 轮台县| 清水县| 武山县| 敦煌市| 北碚区| 虎林市| 双柏县| 南通市| 会泽县| 绥滨县| 延安市| 宁津县| 隆林| 招远市| 保山市| 朔州市| 方山县| 岱山县| 宜黄县| 高青县| 怀仁县| 河北区| 区。|