曹 帥
(中國石油大學(xué)(華東)計算機科學(xué)與技術(shù)學(xué)院,青島 266580)
隨著自然語言處理以及大數(shù)據(jù)分析技術(shù)的快速發(fā)展,基于網(wǎng)絡(luò)中的文本數(shù)據(jù)來獲取網(wǎng)絡(luò)輿情空間中的熱點話題已經(jīng)越來越快速、準(zhǔn)確.同時以微博、微信為代表的社交網(wǎng)絡(luò)平臺已經(jīng)融入百姓的日常生活,人們不僅可以基于社交網(wǎng)絡(luò)平臺獲取新鮮資訊,同時可以在平臺上自由發(fā)表個人觀點與日常生活狀態(tài),這使得民眾自由發(fā)表的言論成為社交網(wǎng)絡(luò)平臺中文本數(shù)據(jù)的主體.然而,社交媒體中的文本具有口語化程度高、來源廣泛的特點[1],這對自然語言處理技術(shù)的準(zhǔn)確性帶來了新的挑戰(zhàn).
在中文自然語言處理技術(shù)中,文本分詞是十分重要的過程,分詞過程是將一段中文文本進行切分,從而識別一段文本中的各個詞語.分詞之后的文本數(shù)據(jù)可以進行詞向量訓(xùn)練、語義聚類等進一步的分析處理,從而得到準(zhǔn)確的情感分析、文本摘要等目標(biāo)結(jié)果.但多數(shù)分詞算法如詞典匹配、正逆向最大匹配法、雙向最大匹配法以及CRF 序列標(biāo)注[2]等,均從文本的語法、詞性規(guī)律入手,依賴于標(biāo)注過詞性、詞頻等信息的詞典來對文本進行分詞,從而得到盡可能消除歧義的分詞結(jié)果,然而面對網(wǎng)絡(luò)輿情空間中充斥著的大量不規(guī)范使用、不符合詞性規(guī)律、口語化嚴重以及包含大量詞典未登錄詞的文本語料時,傳統(tǒng)分詞算法對命名實體以及網(wǎng)絡(luò)用語等新詞的識別能力較差.
在中文自然語言處理工具中,Jieba(結(jié)巴分詞)是一個簡單、高效、靈活的Python 工具庫,Jieba 工具庫中的語句簡潔凝練,提供多種模式對中文文本進行分詞,并且可以自由修改詞典文件,深受廣大自然語言處理初學(xué)者喜愛.為解決當(dāng)前分詞算法對于新詞識別的痛點,本文提出使用關(guān)聯(lián)置信度與連接詞拆分的新詞發(fā)現(xiàn)算法,通過與結(jié)巴分詞結(jié)果結(jié)合的方式,對網(wǎng)絡(luò)輿情文本中的新詞進行發(fā)現(xiàn),該算法不依賴于完備的已標(biāo)注詞典以及龐大的訓(xùn)練語料,采用計算一個詞與其左右鄰接詞集中各個詞之間的關(guān)聯(lián)置信度的方法,對被結(jié)巴分詞錯誤拆分的詞語進行合并,并對包含連接詞的較長新詞進行拆分,從而實現(xiàn)對新詞尤其是命名實體、網(wǎng)絡(luò)用語的發(fā)現(xiàn)功能,并避免新詞結(jié)果過長形成短語塊的情況出現(xiàn).
在中文自然語言處理中,新詞指的是在分詞詞典中沒有收錄,但又確實能稱為詞的詞語[1],如一些命名實體(人名、地名)以及網(wǎng)絡(luò)用語,此類詞語靈活性大,大多不符合語法、構(gòu)詞法規(guī)律,但又能表示一定的語義,是否能準(zhǔn)確識別文本中的新詞會直接影響后續(xù)算法對文本語義的判斷,新詞識別的準(zhǔn)確率已成為評價分詞算法的重要標(biāo)準(zhǔn).
目前國內(nèi)外針對新詞發(fā)現(xiàn)的算法分為兩類,包括基于頻繁模式的新詞發(fā)現(xiàn)算法以及基于序列標(biāo)注的新詞發(fā)現(xiàn)算法.
基于頻繁模式的新詞發(fā)現(xiàn)算法通過統(tǒng)計方法計算詞語在語料中的相關(guān)信息,進而確定需要合并或重新切分的詞語.王雪瑞等[3]針對直播彈幕文本,引入邊界增強上下文熵的概念,通過計算詞語的上下文熵確定一個被拆分的詞應(yīng)該與其左右哪一側(cè)的詞語進行合并,從而得到新詞;顧森[4]基于大量的文本語料,以詞語的內(nèi)部凝聚程度以及自由運用程度為判別標(biāo)準(zhǔn),計算詞語在文本語料中的熵值,文獻認為熵值低的詞可能是被錯誤拆分的詞,應(yīng)對這樣的詞進行合并處理從而得到新詞;王欣[5]利用多字互信息來判定一個詞語的內(nèi)部結(jié)合程度,并通過鄰接熵確定詞語的左右邊界,該方法從內(nèi)外兩方面入手,認為一個詞語應(yīng)該是內(nèi)部緊密關(guān)聯(lián)且與外部其它詞語相對獨立的,通過計算兩種標(biāo)準(zhǔn)提高了新詞發(fā)現(xiàn)的準(zhǔn)確性;Zhang 等[6]利用帶有詞性標(biāo)注和詞頻標(biāo)記的詞典,結(jié)合互信息和最大熵模型在分詞過程中發(fā)現(xiàn)新詞;陳小紅[7]等針對游戲領(lǐng)域文本,通過從相關(guān)語料庫中抽出部分游戲術(shù)語、簡稱與知識庫進行結(jié)合,對文本數(shù)據(jù)進行詞性、領(lǐng)域標(biāo)記,該方法將分詞算法轉(zhuǎn)換為知識庫實體鏈接問題,在特定領(lǐng)域下提高了分詞結(jié)果的準(zhǔn)確性;王珊珊等[8]通過對一個時間跨度的文本特征進行分析比對,為每個詞語添加時間跨度信息來判斷該詞是否為新詞、熱點詞;翟暢[9]提出了基于非結(jié)構(gòu)化文本的目標(biāo)領(lǐng)域未登錄詞識別策略和基于商業(yè)語料庫融合的分詞詞典構(gòu)建策略,通過統(tǒng)計詞語在文本語料中的頻度信息,結(jié)合領(lǐng)域術(shù)語知識庫,對特定領(lǐng)域的文本進行新詞發(fā)現(xiàn);張婧等[10]通過詞向量訓(xùn)練得到弱成詞詞串集合,結(jié)合詞頻統(tǒng)計對候選新詞進行了有效過濾,在社交媒體語料分詞實驗中取得了較高的準(zhǔn)確率;袁華等[11]提出了基于最大置信度的中文復(fù)合新詞發(fā)現(xiàn)方法,該方法采用數(shù)據(jù)挖掘中Apriori 算法的支持度與置信度,將新詞發(fā)現(xiàn)任務(wù)轉(zhuǎn)化為頻繁模式發(fā)現(xiàn)任務(wù),首先獲取文本數(shù)據(jù)的頻繁模式,再利用剪枝操作對頻繁模式結(jié)果進行精簡,最終得出復(fù)合新詞結(jié);吳宏洲[12]與李亞松[13]等均通過從語料中提取候選詞,計算候選詞的支持度與置信度,并分別設(shè)定閾值對候選詞進行篩選,從而完成對文本語料的新詞抽取工作.
基于頻繁模式的新詞發(fā)現(xiàn)算法首先要求候選詞具有一定的頻繁程度,進而以詞語的熵值、互信息、支持度與置信度的計算為主,熵值包括信息熵、鄰接熵,熵值可以衡量詞語在語料中的混亂程度,一個詞語的熵值越高,則該詞在語料中越靈活,可以跟多個其它詞語組成上下文,這說明這種詞語本身就是比較完備的整體,可以算作一個詞語,而熵值越低說明能與該詞語組成上下文的詞語越少,這說明該詞可能是一個被錯誤切分的詞,需要與其左右鄰接詞組成一個完整的詞語;互信息用以衡量一個詞內(nèi)部各個文字之間的相互依賴程度,互信息越大說明組成該詞的各個字詞單元不應(yīng)再進行拆分;支持度與置信度是數(shù)據(jù)挖掘中的常用指標(biāo),分別衡量了事務(wù)項的頻繁程度與關(guān)聯(lián)程度.基于頻繁模式的新詞發(fā)現(xiàn)算法通常是在初步分詞后,對分詞結(jié)果進行再檢驗,對錯誤拆分的詞語進行合并,對錯誤合并的詞語進行拆分,從而發(fā)現(xiàn)語料中的新詞.然而在包含新詞的新事件發(fā)生初期,總體數(shù)據(jù)量較少,難以利用統(tǒng)計法發(fā)現(xiàn)頻繁模式,在以微博、微信朋友圈、直播彈幕為主的網(wǎng)絡(luò)短文本中,由于詞語搭配的出現(xiàn)偶然性較大,在少量語料中計算得到的熵值并不準(zhǔn)確,從而會導(dǎo)致多個詞語被合并成短語塊的情況出現(xiàn),從而使得分詞結(jié)果的粒度變粗,進而影響后續(xù)文本處理結(jié)果的準(zhǔn)確性.
基于序列標(biāo)注的新詞發(fā)現(xiàn)算法通過對文本中詞語的詞性、文字在詞中的位置等信息進行標(biāo)注,通過預(yù)測序列變化的方式對文本進行分詞,在分詞過程中發(fā)現(xiàn)新詞.曹菲[14]解決了基于Hash 的正向回溯算法解決分詞過程中的歧義問題,并將CRF 模型與正向最大匹配相結(jié)合,從而提高對文本中命名實體的識別準(zhǔn)確率;李博涵等[15]針對Prefixspan 算法在文本序列標(biāo)注過程中容易出現(xiàn)的問題,如序列模式不連續(xù)、序列模式項之間存在包含關(guān)系等,融合了詞語的頻繁模式對算法進行了改進,該方法基于詞語的頻繁程度、詞性與語義對序列標(biāo)注的結(jié)果進行過濾從而得到新詞;色差甲等[16]將最大熵模型嵌入到隱式馬爾科夫模型HMM 中,進而對文本的BEMS 序列進行標(biāo)注,該方法在藏文新詞如人名、地名、機構(gòu)名、事件名等方面具有良好的效果,提高分詞結(jié)果的正確率、召回率以及F 值接近2 個百分點;周霜霜等[17]提出了一種融合規(guī)則和統(tǒng)計的微博新詞發(fā)現(xiàn)算法,該方法通過對微博文本詞語的構(gòu)詞規(guī)則進行歸納總結(jié),同時結(jié)合CRF 模型對文本的BEMS 序列進行標(biāo)注,從而提高對微博文本分詞和詞性標(biāo)注的精度.
基于序列標(biāo)注的新詞發(fā)現(xiàn)算法,是在基于序列標(biāo)注的分詞算法基礎(chǔ)上進行改進,使得序列標(biāo)注的準(zhǔn)確性有所提高,以BEMS 序列為標(biāo)注法的新詞發(fā)現(xiàn)算法居多,其中B 表示詞語開始的字,M 表示詞語中間的字,E 表示詞語結(jié)束的字,S 表示單字詞語.對文本的序列標(biāo)注依賴于有標(biāo)注的訓(xùn)練語料,通過訓(xùn)練語料才能得出序列變化的概率分布模型,而針對社交媒體中的短文本數(shù)據(jù)缺乏可靠的已標(biāo)記語料,且人為標(biāo)注的方法費時費力.
針對上述兩大類新詞發(fā)現(xiàn)算法中的不足,本文受數(shù)據(jù)挖掘中Apriori 算法的啟發(fā),提出結(jié)合關(guān)聯(lián)置信度與結(jié)巴分詞的新詞發(fā)現(xiàn)算法,該算法以結(jié)巴分詞中精確模式的分詞結(jié)果為基礎(chǔ),通過計算詞語與其左右鄰接詞集中各個詞語之間的關(guān)聯(lián)置信度,找出被錯誤切分的詞語,將多個詞語間關(guān)聯(lián)置信度高的詞語合并成候選新詞,之后通過識別候選新詞中的連接詞來防止多個詞語被連接成短語塊的情況出現(xiàn),從而實現(xiàn)在單條輿情文本而非整體數(shù)據(jù)集中的新詞發(fā)現(xiàn)工作.
在第2 部分中,本文介紹了結(jié)巴分詞的基本原理,對本文提出的新詞發(fā)現(xiàn)算法中的6 個組成部分進行定義,并闡述算法的具體流程;第3 部分中,本文以微博文本為實驗語料,測試本文提出的新詞發(fā)現(xiàn)算法的性能,并與結(jié)巴分詞、文獻[12]中基于最大置信度的中文復(fù)合新詞發(fā)現(xiàn)方法的結(jié)果進行對比實驗,并設(shè)置不同參數(shù)來驗證參數(shù)對新詞結(jié)果的影響;在第4 部分中,將對本文的貢獻進行總結(jié),并對后續(xù)工作進行展望.
結(jié)巴分詞是一種融合了Trie 樹詞圖掃描、動態(tài)規(guī)劃以及HMM 模型的分詞算法,結(jié)合了基于詞典匹配的分詞算法簡單、準(zhǔn)確以及基于序列標(biāo)注的分詞算法對詞典未登錄詞具有區(qū)分能力的優(yōu)點,結(jié)巴分詞提供3 種分詞模式,分別是精確模式、全模式以及搜索引擎模式,精確模式試圖將句子最精確地切分,全模式則是將句中所有可能成詞的詞語都找出,搜索引擎模式是在精確模式的基礎(chǔ)上,對長詞再次切分得到適合用于搜索引擎的分詞結(jié)果.由于全模式以及搜索引擎模式的分詞結(jié)果會將一個詞語多次拆分,因此其結(jié)果會出現(xiàn)一個詞包含另一個詞的情況,從而改變了原文本的順序,若在此結(jié)果上對錯誤拆分的詞語進行合并會得到錯誤的結(jié)果.本文采用以結(jié)巴分詞提供的精確模式分詞結(jié)果為基礎(chǔ),該模式的分詞結(jié)果粒度細,極少出現(xiàn)詞語被錯誤合并的情況,但詞語易被錯誤拆分,因此本文提出的算法通過計算一個詞語與其左右鄰接詞集中各個詞語的關(guān)聯(lián)置信度來對錯誤拆分的詞語進行合并得到候選新詞,進而采用判斷候選新詞中的連接詞左右平均關(guān)聯(lián)置信度的情況對過度合并的候選新詞進行拆分.針對算法中的分詞結(jié)果、左右鄰接詞集、關(guān)聯(lián)置信度、關(guān)聯(lián)置信度閾值、候選新詞以及連接詞有以下定義:
定義1.分詞結(jié)果:設(shè)一段文本為T,通過調(diào)用Python 中的Jieba 庫中的cut()方法,將文本T作為參數(shù)傳入,得到一個有序的列表Tc=[w1,···,wi,···,wn] (1≤i≤n),其中wi表示一個字詞單元,它可能是一個單獨的字,也可能是一個詞語,也可能是標(biāo)點符號,下標(biāo)i并不是字詞單元在序列中出現(xiàn)的位置,而是表示字詞單元的唯一標(biāo)識,即一個wi表示一個唯一的字詞單元,同一字詞單元可以在Tc中多次出現(xiàn),稱Tc為文本T的分詞結(jié)果.
定義2.左右鄰接詞集:在文本T的分詞結(jié)果Tc中,對于一個字詞單元wi,其左側(cè)鄰接詞集NL是由wi在Tc中每個出現(xiàn)位置左側(cè)的字詞單元(標(biāo)點符號除外)構(gòu)成的集合;其右側(cè)鄰接詞集NR是由wi在Tc中每個出現(xiàn)位置右側(cè)的字詞單元(標(biāo)點符號除外)構(gòu)成的集合.
定義3.關(guān)聯(lián)置信度:對于兩個字詞單元wi與wj,若wi與wj分別存在于彼此的左側(cè)鄰接詞集與右側(cè)鄰接詞集,或分別存在于彼此的右側(cè)鄰接詞集與左側(cè)鄰接詞集時,則可以計算wi與wj的關(guān)聯(lián)置信度,關(guān)聯(lián)置信度用以衡量在文本T中一個字詞單元出現(xiàn)的情況下,另一個字詞單元與之相鄰出現(xiàn)的概率,計算公式如式(1)所示:
Conf(wi→wj)表示字詞單元wi出現(xiàn)時,wj與其鄰接出現(xiàn)的關(guān)聯(lián)置信度,計算方式為wi與wj在文本T中鄰接出現(xiàn)的概率除以wi在文本T中出現(xiàn)的概率,基于大數(shù)定律,wi與wj在文本T中鄰接出現(xiàn)的概率可以用wi與wj在文本T中鄰接出現(xiàn)的次數(shù)除以分詞結(jié)果Tc的列表長度表示,同理,wi在文本T中出現(xiàn)的概率可以用wi在文本T中出現(xiàn)的次數(shù)除以分詞結(jié)果Tc的列表長度表示.
定義4.關(guān)聯(lián)置信度閾值:在計算兩個字詞單元wi與wj的關(guān)聯(lián)置信度時,需要分別計算關(guān)聯(lián)置信度Conf(wi→wj)與Conf(wj→wi),關(guān)聯(lián)置信度閾值Th用以規(guī)定兩個字詞單元可以合并成候選新詞時需要達到的最小關(guān)聯(lián)置信度的值,只有當(dāng)Conf(wi→wj)與Conf(wj→wi)均大于Th時,才稱兩個字詞單元wi與wj滿足關(guān)聯(lián)置信度閾值.
定義5.候選新詞:當(dāng)兩個字詞單元wi與wj滿足關(guān)聯(lián)置信度閾值Th時,可對兩個字詞單元進行合并得到(wi+wj),稱(wi+wj)為一個候選新詞.
定義6.連接詞:若字詞單元wi與wj可以合并為(wi+wj),且字詞單元wj與wk可以合并為(wj+wk),則可合并為候選新詞(wi+wj+wk),稱字詞單元wj為候選新詞(wi+wj+wk)的連接詞;若候選新詞由多個字詞單元組成,則除了第一個和最后一個字詞單元,其余構(gòu)成候選新詞的字詞單元均為該候選新詞的連接詞.
基于上述定義,結(jié)合關(guān)聯(lián)置信度與結(jié)巴分詞的新詞發(fā)現(xiàn)算法包括文本分詞、關(guān)聯(lián)置信度計算以及連接詞拆分3 個步驟.
文本分詞步驟采用Jieba 工具庫提供的精確分詞模式,對待進行新詞發(fā)現(xiàn)的文本T進行拆分得到其分詞結(jié)果Tc.本文所提出的新詞發(fā)現(xiàn)算法,是對少量網(wǎng)絡(luò)輿情文本而非整體數(shù)據(jù)集進行新詞發(fā)現(xiàn),由于網(wǎng)絡(luò)輿情文本長度較短,若一個詞語在一條網(wǎng)絡(luò)輿情文本中只出現(xiàn)一次,則通過定義3 計算得到的該詞與其左右鄰接詞的關(guān)聯(lián)置信度容易達到100%,因此該詞與其左右鄰接詞極易滿足關(guān)聯(lián)置信度閾值從而成為一個候選新詞.
為避免此類偶然情況的發(fā)生,本文提出的新詞發(fā)現(xiàn)算法采用將多條網(wǎng)絡(luò)輿情文本進行合并以加長待分詞文本長度.設(shè)網(wǎng)絡(luò)輿情文本數(shù)據(jù)共有n條,每m條文本數(shù)據(jù)進行合并得到合并文本段T’=T1+T2+···+Tm,共得到 ?n÷m?個合并文本段,對每個合并文本段進行分詞,得到多個分詞結(jié)果Tc',對每個分詞結(jié)果Tc'進行新詞發(fā)現(xiàn).
對于一個分詞結(jié)果Tc',通過遍歷Tc'中的各個字詞單元得到每個字詞單元wi在Tc'中出現(xiàn)的次數(shù)以及wi與其左右鄰接詞集中的各個字詞單元在Tc'中鄰接出現(xiàn)的次數(shù),基于式(1)計算每個字詞單元與其左右鄰接詞集中各個字詞單元之間的關(guān)聯(lián)置信度,將所有滿足關(guān)聯(lián)置信度閾值Th的字詞單元對進行合并,得到候選新詞集W’.
候選新詞集W’是將所有滿足關(guān)聯(lián)置信度閾值的字詞單元對合并得到的集合,W’中的候選新詞可能是將被結(jié)巴分詞過度拆分的詞語合并得到的正確新詞結(jié)果,也可能是被過度合并形成的短語塊,形成短語塊的原因可能是多個字詞單元構(gòu)成的短語在文本中多次、單調(diào)出現(xiàn),單調(diào)出現(xiàn)指的是構(gòu)成該短語塊的字詞單元在合并文本段T’中只與構(gòu)成該短語的其它字詞單元鄰接出現(xiàn),導(dǎo)致這些字詞單元之間均滿足關(guān)聯(lián)置信度閾值而被合并,有些短語可能是較長的命名實體,而有些則是包含動詞結(jié)構(gòu)的實際短語,例如“我/去/上學(xué)”,短語不屬于新詞發(fā)現(xiàn)的范疇,因此需要對候選新詞集W’中的候選新詞進行過濾篩選,從而得到最終的新詞結(jié)果.
在本文提出的新詞發(fā)現(xiàn)算法中,定義了構(gòu)成短語的字詞單元中連接詞的存在,在連接詞拆分步驟中,遍歷候選新詞集W'中的候選新詞,若一個候選新詞由3 個及以上的字詞單元構(gòu)成(即候選新詞中有存在連接詞),則對其進行以下操作:
(1)找出候選新詞中的連接詞,判斷每個連接詞與其左右鄰接詞的平均關(guān)聯(lián)置信度的大小情況,平均關(guān)聯(lián)置信度為Conf(wi→wj)與Conf(wj→wi)的平均值;
(2)若一個連接詞與其左側(cè)、右側(cè)字詞單元的平均關(guān)聯(lián)置信度值不同,則將該候選新詞進行拆分,拆分點為連接詞與其左、右側(cè)字詞單元平均關(guān)聯(lián)置信度較小的兩字詞單元之間;
(3)若一個連接詞與其左側(cè)、右側(cè)字詞單元的平均關(guān)聯(lián)置信度值相同,則保持兩個字詞單元合并的狀態(tài),繼續(xù)判斷候選新詞中的下一個連接詞;
(4)通過將帶有連接詞的候選新詞進行拆分,去除由單個字詞單元組成的結(jié)果,得到最終新詞結(jié)果.
通過對候選新詞中的連接詞進行拆分,可以把由多個字詞單元合并成的短語塊進行拆解,降低了最終新詞結(jié)果的粒度,使得拆分出來的新詞更為獨立,從而防止新詞淹沒在短語中.
為驗證本文提出的新詞發(fā)現(xiàn)算法的有效性,筆者使用網(wǎng)絡(luò)爬蟲在新浪微博中爬取了2019年9月至10月內(nèi)涉及體育賽事以及國慶檔電影總共1 GB 的純文本數(shù)據(jù),包括2644 494 條微博言論,512 948 156 個字符.實驗通過設(shè)置不同合并文本數(shù)m與關(guān)聯(lián)置信度閾值Th進行了多組實驗.由于實驗所使用的數(shù)據(jù)時效性較新,網(wǎng)絡(luò)中缺乏相應(yīng)的正確詞語標(biāo)注內(nèi)容,因此本文無法使用正確率、召回率等性能指標(biāo)對新詞發(fā)現(xiàn)結(jié)果進行評價,本文將結(jié)合具體情況對結(jié)果進行分析.
專利[11]與文獻[12,13]均采用了置信度作為新詞發(fā)現(xiàn)的有效工具,對初步分詞結(jié)果進行處理以得出新詞結(jié)果.然而在計算置信度之前,需要計算詞語的支持度,只有滿足最小支持度也就是在文本語料中出現(xiàn)次數(shù)高于一定閾值的字詞單元,才有資格與其它字詞單元計算置信度,并且在得出候選詞后,沒有對候選詞進行切分操作.實驗中選用文獻[12]中的新詞抽取方法,同樣對結(jié)巴分詞精確模式的初步分詞結(jié)果進行處理,與本文所提出的新詞發(fā)現(xiàn)算法的結(jié)果進行了對比.
實驗所用操作系統(tǒng)采用Windows 10 專業(yè)版操作系統(tǒng),處理器為Inter(R)Core(TM)i7-8700K CPU,3.70 GHz,16 GB 內(nèi)存,實驗代碼使用Python 3.5 編寫,其中Jieba 工具庫的版本號為0.39.
本文所提出的新詞發(fā)現(xiàn)算法,采用了合并多條文本數(shù)據(jù)的方式以擴大單條文本長度,從而減少偶然出現(xiàn)的詞語搭配的關(guān)聯(lián)置信度達到100% 的情況出現(xiàn),因此合并文本數(shù)m的設(shè)置會影響最終新詞發(fā)現(xiàn)結(jié)果的情況.在本組實驗中首先設(shè)置m=100,即每100 條微博言論數(shù)據(jù)融合為1 條文本數(shù)據(jù),融合處理后共有26 445 條融合后的文本數(shù)據(jù),使用Jieba 工具庫的精確模式對每條文本數(shù)據(jù)進行分詞,標(biāo)出標(biāo)點符號,之后針對每條融合文本數(shù)據(jù)的分詞結(jié)果,統(tǒng)計每個字詞單元在當(dāng)前融合文本中出現(xiàn)的次數(shù)并計算字詞單元與其左右關(guān)聯(lián)詞集中各字詞單元的關(guān)聯(lián)置信度,設(shè)置關(guān)聯(lián)置信度閾值Th=0.9,根據(jù)平均關(guān)聯(lián)置信度的大小對合并出的帶有連接詞的候選新詞進行切分,共得到新詞結(jié)果1874 個.新詞是從多個合并文本段中得出,最終新詞結(jié)果是由每個合并文本段中得到的新詞合并而來,新詞的出現(xiàn)次數(shù)則是在全部合并文本段中出現(xiàn)的總數(shù),部分新詞結(jié)果如表1所示;令m=10,Th=0.9,使用相同語料共挖掘出新詞567 個,部分新詞結(jié)果如表2所示,在表2中去除了表1中出現(xiàn)過的新詞.其中在文獻[12]的新詞抽取方法中同樣對融合文本數(shù)據(jù)進行處理,并設(shè)支持度為10%,置信度為90%.
表1 合并文本數(shù)m=100 部分新詞結(jié)果
表2 合并文本數(shù)m=10 部分新詞結(jié)果
由上述實驗可見,本文新詞發(fā)現(xiàn)算法在對命名實體的識別上具有出色表現(xiàn),可合并兩組及以上被結(jié)巴分詞過度拆分的詞語,準(zhǔn)確發(fā)現(xiàn)國內(nèi)外人名、影視劇名及網(wǎng)絡(luò)用語等;參數(shù)m的設(shè)置對新詞發(fā)現(xiàn)結(jié)果具有一定影響,m值越小則單條語料中字符數(shù)越少,因此一組詞語搭配在單條語料中出現(xiàn)的頻次更少,詞語搭配的多個詞語之間更容易達到關(guān)聯(lián)置信度閾值從而被本文算法認定為新詞.如“微博/視頻”、“北京/時間”等詞語,組成新詞的兩個詞語均具有明確的意義,組合后則成為具有不同含義的命名實體詞;如“X/玖/少年/團肖戰(zhàn)”、“曲尼/次/仁”等復(fù)雜命名實體的詞語,在結(jié)巴分詞完全錯誤的情況下可清晰準(zhǔn)確對過度拆分的詞語進行合并.組成此類復(fù)雜命名實體新詞中的連接詞如“少年”、“次”在總體語料中獨立出現(xiàn)的次數(shù)非常多,通過減少參數(shù)m的設(shè)置可減少此類連接詞在單條語料中出現(xiàn)的次數(shù),從而使其更易與其它詞語滿足關(guān)聯(lián)置信度閾值以得出準(zhǔn)確的新詞結(jié)果.
文獻[12]中的新詞抽取方法在字詞單元較為頻繁時,但由于缺少對候選詞的拆分過程,因此容易將字詞單元連接成較長的短語,如“國慶檔電影中國機長”;而當(dāng)字詞單元的頻繁程度低于最小支持度時,新詞抽取方法則不認為該字詞單元可能新詞的組成部分,因此無法識別出現(xiàn)次數(shù)較少的新詞.
關(guān)聯(lián)置信度閾值Th是衡量兩個字詞單元能否合并為候選新詞的界限,Th的值越低則兩個字詞單元更容易被合并.在本組對比實驗中,設(shè)置Th=0.5,m=100,得到的部分新詞發(fā)現(xiàn)結(jié)果如表3所示,在表3中詞去除了在表1中出現(xiàn)過的新詞.其中在文獻[12]的新詞抽取方法中設(shè)支持度為10%,置信度為50%.
表3 關(guān)聯(lián)置信度閾值Th=0.5 部分新詞結(jié)果
對比表3與表1的結(jié)果可以發(fā)現(xiàn),通過降低關(guān)聯(lián)置信度閾值Th的取值,可以提升對由“中國”、“我的”等高頻詞匯組成的新詞的發(fā)現(xiàn)能力,由于實驗所用語料臨近新中國成立70 周年,因此“中國”、“祖國”等詞語出現(xiàn)的次數(shù)較多,其它詞語很難與“中國”、“祖國”達到較高關(guān)聯(lián)置信度,但在降低關(guān)聯(lián)置信度閾值后,本文提出的算法成功挖掘出新詞“中國機長”、“我和我的祖國”,這兩個詞語為2019年國慶檔熱映的電影名,是不同于其組成部分詞語意義的命名實體詞;且可以看出其在語料中出現(xiàn)極為頻繁;同時由于降低了關(guān)聯(lián)置信度閾值,如同“開學(xué)/第一課”、“女籃/亞洲/杯”、“東京/奧運會”等新詞被挖掘,這些新詞的每個組成部分都具有實際意義,合并在一起時可以讓命名實體包含更多信息,并且更加符合文本想要表達的實體.
在降低置信度取值后,文獻[12]中的新詞抽取方法會結(jié)合出更多的短語結(jié)果,同時對低頻度的新詞結(jié)果的識別能力較差,如要增加該方法對低頻新詞的識別能力,需要進一步降低支持度閾值,然而降低支持度閾值后會導(dǎo)致計算時間增加以及錯誤結(jié)果的出現(xiàn).
關(guān)聯(lián)置信度閾值Th的取值需要結(jié)合實際的語料情況,若設(shè)置過低則會挖掘出過多不正確的新詞,不正確的新詞結(jié)果中容易出現(xiàn)包含“的”、“我”、“和”等高頻字.對于不正確的新詞結(jié)果,可以通過高頻字詞典對新詞結(jié)果進行過濾,去除包含高頻字的新詞結(jié)果.
通過實驗驗證,本文所提出的結(jié)合關(guān)聯(lián)置信度與結(jié)巴分詞結(jié)果的網(wǎng)絡(luò)輿情新詞發(fā)現(xiàn)算法在新詞尤其是命名實體的發(fā)現(xiàn)工作中具有出色的表現(xiàn),結(jié)巴分詞在處理人名時,雖可以準(zhǔn)確識別姓氏,但結(jié)巴分詞難以準(zhǔn)確分出包含3 個及以上字數(shù)的人名,結(jié)巴分詞通常將姓氏字與跟在姓氏字后面的第一個字分為一詞,跟在姓氏字后面的第二個字則視為單獨的字,從而造成錯誤識別人名的情況,本文提出的算法通過計算組成人名的字詞之間的關(guān)聯(lián)性,在面對3 個及以上字數(shù)的人名時同樣可以準(zhǔn)確識別此類命名實體;針對網(wǎng)絡(luò)輿情中的網(wǎng)絡(luò)用語以及網(wǎng)絡(luò)媒體命名實體,結(jié)巴分詞通常會將此類詞語過度拆分為單個的字,本文提出的算法可以將其進行合并,從而得出詞典中未登錄且具有實際意義的網(wǎng)絡(luò)用語詞.
本文所提出的新詞發(fā)現(xiàn)算法是在少量文本語料中進行新詞發(fā)現(xiàn),雖然對網(wǎng)絡(luò)輿情文本尤其是以微博、直播彈幕為主的超短文本進行了合并以加長單條文本數(shù)據(jù)的長度,但令文本合并數(shù)m=10 時,單條合并文本字段符數(shù)不超過1000 個,本文所提出的新詞發(fā)現(xiàn)算法依然可以準(zhǔn)確發(fā)現(xiàn)新詞.因此本文提出的新詞發(fā)現(xiàn)算法不依賴于龐大的數(shù)據(jù)量,在新的網(wǎng)絡(luò)輿情事件發(fā)生的初期,缺乏數(shù)據(jù)量的情況下依然可以及時發(fā)現(xiàn)新事件文本數(shù)據(jù)中包含的新詞.
由于本文提出的新詞發(fā)現(xiàn)算法不進行字詞單元頻繁程度的判定,因此相比于其它應(yīng)用置信度對新詞進行抽取方法,可以對低頻度的新詞進行識別,同時在通過關(guān)聯(lián)置信度連接字詞單元后,通過對連接詞進行拆分,確保了新詞結(jié)果不會過長導(dǎo)致出現(xiàn)短語塊結(jié)果.
本文提出的結(jié)合關(guān)聯(lián)置信度與結(jié)巴分詞的新詞發(fā)現(xiàn)算法,是在Jieba 工具庫精確模式分詞結(jié)果的基礎(chǔ)上,通過計算字詞單元與其左右鄰接詞集中各個字詞單元之間的關(guān)聯(lián)置信度,將滿足關(guān)聯(lián)置信度閾值的字詞單元進行合并得到候選新詞,之后根據(jù)候選新詞中連接詞與其左右鄰接詞的平均關(guān)聯(lián)置信度大小關(guān)系對候選新詞進行拆分,從而彌補了結(jié)巴分詞容易將詞語過度拆分導(dǎo)致分詞結(jié)果不正確的錯誤,同時避免了字詞單元在合并過程中過度合并導(dǎo)致形成短語塊的問題.
實驗表明本文提出的新詞發(fā)現(xiàn)算法可以準(zhǔn)確識別新詞,尤其是命名實體以及網(wǎng)絡(luò)用語,并且該算法可以在語料數(shù)較少的數(shù)據(jù)集中準(zhǔn)確發(fā)現(xiàn)新詞,適應(yīng)了在新事件發(fā)生初期,包含新詞的數(shù)據(jù)量較少的實際應(yīng)用情況,使得文本分析工作可以在新事件爆發(fā)前率先發(fā)現(xiàn)新詞從而快速提取新事件信息.
本文提出的新詞發(fā)現(xiàn)算法是對結(jié)巴分詞的初步分詞結(jié)果進行修正,在今后的工作中將對本文提出的算法與其它較為成熟的分詞工具進行融合,使新詞發(fā)現(xiàn)的準(zhǔn)確率有進一步的提升.