[發明專利]基于word2vec模型的短文本數據流的快速增量式分類方法有效
| 申請號: | 201910169255.3 | 申請日: | 2019-03-06 |
| 公開(公告)號: | CN109918667B | 公開(公告)日: | 2023-03-24 |
| 發明(設計)人: | 李培培;胡陽;胡學鋼 | 申請(專利權)人: | 合肥工業大學 |
| 主分類號: | G06F16/35 | 分類號: | G06F16/35;G06F40/289;G06F18/24 |
| 代理公司: | 安徽省合肥新安專利代理有限責任公司 34101 | 代理人: | 陸麗莉;何梅生 |
| 地址: | 230009 安*** | 國省代碼: | 安徽;34 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 word2vec 模型 文本 數據流 快速 增量 分類 方法 | ||
1.一種基于word2vec模型的短文本數據流的快速增量式分類方法,其特征是按照如下步驟進行:
步驟1:構建word2vec模型:
步驟1.1:從知識庫中獲取文本外部語料庫,記為C1={d1,d2...dm...dM},m=1,2...M,其中,M表示所述文本外部語料庫C1的文本總數,dm表示第m個文本,并有I表示第m個文本dm中詞的個數,表示所述第m個文本dm中第i個詞,且Vocab表示文本外部語料庫C1中所有不同詞的詞集合,且Vocab={w1,w2....wz....wZ},z=1,2...Z,Z表示所述詞集合Vocab中詞的總個數,wz表示詞集合Vocab中第z個詞,且令第z個詞wz的詞向量記為Vec(wz),從而對得到詞向量集合Vec={Vec(w1),Vec(w2)…Vec(wz)…Vec(wZ)},并隨機初始化所述詞向量集合Vec;
步驟1.2:統計所述詞集合Vocab中所有詞在所述文本外部語料庫C1中出現次數,即詞頻,并將小于等于頻數下限F1或大于等于頻數上限F2的詞頻刪除,從而得到過濾后的詞頻集合;對所述過濾后的詞頻集合進行降序排序,并對排序后的詞頻集合構造一顆哈夫曼樹T;
步驟1.3:設置窗口大小為window,遍歷所述文本外部語料庫C1中第m個文本dm的每個詞,并獲取當前第i個詞的上下文
利用式(1)計算已知當前詞為時,預測其上下文的條件概率
式(1)中,u表示上下文中任意一個詞,表示已知當前詞為時,預測詞u的條件概率,并有:
式(2)中,H為哈夫曼樹T的高度,dh是從根節點到詞u所對應的葉子節點之間的路徑中第h個葉子節點對應于哈夫曼編碼中的第h位數;θh為根節點到詞u所對應的葉子節點之間的路徑中第h個葉子節點所對應的參數;
利用式(3)計算第i個詞的詞向量在參數θh的作用下出現第h位數dh的概率
式(3)中,σ(·)表示激勵函數;
步驟1.4:利用式(4)計算概率的最大似然函數
步驟1.5:對最大似然函數中的參數θh和詞向量分別求偏導,得到相應的梯度用于更新參數θh和詞向量從而得到更新后的參數θ′j和詞向量進而得到更新后的詞向量集合Vec′作為word2vec模型并賦值給原始的詞向量集合Vec;
步驟2:構建動態線性LR分類器組Model與全局類標簽集合L:
步驟2.1:定義時刻t,并初始化t=0;
步驟2.2:獲取任意數據流中t時刻數據塊其中,N為t時刻數據塊Dt中的文本的總個數,為t時刻的數據塊Dt中第n個文本,為t時刻數據塊Dt中第n個文本的類標簽,令Lt表示t時刻數據塊Dt的類標簽集合,并有:為t時刻類標簽集合Lt中第j個類標簽,j=1,2...J,J為t時刻數據塊Dt中不同類標簽的總個數;
步驟2.3將類標簽集合Lt放入全局類標簽集合L中,然后遍歷第n個文本中的每個詞,獲取每個詞的詞向量后求取平均值,并作為t時刻第n個文本的文本向量從而得到t時刻數據塊Dt中所有文本的文本向量,并替換t時刻數據塊Dt中各個文本,得到替換后的t時刻數據塊
步驟2.4:根據t時刻類標簽集合Lt,將替換后的t時刻數據塊Dt進行聚合,得到聚合后的t時刻數據塊其中,為聚合后的t時刻數據塊Dt中所有類標簽為的文本向量集合;
步驟2.5:創建并隨機初始化t時刻的第j個參數向量和從而得到t時刻參數向量集合和
步驟2.6:初始化j=1;
步驟2.7:將聚合后的t時刻數據塊Dt中所有類標簽為的文本向量集合的類標簽的值賦值為1,并作為正訓練樣本,其余的類標簽不為的文本向量集合相應的類標簽賦值給0,并作為負訓練樣本;
由所述正訓練樣本和負訓練樣本構成訓練文本向量集合其中
步驟2.8:當t0時,執行步驟2.10,否則執行步驟2.9;
步驟2.9:隨機初始化類標簽為的特征權重
步驟2.10:遍歷訓練文本向量集合Traint,并根據式(5)和(6)將t時刻第j個參數向量和更新為t+1時刻第j個參數向量和
式(5)和(6)中,為文本向量集合中t時刻第n個文本向量的優化迭代參數因子,為文本向量集合中t時刻第n個文本向量的損失函數對特征權重的導數,并有:
式(8)中,為對t時刻文本向量的預測概率,且
步驟2.11:將j+1賦值給j,返回步驟2.8,直到j>J為止,從而得到t+1時刻參數向量集合NPt+1和ZPt+1;
步驟2.12:遍歷t+1時刻參數向量集合NPt+1和ZPt+1,并初始化j=1;
步驟2.13:利用式(10)計算t+1時刻第j個特征權重
式(10)中,λ1、λ2、α和β均為超參數,zgn(·)為向上取整函數;
步驟2.14:利用t+1時刻第j個特征權重構建線性LR分類器并將t+1時刻第j個分類器加入t+1時刻的動態線性LR分類器組Modelt+1中;
步驟2.15:將j+1賦值給j,并返回步驟2.13,直到j>J為止,從而得到t+1時刻的動態線性LR分類器組Modelt+1為
步驟3:增量式更新全局標簽集合L,修改并增加t+1時刻的分類器組Modelt+1;
步驟3.1:初始化t=1;
步驟3.2:根據步驟2.2至步驟2.3的處理方法,得到替換后的t時刻數據塊Dt;
步驟3.3:遍歷t時刻數據塊Dt中第n個文本的文本向量并利用式(11)獲取文本向量的第j個類標簽的概率從而得到文本向量的類標簽概率集合
步驟3.4:將類標簽概率集合中最大概率所對應的類標簽作為文本向量的預測類標簽,記為從而得到t時刻數據集Dt中所有文本向量的預測類標簽集合
步驟3.5:利用式(12)計算t時刻分類器組Modelt對當前t時刻數據塊Dt的預測準確率Accuracyt:
步驟3.6:根據步驟2.4的處理方法,得到聚合后的t時刻數據塊Dt;
步驟3.7:定義總迭代次數為Inter,如果Accuracyt小于閾值λ,將初始化Inter=num;num為所設定的漂移權重;否則,初始化Inter=1;
步驟3.8:定義當前迭代次數為inter,并初始化inter=1;
步驟3.9:根據步驟2.6至步驟2.11的處理方法,得到t+1時刻的第inter次迭代的參數向量NPt+1,inter和ZPt+1,inter;
步驟3.10:將NPt+1,inter和ZPt+1,inter分別賦值給NPt和ZPt;
步驟3.11:將inter+1賦值給inter,并返回步驟3.9執行,直到iter>Iter為止,從而得到t+1時刻的第Inter次迭代的第j個參數向量和并賦值給t+1時刻參數向量集合NPt+1和ZPt+1;
步驟3.12:遍歷集合t+1時刻參數向量集合NPt+1和ZPt+1,并初始化j=1;
步驟3.13:利用式(10)計算t+1時刻第j個特征權重
步驟3.14:如果t+1時刻第j個分類器則將賦值給從而更新t+1時刻的分類器組Modelt+1;
如果t+1時刻第j個分類器則利用t+1時刻第j個特征權重構建線性LR分類器再將加入t+1時刻的分類器組Modelt+1中;
步驟3.15:將j+1賦值給j,并返回步驟3.13執行,直到j>J為止;從而得到t+1時刻的動態線性LR分類器組Modelt+1為
步驟3.16:將t+1賦值給t后,返回步驟3.2,直至t>T為止,T為數據流的結束時刻;
步驟4:預測測試數據流,獲取未在詞集合Vocab中出現的新詞樣本集合S,構建詞向量模型Ce與詞向量擴展集合Vec-expand;
步驟4.1:定義詞向量擴展集合Vec-expand并初始化為空集,初始化t=0;
步驟4.2:獲取測試數據流中t時刻測試數據塊其中為t時刻的測試數據塊Dt′中第n個測試文本,且為為t時刻的第n個測試文本中第i個詞;
定義t時刻的新詞文本集合St并初始化為空集,然后遍歷t時刻的測試數據塊Dt′中所有測試文本,如果t時刻的第n個測試文本中所有詞均屬于詞集合Vocab,則不將第n個測試文本加入新詞文本集合St中,否則,將第n個測試文本加入新詞文本集合St;從而得到t時刻的更新后的新詞文本集合S′t以及對應的新詞集合Vocab′t;
步驟4.3:如果t時刻的新詞詞集合文本集合St中測試文本總數大于閾值,則利用步驟1的處理方法對更新后的新詞文本集合S′t構建word2vec模型,并得到新詞向量集合其中,Vec*(w′y,t)表示t時刻新詞集合Vocab′t中第y個詞w′y,t的詞向量;y=1,2...Y,Y為新詞集合Vocab′t中詞的總個數;否則,執行步驟5;
步驟4.4:遍歷如果Vec*(w′y,t)∈Vec-expand,則將Vec*(w′y,t)賦值給Vec*(w′y,t+1),否則將Vec*(w′y,t)加入詞向量擴展集合Vec-expand中;
步驟5:獲取t時刻的測試數據塊D′t的類標簽強度:
步驟5.1:利用步驟3.2至步驟3.4的處理方法,得到t時刻的測試數據塊D′t中所有測試文本向量的類標簽概率集合和預測類標簽集合并組合為
其中表示t時刻的測試數據塊D′t中第n個測試文本預測的類標簽為的概率為
步驟5.2:獲取類標簽概率集合Pro′t中所有類標簽的占比集合其中為類標簽概率集合Pro′t中預測類標簽為的測試文本數除以類標簽概率集合Pro′t中總測試文本數的占比;
獲取類標簽概率集合Pro′t中所有預測類標簽的最大概率集合max_Prot={max_pro1,max_pro2...max_proj...max_proJ},其中max_proj為類標簽概率集合Pro′t中類標簽為所對應的最大概率;
步驟5.3:將presentt與max_Prot的乘積作為測試數據塊D′t的類標簽強度topict;
步驟5.4:將t+1賦值給t后,返回步驟4.2,直至t>T′為止,T′為測試數據流的結束時刻;從而得到測試數據流的類標簽強度集合{topic1,topic2...topict,...topicT′}。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于合肥工業大學,未經合肥工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910169255.3/1.html,轉載請聲明來源鉆瓜專利網。





