李 璐, 何利力
(浙江理工大學(xué) 信息學(xué)院, 杭州 310018)
隨著“互聯(lián)網(wǎng)+”技術(shù)日趨成熟,基于“互聯(lián)網(wǎng)+”營(yíng)銷企業(yè)需要根據(jù)不同屬性對(duì)用戶進(jìn)行類別劃分,為不同類別用戶制定不同的營(yíng)銷策略,評(píng)論的質(zhì)量可作為用戶的一個(gè)屬性。評(píng)論屬于自然語(yǔ)言,人為對(duì)評(píng)論的質(zhì)量評(píng)估,是可行的,但評(píng)論數(shù)量過(guò)大,人為評(píng)估速度慢,無(wú)法滿足現(xiàn)營(yíng)銷企業(yè)的需求。自然語(yǔ)言處理針對(duì)結(jié)構(gòu)復(fù)雜的文本信息進(jìn)行處理,其中關(guān)鍵詞的提取是基礎(chǔ)與核心技術(shù),在檢索信息、文本分類、信息匹配、話題跟蹤、自動(dòng)摘要、人機(jī)對(duì)話等領(lǐng)域有廣泛的應(yīng)用[1-3]。
在自然語(yǔ)言處理領(lǐng)域中處理提取評(píng)論關(guān)鍵詞的方法大致可以分為兩類:監(jiān)督學(xué)習(xí),無(wú)監(jiān)督學(xué)習(xí)[4]。監(jiān)督學(xué)習(xí)是從特定的訓(xùn)練數(shù)據(jù)集訓(xùn)練出函數(shù)模型,根據(jù)函數(shù)模型判斷該詞語(yǔ)是否屬于關(guān)鍵字類別,對(duì)訓(xùn)練集的要求較高,通常需要人工預(yù)處理。在無(wú)監(jiān)督學(xué)習(xí)中,無(wú)法預(yù)知樣本類型,需要根據(jù)樣本數(shù)據(jù)間的內(nèi)在結(jié)構(gòu)對(duì)樣本集進(jìn)行聚類,使同一類別數(shù)據(jù)差距最小化,不同類別數(shù)據(jù)差距最大化[5]。常見的主流無(wú)監(jiān)督關(guān)鍵字提取方法可以分為基于TF-IDF數(shù)值統(tǒng)計(jì)的關(guān)鍵詞提取、基于LDA主題模型的關(guān)鍵字提取、基于詞圖模型的關(guān)鍵字提取3種類型[6-7]。上述方法都有各自的優(yōu)點(diǎn)和局限性。
本文主要針對(duì)TF-IDF展開相關(guān)研究,綜合考慮評(píng)論信息中詞語(yǔ)的位置、詞性、詞長(zhǎng)3種影響因子,對(duì)每種影響因子賦予一定的權(quán)重,最后加權(quán)得到最終的特征權(quán)重,獲取權(quán)重最大前5的詞語(yǔ)作為該短文本的關(guān)鍵詞。通過(guò)余弦相似度來(lái)衡量評(píng)論與標(biāo)題關(guān)鍵詞的相似度,獲取重要評(píng)論。該方法可識(shí)別垃圾評(píng)論、重要評(píng)論,可用于企業(yè)對(duì)用戶某一屬性的衡量。
相關(guān)技術(shù)研究包括TF-IDF、信息熵、Trie樹、詞語(yǔ)的權(quán)重、余弦相似度這5個(gè)方面。設(shè)定一個(gè)文本集合D,集合中包含N個(gè)文本,每個(gè)文本都包含標(biāo)題title和評(píng)論comment兩部分[7]。comment內(nèi)容是由評(píng)論句子組成,評(píng)論句子是由多個(gè)詞語(yǔ)組成。
TF-IDF是常見的加權(quán)算法,通常用于資源檢索與數(shù)據(jù)挖掘等方向,衡量文本集中一個(gè)特征詞對(duì)包含該特征詞的文本的重要程度,優(yōu)于其它算法[6]。TF-IDF是TF與IDF的乘積,TF-IDF的詞條提取函數(shù)如式(1) :
Wtf-idf=TF(i)×IDF(i),
(1)
其中,Wtf-idf表示第i個(gè)詞語(yǔ)的TF-IDF值,TF(i)表示該詞的詞頻。主要思想是:如果該特征詞i在該文本中出現(xiàn)的次數(shù)較多,TF(i)越大,則表明該詞可能會(huì)較好地描述了該文本的主要信息,計(jì)算如式(2):
(2)
其中,ni為該詞i出現(xiàn)的次數(shù),n為所有關(guān)鍵詞的總數(shù)。
IDF(i)表示逆文檔頻率,若包含該詞i文檔數(shù)越少,IDF(i)越大,說(shuō)明該詞i具有良好的類型區(qū)分作用,計(jì)算如式(3):
(3)
其中,N為文檔總數(shù),df(i)是為文檔出現(xiàn)詞語(yǔ)i的文檔數(shù)。
TF-IDF算法表明:在文本comment中出現(xiàn)頻率足夠高,而在整個(gè)文本集合D的其他文檔中出現(xiàn)頻率足夠低的特征詞是區(qū)別該文本comment最關(guān)鍵的詞語(yǔ)[7-8]。TF詞頻代表同類文本特征,不同類別文本的特征由IDF來(lái)表示。IDF主要用于調(diào)整TF,抑制噪聲加權(quán),但TF-IDF的結(jié)構(gòu)過(guò)于簡(jiǎn)單,無(wú)法有效地反映單詞的重要性和特征單詞的位置分布,并且調(diào)整權(quán)限功能不是有效的,因此TF-IDF方法的準(zhǔn)確性不高,且TF-IDF算法沒(méi)有體現(xiàn)特征詞的位置信息、詞性、詞長(zhǎng)的重要性。對(duì)于一篇文檔而言,不同結(jié)構(gòu)的內(nèi)容體現(xiàn)的信息是不同的,即權(quán)重也應(yīng)按照不同的結(jié)構(gòu)特征來(lái)分配,避免忽視文本結(jié)構(gòu)問(wèn)題[9]。特征詞在不同的位置、詞性、詞長(zhǎng)對(duì)文本內(nèi)容的反映程度不同,其權(quán)重計(jì)算方式也應(yīng)有所不同。因此,應(yīng)該給文檔中不同位置、詞性、詞長(zhǎng)的特征詞賦予不同的系數(shù),并乘以特征詞的TF-IDF值,以增強(qiáng)文本表達(dá)的效果。
互信息反映兩個(gè)詞語(yǔ)的凝聚力,互信息的計(jì)算如式(4):
(4)
其中,p(x,y)為詞語(yǔ)x,y的聯(lián)合分布概率;p(x),p(y)為詞語(yǔ)x,y邊緣分布概率;PMI(x,y)的單位為bit。
根據(jù)互信息挑選的預(yù)選詞,利用信息熵確定該預(yù)選詞為新詞。信息熵是一個(gè)具體事件發(fā)生所帶來(lái)的信息[10],描述信息源的不確定度,熵是該預(yù)選詞的所有可能取值,即所有可能發(fā)生預(yù)選詞組合所帶來(lái)的信息量的期望[11],來(lái)表示預(yù)選詞的自由度。對(duì)于一個(gè)預(yù)選詞所有可能的組合X,其信息熵為公式(5)
H(X)=-∑p(x)log2p(x).
(5)
其中,p(x)是x在系統(tǒng)事件中出現(xiàn)的概率。熵越大,則該預(yù)選詞大概率為一個(gè)新詞。
Trie索引樹是一種數(shù)據(jù)結(jié)構(gòu),是由非線性結(jié)構(gòu)形式表示的鍵樹,由首字散列表和字典索引樹結(jié)點(diǎn)兩部分組成,通常用于文本詞頻統(tǒng)計(jì)[12]。Trie樹可保存鍵值對(duì)映射關(guān)系,但key必須是字符串,除根節(jié)點(diǎn),其它節(jié)點(diǎn)都只包含一個(gè)字符,每個(gè)節(jié)點(diǎn)的孩子節(jié)點(diǎn)包含的字符都不相同。其核心思想是通過(guò)最長(zhǎng)公共前綴迅速查詢到結(jié)果,空間換時(shí)間,降低時(shí)間復(fù)雜度。通過(guò)Trie樹來(lái)存儲(chǔ)和計(jì)算詞語(yǔ)的信息熵,用于篩選出新詞。
針對(duì)TF-IDF算法的局限性,引入詞語(yǔ)權(quán)重。詞語(yǔ)權(quán)重分為詞語(yǔ)位置權(quán)重,詞性權(quán)重,詞長(zhǎng)權(quán)重?;顒?dòng)的標(biāo)題的title一般能概括活動(dòng)的主要內(nèi)容,則出現(xiàn)在標(biāo)題中的詞語(yǔ)成為關(guān)鍵詞的概率更大;在評(píng)論中出現(xiàn)詞語(yǔ)可能會(huì)反映該活動(dòng)的隱藏關(guān)鍵詞或活動(dòng)相關(guān)關(guān)鍵詞,則評(píng)論的詞語(yǔ)也應(yīng)該適當(dāng)重視[13-14]。特征詞位置的權(quán)重設(shè)置見表1。
表1 位置權(quán)重設(shè)置
中文中的詞性可分為實(shí)詞和虛詞兩類。實(shí)詞一般包含:名詞、動(dòng)詞、形容詞、代詞、數(shù)詞、量詞等;虛詞一般包含:介詞、連詞、嘆詞、助詞等[13]。關(guān)鍵詞的詞性通常是以名詞或名詞性短語(yǔ)為主,其次是動(dòng)詞、副詞和其他修飾詞。特征詞的詞性權(quán)重設(shè)置見表2。
表2 詞性權(quán)重設(shè)置
關(guān)鍵詞過(guò)短無(wú)法體現(xiàn)包含信息,關(guān)鍵詞過(guò)長(zhǎng),包含信息越多,則表示該關(guān)鍵詞可以再次切分。研究表明,關(guān)鍵詞的詞長(zhǎng)一般在[2,7]之間,詞長(zhǎng)過(guò)長(zhǎng)過(guò)短需要過(guò)濾[15-16]。詞長(zhǎng)權(quán)重計(jì)算公式(6):
(6)
其中,ilen是第i個(gè)詞語(yǔ)的詞長(zhǎng),avg(len)是平均詞長(zhǎng)。
綜合上述多特征權(quán)重,詞語(yǔ)權(quán)重計(jì)算公式(7):
Wword=αWl+βWc+γWlen.
(7)
其中,Wword、Wl、Wc、Wlen分別為詞語(yǔ)權(quán)重、詞語(yǔ)的位置權(quán)重、詞性權(quán)重、詞長(zhǎng)權(quán)重,α、β、γ為系數(shù)分別為0.6、0.3、0.1。
本文目標(biāo)是評(píng)測(cè)用戶評(píng)論質(zhì)量,需要與一個(gè)相對(duì)標(biāo)準(zhǔn)指標(biāo)進(jìn)行對(duì)比。余弦相似度是通過(guò)測(cè)量?jī)深愱P(guān)鍵詞向量的夾角余弦值來(lái)度量它們之間的相似性。余弦相似度計(jì)算公式(8):
(8)
評(píng)論中關(guān)鍵詞的權(quán)重作為A向量,標(biāo)準(zhǔn)關(guān)鍵詞權(quán)重作為B向量,計(jì)算兩者之間的cosθ。
提取關(guān)鍵詞算法步驟為:
(1)文本獲?。豪门老x爬取活動(dòng)標(biāo)題、用戶評(píng)論,寫入文本中保存。
(2)文本預(yù)處理:清除文本中的噪聲,例如:文本中的空格,表情符號(hào),特殊符號(hào)等。
(3)分詞:將文本分為標(biāo)題、評(píng)論兩部分,同時(shí)對(duì)這兩部分進(jìn)行分詞,分詞結(jié)果分為標(biāo)題分詞結(jié)果集和評(píng)論分詞結(jié)果集,本文采用結(jié)合字典樹和信息熵對(duì)文本進(jìn)行分詞。
(4)停用詞過(guò)濾:由于停用詞的普遍性,通常自身沒(méi)有特定的意思,對(duì)文本主題的表達(dá)能力低。例如“的”,“啊”,“然后”,“哈哈哈”等詞語(yǔ)以及標(biāo)點(diǎn)符號(hào),過(guò)濾停用詞,消除對(duì)關(guān)鍵詞提取的干擾。
(5)詞性/詞長(zhǎng)過(guò)濾:對(duì)詞性為語(yǔ)氣助詞、介詞、連詞、擬聲詞等詞語(yǔ)過(guò)濾,過(guò)濾詞長(zhǎng)小于2大于7的詞語(yǔ)。過(guò)濾這些詞語(yǔ)可提高工作效率,避免增加工作量。
(6)利用TF-IDF算法計(jì)算詞語(yǔ)的Wtf-idf。
(7)根據(jù)式(7)計(jì)算詞語(yǔ)的權(quán)重Wword。
(8)計(jì)算詞語(yǔ)的最終權(quán)重W=Wtf-idf*Wword。
(9)根據(jù)余弦相似度公式計(jì)算評(píng)論與標(biāo)題的相關(guān)度。
本文實(shí)驗(yàn)數(shù)據(jù)來(lái)自某微信公眾號(hào)的活動(dòng)評(píng)論。評(píng)論共有91 120條,去除只含表情、評(píng)論過(guò)短的評(píng)論,剩余評(píng)論為83 680條。本文中該公眾號(hào)名都用“XXXX”來(lái)表示。
2.2.1 分詞效果對(duì)比
互聯(lián)網(wǎng)營(yíng)銷活動(dòng)的標(biāo)題和評(píng)論包含新詞,傳統(tǒng)分詞算法可能無(wú)法實(shí)現(xiàn)新詞的提取。本實(shí)驗(yàn)利用互信息和左右熵,以Tire樹為數(shù)據(jù)結(jié)構(gòu)提取新詞?;バ畔⑹且粋€(gè)詞語(yǔ)中包含的關(guān)于另一個(gè)詞語(yǔ)的信息量,即兩個(gè)詞共同出現(xiàn)的概率。左右熵衡量預(yù)選詞的自由度。左右熵越大,說(shuō)明該預(yù)選詞越有可能是獨(dú)立詞語(yǔ)。通過(guò)傳統(tǒng)分詞算法和基于互信息和左右熵的分詞算法的分詞結(jié)果見表3。
表3 兩種分詞對(duì)比表
從表3可以看出,傳統(tǒng)分詞將“XXXX”分成“XX”和“XX”兩個(gè)詞,將“尋味杭州”分為“尋味”和“杭州”,基于互信息和左右熵分詞算法將“XXXX”、“尋味杭州”作為獨(dú)立詞語(yǔ),這兩個(gè)詞語(yǔ)是與文本源——某公眾號(hào)的活動(dòng)相關(guān)。由此可見傳統(tǒng)的分詞算法無(wú)法識(shí)別新詞,會(huì)導(dǎo)致Wtf-idf不準(zhǔn)確。
2.2.2 關(guān)鍵詞提取效果對(duì)比
采用準(zhǔn)確率(Precision)、召回率(Recall)和F1值來(lái)衡量關(guān)鍵詞提取算法的優(yōu)劣。準(zhǔn)確率是指預(yù)測(cè)正確的樣本數(shù)除以總樣本數(shù),召回率是實(shí)際為正確的被預(yù)測(cè)為正確樣本的概率,則綜合準(zhǔn)確率和召回率這兩個(gè)指標(biāo)提出了F1值,若F1比較高,則說(shuō)明該算法效果較好[5]。
準(zhǔn)確率計(jì)算公式如式(9):
(9)
其中,numcorrect表示符合主題的關(guān)鍵詞數(shù)量,numtotal是關(guān)鍵詞總量。
召回率計(jì)算公式如式(10):
(10)
其中,numactual表示文本真實(shí)關(guān)鍵詞數(shù)量。
F1值綜合準(zhǔn)確率和召回率兩個(gè)指標(biāo),計(jì)算公式如式(11):
(11)
通過(guò)準(zhǔn)確率、召回率和F1值對(duì)傳統(tǒng)TFIDF算法和多權(quán)TF-IDF算法進(jìn)行對(duì)比,結(jié)果見表4。
表4 兩種算法指標(biāo)對(duì)比
本文通過(guò)計(jì)算基于傳統(tǒng)TF-IDF算法和多權(quán)TF-IDF算法提取的關(guān)鍵詞權(quán)重與標(biāo)題關(guān)鍵詞權(quán)重的余弦相似度進(jìn)行對(duì)比,提取余弦相似度排名前5的評(píng)論,表5為兩種算法得到的不同重要評(píng)論排名結(jié)果。
這次文本標(biāo)題是“網(wǎng)紅帶你尋味杭州!搶!千份好禮限時(shí)8 h!”,通過(guò)人工標(biāo)注關(guān)鍵詞為:“尋味杭州”,“網(wǎng)紅”,“好禮”,“8 h”,“千份”,活動(dòng)標(biāo)題的隱藏關(guān)鍵詞“XXXX”,評(píng)論關(guān)鍵詞與標(biāo)題關(guān)鍵詞進(jìn)行比對(duì),結(jié)果表明:多權(quán)TF-IDF算法優(yōu)于傳統(tǒng)TF-IDF算法。
表5 重要評(píng)論對(duì)比
本文針對(duì)現(xiàn)代營(yíng)銷活動(dòng)中客戶為中心,分析客戶評(píng)論,提取重要客戶的需求,提出利用互信息和信息熵結(jié)合的分詞算法,互信息決定該詞語(yǔ)是否成為預(yù)選詞,左右熵決定該預(yù)選詞是否為獨(dú)立詞語(yǔ),在上述分詞算法的基礎(chǔ)上,融合詞語(yǔ)的位置、詞性、詞長(zhǎng)等多種因素對(duì)TF-IDF算法進(jìn)行了改進(jìn),對(duì)每個(gè)影響因素分配相應(yīng)的權(quán)重,加權(quán)處理,最后得到詞語(yǔ)權(quán)值,取權(quán)值最大的5個(gè)詞語(yǔ)作為評(píng)論的關(guān)鍵詞,以人工標(biāo)注的關(guān)鍵詞為標(biāo)準(zhǔn),對(duì)比兩種算法,發(fā)現(xiàn)本文算法效果良好,可篩選出重要評(píng)論,獲得重要客戶,值得推廣應(yīng)用,也可應(yīng)用到其他場(chǎng)景,如微博留言、帖子評(píng)論,可以有效的排除網(wǎng)絡(luò)水軍垃圾發(fā)言等。在研究的過(guò)程中也發(fā)現(xiàn)了一些不足和缺陷,在本文忽視了特征詞的語(yǔ)義信息對(duì)關(guān)鍵詞提取的影響,未來(lái)可對(duì)中文語(yǔ)義進(jìn)行深入研究:中文語(yǔ)言中有許多詞語(yǔ)存在相近語(yǔ)義或者多種語(yǔ)義。語(yǔ)義相同,詞語(yǔ)不同的關(guān)鍵詞,會(huì)被篩除,導(dǎo)致算法具有局限性,因此,研究不同特征詞語(yǔ)義信息對(duì)提升關(guān)鍵詞提取效果的影響是具有重要意義。