1. 6) (2. 1. 7) (2. 1. 8) (2. 1. 9) 對st進行分詞的結(jié)果是:我們/是/旅游愛好者。
[0043] (2. 2)對照停用詞表去掉停用詞,得到文本的特征值,并確定特征值對應(yīng)的權(quán)重, 具體包括以下步驟:
[0044] (2. 2. 1)針對(2. 1)中的st,對照停用詞表去掉"是"得到st的特征值為{我們, 旅游愛好者};
[0045] (2. 2. 2)將st的特征值與權(quán)重庫對比得到每一個特征值的權(quán)重,權(quán)重詞庫如表2 所示:
[0046] 表2為權(quán)重詞庫的截圖
[0047] CN 105138647 A I兄明書 4/5 頁
[0048] (3)根據(jù)步驟(2)所得的文本特征值及其對應(yīng)的權(quán)重,用Simhash算法進行處理, 參見圖2,得到該文本的語義指紋,并將其存入數(shù)據(jù)庫中,具體由以下步驟實現(xiàn):
[0049] (3. 1)假定Simhash的長度為64位,初始化長度為64位的數(shù)組,該數(shù)組的每個元 素都是〇。求一個特征值的64位hash值,如果hash值得第i位是1,那么數(shù)組的第i個數(shù) 加上該特征的權(quán)重使對應(yīng)位置變?yōu)檎龣?quán)重;否則,當(dāng)hash值得第i位為0時,則將第i位減 去它的權(quán)重值使對應(yīng)位置變?yōu)樨摍?quán)重;最后得到這個特征值的權(quán)重編碼。
[0050] (3. 2)重復(fù)(3. 1)步驟,對當(dāng)前文本的所有特征值進行處理。將所有特征值對應(yīng)位 求代數(shù)和并放入原數(shù)組。數(shù)組中的某些數(shù)為正,某些數(shù)為負。Simhash值的每一位與數(shù)組中 的每個數(shù)對應(yīng),將正數(shù)對應(yīng)位設(shè)為1,負數(shù)對應(yīng)位設(shè)為〇,給出64位的0/1數(shù)組,即為最后的 Simhash0
[0051] 用 java 程序處理 St1= i want to go to bei jing with i ;
[0052] st2= I want to go to Beijing with e ;
[0053] St3= go to school ;
[0054] St1二〇〇〇〇〇〇〇〇〇〇110100010000000100001100100001100111100011100110111000
[0055] St2二〇〇〇〇〇〇〇〇〇〇110100010000000100001100100010100110100011100110110000
[0056] St3= 0000000000110110110101101100100110100101100111100011000000110000
[0057] (3. 3)將文本和對應(yīng)的simhash編碼放入數(shù)據(jù)庫中,放入數(shù)據(jù)庫中后如表3所示:
[0058] 表3語義指紋在數(shù)據(jù)庫中的存儲格式
[0059]
LlN 丄U01di5b4/ A I ^ 0/O JM
[0060] (4)用海明距離算法將步驟(3)所得到的一個文本的語義指紋與預(yù)先劃分類別中 的中心文本進行對比,若兩者之間的海明距離小于等于3,則將該文本歸類至該中心文本所 對應(yīng)的類別中,并將其對應(yīng)類別存入數(shù)據(jù)庫中對應(yīng)的用戶信息中;否則,將其與預(yù)先劃分類 別中的其他中心文本進行對比;若不存在滿足條件的中心文本,則將該文本作為新類別的 中心文本;
[0061] 例如:用戶1和用戶2預(yù)先劃分類別分別為A類和B類。將用戶3的語義指紋與 用戶1的語義指紋用海明距離進行對比,得到的距離為14,則說明用戶3與用戶1不是同 類,再將用戶3的語義指紋與用戶2的語義指紋進行對比,得到的距離為16,說明用戶3和 用戶2也不是同類。那么將用戶3作為新的類別C類的中心文本存放到數(shù)據(jù)庫中。如表4 所示:
[0062] 表4用戶所屬類別在數(shù)據(jù)庫中的存儲格式
[0063]
[0064] (5)重復(fù)步驟(4),完成數(shù)據(jù)庫中的其他文本的類別劃分,完成了旅游網(wǎng)絡(luò)社區(qū)劃 分。
[0065] 上述實施例步驟(2. 1)中還可以使用逆向最大匹配算法或雙向最大匹配算法進 行分詞處理,其具體處理過程與正向最大匹配算法的過程類似。
[0066] 上述實施例中未詳細描述的方法或處理過程均屬于常規(guī)方法,對于本領(lǐng)域技術(shù)人 員均可獲知。
【主權(quán)項】
1. 一種基于Simhash算法的旅游網(wǎng)絡(luò)社區(qū)劃分方法,其特征在于包括以下步驟: (1) 爬取旅游網(wǎng)絡(luò)上的用戶ID以及文本數(shù)據(jù),并存入數(shù)據(jù)庫; (2) 對數(shù)據(jù)庫中所存放的文本數(shù)據(jù)進行分詞處理,對照停用詞表去掉停用詞,得到文本 的特征值,并確定特征值對應(yīng)的權(quán)重; ⑶根據(jù)步驟⑵所得的文本特征值及其對應(yīng)的權(quán)重,用Simhash算法進行處理,得到 該文本的語義指紋,并將其存入數(shù)據(jù)庫中; (4) 用海明距離算法將步驟(3)所得到的一個文本的語義指紋與預(yù)先劃分類別中的中 心文本進行對比,若兩者之間的海明距離小于等于3,則將該文本歸類至該中心文本所對應(yīng) 的類別中,并將其對應(yīng)類別存入數(shù)據(jù)庫中對應(yīng)的用戶信息中;否則,將其與預(yù)先劃分類別中 的其他中心文本進行對比;若不存在滿足條件的中心文本,則將該文本作為新類別的中心 文本; (5) 重復(fù)步驟(4),完成數(shù)據(jù)庫中的其它文本的類別劃分,完成了旅游網(wǎng)絡(luò)社區(qū)劃分。2. 根據(jù)權(quán)利要求1所述的基于Simhash算法的旅游網(wǎng)絡(luò)社區(qū)劃分方法,所述步驟(1) 具體是由以下步驟實現(xiàn): (I. 1)申請旅游網(wǎng)絡(luò)爬取數(shù)據(jù)的權(quán)限; (1. 2)根據(jù)旅游網(wǎng)絡(luò)接口查看用戶的注冊住址addressl、用戶文本信息內(nèi)容text以及 用戶發(fā)表文本信息內(nèi)容時所在地址address2 ; (1. 3)判斷用戶的注冊住址addressl與用戶發(fā)表文本信息內(nèi)容時所在地址address2 是否相同,若不相同,則確定文本信息內(nèi)容與旅游相關(guān),將其用戶ID以及文本數(shù)據(jù)存入數(shù) 據(jù)庫;否則,返回步驟(2)查看下一個用戶。3. 根據(jù)權(quán)利要求1所述的基于Simhash算法的旅游網(wǎng)絡(luò)社區(qū)劃分方法,其特征在于: 所述步驟(2)中的分詞處理采用正向最大匹配算法或逆向最大匹配算法或雙向最大匹配 算法。4. 根據(jù)權(quán)利要求1所述的基于Simhash算法的旅游網(wǎng)絡(luò)社區(qū)劃分方法,其特征在于: 所述步驟(3)中的Simhash算法具體由以下步驟實現(xiàn): (3. 1)用hash編碼算法對步驟(2)所得的每個文本特征值進行處理,將其轉(zhuǎn)化為64位 的編碼,得到hash編碼; (3. 2)對hash編碼的每一位進行處理,若對應(yīng)位置處的編碼為1,則將其相應(yīng)位數(shù)變?yōu)?正權(quán)重;否則為負權(quán)重,得到相應(yīng)的權(quán)重編碼; (3. 3)將所有文本特征的權(quán)重編碼對應(yīng)位求和,得到求和后的編碼,若求和后的編碼中 的位數(shù)為正,則將其標記為1 ;否則,標記為0,得到Simhash編碼值,即為語義指紋。
【專利摘要】本發(fā)明涉及一種基于Simhash算法的旅游網(wǎng)絡(luò)社區(qū)劃分方法,其是利用Simhash算法對文本進行處理計算文本的語義指紋,用海明距離來比較文本的語義指紋之間的距離,推算文本相似度,從而達到對相似用戶進行聚類的目的,該方法將短文本高維度的特征向量進行降維處理,大大減少了其所占用的存儲空間,而且本發(fā)明的算法簡單方便、運算時間少,對文本的處理速度快,進而提高了復(fù)雜網(wǎng)絡(luò)社區(qū)的劃分效率,這對預(yù)測旅游活動的趨勢與動向,提供旅游服務(wù)信息,推薦旅游線路乃至預(yù)測旅游高峰都有重大意義。
【IPC分類】G06F17/30, G06Q50/00
【公開號】CN105138647
【申請?zhí)枴緾N201510530303
【發(fā)明人】曹菡, 馮倩, 李程
【申請人】陜西師范大學(xué)
【公開日】2015年12月9日
【申請日】2015年8月26日