一種基于大規(guī)模語料特征學(xué)習(xí)的微博情感分析方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)信息搜索技術(shù)領(lǐng)域,尤其是一種基于大規(guī)模語料特征學(xué)習(xí)的微 博情感分析方法。
【背景技術(shù)】
[0002] 在信息爆炸的今天,微博作為一款社交工具,對人們生活的影響越來越大。不管你 做了什么,看到了什么,聽到了什么,你都希望和他人分享,微博提供了這樣的一個(gè)平臺(tái),讓 用戶可以將自己的想法、經(jīng)歷等自由地分享給其他人。微博情感分析是指對微博中的觀點(diǎn) 進(jìn)行抽取、分析,例如對于某條包含對某部電影評價(jià)的微博,微博情感分析就是要分析出這 條微博中對這部電影評價(jià)的情感傾向,即判斷這個(gè)觀點(diǎn)是正面的,還是負(fù)面的(分類問題)。 由于微博平臺(tái)承載著海量的用戶主觀想法,對微博進(jìn)行自動(dòng)化的情感分析,可以幫助企業(yè)、 政府等更好地把握用戶的偏好,從而對自己的產(chǎn)品或者工作上的改進(jìn)產(chǎn)生良好的指導(dǎo)作 用。
[0003] 目前,主流的微博情感分析方法有兩類,分別是基于特征工程的方法和基于特征 學(xué)習(xí)的方法。基于特征工程的方法是首先人工設(shè)計(jì)一系列特征,例如微博中所用的詞、短語 以及它們在情感詞典中的情感傾向,或微博中包含的表情數(shù)、話題數(shù)等等,然后將每一條微 博都轉(zhuǎn)化成一個(gè)對應(yīng)的特征向量,包含了上述人工設(shè)計(jì)的所有特征,最后利用某個(gè)已標(biāo)注 好情感傾向的微博集合,通過上述方式轉(zhuǎn)化成特征向量集合后,訓(xùn)練一個(gè)情感分類器,再用 這個(gè)分類器去預(yù)測新微博的情感傾向?;谔卣鞴こ痰姆椒ㄓ捎谝蕾囉谌斯ぴO(shè)計(jì)特征的 好壞,所以需要豐富的領(lǐng)域相關(guān)知識(shí)以及大量的人力物力投入。與基于特征工程的方法不 同的是,基于特征學(xué)習(xí)的方法是訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò),使得它能夠輸入一條原始微博文本后 輸出一個(gè)它對應(yīng)的特征向量,該向量可用于情感分類器的訓(xùn)練和預(yù)測,此過程中無需任何 人工設(shè)計(jì)特征,節(jié)省成本。對于基于特征學(xué)習(xí)的方法,一個(gè)重要的環(huán)節(jié)是訓(xùn)練詞向量,而現(xiàn) 有的詞向量訓(xùn)練算法都只考慮語法上下文,這對情感分析來說是存在問題的,例如"好"與 "壞"這兩個(gè)語法上下文相似,但是情感傾向完全相反的詞被映射到相鄰的詞向量上,因此 訓(xùn)練詞向量時(shí)還需要考慮詞的情感傾向。此外,否定關(guān)系處理也是微博情感分析的一個(gè)重 要環(huán)節(jié),因?yàn)榉穸P(guān)系直接改變了情感傾向。
[0004] 現(xiàn)有微博情感分析方法需人工設(shè)計(jì)特征,工作量大,成本高,網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,無法 結(jié)合語法上、下文和情感傾向,有效處理否定關(guān)系,,情感分析準(zhǔn)確率低。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足而設(shè)計(jì)的一種基于大規(guī)模語料特征學(xué)習(xí)的 微博情感分析方法,采用神經(jīng)網(wǎng)絡(luò)將微博中的每一個(gè)詞,根據(jù)它的語法上下文、當(dāng)前上下文 中的情感傾向以及它是否被否定,映射到它對應(yīng)的詞向量上,得到一個(gè)由微博所對應(yīng)的詞 向量組成的矩陣,在該矩陣上做詞向量間的合成,從而得到微博所對應(yīng)的特征向量,將獲得 的特征向量用于情感分類器的訓(xùn)練和預(yù)測時(shí),對每條新微博就可得到一個(gè)較為準(zhǔn)確的情感 分析結(jié)果無需人工設(shè)計(jì)特征,節(jié)省成本,尤其適合大規(guī)模語料,訓(xùn)練速度快,結(jié)合語法上下 文和情感傾向,有效處理否定關(guān)系,情感分析準(zhǔn)確率高。
[0006] 本發(fā)明的目的是這樣實(shí)現(xiàn)的:一種基于大規(guī)模語料特征學(xué)習(xí)的微博情感分析方 法,包括基于W〇rd2VeC的神經(jīng)網(wǎng)絡(luò)和基于監(jiān)督學(xué)習(xí)的分類器,其特點(diǎn)是利用微博文本訓(xùn)練 一個(gè)基于Word2Vec的神經(jīng)網(wǎng)絡(luò),將微博文本輸入完成訓(xùn)練的神經(jīng)網(wǎng)絡(luò),該神經(jīng)網(wǎng)絡(luò)將輸入 的微博,根據(jù)語法上下文、當(dāng)前上下文中的情感傾向以及它是否被否定映射到對應(yīng)的詞向 量上,從而得到一個(gè)與微博文本所對應(yīng)的微博詞向量矩陣,在微博詞向量矩陣上做詞向量 間的合成,得到與微博文本所對應(yīng)的微博特征向量,將微博特征向量對基于監(jiān)督學(xué)習(xí)的分 類器進(jìn)行訓(xùn)練后得到情感分類器,使用情感分類器對微博文本進(jìn)行情感分析,可較為準(zhǔn)確 的預(yù)測微博情感傾向;所述神經(jīng)網(wǎng)絡(luò)為輸入層、并行詞向量層和輸出層組成的三層網(wǎng)絡(luò)結(jié) 構(gòu),所述并行詞向量層由肯定上下文的詞向量矩陣和否定上下文的詞向量矩陣組成;所述 輸入層將輸入詞以未被否定和被否定詞分別輸入并行詞向量層中所對應(yīng)的詞向量矩陣;所 述輸出層將兩詞向量矩陣轉(zhuǎn)換成未被否定和被否定的情感傾向輸出兩個(gè)特征向量。
[0007] 所述神經(jīng)網(wǎng)絡(luò)的訓(xùn)練按下述步驟進(jìn)行: 第一步:設(shè)定詞向量的維度并以微博的輸入詞為中心的窗口大??; 第二步:隨機(jī)初始化,將并行詞向量層中的兩個(gè)詞向量矩陣,使它們保持一致;Hierarchicalsoftmax層的參數(shù),該層用于預(yù)測以輸入詞為中心的窗口內(nèi)的一個(gè)詞;Full softmax層的參數(shù),該層用于預(yù)測輸入詞的情感傾向; 第三步:輸入微博并進(jìn)行分詞,分詞后去掉其中的@用戶和URL,然后進(jìn)行否定關(guān)系檢 測,標(biāo)記出哪些詞被否定,最后利用現(xiàn)有的情感詞典、表情符號和帶有情感傾向的話題線 索,對每一個(gè)詞在該微博上下文中的情感傾向進(jìn)行自動(dòng)化標(biāo)注; 第四步:對微博中的每一個(gè)詞,根據(jù)它是否被否定,使用相應(yīng)的詞向量層將它映射到它 對應(yīng)的詞向量,使用隨機(jī)梯度下降算法更新該詞向量、Hierarchicalsoftmax層的參數(shù)和 Fullsoftmax層的參數(shù),使得給定該詞向量,能準(zhǔn)確地預(yù)測中心窗口內(nèi)每一個(gè)詞及其情感 傾向; 第五步:重復(fù)第三~第四步驟,對大規(guī)模語料中的所有微博都進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練。
[0008] 所述完成訓(xùn)練的神經(jīng)網(wǎng)絡(luò)按下述步驟得到微博特征向量: 第一步:輸入微博,對該微博進(jìn)行分詞并去掉@用戶和URL,然后進(jìn)行否定檢測,標(biāo)記出 哪些詞被否定; 第二步:對微博中的每一個(gè)詞,根據(jù)它是否被否定,使用相應(yīng)的詞向量層將它映射到對 應(yīng)的詞向量,并存入微博詞向量矩陣中的一列; 第三步:對微博詞向量矩陣的每一行,分別取最大值、最小值和平均值得到三個(gè)向量; 第四步:將上述三個(gè)向量首尾相接成一個(gè)微博特征向量輸出。
[0009]第五步:對大規(guī)模語料中的每一條微博重復(fù)第一 ~第四步驟,得到與之對應(yīng)的微 博特征向量。
[0010] 所述基于監(jiān)督學(xué)習(xí)的分類器的訓(xùn)練按下述步驟進(jìn)行: 第一步:輸入神經(jīng)網(wǎng)絡(luò)訓(xùn)練中已標(biāo)注情感傾向的微博以及使用該神經(jīng)網(wǎng)絡(luò)得到的該微 博特征向量; 第二步:重復(fù)第一步驟,對神經(jīng)網(wǎng)絡(luò)訓(xùn)練集中的每一條已標(biāo)注好情感傾向的微博和該 微博特征向量都進(jìn)行輸入,得到微博特征向量集合及其與之對應(yīng)的情感傾向集合; 第三步:將上述特征向量集合和情感傾向集合對基于監(jiān)督學(xué)習(xí)的分類器進(jìn)行訓(xùn)練后得 到情感分類器。
[0011] 所述情感分類器使用微博特征向量對輸入的微博文本進(jìn)行情感分析,輸出微博情 感傾向的預(yù)測結(jié)果。
[0012] 本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn): a)、無需人工設(shè)計(jì)特征,節(jié)省成本:輸入一條微博,通過完成訓(xùn)練的神經(jīng)網(wǎng)絡(luò)就可得到 該微博對應(yīng)的特征向量,該特征向量的每一維都是自動(dòng)計(jì)算出來的,并非人工設(shè)計(jì),因此節(jié) 省了人工設(shè)計(jì)特征的各種成本。
[0013] (2)、適合大規(guī)模語料,訓(xùn)練速度快:神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)只有三層結(jié)構(gòu),并使用了隨機(jī) 梯度下降、Hiericalsoftmax等算法來加快詞向量的訓(xùn)練,從而使得即使在單機(jī)環(huán)境下也 可在短時(shí)間內(nèi)完成大規(guī)模語料(百萬條微博以上)的訓(xùn)練。
[0014] (3)、結(jié)合語法上下文和情感傾向,有效處理否定關(guān)系,情感分析準(zhǔn)確率高:神經(jīng)網(wǎng) 絡(luò)訓(xùn)練的過程中更新詞向量時(shí)要盡可能準(zhǔn)確地預(yù)測語法上下文和情感傾向,解決了現(xiàn)有技 術(shù)的詞向量訓(xùn)練算法把語法上下文相似但情感傾向相反的詞映射到相鄰的詞向量的問題, 進(jìn)一步提高了情感分析的準(zhǔn)確率。此外,根據(jù)輸入詞是否被否定,使用相應(yīng)的詞向量層將它 映射到它對應(yīng)的詞向量,并在訓(xùn)練時(shí)更新,從而得到輸入詞在肯定環(huán)境和否定環(huán)境下的兩 套詞向量,從特征向量中體現(xiàn)否定關(guān)系改變情感傾向的程度,使得情感分析的準(zhǔn)確率再度 提升。
【附圖說明】
[0015] 圖1為本發(fā)明流程圖; 圖2為神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖; 圖3為神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程圖; 圖4為使用完成訓(xùn)練的神經(jīng)網(wǎng)絡(luò)得到微博特征向量的流程圖; 圖5為分類器訓(xùn)練流程圖; 圖6為使用情感分類器預(yù)測微博的情感傾向流程圖。
【具體實(shí)施方式】
[0016] 參閱附圖1,本發(fā)明包括基于W〇rd2VeC的神經(jīng)網(wǎng)絡(luò)和基于監(jiān)督學(xué)習(xí)的分類器,利 用微博文本訓(xùn)練一個(gè)基于Word2Vec的神經(jīng)網(wǎng)絡(luò),將微博文本輸入完成訓(xùn)練的神經(jīng)網(wǎng)絡(luò),該 神經(jīng)網(wǎng)絡(luò)將輸入的微博,根據(jù)語法上下文、當(dāng)前上下文中的情感傾向以及它是否被否定,映 射到對應(yīng)的詞向量上,從而得到一個(gè)與微博文本所對應(yīng)的微博詞向量矩陣,在微博詞向量 矩陣上做詞向量間的合成,得到與微博文本所對應(yīng)的微博特征向量,將微