牛振東, 石鵬飛, 朱一凡, 張思凡
(北京理工大學(xué) 計(jì)算機(jī)學(xué)院,北京 100081)
短文本常指不超過(guò)200個(gè)字的文本,其主要特點(diǎn)是離散、即時(shí)產(chǎn)生以及用語(yǔ)新穎、噪聲較多[1-17]. 短文本的處理難點(diǎn),追本溯源是在于文本對(duì)象特征(即語(yǔ)言)本身所固有的多義性,即存在一詞多義 (polysemy)和一義多詞(synonymy)的特點(diǎn),而短文自身所具有的特征稀疏性和上下文缺失的情況,造成了語(yǔ)義難以明辨,理解偏差無(wú)法消解,最終形成短文本底層特征和高層語(yǔ)義之間巨大的語(yǔ)義鴻溝[2]. 為了破解這樣的難題,相關(guān)學(xué)者借助傳統(tǒng)的文本分類方法如SVM[3]、BAYES[4]、KNN[5]等,通過(guò)降低其離散性、減少噪聲特征、特征擴(kuò)展等手法來(lái)實(shí)現(xiàn)短文本的有效分類. 而超短文本[6]比短文本更短,指的是文本只由幾個(gè)字、詞組成,字、詞之間沒(méi)有任何的相關(guān)關(guān)系,也無(wú)法構(gòu)成任何有效的語(yǔ)義,文本包含的信息都集中在字、詞本身. 另外,超短文本數(shù)據(jù)一般沒(méi)有輔助標(biāo)簽信息,并且長(zhǎng)度在20個(gè)字以內(nèi),如海關(guān)類數(shù)據(jù)中的商品名稱:電熱水壺、舒膚佳養(yǎng)膚香皂等. 這些商品名稱數(shù)據(jù)不僅長(zhǎng)度較短,而且不帶有任何輔助標(biāo)簽信息[7].
隨著短信、在線社區(qū)、微博客的興起,網(wǎng)絡(luò)超短文本已初具規(guī)模,其發(fā)展趨勢(shì)已不可逆轉(zhuǎn). 特別是針對(duì)以即時(shí)消息、在線聊天記錄、BBS 標(biāo)題、手機(jī)短消息、微博交互、博客評(píng)論、新聞評(píng)論等為代表的超短文本信息 ,由于手持輸入設(shè)備和移動(dòng)交流方式的限定,不可能進(jìn)行長(zhǎng)篇累牘的交流. 另外,在日常文本自動(dòng)處理中,也遇到越來(lái)越多的超短文本處理需求. 然而,由于超短文本相較于一般短文本存在更加明顯的文本特征稀疏性和上下文缺失的情況,導(dǎo)致降低離散性等方法對(duì)其分類幾乎沒(méi)有效果,如何找出有效的處理方法成為了網(wǎng)絡(luò)信息數(shù)據(jù)中超短文本分類領(lǐng)域亟需解決的新課題[8-9].
除了互聯(lián)網(wǎng)數(shù)據(jù),超短文本作為一種常見(jiàn)的語(yǔ)言表達(dá)形式也出現(xiàn)在生活的各個(gè)方面. 作為其中的一個(gè)重要代表,商品名稱需要在蘊(yùn)含企業(yè)品牌、用途、特色等信息的同時(shí)盡可能減少自身長(zhǎng)度,造成了單位文本下信息量激增的現(xiàn)象. 加之俚語(yǔ)等因素的出現(xiàn),導(dǎo)致基于計(jì)算機(jī)的自動(dòng)化商品名稱分類具有挑戰(zhàn)性[10]. 例如,中國(guó)海關(guān)2018年12月份共計(jì)檢驗(yàn)檢疫出入境貨物79.815 6萬(wàn)批次,進(jìn)出口貨運(yùn)量37 835萬(wàn)噸,2018年累計(jì)進(jìn)口貨運(yùn)量287 643萬(wàn)噸,海關(guān)機(jī)構(gòu)需要將各種申報(bào)過(guò)關(guān)的貨物按其類別進(jìn)行分類,從而確定關(guān)稅、統(tǒng)計(jì)進(jìn)口貨物分布情況,以便進(jìn)行之后更深入的數(shù)據(jù)挖掘. 然而,通過(guò)人工審查進(jìn)行商品分類需要非常大的人力成本及很多的工作量,且往往由于貨物名目繁雜,采用人工的手段進(jìn)行分類的效率和長(zhǎng)期準(zhǔn)確率并不能得到保證. 因此需要考慮將這個(gè)問(wèn)題視作文本分類問(wèn)題,通過(guò)計(jì)算機(jī)輔助進(jìn)行處理. 雖然經(jīng)過(guò)多年來(lái)的研究,傳統(tǒng)文本分類方法已經(jīng)比較成熟,短文本的分類也有許多學(xué)者進(jìn)行了研究并取得了一定的進(jìn)展,但是申報(bào)貨物名稱是以超短文本的形式存在,文本上下文信息明顯缺失,并且通常會(huì)沒(méi)有輔助標(biāo)簽信息,這導(dǎo)致目前已存的文本分類方法對(duì)該類超短文本進(jìn)行分類時(shí),很難得出理想的效果.
針對(duì)上述問(wèn)題,本文提出了一種超短文本分類框架,該方法利用外部廣告語(yǔ)料知識(shí)庫(kù)和百科知識(shí)庫(kù)對(duì)超短文本進(jìn)行了特征擴(kuò)展以確定類別. 之后,本文實(shí)現(xiàn)了一個(gè)深度隨機(jī)森林分類器,對(duì)于不能直接通過(guò)百科知識(shí)庫(kù)確定類別的超短文本,利用廣告語(yǔ)料知識(shí)庫(kù)將其向量化,再使用深度隨機(jī)森林分類模型進(jìn)行分類. 此方法在以往方法基礎(chǔ)上,使用了一個(gè)隨機(jī)森林分類器,使得分類速度和準(zhǔn)確性顯著提高,滿足了商品名稱分類的實(shí)時(shí)性等要求.
對(duì)于傳統(tǒng)的商品名稱分類,在海關(guān)、工商等法律和監(jiān)管領(lǐng)域,手工分類是這些部門(mén)日常的工作內(nèi)容. 因此,相應(yīng)部門(mén)一般均制定了系統(tǒng)的商品類別標(biāo)簽[11-12]. 在自動(dòng)化分類領(lǐng)域,SONG[13]使用了傳統(tǒng)的數(shù)據(jù)庫(kù)存儲(chǔ)方式,每當(dāng)出現(xiàn)新的商品名稱時(shí)檢索與該名稱相似的已有名稱,并將該相似名稱的商品類別作為推薦的結(jié)果. 這種方式仍然沒(méi)有解決缺乏先驗(yàn)知識(shí)和無(wú)相似結(jié)果的情況下的“冷啟動(dòng)”問(wèn)題. 劉德建等[14]提出了將商品名稱進(jìn)行分詞,并依據(jù)基于詞法的模型實(shí)現(xiàn)相似度比較. 該方法能夠比單純的單文本匹配提供更加細(xì)致的檢索,但是超短文本自身的特性會(huì)導(dǎo)致分詞的過(guò)程準(zhǔn)確率堪憂,從而再次引出缺乏先驗(yàn)知識(shí)等一系列問(wèn)題.
不同于傳統(tǒng)文本具有較為完整的上下文,短文本主要具有離散性高、特征稀疏、噪聲較多等特點(diǎn),這些特點(diǎn)阻礙了傳統(tǒng)文本分類方法在短文本上的應(yīng)用. 因此,針對(duì)短文本的這些特點(diǎn),以往的研究主要從以下3個(gè)方面進(jìn)行:①降低短文本的離散性;②優(yōu)化訓(xùn)練樣本特征;③擴(kuò)展短文本特征.
郭東亮等[15]首先通過(guò)Word2vec的Skip-gram模型獲取短文特征,接著送入CNNs中進(jìn)一步提取高層次特征,最后通過(guò)K-max池化操作后放入Softmax分類器得出分類模型;WANG等[16]提出,通過(guò)不同大小的詞窗口進(jìn)行上下文詞嵌入,從而計(jì)算出短文本中的多尺度語(yǔ)義單元的向量表示,然后挑選語(yǔ)義單元中足夠近的詞表示構(gòu)成文本擴(kuò)展矩陣,最后通過(guò)CNN進(jìn)行分類;CHEN等[17]構(gòu)建相關(guān)主題文本數(shù)據(jù)庫(kù),利用LDA主題模型產(chǎn)生相應(yīng)的隱含主題矩陣,對(duì)于待分類文本首先抽取特征向量,使用主題矩陣重新對(duì)各分量賦予權(quán)重,之后再計(jì)算兩個(gè)文本之間的相似度;楊萌萌等[18]針對(duì)傳統(tǒng)向量空間模型在短文本分類中維數(shù)高和短文本特征稀疏問(wèn)題,分別提出了基于LDA模型主題分布相似度分類方法和基于LDA主題-詞分布矩陣的主題分布向量改進(jìn)方法,降低了相似度計(jì)算維度,融合了一定語(yǔ)義特征.
黃賢英等[19]針對(duì)KNN短文本分類算法存在的擴(kuò)充內(nèi)容導(dǎo)致的短文本分類效率降低的問(wèn)題,通過(guò)卡方統(tǒng)計(jì)提取某一類別中與該類別特征更加相似的訓(xùn)練樣本,將訓(xùn)練空間拆分細(xì)化,提高訓(xùn)練樣本的質(zhì)量,減少KNN短文本分類算法比較文本數(shù),從而提高效率;KALCHBRENNER等[20]提出動(dòng)態(tài)卷積神經(jīng)網(wǎng)絡(luò),不依賴于句法解析樹(shù),而是利用動(dòng)態(tài)K-Max池化操作提取全局特征;Sun選出最能代表短文本語(yǔ)義的詞語(yǔ)作為查詢,使用搜索引擎查找出較少的最匹配查詢的且具有類別標(biāo)簽的文本,然后選擇出現(xiàn)次數(shù)最多的類別作為此短文本的類別,從而實(shí)現(xiàn)分類[1-21].
ZHANG等[22]提出一種利用包含了待分類文本外部數(shù)據(jù)庫(kù),采用LDA進(jìn)行主題模型的訓(xùn)練,抽取文本主題,然后將主題整合入文本從而實(shí)現(xiàn)對(duì)文本進(jìn)行擴(kuò)充的方法. 利用擴(kuò)充后的文本訓(xùn)練出的向量進(jìn)行分類,使得錯(cuò)誤率顯著減少;ZHANG和WU[23]在2016年提出一種基于N-Gram模型的特征擴(kuò)展方法,在連續(xù)的詞序列中抽取特征擴(kuò)展庫(kù),然后通過(guò)短文本中的特征計(jì)算出不在文本中的詞的出現(xiàn)概率,從而實(shí)現(xiàn)特征的擴(kuò)展,之后使用貝葉斯分類器進(jìn)行分類;LIU等[24]使用Word2vec方法構(gòu)建了基于維基百科的相關(guān)語(yǔ)義概念集,然后利用此集合去擴(kuò)充短文本的特征,從而實(shí)現(xiàn)短文本的分類;BOLLEGALA等[25]把短文本包含的詞作為查詢輸入搜索引擎,利用返回的網(wǎng)頁(yè)數(shù)及文本片段來(lái)計(jì)算兩個(gè)查詢?cè)~之間的相似度分?jǐn)?shù),然后利用支持向量機(jī)對(duì)相似度分?jǐn)?shù)進(jìn)行整合,從而進(jìn)行語(yǔ)義相似度的度量.
以上方法對(duì)于200字以下的短文本,取得了一定的效果,也促進(jìn)了短文本分類的發(fā)展,但這些方法也有其自身的局限性. 降低短文本的離散性只對(duì)于內(nèi)部存在一定語(yǔ)義關(guān)系的短文本有較好的效果,通過(guò)這種方法可以挖掘出文本之中的概念間的相互關(guān)系,提高分類的精確性,但是對(duì)于離散度很高的、文本涉及的概念之間完全沒(méi)有相關(guān)性的,這種方法很難有所發(fā)揮. 精心選擇文本特征可以有效降低噪聲對(duì)短文本的影響,提高特征提取的質(zhì)量,但它并沒(méi)有解決短文本特征稀疏的問(wèn)題. 擴(kuò)展短文本特征有效地將短文本擴(kuò)展為相關(guān)的較長(zhǎng)的文本,使得可以利用成熟的文本分類方法對(duì)短文本進(jìn)行處理、分類,但其依然存在兩個(gè)問(wèn)題,分別是速度較慢和分類器性能較低. 在分類模型方面,近年來(lái)隨著計(jì)算設(shè)備的運(yùn)算與處理性能的不斷增加,出現(xiàn)了越來(lái)越多的多分類器組合和堆疊的集成學(xué)習(xí)方法. 2017年,南京大學(xué)周志華等[26]提出了將隨機(jī)森林等分類器作為元素首次構(gòu)建出了層級(jí)模式的集成學(xué)習(xí)方法,并將其命名為深度隨機(jī)森林(gcForest),該模型在文本情感分析、低維度特征、手勢(shì)識(shí)別及面部識(shí)別等多個(gè)有監(jiān)督學(xué)習(xí)任務(wù)中在準(zhǔn)確性和訓(xùn)練時(shí)間上均取得了良好的結(jié)果.
在超短文本領(lǐng)域,YANG等[27]于2018年提出了基于協(xié)同過(guò)濾方法的超短文本分類模型. 該模型雖然能夠在一定程度上通過(guò)協(xié)同過(guò)濾模型解決稅務(wù)領(lǐng)域的超短文本分類問(wèn)題,但是需要待分類數(shù)據(jù)擁有商家填寫(xiě)的預(yù)判類別,從而構(gòu)造用戶-項(xiàng)目矩陣,對(duì)發(fā)票上的物品類別進(jìn)行推薦,最終判斷商家填寫(xiě)的發(fā)票信息是否有誤. 本文主要在擴(kuò)展短文本特征方面進(jìn)行研究,針對(duì)速度和分類器的分類性能兩個(gè)方面,采用“分流”策略進(jìn)行分類:利用基礎(chǔ)知識(shí)庫(kù)訓(xùn)練一個(gè)深度隨機(jī)森林分類器,對(duì)于知識(shí)庫(kù)中存在的知識(shí),直接確定類別;對(duì)于知識(shí)庫(kù)中不包含的知識(shí),采用Word2vec工具對(duì)擴(kuò)展后的特征進(jìn)行向量化,然后用深度隨機(jī)森林分類器進(jìn)行快速準(zhǔn)確地分類.
如圖1所示,所提出的分類框架依賴了外部知識(shí)庫(kù). 首先,根據(jù)數(shù)據(jù)定義出相應(yīng)的商品類別,并對(duì)類別名稱進(jìn)行擴(kuò)展;之后在網(wǎng)絡(luò)上收集的大規(guī)模廣告語(yǔ)料庫(kù)作為知識(shí)庫(kù),主要用于對(duì)超短文本進(jìn)行向量化;接著從商品名的數(shù)據(jù)中抽取出一定量的樣本,向量化后作為訓(xùn)練集訓(xùn)練出一個(gè)分類器,并設(shè)置分類器的擴(kuò)展集以對(duì)分類器進(jìn)行更新. 在對(duì)商品名進(jìn)行分類時(shí),先將其作為查詢輸入到百科知識(shí)庫(kù),抽取類別信息,如果成功查詢到相關(guān)的百科信息,則可利用實(shí)體和關(guān)系抽取工具抽取其分類信息,并將該次的類別結(jié)果其加入分類器擴(kuò)展集;若沒(méi)有查詢到相關(guān)百科信息,則將該文本輸入到搜索引擎及外部的廣告語(yǔ)料庫(kù)等外部知識(shí)庫(kù)以將其向量化,再利用分類器進(jìn)行分類,確定分類結(jié)果. 其中,當(dāng)分類器擴(kuò)展集大小與分類器的訓(xùn)練集大小相同時(shí),就將擴(kuò)展集中的樣本加入訓(xùn)練集,重新訓(xùn)練分類器,直到訓(xùn)練集達(dá)到設(shè)定的上限.
圖1 超短文本分類框架Fig.1 Classification framework of ultra-short text
Word2vec是2013年Google開(kāi)源的一款工具,它的核心是神經(jīng)網(wǎng)絡(luò)的方法,采用CBOW和Skip-Gram兩種模型,以文本集作為輸入,通過(guò)訓(xùn)練生成每個(gè)詞對(duì)應(yīng)的詞向量,保證具有相近語(yǔ)義的詞,映射到向量空間中,向量之間的距離也相對(duì)較小.
Word2vec的CBOW模型利用某個(gè)詞的上下文去預(yù)測(cè)當(dāng)前詞,Skip-gram模型恰好相反,利用當(dāng)前詞去預(yù)測(cè)它的上下文. 這兩種模型的訓(xùn)練過(guò)程類似,在此只介紹CBOW的訓(xùn)練過(guò)程. CBOW是一種神經(jīng)網(wǎng)絡(luò)模型,它的輸入層是當(dāng)前詞w的上下文中的2c個(gè)詞向量,而隱含層向量Xw是這2c個(gè)詞向量的累加和. 輸出層是以訓(xùn)練語(yǔ)料庫(kù)中出現(xiàn)過(guò)的詞作葉子結(jié)點(diǎn),以各詞在語(yǔ)料庫(kù)中出現(xiàn)的次數(shù)作為權(quán)值構(gòu)造出的一棵Huffman樹(shù). 在這棵Huffman樹(shù)中,葉子結(jié)點(diǎn)共N(=|D|)個(gè),分別對(duì)應(yīng)詞典D中的詞,非葉子結(jié)點(diǎn)共N-1個(gè). 通過(guò)隨機(jī)梯度上升算法對(duì)Xw的結(jié)果進(jìn)行預(yù)測(cè),使得p(w|context(w))值最大化,context(w)指詞的上下文中的2c個(gè)詞. 當(dāng)神經(jīng)網(wǎng)絡(luò)訓(xùn)練完成時(shí),即可求出所有詞的詞向量[28].
本文使用在網(wǎng)絡(luò)上收集到的與各種商品名相關(guān)的廣告語(yǔ)料,包括商品名稱及對(duì)此商品的描述來(lái)構(gòu)建廣告語(yǔ)料庫(kù),該語(yǔ)料庫(kù)的來(lái)源主要有兩個(gè)方面:①網(wǎng)絡(luò)上的語(yǔ)料庫(kù)中下載相應(yīng)的商品名;②找到的最新的商品廣告語(yǔ)加入語(yǔ)料庫(kù). 本文通過(guò)對(duì)廣告語(yǔ)料庫(kù)進(jìn)行處理,使用Word2vec模型,獲得大規(guī)模的詞-向量對(duì)
利用數(shù)據(jù)及其所屬的商品類別,本文定義了10個(gè)商品類別. 使用所獲取的海關(guān)商品名實(shí)驗(yàn)數(shù)據(jù),包括品目號(hào)及其所對(duì)應(yīng)的各種商品名稱構(gòu)建商品名語(yǔ)料庫(kù). 接著從商品名語(yǔ)料庫(kù)中,每一類商品抽取30條,共300條,手動(dòng)標(biāo)記商品分類,并將其在百科中的包含商品類別的語(yǔ)句所在的段落p,利用上一步中生成的詞-向量對(duì)加權(quán)平均,對(duì)段落進(jìn)行向量化,作為訓(xùn)練語(yǔ)料庫(kù)T. 然后利用深度隨機(jī)森林模型,訓(xùn)練出一個(gè)深度隨機(jī)森林分類器. 設(shè)置一個(gè)擴(kuò)展語(yǔ)料庫(kù)E,用于對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行擴(kuò)展.
K-Means算法是一種聚類算法,其是根據(jù)樣本之間的相似度,采用距離作為相似性的評(píng)價(jià)指標(biāo),將相似的樣本自動(dòng)聚集為一個(gè)簇,從而實(shí)現(xiàn)聚類的過(guò)程. 利用該算法,本文將廣告語(yǔ)料庫(kù)中的詞向量進(jìn)行了聚類,進(jìn)而得到語(yǔ)義上與10個(gè)商品類別相近的詞語(yǔ),從而可以對(duì)商品類別的名稱進(jìn)行擴(kuò)展[29].
從商品名語(yǔ)料庫(kù)中,對(duì)各個(gè)類別的商品描述進(jìn)行總結(jié). 以品目號(hào)6902為例:“6902:耐火磚、塊、瓦及類似耐火陶瓷建材制品,但硅質(zhì)化石粉及類似硅土制的除外”,先將此描述總結(jié)為“建筑材料”,即品目號(hào)6902 對(duì)應(yīng)的所有商品屬于分類“建筑材料”. 然后對(duì)此分類名進(jìn)行擴(kuò)展,在廣告語(yǔ)料庫(kù)中尋找與“建筑材料”含義最接近的詞作為擴(kuò)展名. 尋找方法為:先將廣告語(yǔ)料庫(kù)中的詞全部用Word2vec向量化,然后利用K-Means算法進(jìn)行聚類,找出與“建筑材料”最相近的詞作為其擴(kuò)展名. 一般地,均采用此種方法對(duì)預(yù)定義的類別名稱進(jìn)行擴(kuò)展:利用第 2 步中得到的大規(guī)模詞向量對(duì),采取K-Means算法進(jìn)行聚類,從而得到每一類商品名的最相關(guān)5個(gè)描述詞,Ci(i=1,2,…,10)表示每一類的描述詞集合. 擴(kuò)展結(jié)果如表1所示.
表1 類別名稱擴(kuò)展表Tab.1 Category name extension table
深度隨機(jī)森林是一種深度集成學(xué)習(xí)方法. 它是針對(duì)深度神經(jīng)網(wǎng)絡(luò)的幾個(gè)不足之處:①需要的訓(xùn)練數(shù)據(jù)量大,難以應(yīng)用在小規(guī)模數(shù)據(jù)集上;②參數(shù)調(diào)節(jié)困難;③訓(xùn)練時(shí)間長(zhǎng)等而提出的新的深度學(xué)習(xí)方法.
深度隨機(jī)森林以隨機(jī)森林作為基分類器,分為多層Fi(i=1,2,…,N),每一層分別設(shè)置兩個(gè)完全隨機(jī)森林和兩個(gè)隨機(jī)森林. 其中,完全隨機(jī)森林包括500棵完全隨機(jī)樹(shù),完全隨機(jī)樹(shù)的結(jié)點(diǎn)是隨機(jī)地在特征空間中抽取某一特征而生成的;隨機(jī)森林包括500棵隨機(jī)樹(shù),隨機(jī)樹(shù)的結(jié)點(diǎn)是隨機(jī)地在特征空間中抽取個(gè)特征(d為輸入特征的長(zhǎng)度),然后選取其中Gini系數(shù)最大的特征而生成的. 每一層Fi(i=2,3,…,N)的輸入特征向量是原始特征向量再拼接前一層Fi-1(i=2,3,…,N)的輸出向量. 第一層的輸入是原始的特征向量R= {r1,r2,…,rn}.
若是分類結(jié)果可能有m種情況,對(duì)于第i層,每個(gè)隨機(jī)樹(shù)的輸出為一個(gè)m維的向量D= {d1,d2,…,dm},向量的各個(gè)維度的值di(i=1,2,…,m),代表D屬于各個(gè)類別的可能性. 每個(gè)隨機(jī)森林的輸出,是將森林中包含的500棵隨機(jī)數(shù)分別生成的500個(gè)m維向量進(jìn)行加權(quán)平均,生成4個(gè)新的m維向量Di= {di1,di2,…,dim}(i=1,2,3,4),向量的各個(gè)維度的值代表原始特征屬于每一類別的概率. 而每一層的輸出,是將這一層4個(gè)隨機(jī)森林的輸出Di(i=1,2,3,4)與原始特征向量R進(jìn)行拼接,使得原始的特征向量R增長(zhǎng)為Ra={r1,r2,…,rn,d11,d12,…,d1m,…d41,…,d4m}再作為下一層的輸入. 最后一層的輸出,是將當(dāng)層的4個(gè)隨機(jī)森林的輸出結(jié)果進(jìn)行加權(quán)平均,取數(shù)值最大的維度所代表的類別作為特征R的最終類別[28].
對(duì)于新的商品名n,先將其作為查詢輸入百度百科及維基百科,抽取首段文本Tn,進(jìn)行分詞、去除停用詞處理后,將其中的詞與預(yù)先定義的十類商品的描述詞進(jìn)行匹配,若商品名n與描述詞集合Ci匹配成功,則將此商品劃分為ci類. 若新的商品名n匹配失敗,則需要直接獲取擴(kuò)充文本Tn. 獲取方法如下:若百度百科及維基百科中有此商品n的詞條,則取首段文本作為T(mén)n;否則,抽取搜索引擎返回的首個(gè)結(jié)果的切片作為T(mén)n. 得到擴(kuò)充文本Tn之后,利用第2步中得到的詞-向量對(duì)進(jìn)行向量化得到向量L. 將向量L利用深度隨機(jī)森林模型進(jìn)行分類,得到類別ci. 上述步驟得到新商品名的類別后,將商品名n,類別ci,首段文本Tn保存入擴(kuò)展語(yǔ)料庫(kù). 當(dāng)擴(kuò)展語(yǔ)料庫(kù)與訓(xùn)練語(yǔ)料庫(kù)大小相等時(shí),將擴(kuò)展語(yǔ)料庫(kù)中的樣本加入訓(xùn)練語(yǔ)料庫(kù),重新訓(xùn)練隨機(jī)森林分類器,直到訓(xùn)練語(yǔ)料庫(kù)中的樣本數(shù)超出某個(gè)閾值,閾值設(shè)置為100 000.0.
本文所采用的實(shí)驗(yàn)數(shù)據(jù)為深圳海關(guān)2017年4月—5月過(guò)關(guān)商品的部分登記情況,根據(jù)原數(shù)據(jù)總共選取10個(gè)類別,將每一張報(bào)表中的內(nèi)容作為一條數(shù)據(jù)信息,其中商品名稱作為超短文本分類數(shù)據(jù),總共包含93 686條信息. 訓(xùn)練樣本的詳細(xì)分類信息見(jiàn)表2.
表2 訓(xùn)練樣本分布表Tab.2 Distribution table of training samples
對(duì)于海關(guān)商品領(lǐng)域數(shù)據(jù),在進(jìn)行超短文本分類操作之前,預(yù)處理往往是必要的. 首先,海關(guān)商品數(shù)據(jù)中存在很多垃圾數(shù)據(jù),例如:商品名稱僅僅只寫(xiě)了一個(gè)字的錯(cuò)誤數(shù)據(jù);商品名稱中包含非法字符的數(shù)據(jù);商品名稱寫(xiě)成了商品的其他屬性值的數(shù)據(jù)等. 具體樣例如表3所示.
表3 垃圾數(shù)據(jù)樣例Tab.3 Samples of garbage data
其次,對(duì)數(shù)據(jù)集中相對(duì)較長(zhǎng)的商品名稱根據(jù)詞典進(jìn)行分詞處理,例如:“蘭蔻柔皙清透防曬露”,根據(jù)分詞處理結(jié)果為:“蘭蔻/柔皙/清透/防曬露”. 在分詞處理過(guò)程中,結(jié)合停用詞表,去除不需要的停用詞.
最后,對(duì)于相似度高的商品名稱,可以進(jìn)行合并處理. 例如:“奧利奧夾心餅干”、“奧利奧巧心結(jié)”、“奧利奧原味的夾心餅干”這3個(gè)商品名稱經(jīng)過(guò)去垃圾、分詞以及去停用詞操作后,再通過(guò)計(jì)算相似度得出他們之間具有很高的相似度值,因此,可以將這3個(gè)商品名稱記錄成單個(gè)名稱進(jìn)行處理.
本文實(shí)驗(yàn)采用準(zhǔn)確率(Precision)、召回率(Recall)和F1值對(duì)分類結(jié)果進(jìn)行評(píng)價(jià). 具體評(píng)估方法為,對(duì)于測(cè)試集的分類結(jié)果,若采用此方法得到的分類與預(yù)先標(biāo)記的類別完全相同時(shí),則認(rèn)為此條分類正確,否則認(rèn)為分類錯(cuò)誤. 準(zhǔn)確率和召回率的計(jì)算方法如下.
式中:li代表類別為i且被分到i類別中的文本數(shù);mi代表類別i的總文本數(shù);ni代表測(cè)試集中真實(shí)類別為i的總文本數(shù).
與此同時(shí),也進(jìn)行了相應(yīng)的對(duì)比實(shí)驗(yàn),在該數(shù)據(jù)集上分別采用KNN和決策樹(shù)方法進(jìn)行了實(shí)驗(yàn),計(jì)算出了相應(yīng)的準(zhǔn)確率和召回率,實(shí)驗(yàn)結(jié)果如表4所示.
表4 分類方法實(shí)驗(yàn)結(jié)果對(duì)比Tab.4 Comparison of experimental results
此外,還對(duì)準(zhǔn)確率和召回率進(jìn)行了綜合評(píng)估,分別計(jì)算出了各個(gè)方法的F1值,具體結(jié)果如圖2所示.
圖2 F1值對(duì)比結(jié)果Fig.2 F1 value comparison results
實(shí)驗(yàn)結(jié)果顯示在商品超短文本分類中,本文提出的超短文本分類方法,平均準(zhǔn)確率達(dá)到了88.15%,平均召回率達(dá)到了86.83%. 與傳統(tǒng)的KNN和決策樹(shù)方法相比,平均準(zhǔn)確率提高了22.78%和17.22%,平均召回率提高了22.85%和15.23%.
從以上的評(píng)估結(jié)果可以看出,傳統(tǒng)的KNN方法并不適用于超短文本的分類,因?yàn)槌涛谋咎卣鬟^(guò)于稀疏,因此向量化的結(jié)果過(guò)于離散,很難進(jìn)行準(zhǔn)確的分類. 而決策樹(shù)方法相對(duì)效果好一些,因?yàn)樗ㄟ^(guò)最大熵盡可能地考慮了超短文本所包含的信息,但也由于特征稀疏,使得分類性能難以得到較高提升. 而采用“分流”策略的超短文本分類方法取得了最好的效果,因?yàn)樗鼘?duì)超短文本進(jìn)行擴(kuò)展,充分挖掘了文本可能包含的語(yǔ)義,并使用深度隨機(jī)森林這一分類器,充分考慮到了樣本多樣性.
更進(jìn)一步地,實(shí)驗(yàn)將一些代表性的且在設(shè)計(jì)過(guò)程中考慮到超短文本情形的已有文本分類模型進(jìn)行對(duì)比. 如表5所示,本文選取了Sun在文獻(xiàn)[1]中所提出的聯(lián)合TF.IDF.CLARITY作為特征提取方案并使用Maximum Entropy作為基分類器的方法,ZHANG等[22]所提出的利用基于百科數(shù)據(jù)的LDA方法擴(kuò)展短文本后使用SVM進(jìn)行分類的方法,以及YANG等[27]提出的基于協(xié)同過(guò)濾方法的超短文本分類模型作為對(duì)比. 出于實(shí)用性考慮,對(duì)比的方式不再以對(duì)于某一分類的精確率、召回率及F1進(jìn)行比較,而是通過(guò)模型直接在十分類任務(wù)上的準(zhǔn)確率(Accuracy)作為衡量標(biāo)準(zhǔn). 在具體實(shí)現(xiàn)上,文獻(xiàn)[1,22]均未給出官方的實(shí)現(xiàn),故由本文根據(jù)論文中的描述加以實(shí)現(xiàn),其中,文獻(xiàn)[1]的查詢?cè)~長(zhǎng)度按照本文所設(shè)想的情形設(shè)定為1和3,文獻(xiàn)[22]的語(yǔ)料使用的為中文維基百科離線數(shù)據(jù)集(https://download.wikipedia.org,原文為基于英文維基百科數(shù)據(jù)的實(shí)現(xiàn)). 表5表明,本模型所提出的模型能夠取得比相關(guān)已有文獻(xiàn)更好的準(zhǔn)確率. 值得一提的是,在實(shí)驗(yàn)過(guò)程中,文獻(xiàn)[1]的方法在類別從其報(bào)道的八分類擴(kuò)展到十分類是準(zhǔn)確率顯著下降,同時(shí),由于Query Length的長(zhǎng)度的物理意義是作為分類特征的詞語(yǔ)數(shù),在這個(gè)參數(shù)偏小時(shí)才符合本文所設(shè)想的場(chǎng)景,其性能相較于針對(duì)超短文本分類模型顯著下降.
表5 所提出模型與相關(guān)已有文獻(xiàn)結(jié)果對(duì)比
通過(guò)對(duì)部分樣例的進(jìn)一步觀察,可以發(fā)現(xiàn),例如“活動(dòng)隔離樁”和“磚漿料”等超短文本構(gòu)成的商品名稱由于沒(méi)有百科信息的支持,出現(xiàn)了其他模型無(wú)法全部正確判斷的情況. 而通過(guò)網(wǎng)頁(yè)爬取獲取的廣告等較低質(zhì)量但信息較為完備的語(yǔ)料庫(kù)使得本文所提出的模型為該短文本提供了更好的分類性能.
本文提出了一種基于深度隨機(jī)森林的商品類超短文本分類方法,采用“分流”的策略,在海關(guān)的商品名分類領(lǐng)域取得了良好的效果,證實(shí)了此方法的可行性. 下一步,可以深入研究此框架向其他領(lǐng)域擴(kuò)展的可能性,以解決更為復(fù)雜的任務(wù),例如,該技術(shù)對(duì)于俚語(yǔ)、俗語(yǔ)等高度依賴先驗(yàn)知識(shí)的超短文本的分析有著良好的應(yīng)用前景,結(jié)合使用領(lǐng)域詞法可以將某地域相關(guān)的俚語(yǔ)、俗語(yǔ)進(jìn)行更加準(zhǔn)確的情感計(jì)算[30]. 此外,基于該超短文本模式的推薦系統(tǒng)也值得進(jìn)一步的研究[31]. 同時(shí),在構(gòu)建類別名稱擴(kuò)展庫(kù)時(shí),也存在著一些問(wèn)題需要進(jìn)一步研究和解決,如何實(shí)現(xiàn)知識(shí)庫(kù)的自動(dòng)更新也是將在以后著重討論研究的方向. 對(duì)于超短文本自身的定義和建構(gòu)同樣需要進(jìn)一步完善,其內(nèi)涵也有待進(jìn)一步挖掘.