鄒志文 朱紅澤 李玲 張大秀
摘要:針對傳統(tǒng)的新詞的提取方法無法有效地提取組合詞(常用詞和常用詞組合)的問題,該文提出基于改進(jìn)位置成詞概率和N元遞增算法的微博新詞的提取。算法的核心任務(wù)是通過改進(jìn)位置成詞概率和鄰接對結(jié)合來有效地提取由幾個毫無相關(guān)的常用詞拼接而成的新詞,即組合詞,從而提高算法的準(zhǔn)確率和召回率。首先,對由幾個微博話題下的一段時間內(nèi)評論所聚合成的微博長文本進(jìn)行預(yù)處理;然后,在N元遞增算法查詢的過程中,通過改進(jìn)位置成詞概率判斷頻繁字串的擴(kuò)展方向;最后,通過對頻繁字串剪枝來減少冗余字串。實驗結(jié)果證明本文所提出的算法能夠有效地提取微博新詞中的組合詞。
關(guān)鍵詞:微博新詞;位置成詞概率;N元遞增算法;組合詞;
中圖分類號:TP3? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ? ? 文章編號:1009-3044(2019)01-0001-02
1 引言
在微博平臺上,不同文化的碰撞導(dǎo)致了新詞的產(chǎn)生。這些新詞借助微博平臺快速的傳播,被人們迅速熟知并加以應(yīng)用,也會因此引發(fā)熱議。在微博平臺上,新詞大部分是通過拼接幾個毫無相關(guān)的常用詞,以用來表達(dá)新的含義。
因此如何快速地提取組合詞是微博新詞的提取的一個研究熱點。然而,由于微博文本與傳統(tǒng)的文本有著很多不同,比如其具有文本短小、信息片段化、語言隨意性等方面,所以傳統(tǒng)的新詞的提取方法可移植性差以及缺乏對組合詞(常用詞和常用詞組合) 識別。
針對上述問題,本文提出基于改進(jìn)位置成詞概率和N元遞增算法的微博新詞的提取。首先,對微博文本進(jìn)行預(yù)處理,去除和本文研究無關(guān)的內(nèi)容,如停用詞、鏈接、表情等。然后,在N元遞增算法查詢的過程中,通過對已找到的頻繁N字串右鄰接集合中的元素通過改進(jìn)位置成詞概率判斷擴(kuò)展方向。若大于預(yù)設(shè)的閾值,將其元素和頻繁[N]字串組合成頻繁[N+1]字串。最后,對頻繁字串集進(jìn)行剪枝。若集合中的元素的子集也存在于集合中,在集合中刪除其元素的子集。
本文的組織如下:第2節(jié)介紹基于改進(jìn)位置成詞概率的微博新詞發(fā)現(xiàn)算法的相關(guān)工作;第3節(jié)提出基于改進(jìn)位置成詞概率的微博新詞發(fā)現(xiàn)算法;第4節(jié)對本文算法進(jìn)行實驗;第5節(jié)對本文進(jìn)行總結(jié)。
2 相關(guān)工作
對于本文的微博新詞的提取工作,國內(nèi)外已有多數(shù)學(xué)者在此方面有過深入研究。梅莉莉[1]基于統(tǒng)計語言知識(包括詞頻、內(nèi)部結(jié)合緊密性)對新詞進(jìn)行抽取。雷一鳴等[2]提出一種基于詞語互信息模型和外部統(tǒng)計量的新詞發(fā)現(xiàn)方法。夭榮朋等[3]提出了基于改進(jìn)互信息(MI) 和鄰接熵(BE) 的微博新詞發(fā)現(xiàn)算法(MBN-Gram),解決了目前微博新詞發(fā)現(xiàn)算法中缺乏對多字詞(大于三字) 識別的問題。Shuai Zhang等人[4]提出了一種基于語法規(guī)則和統(tǒng)計信息新的詞提取方法。為解決經(jīng)典的統(tǒng)計量無法有效地區(qū)分新詞與非新詞的問題,SuQilong等[5]提出基于鄰接熵改進(jìn)的一種新統(tǒng)計量-加權(quán)鄰接熵。
3 本文算法
3.1 微博文本預(yù)處理
由于單個微博文本短小、信息碎片化,所以各個詞語統(tǒng)計量相近,從而無法有效地提取新詞。為了避免這一問題,本文將單個主題下的一段時間內(nèi)的微博文本拼接成微博長文本。然后刪除微博長文本中與本文研究沒有實質(zhì)性影響的內(nèi)容:1)刪除微博長文本中含有“@用戶名”字段。2)刪除符號“#主題#”。該符號中的字段是用戶的話題討論點。3)對微博文本中的繁體字轉(zhuǎn)換為簡體字。4)停用詞無法成為新詞,故刪除即可。
3.2 N元遞增算法
N元遞增算的基本算法思路:首先對文本進(jìn)行掃描,統(tǒng)計單字字頻。若大于閾值,將其字存放到頻繁單字集。然后根據(jù)每個頻繁單字的地址信息掃描語料并統(tǒng)計字頻,若大于閾值,將其字存放到頻繁二字集。最后,新產(chǎn)生的頻繁字串寫入文件后繼續(xù)擴(kuò)展,反復(fù)迭代,直到出現(xiàn)間隔符號或長度達(dá)到閾值。
由于N元遞增算法僅僅通過字頻獲取頻繁字串,所以需要對頻繁字串進(jìn)行統(tǒng)計量分析,以達(dá)到去除垃圾串(沒用完整意義的字串)的目的。然而由N元遞增算法所發(fā)現(xiàn)的頻繁字串中垃圾串占絕大部分,這造成了搜索時間的極大浪費。為了解決這一問題,在N元遞增算法擴(kuò)展時通過統(tǒng)計量判斷并對擴(kuò)展集進(jìn)行過濾。在搜索過程中刪除垃圾串使得下一輪搜索規(guī)模變小,從而減少搜索時間。
3.3 改進(jìn)位置成詞概率
然而傳統(tǒng)的統(tǒng)計量如“鄰接熵”“雙字耦合度”“位置成詞概率”等無法很好地過濾垃圾串。若單憑借位置成詞概率擴(kuò)展字串并且過濾垃圾串,新詞中組合詞會被劃分成兩個常用詞。為了解決上述問題,對位置成詞概率和鄰接熵進(jìn)行改進(jìn)。
定義1:鄰接字概率
記頻繁字串的右鄰接集合[wordright=r1,r2,…rrightm]的統(tǒng)計字頻為[fi,i=1,2,3…m],因此鄰接字概率公式為:
[Pi=fifw]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
式(1)中的[fw]是頻繁字串的字頻。當(dāng)右鄰接集合中某個元素占有很大比例時,即鄰接字概率很大,這表明此元素極有可能和頻繁N字串組合成為頻繁[N+1]字串。
定義2:字?jǐn)U展概率
為了上文提到的問題發(fā)生,對其劃分根據(jù)增加依據(jù)鄰接字概率,因此字?jǐn)U展概率的公式為:
[Pcmcn=α×Pn+(1-α)Pwordcn,1] ? ? ? (2)
公式(2)[ Pcmcn]是頻繁字串[cm]擴(kuò)展到頻繁字串[cmcn]的概率,[cn]是頻繁字串[cm]的右鄰接集合的元素。[0≤α≤1]為偏好參數(shù),用來調(diào)節(jié)字?jǐn)U展概率中字?jǐn)U展概率和單字位置成詞概率的權(quán)重。
3.4 擴(kuò)展集剪枝
對新詞“微信小程序”而言,“微信小程”“小程序”等均為垃圾串。在N元遞增算法過程中,每次擴(kuò)展詞都放在擴(kuò)展集,所以這類冗余字串在擴(kuò)展集中很常見。針對這類垃圾串,文本通過刪除子集對擴(kuò)展集進(jìn)行剪枝。如“abc”是新詞,則“ab”“bc”是冗余字串,即新詞“abc”的子集。具體擴(kuò)展集剪枝的過程如下:
在第一次擴(kuò)展后,擴(kuò)展集為[a b c ab bc],對擴(kuò)展集進(jìn)行子集剪枝,擴(kuò)展集為[ab bc]。同理,在第二次擴(kuò)展后,擴(kuò)展集為[ab bc abc],對擴(kuò)展集進(jìn)行子集剪枝,擴(kuò)展集為[abc]。
3.5 算法流程
首先對單個話題下微博文本整合成微博長文本,對微博長文本預(yù)處理,去除停用詞等。然后對微博文本掃描并統(tǒng)計其字頻,查詢出頻繁字串,根據(jù)字?jǐn)U展概率判斷出頻繁字串?dāng)U展方向。最后在每次擴(kuò)展之后對擴(kuò)展集剪枝,以達(dá)到刪除冗余字串的目的。如此反復(fù)擴(kuò)展迭代,直到無法繼續(xù)擴(kuò)展或長度達(dá)到閾值。所以基于改進(jìn)位置成詞概率的微博新詞發(fā)現(xiàn)算法如下:
在上述算法中主要判斷微博新詞候選集中的頻繁字串的擴(kuò)展方向和進(jìn)行子集剪枝。具體說明如下:
1) 步驟2到步驟4:判斷單字是否是頻繁模式,即判斷單字字頻是否大于預(yù)設(shè)的閾值,如果是,就將頻繁單字存取下來。
2) 步驟6到步驟12:判斷頻繁字串的擴(kuò)展方向,即右鄰接集合中每個元素的字?jǐn)U展概率是否大于預(yù)設(shè)的閾值。若是,頻繁字串構(gòu)和其元素成新的頻繁字串;反之,將該元素從右鄰接集合刪除。
3) 步驟14到步驟16:對微博新詞候選集進(jìn)行子集剪枝。當(dāng)候選集的每個詞的字?jǐn)?shù)大于5或者每個詞的右鄰接集合為空時,即每個詞無法擴(kuò)展,則停止擴(kuò)展迭代。
算法的時間復(fù)雜度分析:
首先對微博長文本進(jìn)行掃描,判斷每個單字字頻,此時時間復(fù)雜度為[On]。對每個字串分析每個右鄰接集合中的每個元素,所以該算法的時間復(fù)雜度為[On2]。
4 實驗分析
為了驗證文本的提取微博新詞的效果,本文從新浪微博上獲取了關(guān)于某兩個話題相關(guān)聯(lián)的所有微博,將所有的微博文本拼接成長文本。應(yīng)用本文算法對微博文本進(jìn)行新詞提取。實驗結(jié)果如下表所示:
對于每個主題而言,提取的新詞更多的是組合詞,如“洪荒之力”“葛優(yōu)躺”等。
5 總結(jié)
實驗結(jié)果表明,基于改進(jìn)位置成詞概率的微博新詞發(fā)現(xiàn)算法能夠快速、準(zhǔn)確地提取微博新詞中的組合詞,從而彌補傳統(tǒng)的新詞發(fā)現(xiàn)算法缺乏對組合詞識別的空缺。
參考文獻(xiàn):
[1] 梅莉莉.基于領(lǐng)域特殊性和統(tǒng)計語言知識的新詞抽取方法[D]. 北京理工大學(xué),2006, 1.
[2] 雷一鳴, 劉勇,霍華. 面向網(wǎng)絡(luò)語言基于微博語料的新詞發(fā)現(xiàn)方法[J]. 計算機工程與設(shè)計, 2017(03):789-794.
[3] 夭榮朋,許國艷,宋健. 基于改進(jìn)互信息和鄰接熵的微博新詞發(fā)現(xiàn)方法[J]. 計算機應(yīng)用,2016,36(10):2772-2776.
[4] Shuai Zhang, Qianren Liu, Lei Wang. A Weibo-Oriented Method for Unknown Word Extraction[C]. 2012 Eighth International Conference on Semantics, Knowledge and Grids, 2012:209-212.
[5] Qilong Su, Bingquan Liu. Chinese new word extraction from MicroBlog data[C]. Machine Learning and Cybernetics (ICMLC), 2013 International Conference on,2013(04):1874-1879.
[6] Shunxiang Zhang, Yin Wang, Shiyao Zhang, and Guangli Zhu. Building Associated Semantic Representation Model for the Ultra-short Microblog Text Jumping in Big Data. Cluster Computing-The Journal of Networks Software Tools And Applications,2016,19(3):1399-1410.